单片机高手进(做电子音响)

来源:百度知道 编辑:UC知道 时间:2024/06/10 14:45:28
一,实验内容:
通过实验箱的键盘和音频驱动部分自制一个电子琴,能够通过键盘操作演奏乐曲.
二,实验预备知识:
(1)要产生音频脉冲,只要算出某一音频的周期(1除以频率),然后将此周期除以2,即为半周期的时间,利用计时器计时此半周期时间,记时到后即反相输出,重复此过程即得到此频率的脉冲.
(2)计/定时器工作在计数方式上,改变计数值TH0及TL0,以产生不同的频率的方法.
(3)每个音符使用一个字节,字节的高4位代表音频的高低,低4位代表音频的节拍.
这个是课程设计,用实验箱和电脑操作完成.MCS-51,片子是8032.
我的邮箱 xijin135@163.com

楼上说的da做我还真没有看懂,da不是出电平的吗?这里要做频率,用da不用定时器恐怕不可能做到。还有,我敢说8032做这个绰绰有余。

另外楼主说的已经很清楚了,这个设计毫无难度可言,只要你会用单片机就能做,如果用汇编写我可以给个流程图:
a,b是我起的名字,用来表示定时器的待装值,你可以选r0,r1
主程序(在这里死循环)
{1.检测按键并去抖,没有检测到按键就clr tr0关定时器,这句必须有,然后返回主程序继续循环吧.不知道你的按键是怎么做的所以没法写
2.分辨按键,进入对应的子程序
3.子程序1(所有子程序除了定时器初值不同外全部一样)
{将对应定时器初值送入a,b,开定时器,返回主程序.一共就这3句}
}
定时期中断程序:
{将ab内容装入tl0,th0,一共就2句}
当然任何汇编的开头设置中断向量,绝对跳转,设置中断和堆栈初值的语句我就省了.
程序解释:(似乎没的解释)
检测到按键就把事先计算好的初值装入ab并打开定时器,此时定时器过极短时间打开(这里没有设初值是因为按键第1次后再检测到会影响到定时期自己装初值,从而影响频率.所以这里不设初值,任由初值为任何值都会在人类无法感到的短时间内溢出并开始装入正确的初值),开始按正常频率装入初值、并发出对应频率的声音,然后继续检测按键,检测不到按键就关定时期,检测到别的按键重新装入ab值,发出新的声音.

只懂PC的单片,电子音响的我真不知道。

不好意思,帮不上你的忙。

放松心情,好运。

你这是要自己制作还是?用C51还是?
这个主要是键盘扫描和定时器的定时值,一般都采取查表的方式查询定时值,然后通过一个三极管进行音频放大和驱动扬声器,具体是要做什么你也不说~要程序?我现在比较忙我给你个单片机产生音乐的程序,你只要是在加个键盘扫描程序和算出每个键值对应的数据就可以了,最好给我留个邮箱,我隔天给你发过去

没做过,我相信你能成功的!买份电子报合订本,里面有单片机内容,相信有用

我的博客上有比较好的相关程序,几个程序均在硬件上调试通过,你可以去参考一下.

是不