采用定时器/计数器T0对外部脉冲进行计数,每计数100个脉冲后,T0转为定时工作方式.定时1ms后,又转为计数ORG 0000HAJMP MAINORG 000BHAJMP IT0PMAIN:mov TMOD,#06H; 程序的初始化(TMOD IE TCON特殊功能寄存器
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/09 08:10:50
![采用定时器/计数器T0对外部脉冲进行计数,每计数100个脉冲后,T0转为定时工作方式.定时1ms后,又转为计数ORG 0000HAJMP MAINORG 000BHAJMP IT0PMAIN:mov TMOD,#06H; 程序的初始化(TMOD IE TCON特殊功能寄存器](/uploads/image/z/2726220-12-0.jpg?t=%E9%87%87%E7%94%A8%E5%AE%9A%E6%97%B6%E5%99%A8%2F%E8%AE%A1%E6%95%B0%E5%99%A8T0%E5%AF%B9%E5%A4%96%E9%83%A8%E8%84%89%E5%86%B2%E8%BF%9B%E8%A1%8C%E8%AE%A1%E6%95%B0%2C%E6%AF%8F%E8%AE%A1%E6%95%B0100%E4%B8%AA%E8%84%89%E5%86%B2%E5%90%8E%2CT0%E8%BD%AC%E4%B8%BA%E5%AE%9A%E6%97%B6%E5%B7%A5%E4%BD%9C%E6%96%B9%E5%BC%8F.%E5%AE%9A%E6%97%B61ms%E5%90%8E%2C%E5%8F%88%E8%BD%AC%E4%B8%BA%E8%AE%A1%E6%95%B0ORG+0000HAJMP+MAINORG+000BHAJMP+IT0PMAIN%EF%BC%9Amov+TMOD%2C%2306H%EF%BC%9B+%E7%A8%8B%E5%BA%8F%E7%9A%84%E5%88%9D%E5%A7%8B%E5%8C%96%EF%BC%88TMOD+IE+TCON%E7%89%B9%E6%AE%8A%E5%8A%9F%E8%83%BD%E5%AF%84%E5%AD%98%E5%99%A8)
采用定时器/计数器T0对外部脉冲进行计数,每计数100个脉冲后,T0转为定时工作方式.定时1ms后,又转为计数ORG 0000HAJMP MAINORG 000BHAJMP IT0PMAIN:mov TMOD,#06H; 程序的初始化(TMOD IE TCON特殊功能寄存器
采用定时器/计数器T0对外部脉冲进行计数,每计数100个脉冲后,T0转为定时工作方式.定时1ms后,又转为计数
ORG 0000H
AJMP MAIN
ORG 000BH
AJMP IT0P
MAIN:mov TMOD,#06H; 程序的初始化(TMOD IE TCON特殊功能寄存器的设置初始化)
mov TL0,#156H
mov TH0,#156H
SETB EA
SETB ET0
SETB TR0
CLR F0 ;设置下一轮为定时方式的标志位
WAIT:AJMP WAIT
IT0P:CLR EA ;CPU关闭中断
JB F0,EXTN1 ;F0=1转计数工作模式
mov TMOD,#00H
mov TL0,#ocH
mov TH0#0feH
SETB EA
RETI
EXTN1:mov TMOD,#06H
mov TL0,#156H
mov TH0,#156H
SETB EA
RETI
这是书上给出的答案,但这样并没有实现自动转换,要手动置F0的值才能转吧,怎么自动呢?
采用定时器/计数器T0对外部脉冲进行计数,每计数100个脉冲后,T0转为定时工作方式.定时1ms后,又转为计数ORG 0000HAJMP MAINORG 000BHAJMP IT0PMAIN:mov TMOD,#06H; 程序的初始化(TMOD IE TCON特殊功能寄存器
ORG 0000H
AJMP MAIN
ORG 000BH
AJMP IT0P
MAIN:mov TMOD,#06H; 程序的初始化(TMOD IE TCON特殊功能寄存器的设置初始化)
mov TL0,#156H
mov TH0,#156H
SETB EA
SETB ET0
SETB TR0
MOV R1,#00H ;清空计数器
CLR F0 ;设置下一轮为定时方式的标志位
WAIT:AJMP WAIT
IT0P:CLR EA ;CPU关闭中断
JB F0,EXTN1 ;F0=1转计数工作模式
SETB F0
mov TMOD,#00H
mov TL0,#ocH
mov TH0#0feH
SETB EA
RETI
EXTN1:
INC R1 ;计数器加1
MOV A,R1
CJNE A,#64H,EXTN2 ;计数是否到100
CLR F0 ;开启计时标志
MOV R1,#00H
EXTN2:
mov TMOD,#06H
mov TL0,#156H
mov TH0,#156H
SETB EA
RETI