历史上的今天
今天是:2025年03月05日(星期三)
2018年03月05日 | 单片机发音电路及程序设计方案
2018-03-05 来源:eefocus
本节介绍使用AT89C2051制作的一种发音电路,各种声音通过编程实现,灵活方便。其原理图如图2 - 81所示。

该电路利用方波谐波成份丰富的特点,编程采用计时器延迟法发音,即每个音的半周期计时中断一次,而使输出Pl.0(或其他I/O口)反相,重复执行产生某种频率的信号。例如:中音DO的频率为523 Hz,其周期为1 912 μs,若初始Pl. 0=1,经956 μS后,应使Pl.0=0,再经956 μs恢复Pl.0-1,这样就可发出中音DO。
若选择振荡频率为12 Hz,则机器周期为1μs,计数器每1 μs计数一次。以中音DO(f=523 Hz)为例,只要计数956次即1 912 μs的半周期,产生计时中断将输出反相,所以计数器的计数初始值须设置为64 580。其计算方法如下:
N=65536一半个周期数
由于每1 μS计数一次,若半周期(T/2)为956 μs,则半周期数为956,而
N=65536-T/2=65536-(1912/2)=64580(T为该音阶的周期)
根据上述公式及各音阶频率(见表2 - 13),可以计算出各音阶的计数初始值(设f=12 MHz),将该值列表存于ROM中,根据实际需要取出存入计数器(THO、TLO),即可以发出报警声、电话铃声或乐曲等各种声音。
表2 -13 音阶、频率、计数初值对照表

该电路无需译码电路,根据输入IN1、IN2选择发出声音的种类,根据跳线Sl、S2选择发出声音的长度即可(图中仅画出4种示意)。
IN1、IN2=00时,发出报警(滴滴滴)声;
IN1、IN2-01时,发出停机(滴滴一滴滴)声;
IN1、IN2 =10时,发出开机(呜)声。
该电路已应用于抽油机工作状态监视系统,成本低,调试简便,收到了很好的效果。
发声源程序:
ORG 00H



上一篇:数字电位器与单片机接口及程序设计
史海拾趣
|
工信部副部长奚国华6月底在北京举行“2010中国物联网大会”上表示,工业和信息 化部副部长奚国华在致辞时表示,对于物联网,工信部将加强规划指导和政策引导,加强指导协调,尽快研究解决物联网的内涵,产业界定和产业统计的问题。同时 将超 ...… 查看全部问答> |
|
我用的是PIC单片机,MC45(GSM)模块。 硬件电路MC45的50脚直接插到单片机的50脚插槽上,我用到的MC45脚包括TXD0,RXD0,IGT。 我并不知道MC45的这几个脚如何与单片机的RXD0,TXD0,IGT相连。 我的问题是可不可以软件上实现单片机的RXD0和MC45的TXD ...… 查看全部问答> |
|
Lm3S811 PLL 设置倍频到 50Mhz 之后,为什么实际只有37.5Mhz 呢? Lm3S811 PLL 设置倍频到 50Mhz 之后,为什么实际只有37.5Mhz 呢? SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN |SYSCTL_XTAL_6MHZ);//UART 初始化SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);SysCtlPeripheral ...… 查看全部问答> |
|
之前有了解过pt1000的测量电路,就是很不准确,求各位高人指点! file:///C:/Documents%20and%20Settings/Administrator/Application%20Data/Tencent/Users/372182098/QQ/WinTemp/GE/8C6B5CD2-B508-47B8-8B53-AEEBA13D57F7.jpg… 查看全部问答> |
|
BeagleBone Black设计:Qt程序编写和桌面图标添加! 24bit的7寸LCD屏和触摸屏调试通过之后,Qt程序的编写就要提上日程! 因为我用的是官方的SDK,所以其自带了Qt4.8的库!我需要做的只是按照官方说明编写自己的Qt程序,然后编译之后生成可执行文件,放入开发板当中去执行即可!! 具体搭建Qt编程环 ...… 查看全部问答> |
|
2015电子大赛题目已经出炉,分享一些资料给大家参考。祝各位取得好成绩!附件中所有电路均可以免费下载,具体可联系管理员:459888529,索要优惠码。 … 查看全部问答> |
|
【MicroPython】Micropython PM检测添加SD卡存储 继续添加功能,PM值检测出来了,同时RTC功能也有了,接下来添加一个SD卡模块,希望能够实时将检测到的数据保存下来,作为历史数据。 在Micropython的官方文档中有关于SD卡的例程和库文件,拿来分析一下,就可以根据例程修改为自己的代码使用。 本 ...… 查看全部问答> |




