匯編語言編程對理解CPU的如何工作運行非常有必要。這里用匯編來實現一個定時器中斷來閃燈的程序:
我們先算得50ms一次中斷的計數器的初值
1、記數值=50 000*12/32=18750
2、初始值=65535-18750=46785 (=B6C1)
3、TH0=B6 TL0=C1
ORG 0000H
ORL 0B1H, #0FFH ;P3CON 0x1e
MOV TMOD,#01H ;定時器方式1
MOV TH0, #0B6H
MOV TL0, #0C1H ;32.0592HZ晶振,50ms定時
MOV TCON,#10H ;將TR0至1
MOV 0B0H, #0FFH;將P1口LED全部熄滅
MOV R6, #20 ;計數20次
LOOP: JNB TF0, LOOP;檢測計數是否溢出
MOV TH0, #0B6H
MOV TL0, #0C1H;溢出后,重新送初值
CPL TF0 ;CPU響應T0中斷時,TF0由硬件清0;否則由軟件清0(CPL TF0清0操作)
DJNZ R6,LOOP ;循環20次,50ms,定時1s
MOV R6,#20 ;重新裝載20次初值
CPL 0xB0.1 ;LED閃爍
LJMP LOOP
END
下載到開發板后,LEDP3.1就可以實現1秒鐘閃爍一次。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
led
+關注
關注
242文章
23742瀏覽量
671402 -
中斷
+關注
關注
5文章
904瀏覽量
42549 -
定時器
+關注
關注
23文章
3289瀏覽量
117353 -
匯編語言
+關注
關注
14文章
410瀏覽量
36614
發布評論請先 登錄
相關推薦
熱點推薦
如何用AT89C51匯編語言實現LED間隔1s閃爍
AT89C51 匯編語言實現LED間隔1s閃爍(已驗證);************;;中斷入口程序;;************;;ORG0000H ;
發表于 12-01 06:28
匯編語言程序設計下載
professional assembly language 匯編語言程序設計本書分為三部分。第一部分講解匯編語言程序設計環境基礎,第二部分研究匯編
發表于 10-21 17:42
?0次下載

Timer0和Timer1及Timer2定時器的C語言和匯編語言測試程序免費下載
本文檔的主要內容詳細介紹的是Timer0和Timer1及Timer2定時器的C語言和匯編語言測試程序免費下載。
發表于 06-10 08:00
?0次下載

AT89C51 匯編語言實現LED間隔1s閃爍(已驗證)
AT89C51 匯編語言實現LED間隔1s閃爍(已驗證);************;;中斷入口程序;;************;;ORG 0000H ;
發表于 11-22 20:51
?47次下載

利用定時器中斷方式控制led燈的閃爍速度_項目四 定時器和中斷概念的基本認識...
掃描控制LEDn 子任務2.1 C語言---swtich語句認識n 子任務2.2 中斷系統的認識n 子任務2.3 采用定時和中斷方式驅動按鍵
發表于 11-26 12:06
?16次下載

評論