汇编语言编程对理解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 ;将TR0至1
MOV 0B0H, #0FFH;将P1口LED全部熄灭
MOV R6, #20 ;计数20次
LOOP: JNB TF0, LOOP;检测计数是否溢出
MOV TH0, #0B6H
MOV TL0, #0C1H;溢出后,重新送初值
CPL TF0 ;CPU响应T0中断时,TF0由硬件清0;否则由软件清0(CPL TF0清0操作)
DJNZ R6,LOOP ;循环20次,50ms,定时1s
MOV R6,#20 ;重新装载20次初值
CPL 0xB0.1 ;LED闪烁
LJMP LOOP
END
下载到开发板后,LEDP3.1就可以实现1秒钟闪烁一次。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
led
+关注
关注
240文章
23128浏览量
658245 -
中断
+关注
关注
5文章
895浏览量
41384 -
定时器
+关注
关注
23文章
3237浏览量
114432 -
汇编语言
+关注
关注
14文章
409浏览量
35730
发布评论请先 登录
相关推荐
如何用AT89C51汇编语言实现LED间隔1s闪烁
AT89C51 汇编语言实现LED间隔1s闪烁(已验证);************;;中断入口程序;;************;;ORG0000H ;
发表于 12-01 06:28
汇编语言程序设计下载
professional assembly language 汇编语言程序设计本书分为三部分。第一部分讲解汇编语言程序设计环境基础,第二部分研究汇编
发表于 10-21 17:42
•0次下载
Timer0和Timer1及Timer2定时器的C语言和汇编语言测试程序免费下载
本文档的主要内容详细介绍的是Timer0和Timer1及Timer2定时器的C语言和汇编语言测试程序免费下载。
发表于 06-10 08:00
•0次下载
AT89C51 汇编语言实现LED间隔1s闪烁(已验证)
AT89C51 汇编语言实现LED间隔1s闪烁(已验证);************;;中断入口程序;;************;;ORG 0000H ;
发表于 11-22 20:51
•47次下载
利用定时器中断方式控制led灯的闪烁速度_项目四 定时器和中断概念的基本认识...
扫描控制LEDn 子任务2.1 C语言---swtich语句认识n 子任务2.2 中断系统的认识n 子任务2.3 采用定时和中断方式驱动按键
发表于 11-26 12:06
•16次下载
评论