⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 12定时中断跑马灯.asm

📁 这是2008年stc程序个人设计汇总
💻 ASM
字号:
org 00h    ;指定程序放置的地址,说明,放在程序寄存器的任意地址运行效果都是相同的,但是,用户必须合理分配,一般从00h开始放置
clr p1.0   ;点亮一个灯,以便观查移位效果
jmp cfg

org 0bh
jmp t0int

cfg:
mov tmod,#00010001b;
mov th0,#155 ;12MHz时,1次计数为1US
mov tl0,#205 ;12MHz时,

setb et0 ;开启中断
setb tr0 ;允许计数

setb ea  ;开启总中断
mov r7,#5    ;保证以下程序每5次中断执行1次,因此灯闪的时间为中断时间乘以100次


main:	
jmp main    ;进入下一循环,这实际是一个没有多大意义的死循环,唯一的意义就等待中断


t0int:djnz r7,t0end   ;中断的延时很短,需要进一步延时
mov r7,#5    ;保证以下程序每5次中断执行1次,因此灯闪的时间为中断时间乘以100次

mov a,p1   ;读入P1的灯亮情况
rr a       ;移动一次
mov p1,a   ;送回p1口,按照新的状态点亮灯

t0end:			reti               ;子程序运行结束,返回原调用的位置  


end   ;程序结束,以后可以放置任何内容


说明:由于单片机运行的速度很快,必须延时,人眼才能看清楚LED点亮和熄灭的过程,但是,在实际应用中,象这样应用延时程序的意义不在,
因为这占用了宝贵的CPU运行时间,在很多时间,CPU不是很有空.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -