单片机 利用蜂鸣器演奏音乐[互联资料]_第1页
单片机 利用蜂鸣器演奏音乐[互联资料]_第2页
单片机 利用蜂鸣器演奏音乐[互联资料]_第3页
单片机 利用蜂鸣器演奏音乐[互联资料]_第4页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、实验三-利用蜂鸣器演奏音乐一、实验目的1.了解BlueSkyC51单片机实验板中蜂鸣器的硬件电路2.学会利用蜂鸣器实现音乐的演奏3.掌握蜂鸣器实现音乐演奏的编程二、实验硬件设计及电路1. BlueSkyC51单片机实验板2.单片机最小系统3.蜂鸣器电路连接三极管主要是做驱动用的。因为单片机的IO口驱动能力不够让蜂鸣器发出声音,所以我们通过三极管放大驱动电流,从而可以让蜂鸣器发出声音,你要是输出高电平,三极管导通,集电极电流通过蜂鸣器让蜂鸣器发出声音,当输出低电平时,三极管截止,没有电流流过蜂鸣器,所以就不会发出声音。三、实验原理1.音调及节拍用一个口,输出方波,这个方波输入进蜂鸣器就会产生声音

2、,通过控制方波的频率、时间,就能产生简单的音乐。一般说来,单片机演奏音乐基本都是单音频率,因此单片机奏乐只需控制音调和节拍。(1)音调的确定音调是由频率来确定的。通过单片机的定时器定时中断,将单片机上对应蜂鸣器的I/O口来回取反,从而让蜂鸣器发出不同频率的声音。只需将定时器给以不同的定时值就可实现。通过延时,即可发出所需要的频率。(2)节拍的确定一拍的时长大约为400500ms,每个音符的时长通过节拍来计算。详细见程序代码。2.软件设计相关(1)头文件#include#define uint unsigned int#define uchar unsigned char#define ulon

3、g unsigned longsbit beep=P14; /蜂鸣器与P1.4口连接(2)歌曲曲谱uchar code diaodata30= /音调代码0x10,0x0e,0x0c,0x10,0x0e,0x0c,0x10,0x0e,0x10,0x0c,0x10,0x15,0x13,0x10,0x13,0x15,0x15,0x13,0x15,0x13,0x10,0x0e,0x0c,0x0e,0x0e,0x10,0x0e,0x0c,0x0e,0x00;uchar code jiedata30= /音长代码0x04,0x04,0x08,0x06,0x02,0x08,0x04,0x04,0x04,0

4、x04,0x02,0x06,0x08,0x02,0x02,0x04,0x04,0x04,0x04,0x08,0x02,0x02,0x04,0x04,0x02,0x02,0x04,0x04,0x0c,0x00;(3)音阶表uchar code freq36*2= /音阶码表0xf7,0xd8, /440hz , 1 /00xf8,0x50, /466hz , 1# /10xf8,0xbc, /494hz , 2 /20xf9,0x26, /524hz , 2# /30xf9,0x85, /554hz , 3 /40xf9,0xe5, /588hz , 4 /50xfa,0x3d, /622hz

5、, 4# /60xfa,0x92, /660hz , 5 /70xfa,0xdd, /698hz , 5# /80xfb,0x29, /740hz , 6 /90xfb,0x70, /784hz , 6# /100xfb,0xb0, /830hz , 7 /110xfb,0xef, /880hz , 1 /120xfc,0x29, /932hz , 1# /130xfc,0x62, /988hz , 2 /140xfc,0x95, /1046hz, 2# /150xfc,0xc7, /1108hz, 3 /160xfc,0xf5, /1174hz, 4 /170xfd,0x20, /1244h

6、z, 4# /180xfd,0x4c, /1318hz, 5 /190xfd,0x72, /1396hz, 5# /200xfd,0x97, /1480hz, 6 /210xfd,0xbb, /1568hz, 6# /220xfd,0xdc, /1662hz, 7 /230xfd,0xfb, /1769hz, 1 /240xfe,0x18, /1864hz, 1# /250xfe,0x34, /1976hz, 2 /260xfe,0x4e, /2092hz, 2# /270xfe,0x67, /2218hz, 3 /280xfe,0x7d, /2350hz, 4 /290xfe,0x94, /

7、2488hz, 4# /300xfe,0xa8, /2639hz, 5 /310xfe,0xbc, /2794hz, 5# /320xfe,0xcf, /2960hz, 6 /330xfe,0xe0, /3136hz, 6# /340xfe,0xf1, /3322hz, 7 /35;(4) 音符发生程序(中断服务程序)void timer0() interrupt 1 /用于产生音符的T0中断服务程序 TH0=th0_f; TL0=tl0_f; beep=beep; /取反beep引脚,发声三、实验过程及问题1.Keil开发过程(1)新建“Project”,选择单片机为“AT89C52”(2)

8、新建c文件“music.c”,并添加到工程中(3)设置生成“HEX”文件,编译(4)将生成的“HEX”文件烧录到单片机,检验(5)不断修改完善2.编译实验相关问题(1)实际发音颤音重解决方法为修改蜂鸣器的驱动频率.(2)实际节奏过快或者过慢 调整延时四、C51程序代码(部分来源于网络)#include#define uint unsigned int#define uchar unsigned char#define ulong unsigned longsbit beep=P14; /蜂鸣器与P1.4口连接uchar th0_f; /中断装载T0高8位uchar tl0_f; /T0低8位u

9、char code freq36*2= /音阶码表0xf7,0xd8, /440hz , 1 /00xf8,0x50, /466hz , 1# /10xf8,0xbc, /494hz , 2 /20xf9,0x26, /524hz , 2# /30xf9,0x85, /554hz , 3 /40xf9,0xe5, /588hz , 4 /50xfa,0x3d, /622hz , 4# /60xfa,0x92, /660hz , 5 /70xfa,0xdd, /698hz , 5# /80xfb,0x29, /740hz , 6 /90xfb,0x70, /784hz , 6# /100xfb,

10、0xb0, /830hz , 7 /110xfb,0xef, /880hz , 1 /120xfc,0x29, /932hz , 1# /130xfc,0x62, /988hz , 2 /140xfc,0x95, /1046hz, 2# /150xfc,0xc7, /1108hz, 3 /160xfc,0xf5, /1174hz, 4 /170xfd,0x20, /1244hz, 4# /180xfd,0x4c, /1318hz, 5 /190xfd,0x72, /1396hz, 5# /200xfd,0x97, /1480hz, 6 /210xfd,0xbb, /1568hz, 6# /22

11、0xfd,0xdc, /1662hz, 7 /230xfd,0xfb, /1769hz, 1 /240xfe,0x18, /1864hz, 1# /250xfe,0x34, /1976hz, 2 /260xfe,0x4e, /2092hz, 2# /270xfe,0x67, /2218hz, 3 /280xfe,0x7d, /2350hz, 4 /290xfe,0x94, /2488hz, 4# /300xfe,0xa8, /2639hz, 5 /310xfe,0xbc, /2794hz, 5# /320xfe,0xcf, /2960hz, 6 /330xfe,0xe0, /3136hz, 6

12、# /340xfe,0xf1, /3322hz, 7 /35;uchar code diaodata30= /音调代码0x10,0x0e,0x0c,0x10,0x0e,0x0c,0x10,0x0e,0x10,0x0c,0x10,0x15,0x13,0x10,0x13,0x15,0x15,0x13,0x15,0x13,0x10,0x0e,0x0c,0x0e,0x0e,0x10,0x0e,0x0c,0x0e,0x00;uchar code jiedata30= /音长代码0x04,0x04,0x08,0x06,0x02,0x08,0x04,0x04,0x04,0x04,0x02,0x06,0x08,0x02,0x02,0x04,0x04,0x04,0x04,0x08,0x02,0x02,0x04,0x04,0x02,0x02,0x04,0x04,0x0c,0x00;void timer0() interrupt 1 /用于产生音符的T0中断服务程序 TH0=th0_f; TL0=tl0_f; beep=beep; /取反beep引脚,发声void main(void) uchar i,j,k=0; uint n; TMOD=0X01; /T0方式1 TR0=0; /关闭T0(不发声) ET0=1; /允许T

温馨提示

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

评论

0/150

提交评论