1、徐州师范大学物理与电子工程学院课程设计报告目 录摘 要3Abstract31绪论.41.1背景41.2目的 41.3 意义41.4基本理论依据和主要工作内容42 设计方案简述.62.1键盘模块.6 2.2发声模块.62.3 8X8点阵显示模块6 2.4系统技术指标和预期功能73 详细设计83.1主要IC芯片介绍8 3.2硬件设计.11 4 设计结果及分析194.1 测试19 5总 结 20 参考文献21附录 主要程序代码22 摘 要单片机的应用已经越来越贴近生活,用单片机来实现一些电子设计也变得容易起来。本设计阐述的主要内容是一种基于51 单片机的电子琴的设计,其核心芯片AT89S52 单片机
2、,内部电路包括4X4行列式键盘模块、音频放大模块和8X8LED点阵显示模块,本系统运行稳定,功能较为完善,控制系统可靠,性价比较高等,具有一定的实用价值。对于那些需要显示的信息量不是很大,分辨率不是很高,又需要制造成本相对比较低的场合,使用大、小屏幕LED点阵显示器是比较经济适用的,他可以显示字符、数字和简单图形,显示亮度较高,并且对环境条件要求比较低。电子乐器的结构较为复杂,音源是由晶体管产生的 电振动,并通过音色回路而产生各种音色;同时由周波数调制产生颤音效果,由振幅调制产生各种乐器的音效。关键词:AT89S52单片机;音频放大模块;8X8点阵AbstractIts application
3、s have become increasingly close to life, with a single chip to achieve a number of electronic design is becoming simpler. The main elements of the design described is based on 51 single-chip, the flower design, the core chip AT89S52 microcontroller Internal circuit including the 4X4 determinant key
4、board module, audio amplifier module and 8X8LED dot matrix display module, the system is stable, function better, control system reliability, higher cost and so on, has some practical value. For those who need to display the amount of information is small, resolution is not high, they need to make t
5、he occasion a relatively low cost, using large and small screen, LED dot matrix display is more economical, and he can display characters, numbers and simple graphics, display brightness higher and lower demands on the environmental conditions. : The structure of more complex electronic instruments,
6、 the source is generated by the transistor electrical vibration, and sound loops generated by a variety of tone; also modulated by the frequency to produce vibrato effects, generated by the amplitude modulated sounds of various instruments. Keywords:AT89S52 Microcontroller;Audio Amplifier Module;8X8
7、 matrix- 36 -1绪论1.1背景单片机是随着大规模集成电路的出现极其发展,将计算机的CPU,RAM,ROM,定时/计数器和多种I/O接口集成在一片芯片上,形成了芯片级的计算机,因此单片机早期的含义称为单片微型计算机(singlechipmicrocomputer).它拥有优异的性价比、集成度高、体积小、可靠性高、控制功能强、低电压、低功耗的显著优点.主要应用于智能仪器仪表、工业检测控制、机电一体化等方面,并且取得了显著的成果。单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。它的应用必定导致传统的控制技
8、术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。1.2 目的 本文的主要内容是用AT89S52单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16 个按键和扬声器,可以随意弹奏想弹的曲目。并用点阵控制显示模块,达到报幕效果。1.3 意义电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。LED点阵显示屏是一种简单的汉字显示器,具有价廉、易于控制、使用寿命长等特点,
9、可广泛应用于各种公共场合,如车站、码头、银行、学校、火车、公共汽车显示等。1.4基本理论依据和主要工作内容矩阵式结构的键盘显然比独立式键盘复杂一些 识别也要复杂一些列线通过电阻接电源并将行线所接的单片机 4 个 I/O 口作为输出端而列线所接的 I/O 口则作为输入端 这样 当按键没有被按下时所有的输出端都是高电平,代表无键按下。LED电子显示屏是随着计算机及相关的微电子光电子技术的迅猛发展而形成的一种新型信息显示媒体。它利用发光二极管构成的点阵模块或像素单元组成可变面积的显示屏幕,以可靠性高、使用寿命长、环境适应能力强、性能价格比高、使用成本低等特点,在短短的十来年中,迅速成长为平板显示的主
10、流产品,在信息显示领域得到了广泛的应用。对于那些需要显示的信息量不是很大,分辨率不是很高,又需要制造成本相对比较低的场合,使用大、小屏幕LED点阵显示器是比较经济适用的,他可以显示字符、数字、汉字和简单图形,可以根据需要使用不同字号、字型,显示亮度较高,并且对环境条件要求比较低。本设计接通电源,首先显示“43号同学出场”,然后电子琴开始工作,可以弹奏想弹的乐曲,按复位键后,重新显示。2 设计方案简述本电子琴系统主要包括MCS-51 单片机,键盘模块,发声模块以及显示模块,电路设计框图如图2-1 所示:图2-12.1键盘模块本设计键盘模块采用4*4 矩阵键盘,在键盘中按键数量较多时,为了减少I/
11、O 口的占用,通常将按键排列成矩阵形式,在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1 口)就可以构成4*4=16 个按键,比直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20 键的键盘,而直接用端口线则只能多出一键。由此可见,在在键盘中按键数量较多时,为了减少I/O 口的占用,采用矩阵法来做键盘是合理的。矩阵式结构的键盘显然比独立式键盘复杂一些 识别也要复杂一些列线通过电阻接电源并将行线所接的单片机 4 个 I/O 口作为输出端而列线所接的 I/O 口则作为输入端 这样 当按键没有被按下时所有的输出
12、端都是高电平,代表无键按下。行线输出是低电平一旦有键按下,则输入线就会被拉低,这样通过读入输入线的状态就可得知是否有键按下了。2.2发声模块本设计发声模块主要采用LM386,LM386 是一种音频集成功放,具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点,广泛应用于录音机和收音机之中。2.3 8X8点阵显示模块LED点阵显示器是比较经济适用的,他可以显示字符、数字、汉字和简单图形,可以根据需要使用不同字号、字型,显示亮度较高,并且对环境条件要求比较低。LED点阵显示屏具有价廉、易于控制、使用寿命长等特点,可广泛应用于各种公共场合。2.4系统技术指标和预期功能1点阵
13、报幕,显示作者学号。2. 由4X4组成16个按钮矩阵,设计成16个音。 3 可随意弹奏想要表达的音乐。3 详细设计3.1主要IC芯片介绍3.1.1AT89S52单片机本系统采用AT89S52单片机,AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构
14、,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。图3-1 AT89S52的结构引脚图P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在 flash编程时,P0口也用来接收指
15、令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX)。在flash编程和校验时,P1口接收低8位地址字节。P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL
16、 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时
17、,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用。在flash编程和校验时,P3口也接收一些控制信号。RST: 复位输入。晶振工作时,RST脚持续2 个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96 个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。3.1.2 LM386图3-2LM386与通用型集成运放相类似,它是一个三级放大电路。第一级为差分放大电路,T1 和T3、T2
18、 和T4 分别构成复合管,作为差分放大电路的放大管;T5 和T6 组成镜像电流源作为T1 和T2 的有源负载;T3 和T4 信号从管的基极输入,从T2管的集电极输出,为双端输入单端输出差分电路。使用镜像电流源作为差分放大电路有源负载,可使单端输出电路的增益近似等于双端输出电容的增益。第二级为共射放大电路,T7 为放大管,恒流源作有源负载,以增大放大倍数。第三级中的T8 和T9 管复合成PNP 型管,与NPN 型管T10 构成准互补输出级。二极管D1 和D2 为输出级提供合适的偏置电压,可以消除交越失真。引脚2 为反相输入端,引脚3 为同相输入端。电路由单电源供电,故为OTL 电路。输出端(引脚
19、5)应外接输出电容后再接负载。电阻R7 从输出端连接到T2 的发射极,形成反馈通路,并与R5 和R6 构成反馈网络,从而引入了深度电压串联负反馈,使整个电路具有稳定的电压增益。3.1.3 8X8点阵LED工作原理说明 8X8点阵LED结构如下图所示图3-3从图3-3中可以看出,8X8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一行置1电平,某一列置0电平,则相应的二极管就亮。3.1.4键盘模块本设计采用4*4 矩阵键盘,在键盘中按键数量较多时,为了减少I/O 口的占用,采用矩阵法来做键盘是合理的。矩阵式结构的键盘显然比独立式键盘复杂一些 识别也要复杂
20、一些列线通过电阻接电源并将行线所接的单片机 4 个 I/O 口作为输出端而列线所接的 I/O 口则作为输入端 这样 当按键没有被按下时所有的输出端都是高电平,代表无键按下。行线输出是低电平一旦有键按下,则输入线就会被拉低,这样通过读入输入线的状态就可得知是否有键按下了。连线如图3-43.2硬件设计3.2.1硬件电路连线 图3-51 把“单片机系统”区域中的P0端口连接到“点阵模块”区域中的“DR1DR8”端口上; 2 把“单片机系统”区域中的P2端口连接到“点阵模块”区域中的“DC1DC8”端口上; 3.把“单片机系统”区域中的P1.0端口连接到“音频放大模块”区域中的SPK IN端口上; 4
21、.把“单片机系统“区域中的P3.0P3.7端口连接到“4X4行列式键盘”区域中的C1C4R1R4端口上3.3软件设计3.3.1点阵代码数字“4”代码建立如下图所示图3-60FFH,07H,0F7H,0F7H,00H,0F7H,0F7H,0FFH数字“3”代码建立如下图所示 图3-7 0FFH,0FFH,6DH,6DH,6DH,01H,0FFH,0FFH汉字“号”代码建立如下图所示 图3-8 0F7H,17H,57H,57H,51H,15H,0F4H,0F7H汉字“同”代码建立如下图所示 图3-900H,7FH,51H,55H,55H,51H,7EH,00H汉字“学”代码建立如下图所示 图3-1
22、0 9BH,3BH,0ABH,2AH,0A0H,2BH,0BBH,9BH汉字“出”代码建立如下图所示图3-11 0FFH,08H,0EEH,0EEH,00H,0EEH,0EEH,08H汉字“场”代码建立如下图所示图3-12 0EBH,03H,0EFH,7BH,65H,4BH,26H,60H3.3.2音乐产生的方法 在我们的生活中,每一个乐音的音阶都有其各自的频率。于是,我们就可以利用16 位单片机的软件定时器,向高速输出口,输出不同频率的方波,这样我们便可以在音频输出电路中的扬声器中听到不同频率的音节。然后,我们再使音节按照音拍持续一定的时间,这样我们便可以听到优美的乐曲了。一首音乐是许多不同
23、的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。现在以单片机12MHZ晶振为例,例出高中低音符与单片机计数T0相关的计数值如下表所示 音符频率(HZ)简谱码(T值)音符频率(HZ)简谱码(T值)低1DO26263628# 4 FA#74064860#1DO#27763731中 5 SO78464898低2RE29463835# 5 SO#83164934#2 RE#31163928中
24、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# 646664463高 3 M131865157低 7 SI49464524高 4 FA139765178中 1 DO52364580# 4 FA#148065198# 1 DO#55464633高 5 SO156865217中
25、2 RE58764684# 5 SO#166165235# 2 RE#62264732高 6 LA176065252中 3 M65964777# 6186565268中 4 FA69864820高 7 SI196765283表3-1下面我们要为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据 低音019之间,中音在2039之间,高音在4059之间 TABLE: DW 0,63628,63835,64021,64103,64260,64400,64524,0,0 DW 0,63731,63928,0,64185,64331,64463,0,0,0 DW 0,64580,64684
26、,64777,64820,64898,64968,65030,0,0 DW 0,64633,64732,0,64860,64934,64994,0,0,0 DW 0,65058,65110,65157,65178,65217,65252,65283,0,0 DW 0,65085,65134,0,65198,65235,65268,0,0,0 DW 0 2、音乐的音拍,一个节拍为单位(C调) 曲调值DELAY曲调值DELAY调4/4125ms调4/462ms调3/4187ms调3/494ms调2/4250ms调2/4125ms表3-2对于不同的曲调我们也可以用单片机的另外一个定时/计数器来完成。
27、 在这个程序中用到了两个定时/计数器来完成的。其中T0用来产生音符频率,T1用来产生音拍。 5 程序框图 图3-134 设计结果及分析4.1 测试4.1.1 测试方法接通电源,观察点阵是否显示正常,每个字的显示时间是否足够长,以便看清是什么字。4.1.2 测试结果使系统运行,观察系统硬件检测是否正常(包括单片机最小系统,显示电路,音频放大电路等)。自检正常,显示正常。接通电源,首先显示“43号同学出场”,然后电子琴开始工作,可以弹奏想弹的乐曲,按复位键后,重新显示。5 总结本系统是利用AT89S52单片机设计的电子琴,硬件电路简单,如果设计对象是更为复杂的电子琴系统,其实际原理与方法与本设计基
28、本相同。LED点阵显示屏是一种简单的汉字显示器,具有价廉、易于控制、使用寿命长等特点,可广泛应用于各种公共场合,如车站、码头、银行、学校、火车、公共汽车显示等。经过实际应用证明,本显示屏可以作为信息显示装置用于公共场所来进行信息显示,而且具有工作稳定、字符清晰、亮度适中等特点。另外,实例所设计的计算器是用8X8点阵显示的,当然也可以用其他的器件显示,如LCD 液晶显示屏,这样就可以显示出更加丰富的字符,在此基础上,还可以编写更加完善的程序来实现更多的功能。通过这次设计,我认识到任何复杂的东西都是由简单的模块构成的,只要有恒心就能完成任何事情。文中还有不少的欠缺,希望老师多多点评。参考文献1 韩
29、志军,沈晋源,王振波单片机应用系统设计入门向导与设计实例M 北京:机械工业出版社,2005 2冯博琴,微型计算机原理与接口技术,北京:清华大学出版社,20043赵晓安. MCS-51单片机原理及应用. 天津:天津大学出版社,2001.34 张友德,赵志英,涂时亮。单片微型机原理,应用于实验(第五版)上海:复旦大学出版社,2006.5张毅刚,MCS-51单片机应用设计,哈尔滨工业大学出版社,20046 孙育才,王荣兴,孙化芳.,新型AT89S52系列单片机及其应用北京:清华大学出版社,2005. 7肖洪兵. 跟我学用单片机. 北京:北京航空航天大学出版社,2002.8附录KEYBUF EQU 3
30、0HSTH0 EQU 31HSTL0 EQU 32HTEMP EQU 33HORG 00HLJMP STARTORG 0BHLJMP INT_T0 START:MOV TMOD,#01HSETB ET0SETB EAMOVR4,#200MM:MOVR3,#200MAIN:MOVR5,#0MOVDPTR,#TAB1MOVR6,#01HLOOP1:MOVA,R5MOVCA,A+DPTRMOVP0,AMOVA,R6MOVP2,ARLAMOVR6,AINCR5 CJNER6,#80H,LOOP1 NOPNOPNOPNOPNOPDJNZR3,MAINDJNZR4,MMMOVA,#0MOVR4,AMOVR
31、5,AMOVR6,ALJMP START2START2:MOVR4,#200MM2:MOVR3,#200MAIN2:MOVR5,#0MOVDPTR,#TAB2MOVR6,#01HLOOP2:MOVA,R5MOVCA,A+DPTRMOVP0,AMOVA,R6MOVP2,ARLAMOVR6,AINCR5CJNER6,#80H,LOOP2 NOPNOPNOPNOPNOPDJNZR3,MAIN2DJNZR4,MM2MOVA,#0MOVR4,AMOVR5,AMOVR6,A LJMPSTART3START3:MOVR4,#200MM3:MOVR3,#200MAIN3:MOVR5,#0MOVDPTR,#TA
32、B3MOVR6,#01HLOOP3:MOVA,R5MOVCA,A+DPTRMOVP0,AMOVA,R6MOVP2,ARLAMOVR6,AINCR5CJNER6,#80H,LOOP3 MOVA,R5MOVCA,A+DPTRMOVP0,AMOVA,R6MOVP2,ARLAMOVR6,AINCR5NOPNOPNOPNOPNOPDJNZR3,MAIN3DJNZR4,MM3MOVA,#0MOVR4,AMOVR5,AMOVR6,ALJMP START4START4:MOVR4,#200MM4:MOVR3,#200MAIN4:MOVR5,#0MOVDPTR,#TAB4MOVR6,#01HLOOP4:MOVA
33、,R5MOVCA,A+DPTRMOVP0,AMOVA,R6MOVP2,ARLAMOVR6,AINCR5CJNER6,#80H,LOOP4 MOVA,R5MOVCA,A+DPTRMOVP0,AMOVA,R6MOVP2,ARLAMOVR6,AINCR5 NOPNOPNOPNOPNOPDJNZR3,MAIN4DJNZR4,MM4MOVA,#0MOVR4,AMOVR5,AMOVR6,ALJMP START5START5:MOVR4,#200MM5:MOVR3,#200MAIN5:MOVR5,#0MOVDPTR,#TAB5MOVR6,#01HLOOP5:MOVA,R5MOVCA,A+DPTRMOVP0,
34、AMOVA,R6MOVP2,ARLAMOVR6,AINCR5CJNER6,#80H,LOOP5MOVA,R5MOVCA,A+DPTRMOVP0,AMOVA,R6MOVP2,ARLAMOVR6,AINCR5 NOPNOPNOPNOPNOPDJNZR3,MAIN5DJNZR4,MM5MOVA,#0MOVR4,AMOVR5,AMOVR6,ALJMP START6START6:MOVR4,#200MM6:MOVR3,#200MAIN6:MOVR5,#0MOVDPTR,#TAB6MOVR6,#01HLOOP6:MOVA,R5MOVCA,A+DPTRMOVP0,AMOVA,R6MOVP2,ARLAMOVR
35、6,AINCR5CJNER6,#80H,LOOP6MOVA,R5MOVCA,A+DPTRMOVP0,AMOVA,R6MOVP2,ARLAMOVR6,AINCR5 NOPNOPNOPNOPNOPDJNZR3,MAIN6DJNZR4,MM6MOVA,#0MOVR4,AMOVR5,AMOVR6,ALJMP START7START7:MOVR4,#200MM7:MOVR3,#200MAIN7:MOVR5,#0MOVDPTR,#TAB7MOVR6,#01HLOOP7:MOVA,R5MOVCA,A+DPTRMOVP0,AMOVA,R6MOVP2,ARLAMOVR6,AINCR5CJNER6,#80H,LO
36、OP7MOVA,R5MOVCA,A+DPTRMOVP0,AMOVA,R6MOVP2,ARLAMOVR6,AINCR5 NOPNOPNOPNOPNOPDJNZR3,MAIN7DJNZR4,MM7MOVA,#0MOVR4,AMOVR5,AMOVR6,AMOVA,R5MOVCA,A+DPTRMOVP0,AMOVA,R6MOVP2,ARLAMOVR6,AINCR5;LJMP START2WAIT:MOV P3,#0FFHCLR P3.4MOV A,P3ANL A,#0FHXRL A,#0FHJZ NOKEY1LCALL DELY10MSMOV A,P3ANL A,#0FHXRL A,#0FHJZ NO
37、KEY1MOV A,P3ANL A,#0FHCJNE A,#0EH,NK1MOV KEYBUF,#0LJMP DK1NK1: CJNE A,#0DH,NK2MOV KEYBUF,#1LJMP DK1NK2: CJNE A,#0BH,NK3MOV KEYBUF,#2LJMP DK1NK3: CJNE A,#07H,NK4MOV KEYBUF,#3LJMP DK1NK4: NOPDK1:MOV A,KEYBUFMOV DPTR,#TABLEMOVC A,A+DPTRMOV P0,AMOV A,KEYBUFMOV B,#2MUL ABMOV TEMP,AMOV DPTR,#TABLE1MOVC A,A+DPTRMOV ST