|
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;51單片機入門程序17
;工程名稱:用定時器0實現P1.0的LED的亮滅功能(利用定時器的中斷實現1秒長時間定時)
;編寫日期:2009.7.4
;編寫者:藍柳柳
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ORG 0000H
AJMP QQ
ORG 000BH ;定時器0中斷入口地址
AJMP QQQ ;跳轉到定時器中斷服務程序
ORG 30H
QQ:
MOV P1,#11111111B ;熄滅掉P1端口的LED
MOV R7,#00000000B ;軟件計數器清零
MOV TMOD,#00000001B ;定時器0工作方式1
MOV TH0,#3CH
MOV TL0,#0B0H ;初值
SETB EA ;定時器0中斷條件
SETB ET0 ;定時器0中斷條件
SETB TR0 ;啟動定時器0
LOOP:AJMP LOOP ;定時時單片機可以在做自己的事情
QQQ:
INC R7 ;軟件計數器加1
MOV A,R7 ;R7里的數送到A,這個語句可以省略
CJNE A,#20,TR ;A里的數到20了沒,定時中斷夠20次了沒,到了順序運行
;讓LED亮起來,沒到20跳轉到TR繼續定時,直到定20次夠1秒為止
TCL:
CPL P1.0 ;
MOV R7,#0 ;軟件計數器清零
TR:
MOV TH0,#3CH
MOV TL0,#0B0H ;定時器重新定初值
RETI ;中斷服務程序返回,返回到LOOP處
END
|
|