|
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;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
|
|