失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > msc51单片机计数器c语言 mcs51单片机计数器工作方式1 计数初值计算与定时编程举例...

msc51单片机计数器c语言 mcs51单片机计数器工作方式1 计数初值计算与定时编程举例...

时间:2022-03-21 07:54:07

相关推荐

msc51单片机计数器c语言 mcs51单片机计数器工作方式1 计数初值计算与定时编程举例...

方式1是16位计数结构的工作方式,计数器由TH0全部8位和TL0全部8位构成。与工作方式0基本相同,区别仅在于工作方式1的计数器TL1和TH1组成16位计数器,从而比工作方式0有更宽的定时/计数范围。

当为计数工作方式时,计数值的范围是:

1~65536(216)

当为定时工作方式时,定时时间计算公式为:

(216-计数初值)×晶振周期×12

或(216-计数初值)×机器周期

例题1:当某单片机系统的外部晶振频率为6MHz,则最小定时时间为:

[216-(216-1)]×1/6×10-6×12=2×10-6=2(ms)

最大定时时间为:

(216-0)×1/6×10-6×12=131072×10-6(s)=131072(ms)≈131(ms)

例题2:某单片机系统外接晶振频率为6MHz,使用定时器1以工作方式1产生周期为500ms的等宽连续正方波脉冲,并在P1.0端输出,但以中断方式完成。

⑴计算计数初值

TH1=FFHTL1=83H

⑵TMOD寄存器初始化

TMOD=10H

⑶程序设计

主程序:

MOV TMOD,#10H;定时器1工作方式1

MOV TH1,#0FFH;设置计数初值

MOV TL1,#0A1H

SETB EA;开中断

SETB ET1;定时器1允许中断

LOOP:SETB TR1;定时开始

HERE:SJMP$;等待中断

中断服务程序:

MOV TH1,#0FFH;重新设置计数初值

MOV TL1,#0A1H

CPL P1.0;输出取反

RETI;中断返回

如果觉得《msc51单片机计数器c语言 mcs51单片机计数器工作方式1 计数初值计算与定时编程举例...》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。