采用定时器 / 计数器 T0 对外部脉冲进行计数,每计数 100 个脉冲后, T0 转为定时工作方式。定时 1ms 后,又转为计数方式,如此循环不止。假定 MCS-51 单片机的晶体振荡器的频率为 6MHz ,请使用方式 1 实现,要求编写出程序。 解答:定时器 / 计数器 T0 在
采用定时器/计数器T0对外部脉冲进行计数,每计数100个脉冲后,T0转为定时工作方式。定时1ms后,又转为计数方式,如此循环不止。假定MCS-51单片机的晶体振荡器的频率为6MHz,请使用方式1实现,要求编写出程序。
解答:定时器/计数器T0在计数和定时工作完成后,均采用中断方式工作。除了第一次计数工作方式设置在主程序完成外,后面的定时或计数工作方式分别在中断程序完成,用一标志位识别下一轮定时器/计数器T0的工作方式。编写程序如下:
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP IT0P
MAIN: MOV TMOD,#06H ;定时器/计数器T0为计数方式2
MOV TL0,#156 ;计数100个脉冲的初值赋值
MOV TH0,#156
SETB GATE ;打开计数门
太原旅游必去十大景点推荐 SETB TR0 ;启动T0,开始计数
SETB ET0 ;允许T0中断
情人节语录 SETB EA ;CPU开中断
CLR F0 ;设置下一轮为定时方式的标志位
漂流注意事项WAIT: AJMP WAIT 新农村合作医疗
IT0P: CLR EA ;关中断
JB F0,COUNT ;F0=1,转计数方式设置
MOV TMOD,#00H ;定时器/计数器T0为定时方式0
三伏天从哪天开始 MOV TH0,#0FEH ;定时1ms初值赋值
MOV TL0,#0CH
SETB EA
RETI
COUNT: MOV TMOD,#06H
MOV TL0,#156
SETB EA
RETI
三月三手抄报图片
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论