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
【mcs51单片机计数器工作方式1 计数初值计算与定时编程举例】
⑶程序设计
主程序:


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


    推荐阅读