?? 利用軟件定時器實現燈的閃爍.asm
字號:
;用軟件定時器實現P0.0口所接燈按1S/次而P0.1口所接燈按2S/次閃爍
ORG 0000H
AJMP START
ORG 000BH ;定時器0的中斷向量地址
AJMP TIME0 ;跳轉到真正的定時器程序處
ORG 0030H
START: MOV P0,#0FFH ;關所有燈
MOV 30H,#00H ;軟件計數器清零
MOV TMOD,#00000001B ;定時/計數器0工作于方式1
MOV TH0,#3CH
MOV TL0,#0A0H ;以上兩行預置立即數15536
SETB EA ;開總中斷允許
SETB ET0 ;開定時/計數器0允許
SETB TR0 ;定時/計數器0開始運行
LOOP: AJMP LOOP ;真正工作時,這里可寫任意程序
TIME0: ;定時器0的中斷處理程序
PUSH ACC ;將ACC推入堆棧保護
PUSH PSW ;將PSW推入堆棧保護
INC 30H
INC 31H ;兩個計數器都加1
MOV A,30H
CJNE A,#255,TNEXT ;30H單元中的值到了20了嗎
CPL P0.0 ;到了,取反P0.0
MOV 30H,#0 ;清軟件計數器
TNEXT:MOV A,31H
CJNE A,#40,TRET ;31H單元中的值到了40了嗎
CPL P0.1
MOV 31H,#0 ;到了,取反P1.1并清零計數器,返回
TRET: MOV TH0,#15H ;重置定時常數
MOV TL0,#9FH
POP PSW
POP ACC
RETI
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -