51微控制器程式問題

時間 2022-04-11 01:31:11

1樓:陳峰

主程式裡面來做中斷處理,當定時器1 num1加到25時 num1清零,p1取反。。

當定時器0 tt 加到25時 tt清零,同時num加1。當num加到16時num清零,p0口顯示 num這個數(num=0);

th0=(65536-10000)/256;

tl0=(65536-10000)%256;

th1=(65536-20000)/256;

tl1=(65536-20000)%256;

main()裡有是初始化。進中斷裡要是不加就會從00000000開始執行,顯然不是想要的結果,會造成定的時間不是想要的

2樓:匿名使用者

if(tt==100)中,tt用於計算進入中斷的次數。由於每次進入中斷耗時10ms,那麼100次就是1s,故為100時表示定時的1s時間到了。這是定時器的作用。

為了下次再繼續計時,接下來就需要把tt清零。

if(num==16)中num應該是在數碼管上顯示的數字吧?因為最大顯示16進製制中的16即f,大於16就不能顯示,因此需要判斷其是否到達16.一旦到16就清零。

關於th0=(65536-10000)/256; tl0=(65536-10000)%256;出現兩次,因為你沒弄明白定時器的原理,所以你不懂為什麼出現兩次。第一次設定後,其就開始一直加數,一旦溢位後就進入中斷,但接下來還要繼續計時(100次進入中斷才產生1s啊),然後就和第一次為什麼設定其值的原因一樣,需要重新賦值,每進入一次中斷就重新賦值一次,所以要在中斷函式中在寫一次。

估計你也是在看郭天祥老師的書吧?他的風格和他的教程確實很容易理解,我是說相比於其他的教程

3樓:匿名使用者

delay函式用不著。兩個if語句很簡單,你看下教程裡的if語句是怎樣用,。後面這個不是定義,,這倆定時器都不是自動重灌的,所以每次中斷後都要重新賦值

關於51微控制器中斷程式,51微控制器中斷程式

你好 看你對定時器中斷不是很了解,我可以給你乙個詳細的解釋 首先了解一下51微控制器的週期,51微控制器的機器週期計算方式是12 晶振 hz 也就是說微控制器每隔這麼一段時間會讓定時暫存器加1,如果是12mhz晶振,就是1us定時暫存器會自己加1。然後,當你配置好定時器相關暫存器後,開啟trx 定時...

最簡單c51微控制器液晶顯示程式,51微控制器液晶1602的C程式誰有,給個簡單的顯示乙個字元A的

詳細請見 51微控制器液晶1602的c程式誰有,給個簡單的顯示乙個字元a的 解決方法很多 查1602手冊可知,38h 即00111000 為第6條指令格式 001dlnf 對應可知,nl 1,高電平4位匯流排,低電平8位匯流排 題目8位資料介面是錯的 n 1,高電平為雙行顯示,低電平為單行顯示,所以...

51微控制器中if語句的問題,51微控制器中if語句的乙個問題

微控制器程式在執行完main程式後會跳回到住main程式入口再重新執行的。把這個程式反彙編以後可以看到在c 0x0018行跳回主函式入口c0003 c 0x0000 02000f ljmp c 000f 4 void main void 5 c 0x000e 22ret c 0x000f 787f ...

用微控制器發生方波 程式,求高手 用51微控制器輸出產生方波的程式

假設方波的週期為8微秒 如圖所示 由p1.0引腳產生方波 定時時間 方波週期 2 4 微秒 定時時間 t 2的8次方 x 12 12 1000000 256 x 1微秒 x 256 4 252 0fch 由於定時時間很短 工作在方式可以選擇方式2 為8位自動重裝載的 選擇定時器t1定時 參考程式 o...

微控制器匯程式設計序串列埠通訊,51微控制器串列埠通訊組合語言實現

哈哈紅紅火火恍恍惚惚 51微控制器串列埠通訊 彙編 呵呵,傳送三次,你的程式,確實是只傳送了一次。可考慮使用迴圈結構來傳送三次。另外,傳送 和接收 後,將進入中斷程式 在中斷的末尾,應該是reti指令,不應該用ajmp指令。再有,你 沒有 延時程式,那麼,收到了資料,人的眼睛也是來不及看的。求微控制...