RD8T3x汇编语言用定时器中断驱动LED闪灯程序

描述

汇编语言编程对理解CPU的如何工作运行非常有必要。这里用汇编来实现一个定时器中断来闪灯的程序:

我们先算得50ms一次中断的计数器的初值

1、记数值=50 000*12/32=18750

2、初始值=65535-18750=46785 (=B6C1)

3、TH0=B6 TL0=C1

ORG 0000H  
		 ORL  0B1H, #0FFH  ;P3CON 0x1e
                  MOV TMOD,#01H ;定时器方式1
                  MOV TH0, #0B6H
                  MOV TL0, #0C1H ;32.0592HZ晶振,50ms定时
                  MOV TCON,#10H ;将TR01
                  MOV 0B0H, #0FFH;将P1口LED全部熄灭
                  MOV R6,  #20        ;计数20LOOP: JNB TF0, LOOP;检测计数是否溢出
                  MOV TH0, #0B6H
                  MOV TL0, #0C1H;溢出后,重新送初值
		  CPL TF0      ;CPU响应T0中断时,TF0由硬件清0;否则由软件清0(CPL TF00操作)
                  DJNZ R6,LOOP ;循环20次,50ms,定时1s
                  MOV R6,#20    ;重新装载20次初值
                  CPL 0xB0.1     ;LED闪烁
                  LJMP LOOP
                  END

下载到开发板后,LEDP3.1就可以实现1秒钟闪烁一次。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分