毕业设计(论文)基于AT89C51单片机的电子琴设计.doc

上传人:文库蛋蛋多 文档编号:3978744 上传时间:2023-03-30 格式:DOC 页数:42 大小:971.50KB
返回 下载 相关 举报
毕业设计(论文)基于AT89C51单片机的电子琴设计.doc_第1页
第1页 / 共42页
毕业设计(论文)基于AT89C51单片机的电子琴设计.doc_第2页
第2页 / 共42页
毕业设计(论文)基于AT89C51单片机的电子琴设计.doc_第3页
第3页 / 共42页
毕业设计(论文)基于AT89C51单片机的电子琴设计.doc_第4页
第4页 / 共42页
毕业设计(论文)基于AT89C51单片机的电子琴设计.doc_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《毕业设计(论文)基于AT89C51单片机的电子琴设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于AT89C51单片机的电子琴设计.doc(42页珍藏版)》请在三一办公上搜索。

1、摘 要随着社会的发展进步,音乐逐渐成为我们生活中很重要的一部分,有人曾说喜欢音乐的人不会向恶。我们都会抽空欣赏世界名曲,作为对精神的洗礼。本论文设计一个基于单片机的简易电子琴。我们对于电子琴如何实现其功能,如音色选择、声音强弱控制、节拍器、自动放音功能等等也很好奇。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经融入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89C51单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有

2、16个按键和扬声器。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。关键词:AT89C51;电子琴;音频功率放大器;发光二极管 AbstractWith the development and progress of society,music has become an important part of life,it was said that people do not like the music to the evil.We will find time to enjoy the world music,as the bap

3、tism of the spirit.This thesis developed a simple microncontroller-based electronic key board.Electronic organ is a modern electronic music technology and the product is a new type of keyboard instruments.It played and important role in modern music.SCM has powerful control functions and flexible pr

4、oguamming characteristics.It has converged with modern peoples lives, become an irreplaceable 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

5、 and a speaker.The system is steady,its simple hardware circuits,software functions,reliability of control system and high cost performance is its advantages.It also has certain practical and reference value.Key words:AT89C51 single-chip;electric piano;LM386;LED目 录第1章 绪 论11.1 题目的来源与开发意义11.2 系统功能概述2第

6、2章 总体方案提出与论证硬件4第3章 硬件的设计53.1 硬件的构成53.1.1 AT89C51单片机53.1.2 芯片的擦除83.1.3 功放LM386103.1.4 LCD硬件接口123.1.5 44行列式键盘识别及显示123.1.6 时钟频率133.1.7 晶振电路原理143.1.8 复位电路143.1.9 输入输出(I/O)引脚153.2 硬件框图16第4章 软件的设计184.1 设计原理184.1.1 音乐知识184.1.2 播放原理184.2 按键识别184.3 LED数码管显示原理194.4 音乐产生原理204.5 按键功能识别224.6 音符产生方法224.7 播放功能软件原理

7、23第5章 系统调式与仿真265.1 Keil简介265.2 Keil C51开发系统基本知识265.2.1 系统概述265.2.2 Keil C51单片机软件开发系统的整体结构275.3 编程Keil uVision软件275.4 Professional 7软件的介绍295.5 程序代码31第6章 系统的调试356.1 系统硬件调试356.2 系统软件调试35第7章 结 论36参考文献37致 谢38第1章 绪 论1.1 题目的来源与开发意义单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。它的应用必定导致传统

8、的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域一项重大课题。随着计算机在社会各领域的渗透,单片机的应用正在不断地走向深入,同时带动着工业、农业、商业、家电以及玩具的日新月异的更新,极大地提高了电子电路及系统设计质量和效率。本设计是以主控芯片AT89C51为中心器件,电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经融入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89C51单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主

9、控制模块,在主控模块上设有16个按键和扬声器。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。电子乐器的结构较为复杂,音源是由晶体管产生的电振动,并通过音色回路而产生各种音色;同时由周波数调制产生颤音效果,由振幅调制产生各种乐器的音效。电子琴的外形很像普通键盘乐器,只是某些种类多一排脚踏键盘,而且手触键盘也往往分为两层。键盘式电子琴声音丰富、柔美,有变音装置,能发出多种不同的音色,可以作为独特的乐器进行演奏,还能代替传统的风琴、钢琴供音乐课教学。传统乐器的声音是通过机械的方式产生的,电子琴的声音是用“电”产生的。振荡器时根据需要产生一定

10、频率的振荡信号,振荡信号通过分频器分解成不同频率的信号输送到放大器,放大器将信号放大,推动扬声器发出声音。键盘实际是一些开关,如果没有键盘,许多频率的信号一齐进到放大器里,通过扬声器发出的声音就会乱七八糟,不成音乐。按下键盘的一支键,就等于按通一只开关,只允许某一种频率的信号通过到放大器离去,扬声器就发出一个音来。这样,按照一定的演奏规律来按键,就能奏出美妙的音乐来。电源的任务是给各部分供电。这次的电子琴是由16个按钮,设计成16音符。然后再用一个模拟音频放大模块来使音乐播出的声音变大。用户通过这16个键的随意组合产生一首简单的音乐。本文主要对使用单片机设计建议电子琴进行了分析,并介绍了基于单

11、片机电子琴硬件组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。并且本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。本系统是简易电子琴的设计,按下键盘矩阵中的按键会使扬声器播放对应的音符。通过设计本系统可了解单片机的基本功能。对单片机的了解有了一个小的飞跃。一首音乐是许多不懂的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。1.2 系统

12、功能概述本系统是利用AT89C51单片机设计的电子琴,硬件电路简单,如果设计对象为复杂的电子琴系统,其实际原理与方法与本设计基本相同。由于单片机的强大功能,除了在测试控制领域中有着广泛的应用外,还有一些而有趣的应用。比如,使用单片机可以驱动蜂鸣器或者扬声器发出声音,还可以控制其发出的不同声调,从而连接起来构成一个曲子。目前,市场上有很多种音乐模块或者音乐芯片,可以直接产生各种曲子。但是,这种模块价格比较昂贵,电路结构比较复杂。如果系统中仅需要产生简单的音符或者简短的曲子,可以使用单片机配合简单的扬声器而产生需要的音乐效果。一般来说,单片机不像其他专业乐器那样能奏出多种音色的声音,即不包含相应幅

13、度的谐波频率。单片机演奏的音乐基本都是单音频率。因此单片机演奏音乐比较简单,只需要清楚“音调”和“节拍”。音调表示一个音符唱多高的频率。节拍表示一个音符唱多长的时间。本设计主要是通过对电子琴主体部分的电路进行模仿设计,达到电子琴固有的基本功能,故叫简易电子琴。利用定时器可发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同音调。其次,定时器按设置的定时参数产生中断,这一次中断发出脉冲低电平,下一次反转发出脉冲高电平,由于定时参数不同,就发出不同频率的脉冲,本设计中按键一次,会发出50个脉冲,松开后随之延时10个脉冲,但在延时的10个脉冲期间继续检测键盘,若此时又有键被按下,

14、若被按下的仍为原键则声音不变,否则键盘会译出被按下的另一个键的音调。这次的电子琴是由44组成16个按钮矩阵,设计成16个音。然后再用一个音频放大模块来使音乐播出的声音变大。用户可通过这16个键的随意组合来产生不同的音乐,使用起来也很简单。第2章 总体方案提出与论证硬件方案一:采用静态RAM存储显示屏的显示内容,静态数据存储器具有存储容量大,传输速度快等优点。但其存储的数据掉电后会消失,因此不适合用于存储长时间不变的数据。方案二:采用ROM芯片存储LED显示屏要显示的信息,采用ROM芯片可以长时间的存储信息,而且掉电数据不丢失,此种方式适合于存储不变的数据。方案三:采用串行EEPROM存储LED

15、显示屏要显示的信息。串行EEPROM技术是一种非易失性存储技术,它几乎具有所有类型存储器的优点:不挥发性、可更新性、高密度、低功耗和高性价比,非常适合应用于各类工业测控系统。它克服了常用的2816、2817、2864等并行EEPROM器件价格高、体积大、可靠性低(这些器件如不采取措施,在上电、下电时常会丢失数据)等不足,在速度要求不是很高的情况下,该器件是最理想的选择。比较以上三种方案,方案三有明显的优点,因此选择方案三。第3章 硬件的设计3.1 硬件的构成3.1.1 AT89C51单片机本系统的单片机选用AT89C51单片机,AT89C51是一个低功耗,高性能CMOS 8位单片机,片内含4k

16、 Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89C51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89C51芯片介绍AT89C51是一种带4K字节FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。

17、AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。主要特性:与MCS-51 兼容 4K字节可编程FLASH存储器 寿命:1000写/擦循环 数据保留时间:10年 全静态工作:0Hz-24MHz 三级程序存储器锁定 1288位内部

18、RAM 32可编程I/O线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路此外,AT89C51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。同时,编辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM掉电中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并且

19、禁止其它所有部件的工作。管脚说明图3.1 CPU引脚图VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH

20、编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出

21、4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示: 口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,

22、要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期

23、间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。振荡器特性: XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部

24、时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。3.1.2 芯片的擦除整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。 此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止

25、所用其他芯片功能,直到下一个硬件复位为止。串口通讯SBUF 数据缓冲寄存器这是一个可以直接寻址的串行口专用寄存器。有朋友这样问起过“为何在串行口收发中,都只是使用到同一个寄存器SBUF?而不是收发各用一个寄存器。”实际上SBUF 包含了两个独立的寄存器,一个是发送寄存,另一个是接收寄存器,但它们都共同使用同一个寻址地址99H。CPU 在读SBUF 时会指到接收寄存器,在写时会指到发送寄存器,而且接收寄存器是双缓冲寄存器,这样可以避免接收中断没有及时的被响应,数据没有被取走,下一帧数据已到来,而造成的数据重叠问题。发送器则不需要用到双缓冲,一般情况下我们在写发送程序时也不必用到发送中断去外理发送

26、数据。操作SBUF寄存器的方法则很简单,只要把这个99H 地址用关键字sfr定义为一个变量就可以对其进行读写操作了,如sfr SBUF = 0x99;当然你也可以用其它的名称。通常在标准的reg51.h 或at89x51.h 等头文件中已对其做了定义,只要用#include 引用就可以了。 SCON 串行口控制寄存器通常在芯片或设备中为了监视或控制接口状态,都会引用到接口控制寄存器。SCON 就是51 芯片的串行口控制寄存器。它的寻址地址是98H,是一个可以位寻址的寄存器,作用就是监视和控制51 芯片串行口的工作状态。51 芯片的串口可以工作在几个不同的工作模式下,其工作模式的设置就是使用SC

27、ON 寄存器。它的各个位的具体定义如下: SM0 SM1 SM2 REN TB8 RB8 TI RI SM0、SM1 为串行口工作模式设置位,这样两位可以对应进行四种模式的设置。串行口工作模式设置。 SM0 SM1 模式 功能 波特率 0 0 0 同步移位寄存器 fosc/12 0 1 1 8位UART 可变 1 0 2 9位UART fosc/32 或fosc/64 1 1 3 9位UART 可变 在这里只说明最常用的模式1,其它的模式也就一一略过,有兴趣的朋友可以找相关的硬件资料查看。表中的fosc 代表振荡器的频率,也就是晶振的频率。UART 为(Universal Asynchrono

28、us Receiver)的英文缩写。 SM2 在模式2、模式3 中为多处理机通信使能位。在模式0 中要求该位为0。 REM 为允许接收位,REM 置1 时串口允许接收,置0 时禁止接收。REM 是由软件置位或清零。如果在一个电路中接收和发送引脚P3.0,P3.1 都和上位机相连,在软件上有串口中断处理程序,当要求在处理某个子程序时不允许串口被上位机来的控制字符产生中断,那么可以在这个子程序的开始处加入REM=0 来禁止接收,在子程序结束处加入REM=1 再次打开串口接收。大家也可以用上面的实际源码加入REM=0 来进行实验。 TB8 发送数据位8,在模式2 和3 是要发送的第9 位。该位可以用

29、软件根据需要置位或清除,通常这位在通信协议中做奇偶位,在多处理机通信中这一位则用于表示是地址帧还是数据帧。 RB8 接收数据位8,在模式2 和3 是已接收数据的第9 位。该位可能是奇偶位,地址/数据标识位。在模式0 中,RB8 为保留位没有被使用。在模式1 中,当SM2=0,RB8 是已接收数据的停止位。 TI 发送中断标识位。在模式0,发送完第8 位数据时,由硬件置位。其它模式中则是在发送停止位之初,由硬件置位。TI 置位后,申请中断,CPU 响应中断后,发送下一帧数据。在任何模式下,TI 都必须由软件来清除,也就是说在数据写入到SBUF 后,硬件发送数据,中断响应(如中断打开),这时TI=

30、1,表明发送已完成,TI 不会由硬件清除,所以这时必须用软件对其清零。 RI 接收中断标识位。在模式0,接收第8 位结束时,由硬件置位。其它模式中则是在接收停止位的半中间,由硬件置位。RI=1,申请中断,要求CPU 取走数据。但在模式1 中,SM2=1时,当未收到有效的停止位,则不会对RI 置位。同样RI 也必须要靠软件清除。常用的串口模式1 是传输10 个位的,1 位起始位为0,8 位数据位,低位在先,1 位停止位为1。它的波特率是可变的,其速率是取决于定时器1 或定时器2 的定时值(溢出速率)。AT89C51 和AT89C2051 等51 系列芯片只有两个定时器,定时器0 和定时器1,而定

31、时器2是89C52 系列芯片才有的。3.1.3 功放LM386LM386是一种音频集成功放,且具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点,广泛应用于录音机和收音机之中。LM386内部电路图3.2 LM386内部电路原理图LM386内部电路原理图如图所示。与通用型集成运放相类似,它是一个三级放大电路。 第一级为差分放大电路,T1和T3、T2和T4分别构成复合管,作为差分放大电路的放大管;T5和T6组成镜像电流源作为T1和T2的有源负载;T3和T4信号从管的基极输入,从T2管的集电极输出,为双端输入单端输。出差分电路。使用镜像电流源作为差分放大电路有源负载,可使

32、单端输出电路的增益近似等于双端输出电容的增益。 第二级为共射放大电路,T7为放大管,恒流源作有源负载,以增大放大倍数。 第三级中的T8和T9管复合成PNP型管,与NPN型管T10构成准互补输出级。二极管D1和D2为输出级提供合适的偏置电压,可以消除交越失真。 引脚2为反相输入端,引脚3为同相输入端。电路由单电源供电,故为OTL电路。输出端(引脚5)应外接输出电容后再接负载。 电阻R7从输出端连接到T2的发射极,形成反馈通路,并与R5和R6构成反馈网络,从而引入了深度电压串联负反馈,使整个电路具有稳定的电压增益。LM386特性静态功耗低,约为4mA,可用于电池供电。工作电压范围宽,4-12V o

33、r 5-18V。外围元件少。电压增益可调,20-200。低失真度。LM386是美国国家半导体公司生产的音频功率放大器,主要应用于低电压消费类产品。为使外围元件最少,电压增益内置为20。但在1脚和8脚之间增加一只外接电阻和电容,便可将电压增益调为任意值,直至 200。输入端以地位参考,同时输出端被自动偏置到电源电压的一半,在6V电源电压下,它的静态功耗仅为24mW,使得LM386特别适用于电池供电的场合。 LM386的封装形式有塑封8引线双列直插式和贴片式。LM386的引脚3.3 LM386的引脚图LM386的外形和引脚的排列如图2.3所示。引脚2为反相输入端,3为同相输入端;引脚5为输出端;引

34、脚6和4分别为电源和地;引脚1和8为电压增益设定端;使用时在引脚7和地之间接旁路电容,通常取10F。LM386的电源电压4-12V或5-18V(LM386N-4);静态消耗电流为4mA;电压增益为20-200dB;在1、8脚开路时,带宽为300KHz;输入阻抗为50K;音频功率0.5W。3.1.4 LCD硬件接口LCD液晶显示器是Liquid Crystal Display 的简称,LCD的构造是在两片平行的玻璃当中放置液态的晶体,两片玻璃中间有许多垂直和水平的细小电线,透过通电与否来控制杆状水晶分子改变方向,将光线折射出来产生画面。比CRT要好的多,但是价钱较其贵。本设计所用LCD的引脚,其

35、中,D0D7为双向数据总线,LCD数据读写方式可以分为8位及4位两种。若以8位数据进行读写,则D0D7皆有效,若以4位方式进行读写,则只用到D0D4。RS为寄存器选择控制线,当RS为0且做写入操作时,可以写指令寄存器;若RS为1,则用于读写数据寄存器。R/W为LCD读写控制线,R/W为0,LCD执行写作,R/W为1时,则做读操作。VO为亮度调整电压输入控制引脚,输入0V时,字符显示最亮。LCD可以实时显示目前演奏的单音码,可以实时显示所存储的单音计数。按键9是清除键,可将存储的单音计数清0;按键8是放音键,可将内存中的单音逐一演奏出来,演奏中可以按K4键来中断。本设计使用一般的LCD显示器来显

36、示音乐演奏的消息及单音码。3.1.5 44行列式键盘识别及显示组成键盘的按键有机械式、电容式、导电橡胶式、薄膜式等多种,但不管什么形式,其作用都是一个使电路接通与断开的开关。目前微机系统中使用的键盘按其功能不同,通常可分为编码键盘和非编码键盘两种基本类型。编码键盘:键盘本身带有实现接口主要功能所需的硬件电路。不仅能自动检测被按下的键,并完成去抖动、防串键等功能,而且能提供与被按键对应的键码(如ASCII码)送往CPU。所以,编码键盘接口简单、使用方便。但由于硬件电路较复杂,因而价格较贵。非编码键盘:键盘只简单地提供按键开关的行列矩阵。有关按键的识别、键码的确定与输入、去抖动等功能均由软件完成。

37、目前微机系统中,一般为了降低成本,大多数采用非编码键盘。键盘接口必须具有去抖动、防串键、按键识别和键码产生4个基本功能。(1)去抖动:每个按键在按下或松开时,都会产生短时间的抖动。抖动的持续时间与键的质量相关,一般为520mm。所谓抖动是指在识别被按键是必须避开抖动状态,只有处在稳定接通或稳定断开状态才能保证识别正确无误。去抖问题可通过软件延时或硬件电路解决。(2)防串键:防串键是为了解决多个键同时按下或者前一按键没有释放又有新的按键按下时产生的问题。常用的方法有双键锁定和N键轮回两种方法。双键锁定,是当有两个或两个以上的按键按下时,只把最后释放的键当做有效键并产生相应的键码。N键轮回,是当检

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

39、1.3作输入线,以P1.4-P1.7作输出线;在数码管上显示每个按键的“0-F”序号。3.1.6 时钟频率单片机必须在时钟的驱动下才能工作。在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。外部振荡源电路一般选用石英晶体振荡器,此电路在加点大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路中两个电容C1,C2,作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。C1,C2的典型值为30PF。单片机在工作时,由内部振荡器产生的周期或由外直接输入的

40、送至内部控制逻辑单元的时钟信号的周期,称为时钟周期。其大小是时钟信号频率的倒数,通常用fosc表示。如时钟频率为12MHz,即fosc12MHz,则时钟周期为1/12s。3.1.7 晶振电路原理图3.4 时钟电路P19:时钟XTAL1脚,P18:时钟XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对震荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30PF左右。型号同样为AT89C51的芯片,在其后面还有频率编号,有12,16,2

41、0,24MHz可选。大家在购买和选用时要注意了。如AT89C51 24PC就是最高震荡频率为24MHz,40P6封装的普通商用芯片。3.1.8 复位电路在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引脚时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。复位后P0-P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。当复位脚由高电平变为低电平时,芯片为ROM的0000H处开始运行程序。常用的复位电路如下图所示:图3.5 复位电路图复位操作不会对内部RAM有所影响。当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电

42、平,系统即初始复位。什么叫复位?复位是单片机重新执行程序代码的意思。8051的复位方式可以是自动复位,也可以是手动复位。此外,RESET还是一复用脚,Vcc掉电期间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。3.1.9 输入输出(I/O)引脚P39-P32为P0.0-P0.7输入输出脚,称为P0口,是一个8位漏极开路型双向I/O口。内部不带上拉电阻时,P0口能以吸收电流的方式驱动八个LSTTL负载电路。通常在使用时外接上拉电阻,用来驱动多个数码管。在访问外部程序和外部数据存储器时,P0口是分时转换的地址(低8位)/数据总线,不需要外接上拉电阻。P1-P8为P1.0-P1.7输入输

43、出脚,称为P1口,是一个带内部上拉电阻的8位双向I/O口。P1口能驱动4个LSTTL负载。通常在使用时外不需要外接上拉电阻,就可以直接驱动发光二极管。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。P21-P28为P2.0-P2.7输入输出脚,称为P2口,是一个带内部上拉电阻的8位双向I/O口,P2口能驱动4个LSTTL负载。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash程序存储器编程时,接收高8位地址和控制信息。在访问外部程序和16位外部数据存储器时,P2口送出高8位地址。而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改变。P10-P17为P3.0-P

44、3.7输入输出脚,称为P3口,是一个带内部上拉电阻的8位双向I/O口,P2口能驱动4个LSTTL负载,这8个引脚还用于专门的第二功能。端口置1时,内部上拉电阻将端口拉到高电平,作输入用,如下表:表3.1 P3口功能P3引脚兼用功能P3.0串行通讯输入(RXD)P3.1串行通讯输出(TXD)P3.2外部中断0(1NT0)P3.3外部中断1(1NT1)P3.4定时器0输入(T0)P3.5定时器1输入(T1)P3.6外部数据存储器写选通WRP3.7外部数据存储器写选通RDP1-P3端口在做输入使用时,因内部有上接电阻,被外部拉低的引脚会输出一定的电流。除此之外P3端口还用于一些专门功能。3.2 硬件

45、框图单片机电子琴电路由AT89C51芯片、复位电路、时钟电路、键盘电路和发音电路5个部分组成,各部分有自己独立的功能,电路总框图如下图所示:图3.6 电子琴八功能设计电路图图3.7 电子琴音乐播放功能电路图以AT89C51单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块在主控模块上设有扬声器和8个按键,根据使用者的操作随意弹奏想要表达的音乐。一首音乐是许多不同音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来生产不同的频率非常方便,我们可以利用单片机的定时/计数器T0来生产这样方波频率信号,因此,我们只要把一首歌曲

46、的音阶对应频率关系弄正确即可。第4章 软件的设计4.1 设计原理4.1.1 音乐知识音乐中使用的各个固定基本频率叫音级,常用符号C,D,E,F,G,A,B,c表示,也就是简谱中的1,2,3,4,5,6,7,i,以C调为准,各音级的频率如下: 表4.1 C调各音级频率 单位:赫兹音级中 IDO中 2RE中 3MI中 4FA中 5SO中 6LA中 7SI频率523578659698784880988音级高 IDO高 2ER高 3MI高 4FA高 5SO高 6LA高 7SI频率10461175131813971568176019764.1.2 播放原理一首音乐是许多不懂的音阶组成的,而每个音阶对应着

47、不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。若要产生音频脉冲,只要算出某一音频的周期(1/频率),再将此周期除以2,即为半周期的时间。利用定时计时半周期时间,每当计时终止后就将P1.0反相,然后重复计时再反相。就可以在P1.0引脚上得到此频率的脉冲。4.2 按键识别1)8个按钮键盘识别;2)不同音符产生的方法;扬声器发生原理:只要让扬声器(speaker)通过会产生大小变化的电流,就能使扬声器发出声音。因此,若以程序不断地输出1-0-1-0-就可令扬声器发出声音。由于MCS-51系列的输出端口电流不够头。所以必须加上晶体管把电流放大后再驱动扬声器如图所示,只要半周期T的时间,即看可改变输出频率。图4.1 扬声器图4.3 LED数码管显示原理七段LED显示器内部由七

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号