基于AT89C51的简易电子琴单片机课程设计报告书_第1页
基于AT89C51的简易电子琴单片机课程设计报告书_第2页
基于AT89C51的简易电子琴单片机课程设计报告书_第3页
基于AT89C51的简易电子琴单片机课程设计报告书_第4页
基于AT89C51的简易电子琴单片机课程设计报告书_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机课程设计题目名称: 基于单片机的可演奏电子琴设计专业班级:学生:学 号:指导教师:成绩:评语:指导老师签名:日期:摘要电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现 代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性, 它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要容是用 AT89c51单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与 键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声 器。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠, 性价比较高等,具有一定的实用和参考价值。Abs

2、tractElectronic organ is a modern electronic music technology and the product is a new type of keyboard instruments. It played an important role in modern music. SCM has powerful control functions and flexible programming characteristics. It has converged with modern people s lives, become an irrepl

3、aceable part. The main content is AT89C51 control of the core components, design of a electronic organ. SCM as a host to the core, with the keyboard, speaker and other core modules In the main control module has 16 keys and a speaker. The system is steady, its simple hardware circuits, software func

4、tions, reliability of control system and high cost performance is its advantages It also has certain practical and reference value目录摘要1Abstract 11系统概述31.1课程设计的目的和意义31.2本系统主要研究容31. 3本系统主要研究目标41. 4 主要芯片简介42方案论证42. 1控制模块选择方案42. 2按键模块选择方案53方案的实现53. 1系统实现的具体措施53. 2系统硬件设计63. 2. 1系统硬件总体设计63. 2. 2子系统(模块)一63

5、. 2.3子系统(模块)二73. 2.4子系统(模块)三83. 3系统软件设计93. 3. 1系统软件总体设计93. 3. 2子程序(模块)一:LED显示93. 3.3子程序(模块)二:扬声器103. 3. 4子程序(模块)三:矩阵键盘114系统调试124. 1 Proteus 简介124.2 keil 简介124. 3 Proteus 和 Keil 的联调135设计心得14参考文献15附录1: 161系统概述课程设计的目的和意义单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机, 它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。它的 应用必定导致传统的控制技术

6、从根本上发生变革。因此,单片机的开发应用已成 为高科技和工程领域的一项重大课题。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现 代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性, 它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要容是用 AT89S51单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与 键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声 器。本文主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电 子琴统硬件组成。利用单片机产主不同频率来获得我们要求的音阶,最终可随意 弹奏想要表达的音乐

7、。并且本文分别从原理图,主要芯片,各模块原理及各模块 的程序的调试来详细阐述。本系统是简易电子琴的设讣,按下键盘矩阵中的按键 会使数码管显示当前按键,扬声器播放器对应的音符。通过设计本系统可了解单 片机的基本功能。对单片机的了解有一个小的飞跃。1 2本系统主要研究容本系统设计制作一个可演奏的电子琴。综合应用了两项设计。(1)键盘矩阵识别。即矩阵扫描,显示当前按键。(2)不同频率音符播放。可以通过按键控制16种发音。1.3本系统主要研究目标本系统的设计是为了实现按下矩阵键盘中的按键会使数码管显示当前按 键,扬声器播放对应音符的LI标。1.4主要芯片简介AT89col 简介AT89c51是一个低功

8、耗,高性能CMOS 8位单片机,片含4k Bytes ISP (In-system programmable)的可反复擦写1000次的Flash只读程序存储器, 器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令 系统及80C51引脚结构,芯片集成了通用8位中央处理器和ISP Flash存储单元, 功能强大的微型计算机的AT89c51可为许多嵌入式控制应用系统提供高性价比 的解决方案。AT89c51具有如下特点:40个引脚(引脚图如图1 -2所示),4k Bytes Flash 片程序存储器,128 bytes的随机存取数据存储器(RAM) , 32个外部双向输入/

9、 输出(I/O) 口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数 器,2个全双工串行通信口,看门狗(WDT)电路,片时钟振荡器。此外,AT89c51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。 空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工 作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活 或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不 同产品的需求。2方案论证2. 1控制模块选择方案方案一:用可控硅制作电子琴。将220V交流电经变压器降压,再经过整流、 滤波,获得+13. 5V直流

10、电压。将单向可控硅SCR和电阻、电容组成驰振荡器电 路。但该设计方案制作成本高且复杂。方案二:釆用AT89C51单片机进行控制,由于其性价比高,完全满足了本作 品智能化的要求,它的部程序存储空间达到4K,使软件设计有足够的部使用空 间并且方便日后系统升级,使用方便,抗干扰性能提高。选择方案:鉴于上述对比与分析,AT89C51单片机设计微型电子琴的方法,仅 需AT89C51最小系统,扩展一组矩阵键盘,再接一组发光二极管用来指示电子琴 的工作状态。所以,本设计采用方案二。2. 2按键模块选择方案传统电子琴可以用键盘上的“1”到“A”键演奏从低SO到高DO等11音。 该设计有16个按钮矩阵,设计成1

11、6个音,可以实现音阶在低音4高音5之 间。比传统音阶围大,弹奏效果好。3方案的实现3. 1系统实现的具体措施键盘接口必须具有的4个基本功能。(1)去抖动:每个按键在按下或松开时,都会产生短时间的抖动。抖动的持 续时间与键的质量相关,一般为520mm,所谓抖动是指在识别被按键是必须避 开抖动状态,只有处在稳定接通或稳定断开状态才能保证识别正确无误。去抖问 题可通过软件延时或硬件电路解决。(2)防串键:防串键是为了解决多个键同时按下或者前一按键没有释放乂 有新的按键按下时产生的问题。常用的方法有双键锁定和N键轮回两种方法。双 键锁定,是当有两个或两个以上的按键按下时,只把最后释放的键当作有效键并

12、产生相应的键码。N键轮回,是当检测到有多个键被按下时,能根据发现它们的 顺序依次产生相应键的键码。(3)被按键识别:如何识别被按键是接口解决的主要问题,一般可通过软 硬结合的方法完成。常用的方法有行扫描法和线反转法两种。行扫描法的基本思想是,由程序对键盘逐行扫描,通过检测到的列输出状态来确定闭合键,为此, 需要设置入口、输出口一个,该方法在微机系统中被广泛使用。线反转法的基本 思想是通过行列颠倒两次扫描来识别闭合键,为此需要提供两个可编程的双向输 入/输出端口。(4)键码产生:为了从键的行列坐标编码得到反映键功能的键码,一般在 存区中建立一个键盘编码表,通过查表获得被按键的键码。用AT89C5

13、1的并行口 P0接4X4矩阵键盘,以PO. 0-P0. 3作输入线,以P0. 4 -P0.7作输出线;在数码管上显示每个按键的“0F”序号。3. 2系统硬件设计3.2.1系统硬件总体设计本系统山键盘矩阵、LED显示管、扬声器这儿个部分组成,LED显示管显示 当前按键,扬声器发出对应音符。硬件总体设计图如下:rR1C301 S 01 6 /匚E;1 7 /pl.qS.RP1 .C1T卜22ff KBkA匚K.EC2PSS4 ALErKFpl 12 M 2 3 M ? 4 E 4 5 d 5 & 6 了D17 8P1.0P1 1P1.2P1.3P1.1P1 5P1 &PI THB9ZS1v-| J

14、e0护973433PD1MD1P0KAD2 poawcG P0.4X4M P05W 滋 P0伽怖P0.加冈P2QMP2.1JA9 P22W10 P22VA11 P24W12 P2SJA13 P2GJA14 P27JA15P3.24丽P3.滿亓P3.4fTOP3.5fT1_ P3水殛 P3 7丽3. 2. 2子系统(模块)一LED显示模块如图2-2所示,利用AT89c51单片机的P0端口的PO. 0-P0. 7 连接到一个七段数码管的a-h的笔段上,数码管的公共端接电源。矩阵扫描显示当前按键模块如下:RP1RESPACK-839383736353433322122图2PO.O/ADOP0.1/A

15、D1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A93.2.3子系统(模块)二矩阵扫描扬声器发出对应音符模块如下:图33.2.4子系统(模块)三图4矩阵式键盘的结构与工作原理在键盘中按键数量较多时,为了减少I/O 口的占用,通常将按键排列成矩阵 形式。在矩阵式键盘中,每条水平线和垂直线在交义处不直接连通,而是通过一 个按键加以连接。这样,一个端口(如P1 口)就可以构成4*4=16个按键,比之 直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一 条线就可以构成20键的键盘,而直接用端口线则只能多出一

16、键(9键)。山此可见, 在需要的键数比较多时,采用矩阵法来做键盘是合理的。矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,上图中, 列线通过电阻接正电源,并将行线所接的单片机的I/O 口作为输出端,而列线所 接的I/O 口则作为输入。这样,当按键没有按下时,所有的输出端都是高电平, 代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样, 通过读入输入线的状态就可得知是否有键按下了。具体的识别及编程方法如下所 述。3. 3系统软件设计3. 3. 1系统软件总体设计本系统的软件总的流程图如下:3. 3.2子程序(模块)一:LED显示I/O并行口直接驱动LED显示把“AT

17、89C51”区域中的P2. 0/A8-P2. 7/A13端口用8芯排线连接到一位数码管的a-h端口上;要求:P2. 0/A8与d相连,P2. 1/A9与b相连,P2. 2/A10与c相连,P2. 7/A15与h相连。表1:表1字形码表及对应的音符10x3f低5 SO90x7f中6 LA20x06低6 LAA0x6f中7 SI30x5b低7 SIb0x77髙1 DO40x4f中1 DOC0x7c髙2 RE50x66中2 RED0x39髙3 M60x6d中3 ME0x5e髙4 FA70x7d中4 FAF0x79髙5 SO80x07中5 SO00x71髙6 LA在本设计中,数码管的显示通过P2二DS

18、Y_CODEk这句语言来查表并输出,实现音符的显示。具体程序见附录13. 3.3子程序(模块)二:扬声器一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我 们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片 机来产生不同的频率非常方便,我们可以利用单片机的定时/讣数器TO来产生这 样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。若要产生音频脉冲,只要算出某一音频的周期(1/频率),再将此周期除以 2,即为半周期的时间。利用定时器讣时半周期时间,每当计时终止后就将P3. 7 反相,然后重复计时再反相。就可在P3. 7引脚上得到此频率的脉冲

19、。利用AT89C51的部定时器使其工作讣数器模式(MODE1)下,改变计数值THO 及TLO以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T = 1/523 = 1912 P s,因此只要令计数器计时956 u s/1 u s=956,每计数956次时 将I/O反相,就可得到中音DO (523Hz)。计数脉冲值与频率的关系式是:N=fi4-24-fr式中,是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。其计数初值T的求法如下:T = 65536-N=65536-fi4-24-fr例如:设 K=65536, fi = lMHz,求低

20、音 DO (261Hz)、中音 DO (523Hz)、高 音DO (1046Hz)的计数值。T = 65536-N=65536-fi4-24-fr = 65536-10000004-24-fr= 65536 500000/fr低音 DO 的 T = 65536 - 500000/262 = 63628中音 DO 的 T = 65536-500000/523 = 64580高音 D0 的 T = 65536 500000/1046 = 65058我们要为这个音符建立一个表格,单片机通过查表的方式来获得相应的数 据:uint code Tone_De 1 ay_Tab 1 e =64021, 64

21、103, 64260, 64400, 64524, 64580,64684, 64777,64820,64898,64968, 65030, 65058, 65110, 65157, 65178 ;具体程序见附录13. 3.4子程序(模块)三:矩阵键盘矩阵式键盘的按键识别方法:确定矩阵式键盘上何键被按下介绍一种“行扫描法”。行扫描法行扫描法乂称为逐行(或列)扫描查询法,是一种最常用的按键 识别方法,如上图所示键盘,介绍过程如下。1、判断键盘中有无键按下将全部行线Y0-Y3置低电平,然后检测列线的状 态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电 平线与4根行线相交义的4

22、个按键之中。若所有列线均为高电平,则键盘中无键按 下。2、判断闭合键所在的位置在确认有键按下后,即可进入确定具体闭合键的 过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线 为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若 某列为低,则该列线与置为低电平的行线交义处的按键就是闭合的按键。具体程序见附录14系统调试4.1 Proteus 简介Proteus的ISIS是一款Labcenter出品的电路分析实物仿真系统,可仿真各 种电路和IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业的单 片机软件仿真系统。该软件的特点: 全部满足我们提出的单片机

23、软件仿真系统的标准,并在同类产品中具有明 显的优势。 具有模拟电路仿真、数字电路仿真、单片机及其外圉电路组成的系统的仿真、 RS-232动态仿真、C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种 虚拟仪器,如示波器、逻辑分析仪、信号发生器等。 目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、 PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。 支持大量的存储器和外围芯片。总之该软件是一款集单片机和SPICE分析 于一身的仿真软件,功能极其强大,可仿真51、AYR、PICo4.2 keil 简介单片机开发中除必要的硬件外,同样离

24、不开软件,我们写的汇编语言源程序 要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编, LI前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器 码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发 展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断 发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿 真机厂商纷纷宣布全面支持Keil即可看出。Ke订提供了包括C编译器、宏汇编、 连接器、库管理和一个功能强大的仿真调试器等在的完整开发方案,通过一个集 成开发环境(uVision)将这些

25、部份组合在一起。运行Keil软件需要Pentium或以上的CPU, 16MB或更多RAM、20M以上空闲的硬盘空间、WIN98 NT、WIN2000、 WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是 十分必要的,如果你使用C语言编程,那么Keil儿乎就是你的不二之选(目前 在国你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用 C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具 也会令你事半功倍。4. 3 Proteus 和 Kei I 的联调使用步骤:1、打开keil,建立工程,输入程序2、编译和生成hex文件。3、打开Pro

26、teus,设计硬件电路图。4、导入hex文件。将鼠标置于电路图中AT89C51器件上,右击后再左击, 在出现的窗口中找到如下图所示的Program File对话框,并填入hex文件对应 的路径。Program File:|Keil 可演奏电子琴.hex ZirI一li nn i i _图65、点击面板左下角的,开始调试。6、按下任意键,扬声器发出对应的声音,并在数码管上显示出键值,例如,按下KF按键,仿真结果如下:RP1丄U13z-K1二产KZ2产二严q一ArK5产KG严lKCKDJKEkF -alJ 沪0 1 口 1小、4 POWXWX1XLZPOMOT叭uyrP2WV5P2佃 P2 2曲0

27、KBT 券P23 曲 9 P2 412PZ4P2W佔KI AlHAUnXU P3.1/TXD旳 aiiFT 円MO pwipm田7特 町还rl.1WH JPMPISKl A円J2LLN7、按下另外一个K9键,仿真结果如下:U1RP1RE丹MX R1 ClHI丄q 伙 4:p: K2?K3 t:kpt K4K5r K6K7E a K8十Kge- A-kBKGX D-KEkFIXFJL1roOTADOHJ irAViXiALP07WrHSTpwTP2WM P2佃 P22XM0 R2iM11P2IMM-4 P27A1SpnfTOEA-I PI 0HP11 jpi2 伸3 f pi qIpisMi/T

28、xbP32/TO P3i7rrP3-VT0 P3T1 两 PJ曲其他的同理。5设计心得将程序导入AT89C51芯片,调试成功后,可任意弹奏自己想要的旋律。本课 题通过制作电子琴,将儿个模块很好的融合起来,对使用单片机设计简易电子琴 进行了分析,并介绍了基于单片机电子琴统硬件组成。利用单片机产生不同频率 来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。说明一首音乐是许多 不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的 频率的组合,即可构成我们所想要的音乐了,于是我们可以利用单片机的定时/ 计数器TO来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频 率关系弄

29、正确即可,然后我们利用功放电路来将音乐声音放大,同时通过显示模 块来确知自己所弹的音符。通过这次课程设讣,我感觉收获了很多:首先,通过实践,加深对单片机系列知识及其系统的认识。这个设计题LI并 不是新的,但从中能体现到一个系统开发设计的过程,足于让我们受益。笫二,通过设讣学习到了很多软件的使用。本次设计,软件部分用到了 Proteus进行硬件设计,用keil4进行程编译。第三,提高了自己的动手能力。动手在一定程度上反映了一个人的能力,作 为当代大学生,社会要求的我们不是只能说而不能做的人才;三能人才标准更让 我们清醒地认识到,实际动手能力无比重要。从这次实物制作中,我的动手能力 提高了。感学院

30、给了我们这次实践动手的机会,更感我们的郭老师教会了我们单 片机相关知识。本设计还可以扩展其他功能,比如记忆功能,即可以存储弹奏者所弹奏的音 乐且保存,待弹奏完后播放给弹奏者听。还可以做得更加娱怎一点,增加一些彩 灯使彩灯随着音调变化而产生不同的样式。参考文献1 谭浩强编著.C程序设计.:清华大学,2002.2 王东峰等.单片机C语言应用100例M.电子工业,2009.平等.单片机入门与开发M.机械工业,2008.4 周润景等.Proteus在MCS-51&ARM7系统中的应用白例M.电子工业,200.5 博琴.微型计算机原理与接口技术.清华大学,2004.6 晓丽等.数据结构与算法.:机械工业

31、,2002.7 黄鑫,马善农,永科.基于CPLD的电子琴研究与设计J.科技广场,2007(5).8 辉,印华.PR0TEL99电子线路CAD.邮电大学,2008.9 科技.单片机典型模块设计实例导航.:人民邮电,2005.10马忠梅,籍顺心等.单片机的C语言应用程序设II-H1.:航空航天大学,2007.附录1:名称:可演奏的电子琴本例在矩阵键盘上模拟演奏电子琴,数码管显示按键号#include #define uchar unsigned char#define uint unsigned int共阳极数码管编码uchar code DSY_Table= OxcO,0xf9,0xa4,0xb0,0x99,0x92,0x82,Oxf&ox80, /0J 23,4,5,6,7,8 0x90,0x88,0x83,0xc6.0xal,0x86,0x8e,0xBF ); 9,A,B,C,D,E,F,- 各音符对应的延时uint code Tone_Delay_Table=64021,64103,

温馨提示

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

评论

0/150

提交评论