📄 timer3led.#2
字号:
;参考程序A:文件名:TIMER3LED.ASM程序功能:驱动C8051F单片机实验仪上的8个发光二
;极管轮流点亮.
$include (c8051f020.inc)
ORG 0
AJMP main
ORG 73H ;T3中断向量
AJMP Timer3_ISR ; T3中断服务子程序
ORG 0100H
main:
MOV WDTCN,#0deH
MOV WDTCN,#0adH ;禁止看门狗定时器
LCALL Timer3_Init ;初始化T3
MOV R0,#0FEH ;置扫描初值,亮最低位一位的灯.
SETB EA ;开总中断
LJMP $ ;等待中断
RET
;定时器3初始化
Timer3_Init:
MOV TMR3CN,#00H ; 禁止T3
MOV TMR3RLH, #1 ; 设置自动重载值,假设为(01FFH)
MOV TMR3RLL, #255
MOV TMR3H, #0ffh ; 设置计数初值
MOV TMR3L, #0ffh
ORL TMR3CN,#04H ;定时器3使用系统时钟频率/12
ORL EIE2,#01H ;允许T3的中断申请.
RET
;定时器3中断服务程序
Timer3_ISR:
ANL TMR3CN,#NOT(80h) ;清中断标志位TF3
MOV A,R0
MOV P4,A ;送数据到P4口
SETB C
RLC A ;带进位左移
MOV R0,A
CJNE A,#0FFH,TT ;第八灯是否点亮
MOV R0,#0FEH
TT: RETI
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -