首页 理论教育 单片机定时/计数器应用实用教程

单片机定时/计数器应用实用教程

时间:2023-10-22 理论教育 版权反馈
【摘要】:1)合理选择定时/计数器工作方式。t1初值=28-200μs/1μs=256-200=56=38hth1=38h;tl1=38h2)设置tmod:3)编制程序如下:参照以上例题,按下列要求分别修改程序:1)脉冲方波从p3.0输出;2)fosc=6mhz;3)脉冲方波脉宽为100μs;4)用定时/计数器t0; 已知晶体振荡频率为12mhz,参见图4-7,要求利用定时器t0,使图中发光二极管秒闪烁。

单片机定时/计数器应用实用教程

1)合理选择定时/计数器工作方式

2)计算定时/计数器的定时初值(按上述公式计算)。

3)编制应用程序。①定时/计数器的初始化,包括定义tmod、写入定时初值、设置中断系统、启动定时/计数器运行等;②正确编制定时/计数器中断服务程序,注意是否需要重装定时初值,若需要连续反复使用原定时时间,且未工作在工作方式2,则应在中断服务程序中重装定时初值。

例4-6】 试用t1(工作方式2)编制程序,在p10引脚输出周期为400μs的脉冲方波,已知fosc=12mhz。

:1)计算定时初值。

t1初值=28-200μs/1μs=256-200=56=38h

th1=38h;tl1=38h

2)设置tmod:

978-7-111-46285-9-Chapter04-42.jpg

3)编制程序如下:

978-7-111-46285-9-Chapter04-43.jpg

978-7-111-46285-9-Chapter04-44.jpg

课堂练习题

参照以上例题(工作方式2),按下列要求分别修改程序:

1)脉冲方波从p3.0输出;

2)fosc=6mhz;

3)脉冲方波脉宽为100μs;

4)用定时/计数器t0;

例4-7】 已知晶体振荡频率为12mhz,参见图4-7,要求利用定时器t0,使图中发光二极管(led)秒闪烁。

978-7-111-46285-9-Chapter04-45.jpg(www.xing528.com)

图4-7 秒闪烁

:发光二极管秒闪烁,即每秒一亮一暗,亮500ms,暗500ms。晶体振荡频率为12mhz,则每个机器周期为1μs,t0在工作方式1下的最大定时只能为65ms余。取t0定时50ms,计数10次,即可实现500ms定时。

1)计算定时初值:

t0初值=216-50000μs/1μs

=65536-50000=15536=3cb0h

th0=3ch;tl0=b0h。

2)设置tmod:

978-7-111-46285-9-Chapter04-46.jpg

3)编制程序如下:

978-7-111-46285-9-Chapter04-47.jpg

978-7-111-46285-9-Chapter04-48.jpg

例4-8】 用单片机定时/计数器设计一个秒表,由p1口连接的led采用bcd码显示,发光二极管亮表示为0,暗表示为1。计满60s后从头开始,依次循环。

解:定时器t0工作于方式1,产生1s的定时,定时器t1工作在方式2,当1s时间到时,由软件复位t1(p35)脚,产生负跳变,再由定时器t1进行计数,计满60次(1min)溢出,再重新开始计数。

按上述设计思路可知:工作方式寄存器tmod的控制字应为61h;定时器1的初值应为

256-60=196=c4h

源程序可设计如下:

978-7-111-46285-9-Chapter04-49.jpg

978-7-111-46285-9-Chapter04-50.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈