您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 单片机最小系统电子琴
1桂林电子科技大学单片机最小应用系统设计报告指导老师:吴兆华学生:孙培新学号:082011109机电工程学院2009年5月2单片机最小应用系统设计报告一、设计题目………………………………………………………1二、设计目的………………………………………………………1三、系统硬件图……………………………………………………1四、程序流程图……………………………………………………6五、系统说明与分析5.1系统主要组成部分………………………………………75.2单片机最小系统部分……………………………………75.34X4矩阵按键……………………………………………125.4发声系统…………………………………………………155.5电路板的制作……………………………………………17六、源程序………………………………………………………18七、总结…………………………………………………………24八、参考文献……………………………………………………243一、设计题目简易电子琴的设计。本实验用89S51单片机控制,由4X4组成16个按钮矩阵,设计成16个音。可随意弹奏想要表达的音乐。二、设计目的1、通过本次实验,掌握利用芯片89S51。2、通过对LM386N1的使用和编程,掌握运放的基本结构与编程方法。3、搭建单片机最小应用系统,进一步加深对单片机应用的理解,提高处理实际问题的能力、独立分析思考的能力和动手能力。三、系统硬件图1简易电子琴系统的硬件电路原理图如下:图1电路原理图42、Proteus仿真图如下:53、Protel99sePCB图如下:图2PCB图6四、程序流程图简易电子琴系统程序框图如下:图3程序流程图T0中断入口重装TH0,TL0初值P1.0取反中断返回开始行列式键盘按键按下成功否?识别按键功能根据按键功能,装入音符T值到T0中启动T0工作行列式键盘按键释放成功否?停止T0工作T0初始化并开中断允放T0中断7五、系统说明与分析5.1系统主要组成部分简易电子琴系统主要分为三个部分:单片机最小系统,4X4矩阵按键,发声系统。所用主要元件有:AT89S51,LM386N1,16个按键。5.2单片机最小系统部分本实验中选用AT89S51作为主芯片,其特性为:5.2.1简介AT89S51是一个低功耗,高性能CMOS8位单芯片内含4kBytesSP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序内存,采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,断电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断启动或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。5.2.2主要特性:·8031CPU与MCS-51兼容·4K字节可编程FLASH存储器(寿命:1000写/擦循环)8·全静态工作:0Hz-24KHz·三级程序存储器保密锁定·128*8位内部RAM·32条可编程I/O线·两个16位定时器/计数器·6个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路5.2.3管脚说明:一、I/O端口:P0.0~P0.7,P1.0~1.7,P2.0~P2.7,P3.0~P3.7。89S51共有4个I/O端口,为P0、P1、P2、P3,4个I/O口都是双向的,且每个口都具有锁存器。每个口有8条线,共计32条I/O线。各端口的功能叙述如下:1.P0有三个功能:(1)外部扩充存储器时,当作数据总线(D0~D7)。(2)外部扩充存储器时,当作地址总线(A0~A7)。(3)不扩充时,可做一般I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。2.P1只做I/O口使用,其内部有上拉电阻。3.P2有两个功能:(1)扩充外部存储器时,当作地址总线(A8~A15)使用。(2)做I/O使用,其内部有上拉电阻。4.P3有两种功能。除了作为I/O使用外(内部有上拉电阻),还有一些特殊功能,如表所示由特殊寄存器来设置。5.主电源引脚Vss——(20脚):电路低电平Vcc——(40脚):正常运行和编程校验(80151/8052)时为+5V电源6.RST/VPD——(9脚):RST即Reset(复位)信号输入端。振荡器工作时,由该引脚输入脉宽2个以上机器周期的高电平时复位单片微机。当外部在RST与Vcc之间接一个电容(约10µF)和在RST与Vcc之间接一个电阻(约8.2kΩ)时,就可实现加电复位功能。VPD为备用电源输入端,即当VCC掉电时,由此引脚提供备用电源,以保持内部RAM的信9息。7.ALE/PGOG——(30脚):ALE,允许地址锁存信号输出。当访问外部存储器时,ALE信号的负跳变将P0口上的低8位地址送入锁存器。在非访问外部存储器间,ALE仍以1/16振荡频率固定不变的速率输出,因此它能作外部时钟或定时信号用。当访问外部数据存储器时,将以1/12振荡频率输出。PROG为编程脉冲输入端,即当选用8751单片微机时,对片内程序存储器进行编程时,由此引脚输入编程脉冲。8.PSEN——(29脚):程序储存使能端。(1)内部程序存储器读取;不动作。(2)外部程序存储器读取(ROM):在每个机器周期会动作两次。(3)外部程序存储器读取(RAM):两个/PSEN脉冲被跳国不会输出。(4)外接ROM时,与ROM的/OE脚连接。9.EA/VPP——(31脚)(1)接高电平时:CPU读取内部程序存储器(ROM),如8051/8/052。扩充外部ROM:当读取内部程序存储器超过0FFF(8051)时,自动读取外部ROM。(2)接低电平时:CPU读取外部程序存储器(ROM),如8031/8032。(3)8751烧写内部EPROM时,利用此脚输入21V的烧写电压。10.XTAL1——(19脚)XTAL2——(18脚):接石英晶体振荡器。机器周期=石英晶体/12,如12MHz石英晶体/12=1微秒。I/O口作为输入口时有两种工作方式即所谓的读端口与读引脚读端口时实际上并不从外部读入数据而是把端口锁存器的内容读入到内部总线经过某种运算或变换后再写回到端口锁存器只有读端口时才真正地把外部的数据读入到内部总线上面图中的两个三角形表示的就是输入缓冲器CPU将根据不同的指令分别发出读端口或读引脚信号以完成不同的操作这是由硬件自动完成的不需要我们操心读引脚时也就是把端口作为外部输入线时首先要通过外部指令把端口锁存器置1然后再实行读引脚操作否则就可能读入出错为什么看上面的图如果不对端口置1端口锁存器原来的状态有可能为0Q端为0Q^为1加到场效应管栅极的信号为1该场效应管就导通对地呈现低阻抗,此时即使引脚上输入的信号为1也会因端口的低阻抗而使信号变低使得外加的1信号读入后不一定是1若先执行置1操作则可以使场效应管截止引脚信号直接加到三态缓冲器中实现正确的读入由于在输入操作时还必须附加一个准备动作所以这类I/O口被称为准双向口89C51的P0/P1/P2/P3口作为输入时都是准双向口接下来让我们再看另一个问题从图中可以看出这四个端口还有一个差别除了P1口外P0P2P3口都还有其他的功能二、89S51系列单片机引脚功能分类基本引脚:电源VCC、VSS,时钟XTAL2、XTAL1和复位RST。并行扩展总线:数据总线P0口,地址总线P0口(低8位)、P2口(高8位)和控制总线ALE、PSEN、EA。串行通信总线:发送口TXD和接受口RXD。I/O端口:P1口为普通I/O口,P3口可复用作普通I/O口,P0、P2口不作并行口时也可作普通I/O口。三、单片机的引脚应用特性1.并行总线的构成89S51并行总线的构成如图2.7所示。并行总线特点:10(1)P0口为地址/数据复用口。(2)两个独立的并行扩展空间。程序存储器使用PSEN取指控制信号,数据采用WR、RD存取控制信号。(3)外围扩展统一编址。在64KB的空间上,可扩展外数据存储器或其他外围器件。2.引脚复用特性P3口、P0口、P2口均可用作普通I/O口。3.I/O的驱动特性由于采用CMOS电路,输入电流极微,通常不考虑I/O端口的扇出能力,当负载为LED、继电器等功率驱动元件时才考虑驱动能力。89S51单片机的内部结构主要由8个部件组成,即微处理器(CPU)、数据存储器(RAM)、程序存储器、I/0口(PO口、pl口、PZ口、P3口)、串行口、定时器/计数器、中断系统和特殊寄存器(SFR)。其中,微处理器由运算器和控制逻辑组成,主要包括累加器(ACC)、B寄存器、临时存储器(TMPITMPZ)、算术运算单元ALU等。特殊功能寄存器SFR(SpecialFunctionRegister)是用来对片内各功能单元进行管理、控制、监视的控制寄存器和状态寄存器,是位于片内数据存储器上的一个特殊功能的RAM区,其地址范围为80H一FFH。SFR主要包括PO口锁存器、PI口锁存器、PZ口锁存器、P3口实现复位之后PC的值是O00OH,因此,程序的入口地址为0000H,CPU从O000H开始执行操作。模式控制寄存器TMOD为OOH,表示定时器/计数器都处于方式O工作状态,而THO、TLO、THI、TLI均为OOH则表示定时器/计数器复位后都清零。PO、Pl、PZ和P3端口复位后锁存器都处于“1”状态。工作状态下,每当ALE是高电平的第一个时钟(S1P2、S4P2),P2口被拉低而PO口为高阻态。实际进行芯片解剖时,可以根据寄存器复位状态下的特殊值来判断功能电路块。工作时如果芯片的外部选通信号亚被拉为高电平,则首先访问内部数据存贮器。如果虱总是保持低电平,则只访问外部程序存贮器,也就是说,无论是否有内部程序存贮器,所有的程序取指都是直接指向外部ROM的。当执行外部程序存贮器内的程序时,每个机器周期内都是PSEN两次有效,ALE两次输出高电平,用于锁存地址的低位字节。我们在开始进行反向解剖时,没有设计使用芯片内部的FLASH,因此只选用访问外部程序存贮器方式。在这种状态下,得到的PSEN、ALE的频率是振荡器频率的1/6,PSEN信号波形占空比为1/1,而ALE信号波形占空比为1/2。每个机器周期中ALE信号的高电平为S1P2S2PI、S4P2、S5P1,PSEN信号的高电平为S1P2、S2P1、S2P2、S4P2、SSP1、S5P5。总之,CPU在PSEN、ALE和外部数据存储器写选通信号WR读选通信号而的共同作用实现功能。1189S51内部结构AT89S51引脚图及实物图125.34X4矩阵按键本实验中使用的4X4矩阵按键,为16个按键排列而成,PCB图如下:程序如下:ORG0000HAJMPMAINORG0030HMAIN:ACALLKSJZMAINACALLDELAYACALLKSJZMAINACALLSCANNINGMOVR4,AADDA,R4MOVDPTR,#TJMP13JMP@A+DPTRKS:MOVA,#00HMOVP1,AMOVP1,#0FHMOVA,P1CPLAANLA,#0FHRETSCANNING:MOVR2,#0EFHMOVR3,#00HLINE0:MOVA,R2MOVP1,AMOVA,P1JBACC.3,LINE4MOVA,#00HAJMPFINDLINE4:JBACC.2,LINE8MOVA,#04HAJMPFINDLINE8:JBACC.1,LINE12MOVA,#08HAJMPFINDLINE12:JBACC.0,ALINEMOVA,#0CHAJMPFINDALINE:INCR3MOVA,R2RLAJNBACC.0,BACKMOVR2,AAJMPLINE0FIND:ADDA,R3BACK
本文标题:单片机最小系统电子琴
链接地址:https://www.777doc.com/doc-2594484 .html