单片机音阶设计_第1页
单片机音阶设计_第2页
单片机音阶设计_第3页
单片机音阶设计_第4页
单片机音阶设计_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、南湖学院课程设计报告课程名称:单片机原理及应用课程设计系 部:机建系专业班级:电气n112学生姓名:冯倬程完成时间:2013710扌艮告成绩:评阅意见:考勤20分设计完成度30分设计难度20分报告说明书30分总分100分评阅教师日期音阶演奏一、任务设计:1、设计任务:以51单片机为核心,输出-段有14个音的音阶,音阶演奏由定吋器控制完成。2、设计要求:在输出声咅时如果连接了虚拟示波器,可观察到脉宽逐步减小,频率不断升高, 如果cpu会因连接虚拟示波器而过载,导致声音播放失帧,这吋可断开示波器 再播放。二、方案论证:1、蜂鸣器:发音是蜂鸣器振动引起的,而振动则是对蜂鸣器电压断通引发的,控制电 压

2、的频率就是蜂鸣器振动的频率,取非则是对电压控制的断通控制,先是1, 非后是0,再非又继续循环。有两种蜂鸣器,一种无源蜂鸣器吗,一种是有源,有源是指给它通上直流电,它就按本身固有的频率响(本身有震荡电路比如3k),而无源则相反,相当于 喇叭,给喇叭通上直流电,是不会响的,需要交变的电压,这就是以上问题的 蜂鸣器,这种蜂鸣器的振动频率是外部电路控制的,咅调也即是可控的。改变 高低电平的频率就是蜂鸣器的频率,可以通过定吋器来改变。1lo 1/、sounder<text>2、显示部分:采用lcd显示。lcd液晶显示具有丰富多样性、灵活性、电路简单、易于3、单片机 at89c51:at89c

3、51是一种带4k字节闪烁可编程可擦除只读存储器(fperomfalsh programmeible and erasable read only memory)的低电压,高性能 cmos8 位 微处理器,俗称单片机。at89c2051是一种带2k字节闪烁可编程可擦除只读 存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采 用atmel高密度非易失存储器制造技术制造,与工业标准的mcs-51指令集和 输出管脚相兼容。由于将多功能8位cpu和闪烁存储器组合在单个芯片中, atmel的at89c51是一种高效微控制器,at89c2051是它的一种精简版本。at89c 单片机为很多

4、嵌入式控制系统提供了一种灵活性高且价廉的方案。>xtal1p0.0/ad0xtal2p0.1/ad1p0.2/ad2p0.3/ad3rstp0.4/ad4p0.5/ad5p0.6/ad6p0.7/ad7psenp2.0/a8p2.1/a9p2.2/a10p2.3/a11alep2.4/a12eap2.5/a13p2.6/a14p2.7/a15p1.0p1.1p1.2p1.3p1.4p1.5p1.6p1.7p3.curxdp3.1jtxdp3.24nttp3.3丽厂p3.4/t0p3.5/t1p3.6arp3.7)rdri"" """ii*

5、w 4“9上; i, i- - jr |iijriv?|i1iti 卜 i 4i*aiiiiiiii a i » t i i i t ai1 i i 89c51仿真图三、总体方案:1. 单片机唱歌的基本原理:声音是空气的振荡,不同的振荡频率我们就可以听到不同声调的声音。音的频谱范围约 在儿十到儿千赫兹。利用程序来控制单处机某个口线出一定频率的方波到蜂鸣器,蜂鸣器就可以发出一定音 调的声音,若再利用不同的延时程序改变输出频率,就可以改变音调,进而就可让单片机 发出 t、“2”,“3”,"4”,“5”,“6”,“7” 的咅乐。2. 软件设计:一、音调:输岀不同频率的方波,以实现

6、1、2、3、4等的不同音调;比如,发出200iiz的咅频,其周期为1/200秒,即5ms。这样,当p3. 2的高电平或低电平的持续吋间为2. 5ms吋,就能发岀200hz的音调。我们可以写一个延时子程序,用r3来提供参数,r3=l时,延时为20us,那么r3取2500/20=125 (7di1)时,就可以发出200hz的音调,提供不同的r3常数,可 以得到不同的音调变化。附表给出了不同音阶对应的频率。类型1234567音符c5d5e5f5g5a5b5频率/hz523587659698784880987二、节拍:控制一个音符输出的时间,比如1拍、1/4拍。仅上所叙还不够,要准确奏出一首曲子,必须

7、准确地控制乐曲节奏,即一 音符的持续时间。例如,一首曲子的节奏为每分种94拍,那么一拍就为 60/94=0. 64 秒。咅乐的节拍我们可用定吋器来控制,简单的说,一个一拍的咅符唱0. 64秒, 我们就设置一个定时器定时0. 64秒,时间一到就换下一个音符。但是,由于单片机的t0,在12mhz晶振下最大定时时间只能为65毫秒,因此不可能直接用改变t0的时间初值来实现不同节拍。如何定时一个更大的 时间,上节课我们已经讲了一个方法。我们可以用t0来产生10毫秒的时间基 准,然后设置一个中断计数器,通过判别中断计数器的值来控制节拍吋间的 长短。表2中也给出了各种节拍所对应的时间常数。例如对1/4拍音符

8、,定时 时间为0. 16秒,相应的时间常数(中段计数器)为16(即10h);对3拍音符, 定时时间为192秒,相应时间长数为192 (即coh)。iii 二(8192 - count)/32l0二(8192-count)%32方波宽度:t=l/f*1000000 (us)定时器计数值:count=t/2程序中的数组hi_list和lo.list所保存的就是为产生频率为523ii乙587iiz分别需要的定时器的高字节和低字节。三、说明:木例的代码核心在于t0_int定时器中断函数,从代码中可以看到,th0与tl0 是由音阶i决定的,需要播岀不同频率的声音时,通过改变i值即可改变th0 与tl0的

9、取值,这也同时影响了该函数的时间间隔,触发时间间隔越短, spk二! spk输出的频率越高。主程序中的for循环控制了 14个音符的播放,tr0取1或0控制了声音的输 出与暂停,delay (500)导致的主程序时延间,定时器会以一定的时间间隔持续 触发,它使某个频率的音符输岀能持续一定的时间,后一个delay (50)在一 个音符输出结束后,形成一个较短的暂定间隔。四、仿真实图:j11913xtal1xtal2c2ctext<te<t>rstpqiyado f0.1ad1 pdad2 poadl po.ad p0-vad5 p0j&ad6 pd.7/ad7attf=

10、1-v:3l7p8em ale10f2sp1d p1.1p12p13p、gp1s p“p1.?pziyspz.v>e pzaio pzah pz.4/a12p2s7ui3 pzjgtau p2.?ra15p3iyrxdp3.im<d p3zmtt p33irttp3.4fto p3st1pz36jk p3.7/kf"ifat29c51 ctex"ls11、l30 ibi0eerc1等待时波形:digital oscilloscope播放吋波形:loi 20312沁五、源程序:/说明:木实验使用定时器演奏一段音阶,播放由k1控制。/#include<rcg5

11、1.h>#include<intrins. h>#define uchar unsigned char#define uint unsigned intuchar i=0;/i:音符索引sbit spk二p3八4;sbit kl=pl 0;/14个音符在方式2下的定时器值(th0,yl0)codeucharhi list = 0, 226, 229, 232, 233, 236, 238, 240, 241, 244, 245, 246, 247, 248; uchar code l0_list = 0, 4, 13, 10, 20, 3, 8, 6, 2, 23, 5, 26, 1, 4, 3;/定时器0中断/viod to int() interupt 1tlo=ht_ltsti;tho=hi_listi;spk=!spk;i/延吋/void delay(uint ms)uchar t;wh i1e (me-) for(t=0;t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论