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;中断返回