1、学院毕业设计1学院学号姓名班级指导教师论文题目学院毕业设计I基于51单片机简易电子琴设计摘要随着社会的发展进步,音乐逐渐成为我们生活中很重要的一部分,有人曾说喜欢音乐的人不会向恶。我们都会抽空欣赏世界名曲,作为对精神的洗礼。本论文设计一个基于单片机的简易电子琴。我们对于电子琴如何实现其功能,如音色选择、声音强弱控制、节拍器等等也很好奇。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用STC89C51单片机为核心控制元件,设计一个电子琴。以单
2、片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有8个按键和扬声器。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。在电子行业高速发展的今天,单片机已经广泛的应用到了各个行业之中,其中也就包括了我所设计的娱乐项目,随意的弹奏音乐并且伴着灯光的闪烁,这就是我所以利用89C51单片机所设计的简易电子琴,电子琴的设计理念完全是利用89C51单片机的功能的研究和理解以及延伸拓展。以下我会详细介绍电路的设计和程序的编制过程。关键词89C51单片机电路程序学院毕业设计II目录目录II第一章绪论111课题背景112设计依据1第
3、二章系统方案设计及主控芯片介绍221系统基本设计思路222单元电路方案论证2221控制器模块2222发声模块2223编程软件模块3224最终方案323STC89C51单片机4第三章硬件电路设计731系统总体框图732最小系统设计733时钟电路834复位电路835按键控制模块936播放模块10第四章系统软件设计1241单片机发声概述1242编程软件KEILC511343画图软件PROTEL99SE1344PROTEL使用常见问题1545系统总体程序流程图16第五章调试与实现17结论18参考文献19致谢20附录1原理图21附录2PCB板图22附录3实物图23附录4源程序24学院毕业设计1第一章绪论
4、11课题背景单片机因其体积小,功能强,价格低廉而得到广泛应用,同时随着我国经济的飞速发展,单片机在越来越多的领域得到了广泛的应用,现在国内的单片机多用于电话,玩具和LCD等产品,预计在未来,利用单片机发明的产品会越来越多,作为一名应用电子的应届毕业生来说,理解和掌握单片机的工作原理和使用技巧是必备的技能,基于这种考虑,我这次毕业设计的题目为简易电子琴。我所设计的该产品时根据自身的兴趣和爱好所设计的,通过对传统电子琴的认识和了解,知道了传统的电子琴是利用单片机的汇编语言的编程来实现的,而且功能单一,我所设计的产品是基于对89C51单片机的深入理解对传统电子琴的小小的改革和创新,并且以简单的C语言
5、程序替代了复杂的汇编语言程序,我相信在电子琴的不断革新达到人们所需娱乐设备的标准的时候,电子琴会被投入到批量生产之中。单片微型计算机室大规模集成电路技术发展的产物,属于第四代电子计算机它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。他的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。12设计依据电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用STC89C51单片机为核心
6、控制元件,设计一个电子琴。以单片机作为主控核心,与键盘扬声器等模块组成核心主控制模块,在主控模块上设有8个按键。主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴硬件的组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏要表达的音符。并且分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样的方波频率信号,因此,就可以弹奏出不同的歌曲和音调。学院毕业设计2第二章系统方案设计及主控芯片介绍21系统基本设计思路此设计是用扬声器播放弹奏的曲子。电路包括键盘、单片机以及单片机周边最
7、小系统和晶振电路。211各部分说明(1)键盘用于弹奏音乐,八个按键8种音符。(2)单片机通过输出各种电脉冲信号驱动控制各部分正常工作。211系统工作过程单片机要产生音频脉冲,主要处理过程是在CPU中完成的,CPU会随时对音符输入信号进行读取数据的操作。在读取了相应的寄存器的值后,CPU将读取的值进行处理,再通过I/O口把音乐通过扬声器播放出来。22单元电路方案论证根据设计要求,本系统主要由控制器模块和输入模块构成。为较好的实现各模块的功能,我们分别设计了以下几种方案并分别进行了论证。221控制器模块方案1采用凌阳系列单片机为系统的控制器凌阳系列单片机可以实现各种复杂的逻辑功能,模块大,密度高,
8、它将所有器件集成在一块芯片上,减少了体积,提高了稳定性。凌阳系列单片机提高了系统的处理速度,适合作为大规模实时系统的控制核心。方案2采用51系列作为系统控制器单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制。由于其功耗低、体积较小、技术成熟和成本低等优点,在各个领域应用广泛。而且抗干扰性能好。因51单片机价格比凌阳系列低得多,且本设计不需要很高的处理速度,从经济和方便使用角度考虑,本设计选择了方案2。222发声模块发声模块是本设计的最主要的部分。基本方案发生电路是这次设计电路中最重要的组成部分,他承载着把单片机所产生的声音信号放大并输出的重要作用,而我的设计中的
9、发声电路主要是由两个S8050三极管驱动组成。S8050三极管是一种小功率的放大管,属于型号三极管,而对三极管引脚的判断有以下方法。安徽财贸职业学院毕业设计31判断三极管的基极。对于型号的三极管,用黑表笔接某一个电极,红表笔分别接另外两个电极,若测量电阻值两个都小,调换表笔后被测电阻值都较大,则可判断第一次测量中黑表笔所接的是基极;如果测量值一大一小,相差很大,则第一次测量中黑表笔接的不是基极,应该更换其他电极重测。2测量三极管发射极E和集电极C。三极管基极确定后,通过交换表笔,两次测量E,C极间的电阻,如果两次测量结果不相等,其中测得电阻值较小的一次为红表笔的是E极黑表笔接的是C极。对于型号
10、的三极管,方法与的相似,只是红黑表笔的作用相反,在测量E,C极间电阻时要注意,由于三极管的V(BR)CEO很小,很容易将发射结击穿。当我们三极管的管脚判断结束以后,我们就可以用两个三极管构成一个达林顿结构。首先当单片机10口输出一个高电平,由两个三极管构成的达林顿成能导通,导通后又能对电流又一定的放大作用,这样传到扬声器时信号能让我们听的更清楚。图21声音驱动电路223编程软件模块方案1采用汇编语言编程汇编语言指令是用一些具有相应含义的助忆符来表达的,所以,它要比机器语言容易掌握和运用,但另一方面,它要直接使用CPU的资源,相对高级程序设计语言来说,它又显得难掌握。方案2采用语言编程C语言与其
11、他高级语言相比,具有运算符的丰富性、语法表述的灵活性、对软硬件操作的兼容性、输入输出方式的新颖性等主要特征深入分析研究这些特征,可以加深对C语言的认识正确应用这些特征,可以灵活高效地解决各种实际问题因为我在大学期间对汇编语言没有深入的了解,而且在编程时一直用C语言,所以我选择了方案2。224最终方案经过反复论证,最终确定了如下方案(1)采用STC89C51单片机作为主控制器。安徽财贸职业学院毕业设计4(2)采用达林顿效应使音乐信号放大。(3)采用语言编程。23STC89C51单片机STC89C51是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程FLASH存储器。在单芯片上,拥有灵
12、巧的8位CPU和在系统可编程FLASH,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能8K字节FLASH,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口。另外STC89X51可降至0HZ静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHZ,6T/12T可选。
13、EA/VP31X119X218RESET9P37/RD17P36WR16P32/INT012P33/INT113P34/T014P35/T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30P31/TXD11P30/RXD10GND20VCC40U1STC89C52图22STC89C51单片机引脚图单片机是美国STC公司最新推出的一种新型51内核的单片机。片内含有FLASH程序存储器、SRAM
14、、UART、SPI、PWM等模块。(一)STC89C51主要功能、性能参数如下(1)内置标准51内核,机器周期增强型为6时钟,普通型为12时钟(2)工作频率范围040MHZ,相当于普通8051的080MHZ(3)STC89C51RC对应FLASH空间4KB(4)内部存储器(RAM512B(5)定时器计数器3个16位;(6)通用异步通信口(UART)1个;(7)中断源8个;(8)有ISP在系统可编程)IAP在应用可编程,无需专用编程器仿真器;安徽财贸职业学院毕业设计5(9)通用IO口3236个;(10)工作电压3855V;(11)外形封装40脚PDIP、44脚PLCC和PQFP等。(二)STC8
15、9C51单片机的引脚说明VCC供电电压。GND接地。P0口P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口
16、P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉
17、为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P30RXD(串行输入口)P31TXD(串行输出口)P32/INT0(外部中断0)P33/INT1(外部中断1)P34T0(记时器0外部输入)P35T1(记时器1外部输入)P36/WR(外部数据存储器写选通)P37/RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。I/O口作为输入口时有两种工作方式,即所谓的读端口与读引脚。读端口时实际上并不从外部读入数据,而是把端口锁存器的内容读入到内部总线,经过某种运算或变换后再写回到端口锁存器。只有读端口时才真正地把外部的数据读入
18、到内部总线。上面图中的两个三角形表示的就是输入缓冲器CPU将根据不同的指令分别发出读端口或读引脚信号以完成不同的操作。这是由硬件自动完成的,不需要我们操心,1然后再实行读引脚操作,否则就可能读入出错,为什么看上面的图,如果不对端口置1端口锁存器原来的状态有可能为0Q端为0Q为1加到场效应管栅极的信号为1,该场效应管就导通对地呈现低阻抗,此时即使引脚上输入的信号为1,也会因端口的低阻抗而使信号变低使得外加的1信号读入后不一定是1。若先执行置1操作,则可以使场效应管截止引脚信号直接加到三态缓冲器中实现正确的读入,由于在输入操作时还必须附加一个准备动作,所以这类I/O口被称为准双向口。89C51的P
19、0/P1/P2/P3口作为输入时都是准双向安徽财贸职业学院毕业设计6口。RST复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处
20、理器在外部执行状态ALE禁止,置位无效。/PSEN外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP当/EA保持低电平时,则在此期间外部程序存储器(0000HFFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2来自反向振荡器的输出。(三)STC89C51单片机最小系统最小系统包
21、括单片机及其所需的必要的电源、时钟、复位等部件,能使单片机始终处于正常的运行状态。电源、时钟等电路是使单片机能运行的必备条件,可以将最小系统作为应用系统的核心部分,通过对其进行存储器扩展、A/D扩展等,使单片机完成较复杂的功能。STC89C51是片内有ROM/EPROM的单片机,因此,这种芯片构成的最小系统简单可靠。用STC89C52单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,结构如图23所示,由于集成度的限制,最小应用系统只能用作一些小型的控制单元。图23单片机最小系统原理框图中断技术主要用于实时监测与控制,要求单片机能及时地响应中断请求源提出的服务请求,并作出快速响应
22、、及时处理。这是由片内的中断系统来实现的。当中断请求源发出中断请求时,如果中断请求被允许,单片机暂时中止当前正在执行的主程序,转到中断服务处理程序处理中断服务请求。中断服务处理程序处理完中断服务请求后,再回到原来被中止的程序之处(断点),继续执行被中断的主程序。图26为整个中断响应和处理过程。时钟电路复位电路STC89C51单片机I/O口安徽财贸职业学院毕业设计7图24中断响应和处理过程如果单片机没有中断系统,单片机的大量时间可能会浪费在查询是否有服务请求发生的定时查询操作上。采用中断技术完全消除了单片机在查询方式中的等待现象,大大地提高了单片机的工作效率和实时性。第三章硬件电路设计31系统总
23、体框图本设计采用STC89C51单片机作为主控制器,外部加上三极管驱动放音设备。系统总体框图如下图1系统总体框图32最小系统设计最小系统包括单片机及其所需的必要的电源、时钟、复位等部件,能使单片机始终处于正常的运行状态。电源、时钟等电路是使单片机能运行的必备条件,可以将最小系单片机电源模块晶振电路放歌模块按键演奏模块复位电路安徽财贸职业学院毕业设计8统作为应用系统的核心部分,通过对其进行存储器扩展、A/D扩展等,使单片机完成较复杂的功能。33时钟电路STC89C51内部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输入端和输出端。时钟可以由内部方式产生或外部方式产生
24、。内部时钟在此不做详细介绍。外部方式的时钟电路如图3所示,RXD接地,TXD接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率在12MHZ或110592MHZ晶振。Y1110592MHZC230PFC330PF1819图3189C51内部时钟电路34复位电路当在89C51单片机的RST引脚引入高电平并保持2个机器周期时,单片机内部就执行复位操作(若该引脚持续保持高电平,单片机就处于循环复位状态)。复位电路通常采用上电自动复位和按钮复位两种方式。最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充放电来实现的。只要VCC的上升时间不超过1MS,就可以实现自动上电
25、复位。除了上电复位外,有时还需要按键手动复位。本设计就是用的按键手动复位。按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST(9)端与电源VCC接通而实现的。按键手动复位电路见图4。时钟频率用110592MHZ时C取10UF,R取10K。R110KC110UFS4VCC9图3289C51复位电路安徽财贸职业学院毕业设计935按键控制模块电子琴设有8个按键,8个按键分别代表8个音符,包括中音段的全部音符,通过软硬件设计。如下图S1S2S3S4S5S6S7S8P30P31P32P33P34P35P36P37图33按键模块学院毕业设计1036播放模块播放模块是由2个三极管构成,三级管将信
26、号放大,然后传输到喇叭,喇叭它几乎不存在噪声,音响效果较好。下图是该模块电路图35播放模块三极管是电流放大器件,有三个极,分别叫做集电极C,基极B,发射极E。分成NPN和PNP两种。我们仅以NPN三极管的共发射极放大电路为例来说明一下三极管放大电路的基本原理。(1)电流放大下面的分析仅对于NPN型硅三极管。如上图所示,我们把从基极B流至发射极E的电流叫做基极电流IB;把从集电极C流至发射极E的电流叫做集电极电流IC。这两个电流的方向都是流出发射极的,所以发射极E上就用了一个箭头来表示电流的方向。三极管的放大作用就是集电极电流受基极电流的控制(假设电源能够提供给集电极足够大的电流的话),并且基极
27、电流很小的变化,会引起集电极电流很大的变化,且变化满足一定的比例关系集电极电流的变化量是基极电流变化量的倍,即电流变化被放大了倍,所以我们把叫做三极管的放大倍数(一般远大于1,例如几十,几百)。如果我们将一个变化的小信号加到基极跟发射极之间,这就会引起基极电流IB的变化,IB的变化被放大后,导致了IC很大的变化。如果集电极电流IC是流过一个电阻R的,那么根据电压计算公式URI可以算得,这电阻上电压就会发生很大的变化。我们将这个电阻上的电压取出来,就得到了放大后的电压信号了。(2)偏置电路三极管在实际的放大电路中使用时,还需要加合适的偏置电路。这有几个原因。首先是由于三极管BE结的非线性(相当于
28、一个二极管),基极电流必须在输入电压大到一定程度后才能产生(对于硅管,常取07V)。当基极与发射极之间的电压小于07V时,基极电流就可以认为是0。但实际中要放大的信号往往远比07V要小,如果不加偏置的话,这么小的信号就不足以引起基极电流的改变(因为小于07V时,基极电流BEEP10K80509050VCCP1430安徽财贸职业学院毕业设计11都是0)。如果我们事先在三极管的基极上加上一个合适的电流(叫做偏置电流,上图中那个电阻RB就是用来提供这个电流的,所以它被叫做基极偏置电阻),那么当一个小信号跟这个偏置电流叠加在一起时,小信号就会导致基极电流的变化,而基极电流的变化,就会被放大并在集电极上
29、输出。另一个原因就是输出信号范围的要求,如果没有加偏置,那么只有对那些增加的信号放大,而对减小的信号无效(因为没有偏置时集电极电流为0,不能再减小了)。而加上偏置,事先让集电极有一定的电流,当输入的基极电流变小时,集电极电流就可以减小;当输入的基极电流增大时,集电极电流就增大。这样减小的信号和增大的信号都可以被放大了。(3)开关作用下面说说三极管的饱和情况。像上面那样的图,因为受到电阻RC的限制(RC是固定值,那么最大电流为U/RC,其中U为电源电压),集电极电流是不能无限增加下去的。当基极电流的增大,不能使集电极电流继续增大时,三极管就进入了饱和状态。一般判断三极管是否饱和的准则是IBIC。
30、进入饱和状态之后,三极管的集电极跟发射极之间的电压将很小,可以理解为一个开关闭合了。这样我们就可以拿三极管来当作开关使用当基极电流为0时,三极管集电极电流为0(这叫做三极管截止),相当于开关断开;当基极电流很大,以至于三极管饱和时,相当于开关闭合。如果三极管主要工作在截止和饱和状态,那么这样的三极管我们一般把它叫做开关管。图36三极管引脚介绍安徽财贸职业学院毕业设计12第四章系统软件设计41单片机发声概述一般来说,单片机不像其他专业乐器那样能奏出多种音色的声音,即不包含相应幅度的谐振频率。单片机演奏的音乐基本都是单音频率。因此单片机演奏音乐比较简单,只需能清楚“音调”和“节拍”两个概念即可。音
31、调表示一个音符唱多高的频率。节拍表示一个音符唱多长的时间。知道了一个音符的频率后,便可以让单片机发出相应频率的振荡信号,从而产生相应的音符声音。通过单片机的定时器进行定时中断,在中断服务程序中将单片机上完结单片机I/O口来回置高电平或者是低电平的,从而让扬声器发出声音。通过节拍计算出每个音符所需要的时间,采用循环延时的方法来实现控制一个音符唱多长的时间,从而构成一首完整的音乐。音调主要由声音的频率决定。对一定强度的纯音,音调随频率的升降而升降;对一定频率的纯音、低频纯音的音调随响度增加而下降,高频纯音的音调却随响度增加而上升。音调的高低还与发声体的结构有关,因为发声体的结构影响了声音的频率。大
32、体上,2000赫兹以下的低频纯音的音调随响度的增加而下降,3000赫兹以上高频纯音的音调随响度的增加而上升。例如,在音乐中常常把中音C上方的A音定位标准高音,其频率F440HZ,其余音均与其进行比较。F1和F2为两个音符,如果这两个音符的频率相差一倍时,也即F22F1时,则称F2比F1高一个频程。在音乐中音符1与音符2,音符2与音符3等等之间正好相差一个倍频程,在音乐学中称它相差一个八度音。在一个八度内,有12个半音。由于人耳的听觉效果,这12个音阶的分度基本上是以对数的关系来划分的。只要知道12个音符的音高,也就是其基本频率,就可以根据音符之间的倍频关系得到其他音符的基本音调频率3。以标准高
33、音A的频率F440HZ,其对应的周期为T1/F1/4402272US因此需要在单片机I/O端口输出周期为T2272US的方波脉冲,也就是TT/22272/21136US也就是说,单片机上定时器的中断出发时间为1136US。如果单片机采用定时器为安徽财贸职业学院毕业设计13工作方式1,它以振荡器的十二分频信号为计数脉冲。设外接晶振的振荡器频率为F,则定时器的预置初始值有以下公式来确定TEMP6553650000/CURRENTFRE10/12000000/SYSTEM_OSCTHTEMP/256TLTEMP25642编程软件KEILC51KEILC51是美国KEILSOFTWARE公司出品的51
34、系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。KEILC51软件提供丰富的库函数和功能强大的集成开发调试工具,全WINDOWS界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KEILC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍KEILC51开发系统各部分功能和使用。KEIL_C软件界面如图41图41KEIL_C软件界面该软件是一款集编程和仿真于一体的软件,它支持汇编、C语言及二者的混合
35、编程。43画图软件PROTEL99SEPROTEL99SE是PORTEL公司在80年代末推出的EDA软件。PROTEL99SE是应用于WINDOWS9X/2000/NT操作系统下的EDA设计软件,采用设计库管理模式,可以网设计,具有很强的数据交换能力和开放性及3D模拟功能,是一个32位的设计软件,可以完成电路原理图设计,印制电路板设计和可编程逻辑器件设计等工作,可以设计32个信号层,16安徽财贸职业学院毕业设计14个电源地层和16个机加工层。PROTEL99SE软件的特点1可生成30多种格式的电气连接网络表;2强大的全局编辑功能;3在原理图中选择一级器件,PCB中同样的器件也将被选中;4同时运
36、行原理图和PCB,在打开的原理图和PCB图间允许双向交叉查找元器件、引脚、网络5既可以进行正向注释元器件标号(由原理图到PCB),也可以进行反向注释(由PCB到原理图),以保持电气原理图和PCB在设计上的一致性;6满足国际化设计要求(包括国标标题栏输出,GB4728国标库);方便易用的数模混合仿真(兼容SPICE3F5);7支持用CUPL语言和原理图设计PLD,生成标准的JED下载文件;PCB可设计32个信号层,16个电源地层和16个机加工层;8强大的“规则驱动”设计环境,符合在线的和批处理的设计规则检查;9智能覆铜功能,覆铀可以自动重铺;10提供大量的工业化标准电路板做为设计模版;11放置汉
37、字功能;12可以输入和输出DXF、DWG格式文件,实现和AUTOCAD等软件的数据交换;13智能封装导航(对于建立复杂的PGA、BGA封装很有用);14方便的打印预览功能,不用修改PCB文件就可以直接控制打印结果;15独特的3D显示可以在制板之前看到装配事物的效果;16强大的CAM处理使您轻松实现输出光绘文件、材料清单、钻孔文件、贴片机文件、测试点报告等;17经过充分验证的传输线特性和仿真精确计算的算法,信号完整性分析直接从PCB启动;18反射和串扰仿真的波形显示结果与便利的测量工具相结合;PROTEL99SE的工作界面是一种标准的WINDOWS界面,如图所示,包括标题栏、主菜单、标准工具栏、
38、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿安徽财贸职业学院毕业设计15真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。PROTEL99SE软件界面如图42。图42PRTEL99SE软件界面44PROTEL使用常见问题1原理图常见错误1ERC报告管脚没有接入信号A创建封装时给管脚定义了I/O属性;B创建元件或放置元件时修改了不一致的GRID属性,管脚与线没有连上;C创建元件时PIN方向反向,必须非PINNAME端连线。2元件跑到图纸界外没有在元件库图表纸中心创建元件。3创建的工程文件网络表只能部分调入PCB生成NETLIST时没有选择为GLOBAL。4当使用自己创建的多部
39、分组成的元件时,千万不要使用ANNOTATE2PCB中常见错误1网络载入时报告NODE没有找到A原理图中的元件使用了PCB库中没有的封装;安徽财贸职业学院毕业设计16B原理图中的元件使用了PCB库中名称不一致的封装;C原理图中的元件使用了PCB库中PINNUMBER不一致的封装。如三极管SCH中PINNUMBER为E,B,C,而PCB中为1,2,3。(2)打印时总是不能打印到一页纸上A创建PCB库时没有在原点;B多次移动和旋转了元件,PCB板界外有隐藏的字符。选择显示所有隐藏的字符,缩小PCB,然后移动字符到边界内。(3)DRC报告网络被分成几个部分表示这个网络没有连通,看报告文件,使用选择C
40、ONNECTEDCOPPER查找。另外提醒朋友尽量使用WIN2000,减少蓝屏的机会;多几次导出文件,做成新的DDB文件,减少文件尺寸。如果作较复杂得设计,尽量不要使用自动布线。45系统总体程序流程图开始程序初始化判断有无按键按下播放相应音调结束NY学院毕业设计17第五章调试与实现这是本设计较为困难的一部分,需要经过反反复复的调试,才能达到理想中的效果,以下将分文硬件与软件两部分介绍此次调试的过程,以及调试过程中遇到的困难和解决办法。程序主要取自一个音乐播放程序,但没有功率放大部分,更没有按钮部分。在此基础之上,首先是对其进行一定的修改,在保留原来音调产生程序的前提下,进行主程序的设计,首先对
41、所有端口进行初始化操作,接着进入不断循环部分,直到按键按下,进入防止抖动程序,如果不是抖动,则进入音乐播放程序,直到按键松开,再次进入等待按键按下部分。在KEIL软件经不断改进后,生成HEX文件,再用开发板烧入程序,并通过STCISP烧录软件烧录后,最终得以完成。程序在开始之初是用简单的中断延迟来实现,对于编歌曲来讲需要很大的工作量,在网上查找大量的资料之后,找到了一个做音乐播放器的程序,他也是基于中断延迟来实现播放功能,但是他对于歌曲编辑的灵活性,有很大的发展空间,所以我就采用了他的部分程序。所以,主要考虑到的是如何在播放完一个音节后,进入在此等待状态。对于该段程序中的主要保护手段,就是按钮
42、防治抖动部分,因此在等待按钮按下后,采用一小段的延迟程序,再次判定是否有按钮的按下,再进入播放程序。1)元器件的装插焊接应遵循先小后大,先轻后重,先低后高,先里后外的原则,这样有利于装配顺利进行。2)在瓷介电容、电解电容及三极管等元件立式安装时,引线不能太长,否则降低元器件的稳定性;但也不能过短,以免焊接时因过热损坏元器件。一般要求距离电路板面2MM,并且要注意电解电容的正负极性,不能插错。3)集成电路的焊接,在焊接时,首先要弄清引线脚的排列顺序,并与线路板上的焊盘引脚对准,核对无误后,先固定IC,然后再重复检查,确认后再焊接其余脚位。由于IC引线脚较密,焊接完后要检查有无虚焊,连焊等现象,确
43、保焊接质量。4)焊锡之前应该先插上电烙铁的插头,给电烙铁加热。5)焊接时,焊锡与电路板、电烙铁与电路板的夹角最好成45度,这样焊锡与电烙铁夹角成90度。6)焊接时,焊锡与电烙铁接触时间不要太长,以免焊锡过多或是造成漏锡;也不要过短,以免造成虚焊。7)元件的腿尽量要直,而且不要伸出太长,以1毫米为好,多余的可以剪掉。8)焊完时,焊锡最好呈圆滑的圆锥状,而且还要有金属光泽9)设计装上3节5号电池,确保电压在45V55V之间,首先检测电路板有无焊接短路,然后通电。确保万无一失安徽财贸职业学院毕业设计18结论通过对自己在大学两年时间里所学的知识的回顾,并充分发挥对所学知识的理解和对毕业设计的思考及书面
44、表达能力,最终完成了本设计。这为自己今后进一步深化学习,积累了一定宝贵的经验。撰写论文的过程也是专业知识的学习过程,它使我运用已有的专业基础知识,对其进行设计,分析和解决一个理论问题或实际问题,把知识转化为能力的实际训练。培养了我运用所学知识解决实际问题的能力。将以调试好的程序烧进STC89C51芯片,再放到电路板中,按下按键就可以发出相应的音。本次试验通过制作电子琴,将几个模块换呢好的融合起来,对使用单片机设计简易电子琴进行了分析,并接受了基于单片机电子期硬件组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。于是我们可以利用单片机的定时/计数器T0来产生这样方波
45、频率信号,然后我们利用功放电路来将音乐声音放大。通过这次实训设计,我感觉收获了很多通过这次的单片机实训,我加深了对单片机系列知识及其系统的认识。这个设计题目并不怎么新颖,但从中体现到了个系统开发设计的过程,足以让我们受益匪浅。在这次的实训中,让我更进一步的提高了动手能力,也重新复习了一次单片机的程序编程能力,在这期间,让我更加深刻了体会到了汇编程序的思路,加强了对编程能力的理解和对相应资料的查阅。学院毕业设计19参考文献1白炽贵编著单片机C语言案例教程北京电子工业出版社,201112周良权主编模拟电子技术基础北京高等教育出版社,200563卜锡滨主编数字电子技术北京中国水利水电出版社,2011
46、14李华单片机语言编程M北京北京航空航天大学出版社,2005815徐爱钧单片机原理实用教程基于PROTRUES虚拟仿真M北京电子工业出版社200916李萍AT89S51单片机、原理、开发与应用实例M北京中国电力出版社200877张晔,王玉民等单片机应用技术M北京高等教育出版社200638付家才等单片机控制工程实践技术M北京化学工业出版社200459及力主编电子CAD基于PROTEL99SE北京北京邮电大学出版社,200810徐红升主编电工基础及实训北京清华大学出版社,20095安徽财贸职业学院毕业设计20致谢三年的读书生活在这个季节即将划上一个句号,而于我的人生却只是一个逗号,我将面对又一次征
47、程的开始。三年的求学生涯在师长、亲友的大力支持下,走得辛苦却也收获满囊,在论文即将付梓之际,思绪万千,心情久久不能平静。伟人、名人为我所崇拜,可是我更急切地要把我的敬意和赞美献给一位平凡的人,我的导师。我不是您最出色的学生,而您却是我最尊敬的老师。您治学严谨,学识渊博,思想深邃,视野雄阔,为我营造了一种良好的精神氛围。授人以鱼不如授人以渔,置身其间,耳濡目染,潜移默化,使我不仅接受了全新的思想观念,树立了宏伟的学术目标,领会了基本的思考方式,从论文题目的选定到论文写作的指导,经由您悉心的点拨,再经思考后的领悟,常常让我有“山重水复疑无路,柳暗花明又一村”。感谢我的爸爸妈妈,焉得谖草,言树之背,
48、养育之恩,无以回报,你们永远健康快乐是我最大的心愿。在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚谢意同时也感谢学院为我提供良好的做毕业设计的环境。最后再一次感谢所有在毕业设计中曾经帮助过我的良师益友和同学,以及在设计中被我引用或参考的论著的作者。学院毕业设计21附录1原理图EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P10/T1P11/T2P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P06
49、33P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10GND20VCC40STC89C51/5289C52RC10UFVCC30P30P12MHZBEEPS112电源插口VCCS1S2S3S4S5S6S7S810KP30P31P32P33P34P35P36P37P30P31P32P33P34P35P36P37P10P11P1410K80509050VCCVCCP1430学院毕业设计22附录2PCB板图安徽财贸职业学院毕业设计23附录3实物图安徽财贸职业学院毕业设计24附录4源程序INCLUDEDEFINEUINTUNSIGNEDINTDEFINEUCHARUNSIGNEDCHARSBITSPEAKERP14/喇叭接30脚UCHARA,B,NUM1,S1NUM,N1,N2CHARNUM/定义NUM为可以负数UCHARCODEYINFU0XFB,0XE9,/DO0XFC,0X5C,/RE0XFC,0XC1,/MI0XFC,0XEF,/FA0XFD,0X45,/SO0XFD,0X92,/LA0XFD,0XD0,/SI0XFD,0XEE,/DO0X00,0X00,/间隔VOIDCHECK_KEY/改