单片机计时器程序里TMOD、THO、TLO都是什么意思?需要编一个计时器来代替delay,让单片机保持状态3秒
发布网友
发布时间:2022-05-07 04:02
我来回答
共2个回答
热心网友
时间:2023-10-14 19:52
TMOD是一个定时器方式寄存器 分别是gate C/T M1 M0 GATE C/T M1 M0高四位是定时器T1控制字,低四位是定时器T0控制字。GATE为门控位,为0时,则TR0/TR1=1启动定时器。为1时,则外部中断INT0/INT1=1时,TR0/TR1=1才能启动定时器。C/T为定时/计数模式选择位,为0时定时模式,为1时技术模式。M1 M0为工作方式设置位,共有四种工作方式,大部分情况下都是用方式1。
TH0,TL0分别是定时器T0的的高八位和八四位。
热心网友
时间:2023-10-14 19:52
TMOD:定时器方式寄存器
TH0:定时器0寄存器高位
TL0:定时器0寄存器低位
ORG 0000H
SJMP STA
ORG 000BH
LJMP T0ISR
ORG 0050H
STA:
MOV SP,#5FH
MOV TMOD,#11H
MOV TL0,#LOW(65536-50000)
MOV TH0,#HIGH(65536-50000) ;定时器50毫秒中断一次
MOV R2,#60 ;60*50=3000毫秒即3秒
SETB TR0
SETB ET0
CLR 00H
SETB EA
LOOP:
JNB 00H,LOOP
CLR 00H
SJMP LOOP
T0ISR:
PUSH ACC
CLR TR0
MOV TL0,#LOW(65536-50000)
MOV TH0,#HIGH(65536-50000)
SETB TR0
DEC R2
MOV A,R2
JNZ T0ISRE
SETB 00H ; 3秒到,置位
MOV R2,#60
T0ISRE:
POP ACC
RETI
END