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

📄 利用软件定时器实现灯的闪烁.asm

📁 单片机例程打包 液晶 AD EEPROM LED 电机 BEEP 键盘等
💻 ASM
字号:
;用软件定时器实现P0.0口所接灯按1S/次而P0.1口所接灯按2S/次闪烁
ORG 0000H
AJMP START
ORG 000BH                ;定时器0的中断向量地址
AJMP TIME0               ;跳转到真正的定时器程序处
ORG 0030H
START: MOV P0,#0FFH      ;关所有灯
MOV 30H,#00H             ;软件计数器清零
MOV TMOD,#00000001B      ;定时/计数器0工作于方式1
MOV TH0,#3CH 
MOV TL0,#0A0H            ;以上两行预置立即数15536
SETB EA                  ;开总中断允许
SETB ET0                 ;开定时/计数器0允许
SETB TR0                 ;定时/计数器0开始运行
LOOP: AJMP LOOP          ;真正工作时,这里可写任意程序
TIME0:                   ;定时器0的中断处理程序
PUSH ACC                 ;将ACC推入堆栈保护
PUSH PSW                 ;将PSW推入堆栈保护
INC 30H
INC 31H                  ;两个计数器都加1
MOV A,30H
CJNE A,#255,TNEXT         ;30H单元中的值到了20了吗         
CPL P0.0                 ;到了,取反P0.0
MOV 30H,#0               ;清软件计数器
TNEXT:MOV A,31H
CJNE A,#40,TRET           ;31H单元中的值到了40了吗
CPL P0.1
MOV 31H,#0                ;到了,取反P1.1并清零计数器,返回
TRET: MOV TH0,#15H        ;重置定时常数
MOV TL0,#9FH            
POP PSW
POP ACC
RETI
END

⌨️ 快捷键说明

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