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