首页 理论教育 单片机应用技术:定时计数器的编程和应用

单片机应用技术:定时计数器的编程和应用

时间:2023-10-17 理论教育 版权反馈
【摘要】:在图6.8所示电路中,编写程序,让蜂鸣器发出“嘀、嘀、……”图6.9“嘀、嘀、……”报警声示意时序图对于1kHz的方波信号,周期为1ms,高电平和低电平各占用0.5ms,利用定时器T0来完成0.5ms的定时。而0.2秒是0.5ms的400倍,因此设置计数器count,其记录0.5ms的个数,当其值达到400时说明0.2s时间到。可利用定时器T0定时250μs,700Hz的频率要经过3次250us的定时,而500Hz的频率要经过4次250us的定时。

单片机应用技术:定时计数器的编程和应用

蜂鸣器是一种一体化结构的电子器件,广泛应用于计算机、打印机、复印机报警器、电话机等电子产品中作发声器件。

蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的。单片机I/O引脚带负载能力有限,因此需要使用驱动电路。单片机与蜂鸣器接口电路如图6.8所示,使用一个PNP三极管来驱动蜂鸣器。三极管的基级B经过限流电阻后由单片机的P3.7引脚控制,当P3.7输出高电平时,三极管截止,没有电流流过蜂鸣器;当P3.7输出低电平时,三极管导通,有电流流过蜂鸣器。当P3.7引脚输出某一频率的方波时,蜂鸣器就会发出声音,如果改变方波的频率,蜂鸣器发出的声调就会有变化,人耳能听到的声音频率范围是20~20000Hz。

图6.8 单片机驱动蜂鸣器电路图

(1)“嘀、嘀、……”报警声。

在图6.8所示电路中,编写程序,让蜂鸣器发出“嘀、嘀、……”报警声。

分析:“嘀、嘀、…”是常见的一种报警声。这种报警声要求嘀0.2秒钟,然后断0.2秒钟,如此循环下去。假设嘀声的频率为1kHz,则报警声时序图如图6.9所示。

图6.9 “嘀、嘀、……”报警声示意时序图

对于1kHz的方波信号,周期为1ms,高电平和低电平各占用0.5ms,利用定时器T0来完成0.5ms的定时。上面的信号分成两部分,一部分为1kHz方波,占用时间为0.2秒;另一部分为低电平,也是占用0.2秒。而0.2秒是0.5ms的400倍,因此设置计数器count,其记录0.5ms的个数,当其值达到400时说明0.2s时间到。同时设置标志flag,每0.2s标志flag翻转一次,当flag=0时,P3.7引脚输出1KHZ的方波信号;当flag=1时,P3.7引脚输出低电平信号。中断服务程序流程图如图6.10所示。

图6.10 中断服务程序流程图

通过以上分析,编写程序如下:

(www.xing528.com)

任务还可以利用两个定时器完成:使用T0定时500μs产生1kHz的方波;使用T1产生0.2s定时,每隔0.2s,将T0的运行控制位取反即可,程序如下:

(2)“叮咚”门铃。

电路如图6.8所示,每按一次按键KEY1,蜂鸣器便发出一次“叮咚”声。

分析:“叮”和“咚”的频率分别为700Hz和500Hz,对应周期约为1500μs和2000μs。可利用定时器T0定时250μs,700Hz的频率要经过3次250us的定时,而500Hz的频率要经过4次250us的定时。“叮”和“咚”声音各占用0.5秒,可利用变量count累计2000个250us后实现0.5秒定时。由于每次按键按下后,只发出一次“叮咚”声,所以第一个0.5秒(flagID=0)发“叮”声;第二个0.5秒(flagID=1)发“咚”声;以后(flagID=2)停止蜂鸣器发声,此时让定时器停止运行即可。中断服务程序流程图如图6.11所示。

图6.11 T0中断服务程序框图

“叮咚”门铃程序如下:

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

我要反馈