您好,欢迎访问三七文档
《微机原理与接口技术》课程设计报告题目:8253电子音乐盒专业名称:班级:学号:姓名:二〇一〇年一月题目:8253电子音乐盒一、要求结合实验箱上频率生成模块,8255模块,8253模块,LED灯和音响模块完成8253音乐盒的设计。基本功能:用8253输出小星星简谱的对应音阶频率,通过实验箱的音响发出声音,同时通过8255A口控制8个LED灯实现有规律的闪烁效果。扩展功能:1、应用直流电机控制转速,实现旋转木马的效果。2、应用8255B口作为输入口,通过开关控制音乐盒换歌功能。3、应用8259键盘模块实现钢琴功能,使对应按键能发出相应的音阶。实验环境:微机与借口技术实验箱,PC机,实验软件。二、目的通过课程设计加深对微机原理课程中介绍的各芯片的相关应用的了解,熟练8255A芯片,8253芯片及其它芯片的实际应用。通过课程设计相关程序的编写掌握汇编程序的编程技巧,学会把复杂的程序过程化,及模块化程序编程技巧的理解。掌握接口芯片与中断技术的硬件电路组成及中断处理程序等软件的编制方法。三、设计原理一、8253内部结构8253芯片有24条引脚,封装在双列直插式陶瓷管壳内。1.数据总线缓冲器数据总线缓冲器与系统总线连接,8位双向,与CPU交换信息的通道。这是8253与CPU之间的数据接口,它由8位双向三态缓冲存储器构成,是CPU与8253之间交换信息的必经之路。2.读/写控制读/写控制分别连接系统的IOR#和IOW#,由CPU控制着访问8253的内部通道。接收CPU送入的读/写控制信号,并完成对芯片内部各功能部件的控制功能,因此,它实际上是8253芯片内部的控制器。A1A0:端口选择信号,由CPU输入。8253内部有3个独立的通道和一个控制字寄存器,它们构成8253芯片的4个端口,CPU可对3个通道进行读/写操作3对控制字寄存器进行写操作。这4个端口地址由最低2位地址码A1A0来选择。如表9.3.1所示。3.通道选择(1)CS#——片选信号,由CPU输入,低电平有效,通常由端口地址的高位地址译码形成。(2)RD#、WR#——读/写控制命令,由CPU输入,低电平有效。RD#效时,CPU读取由A1A0所选定的通道内计数器的内容。WR#有效时,CPU将计数值写入各个通道的计数器中,或者是将方式控制字写入控制字寄存器中。CPU对8253的读/写操作如表9.3.2所示。4.计数通道0~2每个计数通道内含1个16位的初值寄存器、减1计数器和1个16位的(输出)锁存器。8253内部包含3个功能完全相同的通道,每个通道内部设有一个16位计数器,可进行二进制或十进制(BCD码)计数。采用二进制计数时,最大计数值是FFFFH,采用BCD码计数时。最大计数值是9999。与此计数器相对应,每个通道内设有一个16位计数值锁存器。必要时可用来锁存计数值。当某通道用作计数器时,应将要求计数的次数预置到该通道的计数器中、被计数的事件应以脉冲方式从CLK端输入,每输入一个计数脉冲,计数器内容减“1”,待计数值计到“0”。OUT端将有输出。表示计数次数到。当某个通道用作定时器时。由CLK输入一定频率的时钟脉冲。根据要求定时的时间长短确定所需的计数值。并预置到计数器中,每输入一个时钟脉冲,计数器内容减“1”,待计数值计到“0”。OUT将有输出,表示定时时间到。允许从CLK输入的时钟频在1~2MHz范围内。因此,任一通道作计数器用或作定时器用,其内部操作完全相同,区别仅在于前者是由计数脉冲进行减“1”计数。而后者是内时钟脉冲进行减“1”计数。作计数器时,要求计数的次数可直接作为计数器的初值预置到减“1”计数器中。作定时器时,计数器的初值即定时系数应根据要求定时的时间进行如下运算才能得到:定时系数=需要定时的时间/时钟脉冲周期①设置通道:向方式控制字寄存器端口写入方式选择控制字,用于确定要设置的通道及工作方式;②计数/定时:向通道写入计数值,启动计数操作;③读取当前的计数值:向指定通道读取当前计数器值时,8253将计数器值存入锁存器,从锁存器向外提供当前的计数器值,计数器则继续作计数操作。④计数到:当计数器减1为0时,通过引脚OUTi向外输出“到”的脉冲信号。计数初值输入存放在初值寄存器中,计数开始或重装入时被复制到计数器中。5.方式选择控制字二、8253的通道工作方式8253中各通道可有6种可供选择的工作方式,以完成定时、计数或脉冲发生器等多种功能。方式3:方波发生器工作方式3被称作方波发生器,其定时波型如图9.3.7所示。任一通道工作在方式3,只在计数值n为偶数,则可输出重复周期为n、占空比为1:1的方波。进入工作方式3,OUTi输出低电平,装入计数值后,OUTi立即跳变为高电平。如果当GATE为高电平,则立即开始减“1”计数,OUTi保持为高电平,若n为偶数,则当计数值减到n/2时,OUTi跳变为低电平,一直保持到计数值为“0”,系统才自动重新置入计数值n,实现循环计数。这时OUTi端输出的周期为n×CLKi周期,占空比为1:1的方波序列;若n为奇数,则OUTi端输出周期为n×CLKi周期,占空比为((n+1)/2)/((n-1)/2)的近似方波序列。如果在操作过程中,GATE变为无效,则暂停减“1”计数过程,直到GATE再次有效,重新从初值n开始减“l”计数。如果要求改变输出方波的速率,则CPU可在任何时候重新装入新的计数初值n,并从下一个计数操作周期开始改变输出方波的速率。三、8255特性(1)一个并行输入/输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外围的接口.(2)具有24个可编程设置的I/O口,即使3组8位的I/O口为PA口,PB口和PC口.它们又可分为两组12位的I/O口,A组包括A口及C口(高4位,PC4~PC7),B组包括B口及C口(低4位,PC0~PC3).A组可设置为基本的I/O口,闪控(STROBE)的I/O闪控式,双向I/O3种模式;B组只能设置为基本I/O或闪控式I/O两种模式,而这些操作模式完全由控制寄存器的控制字决定.8255引脚功能RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输.RD:读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。WR:写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许CPU将数据或控制字写入8255。D0~D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。PA0~PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。PB0~PB7:端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器PC0~PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。'A0,A1:地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器.当A0=0,A1=0时,PA口被选择;当A0=0,A1=1时,PB口被选择;当A0=1,A1=0时,PC口被选择;当A0=1.A1=1时,控制寄存器被选择.四、内容设计与步骤一、结合实验箱上频率生成模块,8255模块,8253模块,LED灯和音响模块完成8253音乐盒的设计。(1)使用8253的计数器2完成音乐输出的功能。8253的时钟信号接信号源CLK2接频率发生模块的15.625KHz.。8253的输出信号OUT2接音响模块。8253的控制端口地址为43H,计数器2的端口地址为42H。(2)使8255的A口工作在方式0,处于输出状态。8255A口地址为2A0H,B口地址为2A1H,C口为2A2H,控制端口地址为2A3H。8255的A口PA0-PA7连接八个LED灯。片选连接2A0H-2A9H。8255的数据线可接系统数据线区的任一插座。总体电路图如下图所示:图1-1总电路图二、汇编程序设计1、对于音乐,每个音阶都有确定的频率。各音阶标称频率值:音阶1234567频率(kHZ)523587659698784880988小星星的简谱:11|55|66|5-|44|33|22|1-|55|44|33|2-|55|44|33|2-|11|55|66|5-|44|33|22|1-||由音阶与频率的对照表把各个音符变换成相应的频率值,即为8253计数器2的输出频率。由计数器初值计算公式有:计数初值C=输入CLK2的频率/输出OUT2的频率。相应的汇编代码:MOVAX,3D09H(输入频率15625)DIVDI(DI为输出频率)将简谱对应的频率值建立TABLE表。2、8255对LED灯的控制为了使程序更加简洁,对于LED的动态显示,程序中直接取频率TABLE表中各个频率值第八位数作为8255A口的输出。这样既保证了LED灯的动态显示,同时显示也有规律。及各个音符的LED灯显示是相同的。更美观。3、程序的流程图主程序流程图声音与显示子(5)程序代码TIMER_CTEQU43HTIMER02EQU42HMY8255CMDEQU2A3HMY8255AEQU2A0HCODESEGMENTASSUMECS:CSEGSTART:JMPSTART_TABLEDW523,523,784,784,880,880,784,1DW698,698,659,659,587,587,523,1DW784,784,698,698,659,659,587,1DW784,784,698,698,659,659,587,1DW523,523,784,784,880,880,784,1DW698,698,659,659,587,587,523,1START_:MOVAX,CSADDAX,10HMOVDS,AXLEABX,DS:TABLEMOVAX,0NEW_NOTE:CMPAX,96JNBSOUND_JMPSOUNDSOUND_:MOVAX,0SOUND:MOVSI,AXMOVDI,[BX][SI]PUSHBXMOVBX,30HCALLGENSOUNDPOPBXINCAXINCAXJMPNEW_NOTEEXIT:JMP$GENSOUNDPROCNEARPUSHAXPUSHBXPUSHCXPUSHDXMOVAL,0B6HMOVDX,TIMER_CTOUTDX,ALMOVAX,3D09HMOVDX,0DIVDIMOVDX,TIMER02OUTDX,ALMOVAL,AHOUTDX,ALMOVDX,MY8255CMDMOVAL,80HOUTDX,ALMOVDX,MY8255AMOVAX,DIOUTDX,ALDELAY_:MOVCX,2400DELAY:LOOPDELAYDECBXJNZDELAY_POPDXPOPCXPOPBXPOPAXRETGENSOUNDENDPCODEENDSENDSTART五、设计结果与分析结合实验箱上频率生成模块,8255模块,8253模块,LED灯和音响模块完成8253音乐盒的设计。设计最终结果符合设计要求。音乐节拍速度可以通过调整延时的时间来更改。音响能够连续不断的循环TABLE表的音符片段。LED灯能动态规律的实现闪烁效果。相应的扩展设计。1、旋转木马通过支流电机运转,直流电机可以使用模拟电路通过改变输入电流或者齿轮变换更改其转速。直流电机的启动用一个开关控制。2、歌曲变换功能实现。首先可以先建立第二个歌曲频率表。然后程序开始处通过不停监听8255B口的状态更改基址寻址中的相应基址取值。3、8259钢琴功能,可以通过开关状态启动对8
本文标题:8253音乐盒
链接地址:https://www.777doc.com/doc-6386226 .html