基于C51单片机电子琴的设计与实现_第1页
基于C51单片机电子琴的设计与实现_第2页
基于C51单片机电子琴的设计与实现_第3页
基于C51单片机电子琴的设计与实现_第4页
基于C51单片机电子琴的设计与实现_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、基于 C51 单单片机电子琴的设计与实现组员:周静马帅陈梦艳班级:通信 2 班1. 设计任务与要求 22 方案论证 32.1 单片机 32.2 发声器 43. 理论分析与计算: 54. 硬件电路与程序设计 64.1 电路图: 64.2 程序框图 65. 软件程序 76 总结与展望 13附录 1: 14附录 2: 15摘要:打造一个多功能电子琴,核心是一块单片机。单片机读取键 值,为内置定时器赋初值, 定时器每溢出一次,驱动蜂鸣器的引脚电 平就取反一次,产生相应频率的方波,即音调;设好键值与数码管段 码表的对应关系,键按下时,数码管显示对应音调。一首音乐储存在一个表中, 表中的数据是音调与节拍,

2、 单片机读 取音符的音调与节拍, 根据音调赋予定时器初值, 根据节拍决定定时 器工作的时间,也就是蜂鸣器响的时间,一个接一个地读取音符,即 可播放一首歌曲。关键字 :单片机 电子琴 蜂鸣器1.设计任务与要求电子琴设有 8 个按键,其中 7 个作为音符输入,另外 1 个作为 模式转换按键,实现用户作曲。 7 个按键分别代表 7 个音符,包括中 音段的全部音符。通过软硬件设计,模式转换按键触发外部中断,中 断使程序跳转,实现模式转换,启动电子琴。然后通过查询电子琴所 按下的按键,读取电子琴输入状态,跳转到对应的程序人口,实现自 编歌曲。 当需要取消电子琴编曲功能时, 再次按下模式转换按键引起 外部

3、中断即可退出电子琴功能而返回到原来音乐播放处。2 方案论证2.1 单片机方案一: AT89C51 是美国 ATMEL 公司生产的低电压,高性能 CMOS8 位单片机,片内含 4k bytes 的可反复擦写的只读程序存储 器(PEROM )和 128 bytes 的随机存取数据存储器( RAM ),器件 采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 MCS-51 指令系统,片内置通用 8 位中央处理器( CPU )和 Flash 存储单元,功能强大 AT89C51 单片机可为您提供许多高性价比的应 用场合,可灵活应用于各种控制领域。方案二:采用凌阳公司的 SPCE061A 单片

4、机作为控制器的方 案。该单片机 I/O 资源丰富,并集成了语音功能。它整合了多个常 用的功能模块,让我们在进行系统开发的时候不用外加过多的硬件就 可 方 便 的 完 成 一 个 系 统 的 设计 , 这 就 是 人 们 常说 的 SoC ( System on chip )技术。 耗电少,可以满足很多手提设备、掌上 设备低能耗的需求,低能耗也是电子技术一直在追求的 一个目标。 但其价格较高。方案三: TI 公司的 MSP430 系列是一个特别强调超低功耗的单 片机品种很适合应用于采用电池供电的长时间工作场合在这个系列 中有很多个型号它们是由一些基本功能模块按不同的应用目标组合 而成 MSP43

5、0 系列的 CPU 采用 16 位精简指令系统 ,集成有 16 位寄 存器和常数发生器 发挥了最高的代码效率它采用数字控制振荡器DCO 使得从低功耗模式到唤醒模式的转换时间小于 6 s.其中 MSP430x41x 系列微控制器设计有一个 16 位定时器 , 一个比较 器 ,96 段 LCD 驱动器和 48 个通用 I/O 引脚。根据这次实训的要求,方案三单片机原理复杂,掌握难度大, 方案二,价格较高,方案一已经能够满足我们的需要,且价格低廉, 经济实用,故采用方案一。2.2 发声器方案一:采用中频扬声器。一般来说,只要频率响应曲线平坦, 有效频响范围大于它在系统中担负的放声频带的宽度, 阻抗与

6、灵敏度 和低频单元一致即可。 有时中音的功率容量不够, 也可选择灵敏度较 高,而阻抗高于低音单元的中音, 从而减少中音单元的实际输入功率。 中音单元一般有锥盆和球顶两种。 只不过它的尺寸和承受功率都比高 音单元大而适合于播放中音频而已。方案二:采用蜂鸣器。它的优点如下:1. 便宜;2. 声音频率可控,可以做出“多来米发索拉西”的效果;3. 在一些特例中,可以和 LED 复用一个控制口。4. 程序控制方便。我们采用方案二,操作简单,价格合适。3. 理论分析与计算:系统初始化后, 进入按键扫描函数。当检测到按键被按下时,判 断是 1 到 7 按键还是 8 按键,若是 1 到 7 按键被按下则启动定

7、时器 T1 ,按照音阶所对应的周期初始值数组表中的初值,输出方波信号; 当判断是第八个按键被按下时, 直接调用挥着翅膀的女孩歌曲的音调 和节拍数组,启用中断循环输出。各个音阶的频率以及对应半周期如下图所示:通过 Time0 的溢出中断实现单频产生。 Time0 的溢出中断发生 后输出引脚的电压反向, 然后定时器重新装入初值。 所以编程时要确 定 Time0 的工作模式和计数初值。这里采用工作模式 1 ,定时器的 初值设定通过软件重复实现。 而且定时器的初值则依据各音频频率设 置。例如:中音 Do 音频是 523Hz ,其周期 T=l 523=1 912 s, 其半周期为 1912 2=956

8、s。本设计的计时时钟周期是 l s,因此 设置 Time0 的计数器每计 956 次则中断一次,从而实现 Do 的音频, 然后通过中断触发实现引脚电压的循环取反得到相应音频输出。4. 硬件电路与程序设计4.1 电路图:我们按键部分用 AT89C51 的 P0 口,而该芯片的 P0 需接上拉 电阻,一共需要八个, 因此我们用 9 引脚的排阻代替, 排阻多出来的 一个引脚接 VCC4.2 程序框图经过以上分析论证,最终我们得到如下框图5. 软件程序#include #include #define uchar unsigned char#define uint unsigned intsbit b

9、uz=P31;uchar keycode;uchar i,j;uinttoneh8= 0xfc43,0xfcab,0xfd09,0xfd33,0xfd81,0xfdc7,0xfe05,0xfe21;ucharkeymode8= 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;unsigned char code Music_hzcb=0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02,0x15,0x03,0x16,0x03,0x17,0x03, 0x17,0x03, 0x17,0x03,0x18,0x03,0x19,0x02,0

10、x16,0x03,0x17,0x03,0x18,0x02,0x18,0x03,0x17,0x03,0x15,0x02,0x18,0x03,0x17,0x03,0x18,0x02,0x10,0x03,0x15,0x03,0x16,0x02,0x15,0x03,0x16,0x03,0x17,0x02,0x17,0x03,0x18,0x03,0x19,0x02,0x1A,0x03,0x1B,0x03,0x1F,0x03,0x1F,0x03,0x17,0x03,0x18,0x03,0x19,0x02,0x16,0x03,0x17,0x03,0x18,0x03,0x17,0x03,0x18,0x03,0

11、x1F,0x03,0x1F,0x02,0x16,0x03,0x17,0x03,0x18,0x03,0x17,0x03,0x18,0x03,0x20,0x03,0x20,0x02,0x1F,0x03,0x1B,0x03,0x1F,0x66,0x20,0x03,0x21,0x03,0x20,0x03,0x1F,0x03,0x1B,0x03,0x1F,0x66,0x1F,0x03,0x1B,0x03, 0x19,0x03, 0x19,0x03,0x15,0x03,0x1A,0x66,0x1A,0x03,0x19,0x03,0x15,0x03,0x15,0x03,0x17,0x03,0x16,0x66

12、,0x17,0x04,0x18,0x04,0x18,0x03,0x19,0x03,0x1F,0x03,0x1B,0x03,0x1F,0x66,0x20,0x03,0x21,0x03,0x20,0x03,0x1F,0x03,0x1B,0x03,0x1F,0x66,0x1F,0x03,0x1B,0x03,0x19,0x03,0x19,0x03,0x15,0x03,0x1A,0x66,0x1A,0x03,0x19,0x03,0x19,0x03,0x1F,0x03,0x1B,0x03,0x1F,0x00,0x1A,0x03,0x1A,0x03,0x1A,0x03,0x1B,0x03,0x1B,0x03

13、,0x1A,0x03,0x19,0x03,0x19,0x02,0x17,0x03,0x15,0x17,0x15,0x03,0x16,0x03,0x17,0x03,0x18,0x03,0x17,0x04,0x18,0x0E,0x18,0x03,0x17,0x04,0x18,0x0E, 0x18,0x66,0x17,0x03,0x18,0x03,0x17,0x03,0x18,0x03,0x20,0x03,0x20,0x02,0x1F,0x03,0x1B,0x03,0x1F,0x66,0x20,0x03,0x21,0x03,0x20,0x03,0x1F,0x03,0x1B,0x03,0x1F,0x6

14、6,0x1F,0x04,0x1B,0x0E,0x1B,0x03,0x19,0x03,0x19,0x03,0x15,0x03,0x1A,0x66,0x1A,0x03,0x19,0x03,0x15,0x03,0x15,0x03,0x17,0x03,0x16,0x66,0x17,0x04,0x18,0x04,0x18,0x03,0x19,0x03,0x1F,0x03,0x1B,0x03,0x1F,0x66,0x20,0x03,0x21,0x03,0x20,0x03,0x1F,0x03,0x1B,0x03,0x1F,0x66,0x1F,0x03,0x1B,0x03,0x19,0x03,0x19,0x0

15、3,0x15,0x03,0x1A,0x66,0x1A,0x03,0x19,0x03,0x19,0x03,0x1F,0x03,0x1B,0x03,0x1F,0x00,0x18,0x02,0x18,0x03, 0x1A,0x03, 0x19,0x0D, 0x15,0x03, 0x15,0x02,0x18,0x66, 0x16,0x02, 0x17,0x02, 0x15,0x00, 0xff,0xff;unsigned char code Music_Code=0xf8,0x8b,0xf9,0x5b,0xfa,0x14,0xfa,0x66,/11111000, 10001011 0xfb,0x03,

16、0xfb,0x8f,0xfc,0x0b,0xfd,0xee;unsigned char const yinfu1314=0xf8,0x8b,0xf9,0x5b,0xfa,0x14,0xfa,0x66,0xfb,0x03, 0xfb,0x8f,0xfc,0x0b0xfc,0x43,0xfc,0xab,0xfd,0x08,0xfd,0x33,0xfd,0x81,0 xfd,0xc7,0xfe,0x050xfb,0x21,0xfe,0x55,0xfe,0x84,0xfe,0x99,0xfe,0xc0,0 xfe,0xe3,0xff,0x02; /11111000, 10001011 unsigned

17、 char const length=1,2,4,8,16,32,64; unsigned char sth,stl;void delay_ms(unsigned int k) / 12Munsigned int i0;unsigned char i,j;for(i0=0;i00;i-)for(j=97;j0;j-);void Sys_Init()TMOD=0x10;EA=1;ET1=1;P1=0xff;uchar Get_Key ()uchar i,temp;P1=0xff; temp=P1;for(i=0;i8;i+) if(temp=keymodei) return i;return 8

18、;void Play(uchar key) uchar j;if(key=7)TR1=1;for(j=0; Music_hzcbj!=0xff;j+) keycode=Music_hzcbj;delay_ms(10);sth=yinfu1(Music_hzcbj%100)/10-1(Music_hzcbj%1 0)-1)*2;stl=yinfu1(Music_hzcbj%100)/10-1(Music_hzcbj%10 )-1)*2+1;j+;TR0=1;delay_ms(4*500/lengthMusic_hzcbj%10);TR0=0;for (;) while(P3=0x7f);delay_ms(10);i

温馨提示

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

评论

0/150

提交评论