📄 定时1秒.asm
字号:
ORG 0001H
AJMP MAIN
ORG 000CH
AJMP DIN0
MAIN: TFL EQU 34H ;时间秒标志,判是否到50个0.2秒,即50*0.2=1秒
MOV TMOD, #00000001B ;定时器0工作于方式1
MOV TL0, #0AFH
MOV TH0, #3CH ;设定时时间为0.05秒,定时20次则一秒
SETB EA ;开总中断
SETB ET0 ;开定时器0中断允许
SETB TR0 ;开定时0运行
SETB P1.0
MOV R1, #0AH ;加的1:表示只改变10次就结束
LOOP: AJMP LOOP
DIN0:
INCC: INC TFL
MOV A, TFL
CJNE A, #20H, RE ;加的0:这里不应用20,实际改变了32次,即32*0.05秒=1.6秒的周期,如是1秒,就应该用20D或14H
MOV TFL, #00H
CPL P1.0
DEC R1 ;加的2
MOV A, R1 ;加的3
JZ STOP ;加的4
RE: MOV TL0, #0AFH
MOV TH0, #3CH ;设定时时间为0.05秒,定时20次则一秒
RETI
STOP: SJMP $ ;加的5
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -