
课程设计报告基于单片机的简易电子琴设计.doc
31页课程设计报告课程设计名称: 基于51单片机的简易电子琴设计 系部名称: 中印计算机软件学院 学生姓名: 班 级: 学 号: 成 绩: 指导教师: 开课时间: 2012-2013 学年 第 二 学期目 录 1 课程设计目的…………………………………………… ……………..1 2 课程设计题目和要求……………………………………………………… 13 课程设计报告内容 23.1原理图 23.2系统板硬件连线 33.3主要芯片简介 33.3.1AT89S51简介 33.3.2 LM386 43.3.3LED数码管 64 实现过程 74.1 4X4行列式键盘识别及显示 84.1.1硬件板上的系统连线设计 94.1.2 程序设计内容 94.1.3 I/O并行口直接驱动LED显示 94.2 音乐产生的方法 114.2.1 原理 114.2.2 程序框图 135. 总结 14参考书目 15附录 16I1 课程设计目的 音乐是热情洋溢的自由艺术,是室外的艺术,像自然那样无边无际,像风,像天空,像海洋。
音乐是灵魂的完美表现音乐表达的是无法用语言描述,却又不可能对其保持沉默的东西而能把音乐演绎出来的乐器又是很多人的最爱在此设计的是一个基于单片机的简易电子琴我们对于电子琴如何实现其功能,如音色选择、声音强弱控制、节拍器、声音强弱显示功能等等也很好奇电子琴有着独特的音色,它在爱音乐人的手里就是一个有生命的工具,是我们的朋友,它也是现代电子科技与音乐结合的产物,是一种新型的键盘乐器它在现代音乐扮演着重要的角色单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分本文的主要内容是用AT89S51单片机为核心控制元件,设计一个电子琴以单片机作为主控核心,与键盘、LED显示器、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值2课程设计的题目和要求 电子琴的设计以AT89S51单片机为核心,设计一个简易电子琴1. 利用键盘模拟琴键,弹奏出8个不同的音符1,2,3,4,5,6,7,i2. 按下按键发声,松开延时一段时间停止,中间再按别的键则发另一音调的声音。
3. LM386将音频信号功率放大后送扬声器发声4. 其他创新功能设计,例如增加按键数量,发出更多的音符,用点阵LED显示音符高低等 3 课程设计报告内容3.1原理图图1-1 电子琴电路图3.2系统板硬件连线 系统板硬件连线如图1-1所示,发生模块,键盘模块,及LED显示模块连接如下1.把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPK IN端口上;2.把“单片机系统”区域中的P3.0-P3.7端口用8芯排线连接到“4X4行列式键盘”区域中的C1-C4 R1-R4端口上;3.把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b,……,P0.7/AD7对应着h3.3 主要芯片简介3.3.1 AT89S51简介AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准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)电路,片内时钟振荡器 此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求图1-2 管脚图3.3.1.1 主要功能特性· 兼容MCS-51指令系统 · 32个双向I/O口· 2个16位可编程定时/计数器 · 全双工UART串行中断口线· 2个外部中断源 · 中断唤醒省电模式· 看门狗(WDT)电路 · 灵活的ISP字节和分页编程· 4k可反复擦写ISP Flash ROM · 4.5-5.5V工作电压· 时钟频率0-33MHz · 128*8bit内部RAM· 低功耗空闲和省电模式 · 3级加密位· 软件设置空闲和省电功能 · 双数据寄存器指针3.3.2 LM3863.3.2.1 LM386内部电路LM386是美国国家半导体公司生产的音频功率放大器,主要应用于低电压消费类产品。
LM386特性:静态功耗低,约为4mA,可用于电池供电;工作电压范围宽,4V-12V或5V-18V;外围元件少;电压增益可调,20-200;低失真度LM386是一种音频集成功放,具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点,广泛应用于录音机和收音机之中图1-3 LM386内部电路原理图 LM386内部电路原理图如图1-3所示与通用型集成运放相类似,它是一个三级放大电路. 第一级为差分放大电路,T1和T3、T2和T4分别构成复合管,作为差分放大电路的放大管;T5和T6组成镜像电流源作为T1和T2的有源负载;T3和T4信号从管的基极输入,从T2管的集电极输出,为双端输入单端输出差分电路使用镜像电流源作为差分放大电路有源负载,可使单端输出电路的增益近似等于双端输出电容的增益 第二级为共射放大电路,T7为放大管,恒流源作有源负载,以增大放大倍数 第三级中的T8和T9管复合成PNP型管,与NPN型管T10构成准互补输出级二极管D1和D2为输出级提供合适的偏置电压,可以消除交越失真 引脚2为反相输入端,引脚3为同相输入端电路由单电源供电,故为OTL电路。
输出端(引脚5)应外接输出电容后再接负载 电阻R7从输出端连接到T2的发射极,形成反馈通路,并与R5和R6构成反馈网络,从而引入了深度电压串联负反馈,使整个电路具有稳定的电压增益图2.3 音频放大器电路3.3.3 LED数码管图1-4 7段数码管数码管(如图1-4所示)使用条件:a、段及小数点上加限流电阻b、使用电压:段:根据发光颜色决定;小数点:根据发光颜色决定c、使用电流:静态:总电流 80mA(每段 10mA);动态:平均电流 4-5mA 峰值电流 100mA上面这只是七段数码管引脚图,其中共阳极数码管引脚图和共阴极的是一样的数码管使用注意事项说明:(1)数码管表面不要用手触摸,不要用手去弄引角;(2)焊接温度:260度;焊接时间:5S(3)表面有保护膜的产品,可以在使用前撕下来4 实现过程4.1 4X4行列式键盘识别及显示组成键盘的按键有机械式、电容式、导电橡胶式、薄膜式多种,但不管什么形式,其作用都是一个使电路接通与断开的开关目前微机系统中使用的键盘按其功能不同,通常可分为编码键盘和非编码键盘两种基本类型 编码键盘:键盘本身带有实现接口主要功能所需的硬件电路不仅能自动检测被按下的键,并完成去抖动、防串键等功能,而且能提供与被按键功能对应的键码(如ASCII码)送往CPU。
所以,编码键盘接口简单、使用方便但由于硬件电路较复杂,因而价格较贵 非编码键盘:键盘只简单地提供按键开关的行列矩阵有关按键的识别、键码的确定与输入、去抖动等功能均由软件完成目前微机系统中,一般为了降低成本大多数采用非编码键盘 键盘接口必须具有去抖动、防串键、按键识别和键码产生4个基本功能 (1)去抖动:每个按键在按下或松开时,都会产生短时间的抖动抖动的持续时间与键的质量相关,一般为5—20mm所谓抖动是指在识别被按键是必须避开抖动状态,只有处在稳定接通或稳定断开状态才能保证识别正确无误去抖问题可通过软件延时或硬件电路解决 (2)防串键:防串键是为了解决多个键同时按下或者前一按键没有释放又有新的按键按下时产生的问题常用的方法有双键锁定和N键轮回两种方法双键锁定,是当有两个或两个以上的按键按下时,只把最后释放的键当作有效键并产生相应的键码N键轮回,是当检测到有多个键被按下时,能根据发现它们的顺序依次产生相应键的键码 (3)被按键识别:如何识别被按键是接口解决的主要问题,一般可通过软硬结合的方法完成常用的方法有行扫描法和线反转法两种行扫描法的基本思想是,由程序对键盘逐行扫描,通过检测到的列输出状态来确定闭合键,为此,需要设置入口、输出口一个,该方法在微机系统中被广泛使用。
线反转法的基本思想是通过行列颠倒两次扫描来识别闭合键,为此需要提供两个可编程的双向输入/输出端口 (4)键码产生:为了从键的行列坐标编码得到反映键功能的键码,一般在内存区中建立一个键盘编码表,通过查表获得被按键的键码用AT89S51的并行口P1接4×4矩阵键盘,以P1.0-P1.3作输入线,以P1.4-P1.7作输出线;在数码管上显示每个按键的“0-F”序号4.1.1 系统板上硬件连线设计键盘模块硬件连线如图2-1所示:(1)把“单片机系统”区域中的P3.0-P3.7端口用8芯排线连接到“4X4行列式键盘”区域中的C1-C4 R1-R4端口上;(2)把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“7段数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b,……,P0.7/AD7对应着h图2-1 键盘识别模块4.1.2 程序设计内容(1)4×4矩阵键盘识别处理,每个按键有它的行值和列值,行值和列值的组合就是识别这个按键的编码矩阵的行线和列线分别通过两并行接口和CPU通信每个按键的状态同样需变成数字量“0”和“1”,开关的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。
2)键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么;还要消除按键在闭合或断开时的抖动两个并行口。
