基于单片机的电子琴设计-基于51单片机的简易电子琴设计_第1页
基于单片机的电子琴设计-基于51单片机的简易电子琴设计_第2页
基于单片机的电子琴设计-基于51单片机的简易电子琴设计_第3页
基于单片机的电子琴设计-基于51单片机的简易电子琴设计_第4页
基于单片机的电子琴设计-基于51单片机的简易电子琴设计_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、基于单片机的电子琴设计摘要 本论文设计一个基于单片机的简易电子琴。 电子琴是现代电子科技与音乐结 合的产物, 是一种新型的键盘乐器。 它在现代音乐扮演着重要的角色, 单片机具 有强大的控制功能和灵活的编程实现特性, 它已经融入现代人们的生活中, 成为 不可替代的一部分。本文的主要内容是用AT89C51单片机为核心控制元件,设计 一个电子琴。 以单片机作为主控核心, 与键盘、 扬声器等模块组成核心主控制模 块,在主控模块上设有 16个按键和扬声器。本系统运行稳定,其优点是硬件电 路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考 价值。本文主要对使用单片机设计简易电子琴进行了

2、分析, 并介绍了基于单片机 电子琴系统硬件组成。 利用单片机产生不同频率来获得我们要求的音阶, 最终可 随意弹奏想要表达的音乐。 并且本文分别从原理图, 主要芯片, 各模块原理及各 模块的程序的调试来详细阐述。一首音乐是许多不同的音阶组成的, 而每个音阶对应着不同的频率, 这样我 们就可以利用不同的频率的组合, 即可构成我们所想要的音乐了, 当然对于单片 机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这 样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。1 总体设计1.1 系统硬件连线系统硬件连线如图 1-1 所示,发声模块, 键盘模块, 单片机最小

3、系统模块连 接如图:293031 一LSIC33 4 5 6 7 8卜 XTAL1PO.O/ADOP0.1/AD1P0.2/AD2XTAL2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6RSTP0.7/AD7P2.0/A8P2.1/A9P2.2/A10PSENP2.3/A11ALEP2.4/A12EAP2.5/A13P2.6/A14P2.7/A15P1.0P3.0/RXDP1 1P3 1/TXDP1.2P3.2/INTLP1.3P1.4P3 3/IP3.4/T0P1.6P3.6/WP1.7P3.7/RD图1-11. 把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模

4、块”区域 SPK IN 端口上;2. 把“单片机系统”区域中的 P3.0 P3.7端口用8芯排线连接到“ 4X4行列式 键盘”区域中的C1 C4 R1- R4端口上;3. 把“单片机系统”区域中的 PO.O/ADO P0.7/AD7端口用8芯排线连接到“四 路静态数码显示模块”区域中的任一个 a h端口上;要求:PO.O/ADO对应着a, P0.1/AD1对应着b,P0.7/AD7对应着h。1.2主要芯片简介1.2.1 AT89S51 简介AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含 4k BytesISP(In-system programmable) 的可反复擦写1000

5、次的Flash只读程序存储器, 器件采用ATME公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单 元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价 比的解决方案。AT89S51具有如下特点:40个引脚(引脚图如图1-2所示),4k Bytes Flash 片内程序存储器,128 bytes的随机存取数据存储器(RAM,32个外部双向输 入/输出(I/O ) 口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计 数器,2个全双工串行通信口,看门狗(WDT电路,片内时钟振

6、荡器。此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式空闲模式下,CPUS停工作,而RAM定时计数器,串行口,外中断系统可继续工 作,掉电模式冻结振荡器而保存 RAM的数据,停止芯片其它功能直至外中断激活 或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不 同产品的需求。U1*XTAL1P0.0/AD0P0.1/AD1P0.2/AD2XTAL2P0 3/AD3P0.4/AD4P0.5/AD5P0.6/AD6RSTP0.7/AD7P2.0/A8P2.1/A9P2.2/A10PSENP2.3/A11ALEP2.4/A12EAP2 5/A13P

7、2.6/A14P2.7/A15P1.0P3.0/RXDP1 1P3 1/TXDP1.2P3.2/INT0-P1 3P3 3/INT1P1 4P3 4/T0P1.5P3.5/T1P1.6P3 6/WRP1.7P3.7/RD1918931145AT89C51293023678383/3635343332212223F25262728101112131415161739图1-2单片机1.2.1.1 主要功能特性兼容MCS-51指令系统32个双向I/O 口2个16位可编程定时/计数器全双工UART串行中断口线2个外部中断源中断唤醒省电模式看门狗(WDT电路灵活的ISP字节和分页编程4k可反复擦写ISP

8、 Flash ROM4.5-5.5V工作电压时钟频率0-33MHZ128*8bit 内部 RAM低功耗空闲和省电模式3 级加密位软件设置空闲和省电功能2 硬件设计内容2.1 4X4 矩阵键盘识别组成键盘的按键有机械式、电容式、导电橡胶式、薄膜式多种,但不管什么 形式,其作用都是一个使电路接通与断开的开关。 目前微机系统中使用的键盘按 其功能不同,通常可分为编码键盘和非编码键盘两种基本类型。编码键盘:键盘本身带有实现接口主要功能所需的硬件电路。 不仅能自动检 测被按下的键, 并完成去抖动、 防串键等功能, 而且能提供与被按键功能对应的 键码(如ASCI码)送往CPU所以,编码键盘接口简单、使用方

9、便。但由于硬 件电路较复杂,因而价格较贵。非编码键盘: 键盘只简单地提供按键开关的行列矩阵。 有关按键的识别、 键 码的确定与输入、 去抖动等功能均由软件完成。 目前微机系统中, 一般为了降低 成本大多数采用非编码键盘。键盘接口必须具有去抖动、防串键、按键识别和键码产生 4 个基本功能。( 1)去抖动 :每个按键在按下或松开时,都会产生短时间的抖动。抖动的持续时 间与键的质量相关,一般为 520mm 。所谓抖动是指在识别被按键是必须避开 抖动状态, 只有处在稳定接通或稳定断开状态才能保证识别正确无误。 去抖问题 可通过软件延时或硬件电路解决。( 2)防串键:防串键是为了解决多个键同时按下或者前

10、一按键没有释放又有新的按键按下时产生的问题。常用的方法有双键锁定和 N键轮回两种方法。双键锁 定,是当有两个或两个以上的按键按下时, 只把最后释放的键当作有效键并产生 相应的键码。N键轮回,是当检测到有多个键被按下时,能根据发现它们的顺序 依次产生相应键的键码。( 3)被按键识别:如何识别被按键是接口解决的主要问题,一般可通过软硬结 合的方法完成。常用的方法有行扫描法和线反转法两种。 行扫描法的基本思想是, 由程序对键盘逐行扫描, 通过检测到的列输出状态来确定闭合键, 为此,需要设 置入口、输出口一个, 该方法在微机系统中被广泛使用。 线反转法的基本思想是 通过行列颠倒两次扫描来识别闭合键,为

11、此需要提供两个可编程的双向输入/ 输出端口。(4)键码产生:为了从键的行列坐标编码得到反映键功能的键码,一般在内存 区中建立一个键盘编码表,通过查表获得被按键的键码。用AT89S51的并行口 P1接4X4矩阵键盘,以P1.0 P1.3作输入线,以P1.4 P1.7 作输出线。2.1.1 系统硬件连线设计键盘模块硬件连线如图 1-5 所示:(1) 把“单片机系统”区域中的P3.0 P3.7端口用8芯排线连接到“ 4X4行列 式键盘”区域中的C1 C4 R1 R4端口上;(2) 把“单片机系统”区域中的P0.0/AD0 P0.7/AD7端口用8芯排线连接到“ 7段数码显示模块”区域中的任一个ah

12、端口上;要求: P0.0/AD0 对应着 a,P0.1/AD1对应着b,P0.7/AD7对应着h。2.1.2 按键扫描(1) 4X4矩阵键盘识别处理,每个按键有它的行值和列值,行值和列值的组合 就是识别这个按键的编码。矩阵的行线和列线分别通过两并行接口和CPUS信。每个按键的状态同样需变成数字量“ 0”和“1”, 开关的一端(列线) 通过电阻 接vcc而接地是通过程序输出数字“ 0”实现的。( 2)键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能 是什么;还要消除按键在闭合或断开时的抖动。 两个并行口中,一个输出扫描码, 使按键逐行动态接地, 另一个并行口输入按键状态, 由行扫

13、描值和回馈信号共同 形成键编码而识别按键,通过软件查表,查出该键的功能。电路图如下图1-6矩阵键盘电路3软件设计内容3.1音乐产生的方法3.1.1原理一首音乐是许多不同的音阶组成的, 而每个音阶对应着不同的频率,这样我 们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片 机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器TO来产生这 样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系正确即可。若要产生音频脉冲,只要算出某一音频的周期(1/频率),再将此周期除以 2即为半周期的时间。利用定时器计时半周期时间,每当计时终止后就将P1.0反相,然后重复计时再反相

14、。就可在 P1.0引脚上得到此频率的脉冲。利用AT89C51的内部定时器使其工作计数器模式 (MODE1下,改变计数 值THO及TLO以产生不同频率的方法产生不同音阶,例如,频率为 523Hz,其周 期T= 1/523 = 1912卩s,因此只要令计数器计时 956卩s/1卩s = 956,每计数956 次时将I/O反相,就可得到中音DO(523H0。计数脉冲值与频率的关系式(如式1-1所示)是:N= fi - 2-fr(1-1 )式中,N是计数值;fi是机器频率(晶体振荡器为12MHZ时,其频率为1MHZ; fr是想要产生的频率。其计数初值T的求法如下:T= 65536 N= 65536 f

15、i - 2-fr例如:设 K= 65536, fi = 1MHz 求低音 D0(262Hz)、中音 D0(523Hz)、 高音D0( 1O46H0的计数值。T= 65536 N= 65536 fi - 2-fr = 65536 1000000- 2-fr = 65536 500000/fr低音 DO的 T= 65536- 500000/262 = 63627中音 DO的 T= 65536- 500000/523 = 64580高音 DO的 T= 65536- 500000/1046 = 65059单片机12MHZ晶振,高中低音符与计数T0相关的计数值如表1-2所示 表1-2音符频率表音符频率(

16、HZ简谱码(T值)音符频率(HZ简谱码(T值)低1 DO26263628# 4 FA#74064860#1 DO#27763731中5 SO78464898低2 RE29463835# 5 SO#83164934#2 RE#31163928中6 LA88064968低3 M33064021# 693264994低4 FA34964103中7 SI98865030# 4 FA#37064185高1 DO104665058低5 SO39264260# 1 DO#110965085# 5 SO#41564331高2 RE117565110低6 LA44064400# 2 RE#124565134#

17、646664463高3 M131865157低7 SI49464524高4 FA139765178中1 DO52364580# 4 FA#148065198# 1 DO#55464633咼5 SO156865217中2 RE58764684# 5 SO#166165235# 2 RE#62264732高6 LA176065252中3 M65964777# 6186565268中4 FA69864820高7 SI196765283我们要为这个音符建立一个表格,单片机通过查表的方式来获得相应的数据低音0 19之间,中音在20 39之间,高音在 40 59之间TABLE: 63565,63781,6

18、3878,64143,64220,64365,64491,64549,64657,64706,64839,64878,64950,65013,65042,65096,65121,65187,65207,65243,65274,3.2程序框图音乐发声程序框图如图1-8所示:T0中断入口ir重装T0初值LV.-P1.0取反V中断返回图1-8音乐发声程序框图4全文总结通过这次设计,我学到了不少课本上没有的知识,也锻炼了自己的动手能力, 将以前学过的零散的知识串到一起。首先在设计刚开始的调研阶段,我学会了怎么通过各种方式查询相关的资 料。通过对这些资料的学习,我大致了解了单片机的发展现状以及未来的发展

19、趋 势认识到目前单片机方面的各种各样的发展,和它们之间的竞争。了解了单片 机方面的先进技术,这些都为我的未来的学习指明了方向。我的设计主要涉及硬件和软件两方面的内容, 通过这些我的硬件和软件开发 能力都获得了提高。首先硬件方面,基本了解了电子产品的开发流程和所要做的 工作。通过开发板的设计和硬件搭建的过程,使我对 51系单片机的接口有了更 深层次的理解,熟悉了一些单片机常用的外围电路引脚和连接方法,如键盘等。在软件方面,通过串行口调试工具的开发,使我加深了对累封装的理解,熟 悉了 51 系列单片机内部的寄存器和编程规则,以及如何控制外围电路 附录程序:#include#define uchar

20、 unsigned char#define uuint unsigned intuchar temp;uchar num;uchar i,j;unsigned char STH0;unsigned char STL0;sbit P3_4=P3A4;sbit P3_5=P3A5;sbit P3_6=P3A6;sbit P3_7=P3A7;sbit P1_0=P1A0;unsigned int code tab=63565,63781,63878,64143,64220,64365,64491,64549,64657,64706,64839,64878,64950,65013,65042,6509

21、6,65121,65187,65207,65243,65274,; void delay();uchar keyscan();void main(void)TMOD=0x01;ET0=1;EA=1;num=17;while(1)keyscan();void delay()unsigned char i, j;for(i=110;i0;i-)for(j=110;j0;j-);uchar keyscan()P3=0xfe;temp=P3;temp=temp&0xf0;while(temp!=0xf0)delay();temp=P3;temp=temp&0xf0;while(temp!=0xf0)t

22、emp=P3; switch(temp) case 0xee:num=1;break;case 0xde:num=2;break;case 0xbe:num=3;break;case 0x7e:num=4;break;temp=P3;P1_0=P1_0;STH0=tabnum/256;STL0=tabnum%256;TR0=1;temp=temp & 0x0f; while(temp!=0xf0) temp=P3; temp=temp&0xf0;TR0=0;P3=0xfd; temp=P3; temp=temp&0xf0; while(temp!=0xf0) delay();temp=P3;t

23、emp=temp&0xf0;while(temp!=0xf0)temp=P3; switch(temp) case 0xed:num=5; break;case 0xdd:num=6; break;case 0xbd:num=7; break;case 0x7d:num=8;break;temp=P3; P1_0=P1_0; STH0=tabnum/256; STL0=tabnum%6; TR0=1;temp=temp & 0x0f; while(temp!=0xf0) temp=P3; temp=temp&0xf0;TR0=0;P3=0xfb;temp=P3;temp=temp&0xf0;w

24、hile(temp!=0xf0)delay();temp=P3;temp=temp&0xf0;while(temp!=0xf0)temp=P3;switch(temp)case 0xeb:num=9;break;case 0xdb:num=10;break;case 0xbb:num=11;break;case 0x7b:num=12;break;temp=P3;P1_0=P1_0;STH0=tabnum/256;STL0=tabnum%256;TR0=1;temp=temp & 0x0f;while(temp!=0xf0)temp=P3;temp=temp&0xf0;TR0=0;P3=0xf7;temp=P3;temp=temp&0xf0;while(temp!=0xf0)delay();temp=P3; temp=temp&0xf0; while(temp!=0xf0)temp=P3;switch(temp)case 0xe7:num=13;break;case 0xd7:num=14;break;case 0xb7:num=15;break;case 0x77:num=16;break; temp=P3; P1_0=P1_0;STH0=tabn

温馨提示

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

评论

0/150

提交评论