物理与信息工程系课程设计报告课程名称专业综合课题名称简易电子琴设计专业电子信息科学与技术年班级08级电科二班学号0841720608417248姓名梁仁刘湘泉指导教师谢莉2011年5月20日目录1、设计任务..........................................................................................11.1设计目的.......................................................................................11.2设计指标及要求............................................................................12、设计思路与总体框图.........................................................................22.1电子琴系统的设计思想................................................................22.2软件总体方案及设计流程.................................................................32.3总体框架.........................................................................................42.3.1、程序简易流程图.................................................................................42.3.2、弹奏程序流程图.............................................................................53、系统硬件电路的设计……………………...............………………………….63.1、芯片介绍........................................................................................63.2、硬件接图.......................................................................................73.3音频放大电路设计................................................................................73.4复位电路设计.....................................................................................83.5电路设计图.........................................................................................94、系统设计仿真…………………………...............………………………………..10注:提供系统仿真软件和源程序5、总结与体会…………………………...............…………………………….186、参考文献………………………………...............…………………………181、设计任务1.1设计目的(1)掌握MCS-51单片机定时器、计数器及中断的综合应用;(2)掌握单片机演奏音乐的原理和编程方法;(3)能够对电子元器件、印制电路板等方面的知识有进一步的认识,独立对其进行测试与检查。1.2设计指标及有求指标:(1)设计一个(4×4)的键盘,并将16个键设计成16个音;(2)可弹奏想要表达的音乐;(3)该电子琴包含1首示例音乐,接通电源可播放示例音乐。要求:(1)按设计指标进行电路设计;(2)列出音阶与单片机定时器输出频率关系表格;(3)制作符合设计指标的硬件电路。2、设计思路与总体框图2.1电子琴系统的设计思想关于声音的处理,第一种方法是使用汇编语言,利用定时器来控制频率,而每个音符的符号只是存在我自己定义的表中。音符的频率是通过查表得到的(见表2-1)。本次设计中单片机晶振为12MHZ,那么定时器的计数周期为1MHZ,假如选择工作方式1,那T值便为T=216--5﹡105/相应的频率,那么根据不同的频率计算出应该赋给定时器的计数值,列出不同音符与单片机计数T0相关的计数值如下表所示:表2-1音符频率(HZ)简谱码(T值)中1DO52364580中2RE58764684中3M65964777中4FA69864820中5SO78464898中6LA88064968中7SI98865030采用查表程序进行查表时,可以为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据:TABLEDB64580,64684,64777,64820,64898,64968,65030此外,结束符和体止符可以分别用代码00H和FFH来表示,若查表结果为00H,则表示曲子终了,若查表结果为FFH,则产生相应的停顿效果。关于声音的处理,第二种方法是使用一个8位的二进制数来作为音符,高位的前两位用来判断音符是高音低音还是中音,后面六位判断的是Do还是Xi等音符。设D7D6=01为低音区,D7D6=10为中音区,D7D6=11为高音。此方法与第一种方法比较起来较简单,所以在该系统的音符设计中采用的就是第二种方法。2.2软件总体方案及设计流程(1)键盘扫描程序:检测是否有键按下,有键按下则记录按下键的键值,并跳转至功能转移程序;无键按下,则返回键盘扫描程序继续检测(2)功能转移程序:对检测到得按键值进行判断,是琴键则跳转至琴键处理程序,是功能键则跳转至相应的功能程序,我们设计的功能程序有两种,即音色调节功能和自动播放乐曲功能(3)琴键处理程序:根据检测到得按键值,查询音律表,给计时器赋值,使发出相应频率的声音(4)自动播放歌曲程序:检测到按键按下的是自动播放歌曲功能键后执行该程序,电子琴会自动播放事先已经存放好的歌曲,歌曲播放完毕之后自动返回至键盘扫描程序,继续等待是否有键按下。系统结构图按键单片机AT89S52`扬声器音频功放电路2.3总体框架2.3.1程序简易流程图否是否是开始T0初始化并开中断允许T0中断T1初始化并开中断允许T1中断键盘扫描程序有键按下否识别按键功能播放键根据按键功能装入相应音符值到T0取相应的音符码装入T1启动T0启动T1按键释放成功否按键释放成功否停止T0工作停止T1工作延时去抖动是否弹奏键2.3.2弹奏程序流程图弹奏子程序开中断并允许中断设定定时器工作方式取键值根据键值查音律表给定时器T0赋值进入中断CPLP3.0P3.0退出中断延时返回键盘扫描程序开始计时3、系统硬件电路的设计3.1芯片介绍:AT89C52:AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。主要性能:与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:0Hz~33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。LM386:LM386是美国国家半导体公司生产的音频功率放大器,主要应用于低电压消费类产品。为使外围元件最少,电压增益内置为20。但在1脚和8脚之间增加一只外接电阻和电容,便可将电压增益调为任意值,直至200。输入端以地位参考,同时输出端被自动偏置到电源电压的一半,在6V电源电压下,它的静态功耗仅为24mW,使得LM386特别适用于电池供电的场合。其主要特性有以下几点:静态功耗低,约为4mA,可用于电池供电。工作电压范围宽,4-12Vor5-18V。外围元件少。电压增益可调,20-200。3.2硬件接线:(1)利用P1口为按键接入口,形成4×4组成16个按键矩阵,设计成16个音,下图所示:(2)p3.0口音频输出,接一个喇叭。(3)复位电路我们本来在方案选择的时候有两种选择的,上电复位和按扭复位,上电复位是利用电容充电来实现的,而按扭复位是电源对外节电容的充电使RST为高电平,复位松开后,电容通过下拉电阻放电,使RST恢复低电平。为了制作软件的方便我们还是选择用按扭复位,因为它比较直观。3.3音频放大电路设计LM386是美国国家半导体公司生产的音频功率放大器,主要应用于低电压消费类产品。为使外围元件最少,电压增益内置为20。但在1脚和8脚之间增加一只外接电阻和电容,便可将电压增益调为任意值,直至200。输入端以地位参考,同时输出端被自动偏置到电源电压的一半,在6V电源电压下,它的静态功耗仅为24mW,使得LM386特别适用于电池供电的场合。LM386的封装形式有塑封8引线双列直插式和贴片式。其追求的主要目标是在失真许可的限度内,高效率地为终端负载提供尽可能大的输出功率。该系统中音频放大电路的设计如图所示:0123456789ABCDEF所对应的键码为:3.4复位电路设计:复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键以重新启动。RST引角是复位信号的输入端,复位信号是高电平有效,其有效时间应持续24个振荡脉冲周期以上。整个复位电路包括芯片内外两部分。外部电路产生的复位信号(RST)施密特触发器,再由片内复位电路在每个机器周期的S5P2时刻对施密特触发器的输出进行采样。然后才得到内部复位操作所需要的信号。复位电路的基本功能是系统上电时提供复位信号直至系统电源稳定后撤销复位信号为可靠起见电源稳定后还要经一定的延时才撤销复位信号以防电源开关或电源插头分-合过程中引起的抖动而影响复位.复位操作有上电自动复位和按键手动复位两种方式。上电自动复位是通过外部复位电路的电容充电来实现的.这样只要电源的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就完成了系统的复位初始化.本设计采用按键手动复位方式。而该方式又分为电平方式和脉冲方式。其中按键电平方式是通过使复位端经电阻与电源接通而实现的。而按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的。本设计采用按键电平复位方式,具体电路图如下:3.5电路设计图如下:4、系统设计仿真设计源程序:BUFFEQU30HSTH0EQU31HSTL0EQU32HTEMPEQU33HORG00HLJMPSTARTORG0BHLJMPINT_T0ORG001BHLJMPTIM1START:MOVTMOD,#01H;设置T0工作方式SETBET0SETBEA;启动T0MAIN:MOVP1,#0FFH;P1全置1CLRP1.4;开始扫描第一行MOVA,P1ANLA,#0FH;屏蔽高四位XRLA,#0FH;低位有”0”则有键按下,否则无JZKKEY1;判断有无键按下,有则继续,没有则转移到KKEY1LCALLDELY10MS;调用延时程序MOVA,P1;重新开始判断有无键按下ANLA,#0FHXRLA,#0FHJZKKEY1MOVA,P1ANLA,