标题: 用单片机定时器0实现P1.0的LED的亮灭功能(利用定时器的中断实现1秒长时间定时) [打印本页]

作者: wudawei    时间: 2014-12-31 14:43
标题: 用单片机定时器0实现P1.0的LED的亮灭功能(利用定时器的中断实现1秒长时间定时)
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;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     

作者: woaiwm    时间: 2015-1-23 21:23
为什么是汇编?




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1