找回密码
 注册会员
img_loading
智能检测中
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

单片机如何输出指定频率使蜂鸣器发声

[复制链接]
admin 发表于 2012-8-24 11:07:11 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
对于单片机初学者,很多人都在定时/计数和中断这里感到很迷惑,书中讲解的又很繁琐,关于定时器的使用我们就如何使用单片机输出不同频率的声音给蜂鸣器让其发出来学习一下。
单片机如何输出频率,为了让单片机发出不同频率的声音,我们采用定时中断来计算延时时间,我们只需将定时器预置不同的定时值就可实现不同时间的定时。那么怎样确定一个频率所对应的定时器的定时值呢?
我们以一个频率为450Hz的声音为例,称为A:A的频率f=450Hz,其对应的周期为:T=1/f=1/440=2222us
单片机控制蜂鸣器的波形图,通过对端口循环的置位、清零来达到输出固定频率波形,.相对于A音频率450Hz,T=2222us,那么时间t=T/2=2222/2=1111us。所以,我们只要在程序中将端口置为高电平,延时1111us,再置为低电平,延时1111us,如此循环,就可以得到450Hz频率的声音。这个延时,可以用定时器中断来做,假设单片机晶振频率为12MHz,以定时器工作方式1来做定时中断,定时器工作方式1可以定时时长的最大值为65.536ms,可以得到定时器计数器初值为:
TH0 = (65536 – 1111 ) /256 =0xFB
TL 0= (65536 – 1111 )%256 =0xA9
这样,蜂鸣器就能发出频率为450Hz的声音了。
您需要登录后才可以回帖 登录 | 注册会员

*滑块验证:
加载失败,请点击重试! (img)
本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2025-6-18 14:23 , Processed in 0.106321 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表