1一.电子音乐播放器一、设计的任务和目的题目目的:学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。设计要求:利用8253作为音阶频率发生器,应先对一段音乐进行编码后存入音符表,并建立好音阶表(只建立一个8度即可,音阶表见附录),音符长度不能少于60个,连续播放3遍后停止。二8253芯片介绍1芯片介绍8253可编程定时/计数器是Intel公司生产的通用外围芯片之一,有3个独立的十六位计数器,技术频率范围为0~2MHZ,它所有的技术方式和操作方式都通过编程控制。8253的功能用途是:(1)延时中断(2)可编程频率发生器(3)事件计数器(4)二进倍频器(5)实时时钟(6)数字单稳(7)复杂的电机控制器8253有六种工作方式:(1)方式0:计数结束中断(2)方式1:可编程频率发生器(3)方式2:频率发生器(4)方式3:方波频率发生器(5)方式4:软件触发的选通信号8253引脚图2(6)方式5:硬件触发的选通信号8253引脚图如图所示,各引脚功能如下。D7~D0——八条双向数据线;WR(低电平有效)——写输入信号;RD(低电平有效)——读输入信号;CS(低电平有效)——片选输入信号;A0、A1——片内寄存器地址输入信号;CLK——计数输入,用于输入定时基准脉冲或计数脉冲;OUT——输出信号,以相应的电平指示计数的完成,或输出脉冲波形;GATE——选通输入(门控输入),用于启动或禁止计数器的操作,以使计数器和计测对象同步。2控制字三.程序框图通过给8253定时器装入不同的计数值,可以使其输出不同频率的波形。当与门打开后,经过放大器放大的作用,便可驱动扬声器发出不同频率的音调,要使该音调的声音持续一段时间,只要插入一段延时程序,之后再将扬声器(关闭与门)即可。3流程图四、电路连接4五、程序设计SSEGSEGMENTPARASTACK'stack'dw100hdup(0);Resizethestackbychangingthenumber'100'SSEGENDSDSEGSEGMENTINFO1DB0DH,0AH,'--------------------------',0DH,0AH,'THEREARE3SONGS:',0DH,0AH,0DH,0AH,'$'INFO2DB'1.HAPPYBIRTHDAY',0DH,0AH,'$'INFO3DB'2.SHEEP',0DH,0AH,'$'INFO4DB'3.RIVER',0DH,0AH,'$'INFO5DB'0.EXIT',0DH,0AH,'$'INFO6DB'YOUHAVECHOSEN:$'INFO7DB'THANKYOUFORYOURUSE',0DH,0AH,'$'INFO8DB'---------------------------',0DH,0AH,'PRESSTHEKEYTOSELECTSONG!',0DH,0AH,'$'INFO9DB0DH,0AH,'-------------------',0DH,0AH,'|INVALIDSELECTION|',0DH,0AH,'-------------------',0DH,0AH,'$'FREG1DW2dup(262),294,262,349,262,262,294,262,392,249,262,262,523,440,349;曲1的频率DW330,294,466,266,440,349,392,349,-1TIME1DW1,1,2,2,2,4,1,1,2,2,2,4,1,1,2,2,2,2,4,1,1,2,2,2,4;曲1的时间FREG2DW330,294,262,294,3DUP(330);曲2的频率5DW3DUP(294),330,392,392DW330,294,262,294,4DUP(330)DW294,294,330,294,262,-1TIME2DW6DUP(1),2;曲2的时间DW2DUP(1,1,2)DW12DUP(1),4FREG3DW330,392,330,294,330,392,330,294,330,330,392,330,294,262,294,330,392,294;曲3的频率DW262,262,220,196,220,262,294,332,262,-1TIME3DW3DUP(2),1,1,2,1,1,4;曲3的时间DW2DUP(2,2,1,1),4DW3DUP(2,1,1,1),4DSEGENDSCSEGSEGMENTassumecs:CSEG,ds:DSEG,es:DSEG,ss:SSEGINITPROC;初始化程序movax,dsegmovds,axmoves,axINITENDPMAINPROC;程序入口callINITRE:MOVDX,28BH;关闭扬声器MOVAL,89HOUTDX,ALMOVDX,28AHINAL,DXMOVDX,288HOUTDX,ALLEADX,INFO1;输出说明信息MOVAH,09HINT21HLEADX,INFO2INT21HLEADX,INFO36INT21HLEADX,INFO4INT21HLEADX,INFO5INT21HLEADX,INFO8INT21HMOVAH,01H;读取按键INT21HCMPAL,'1';根据不同的按键播放不同的曲子JEMUSIC1CMPAL,'2'JEMUSIC2CMPAL,'3'JEMUSIC3CMPAL,'0'JEEXITLEADX,INFO9;无效选择,输出错误提示MOVAH,09HINT21HJMPREMUSIC1:MOVSI,OFFSETFREG1;指向曲1的表MOVBP,OFFSETTIME1CALLPLAYJMPREMUSIC2:MOVSI,OFFSETFREG2;指向曲2的表MOVBP,OFFSETTIME2CALLPLAYJMPREMUSIC3:MOVSI,OFFSETFREG3;指向曲3的表MOVBP,OFFSETTIME3CALLPLAYJMPREEXIT:MOVDX,28BH;关闭扬声器MOVAL,89HOUTDX,AL7MOVDX,28AHINAL,DXMOVDX,288HOUTDX,ALLEADX,INFO7;输出欢迎使用信息,增加界面友好度MOVAH,09HINT21Hmovax,4c00h;Theendoftheprogram,returntothesystemint21hMAINENDPPLAYPROC;PLAY子程序,功能上面介绍过L1:MOVBX,DS:[SI];取频率CMPBX,-1;看是否有效JEL0;无效就退出MOVCX,DS:[BP];读取时间MOVDL,CL;保存时间ADDDL,30HMOVAH,02HINT21HMOVDX,0FH;计算计数初值,1M的十六进制为0F4240HMOVAX,4240HDIVBXMOVBX,AXMOVDX,283H;设置计数器工作方式MOVAL,36HOUTDX,ALMOVDX,280H;输入计数初值MOVAX,BXOUTDX,ALMOVAL,AHOUTDX,ALMOVDX,28BH;开扬声器MOVAL,89HOUTDX,ALMOVDX,28AHINAL,DXNOTALMOVDX,288H8OUTDX,ALROD:CALLDELAY;延时LOOPRODMOVDX,28BH;关扬声器MOVAL,89HOUTDX,ALMOVDX,28AHINAL,DXMOVDX,288HOUTDX,ALCALLDELAY_OFF;音节间延时ADDSI,2ADDBP,2JMPL1L0:RETPLAYENDPDELAYPROC;延时子程序PUSHAXPUSHBXPUSHCXPUSHDXMOVBX,09FHLL1:MOVCX,0FFFFH;循环这么多次LOP:LOOPLOPDECBXJNZLL1POPDXPOPCXPOPBXPOPAXRETDELAYENDPDELAY_OFFPROCPUSHAXPUSHBXPUSHCXPUSHDXMOVBX,0FHLL2:MOVCX,0CFFFHLOP2:LOOPLOP2DECBX9JNZLL2POPDXPOPCXPOPBXPOPAXRETDELAY_OFFENDPCSEGENDSENDMAIN五、试验结果截屏:初始界面:如果按错了键,会出现如下界面:如果选择正确,将出现如下界面:10六,设计总结1.实验过程中碰到了很多的难题和障碍,我认识到平时基础知识的重要性,只有能够熟练的掌握才能在实验过程中得心应手,否则一步错则整个试验都会陷入困境,因而,严谨的态度是试验成功的重要保障!2.通过这次课程设计,我们对各个芯片有了进一步的了解,对各个芯片的功能有了更深刻的认识和体会,平时上课的理论知识只是停留在理论的层面,只有通过了这样的试验才能更好的体会到,做到了理论和实际的相结合,使理论知识真正运用到了实践中去。在课程设计过程中,同组人员之间相互合作,共同研究使我更加坚信了团体的力量。在团体的共同协作和努力下,任何的难题都可以被解决!3.我们大家在实验的时候都团结合作,遇到问题时候一起探讨,增强了我们的合作精神。11二.电子时钟设计一.设计的任务和目的:1.通过设计,培养和提高解决工程具体问题,动脑动手的技术工作能力,还要逐步建立科学正确的设计和科研思想,培养良好的设计习惯,牢固树立实事求是和严肃认真的工作态度。具体要求任务如下:1、中断工作原理,定时计数原理,并行通信原理工作原理。2、掌握8259芯片,8254芯片,8255芯片功能,结构。3、掌握8259芯片,8254芯片,8255芯片的编程。4、能运用所提到的芯片,设计系统并进行程序开发,满足用户需求。2.设计要求1、总体内容:设计一电子时钟,能在数码管上显示时间并计时。2、接口设计:根据题目和所用的接口电路芯片设计出完整的接口电路,并在实验系统上完成电路的连接和调试通过.3、程序设计:要求画出程序框图,设计出全部程序并给出程序设计说明和程序注释。4、前期完成的实验有:8259A中断控制器实验,8254定时计数器实验,8255并行接口实验。二概要设计2.1电路原理与主要芯片功能2.1.1电路原理首先利用程序硬性规定分、秒的起始时间为零。然后通过8254计时器分频,并将以分得的频率接通8259中断控制器,进而通过CPU响应可屏蔽中断达到按秒计时的效果。具体做法是将四个七段管显示器接到两片可并行接口8255芯片上,以此来控制七段管显示器的位操作以及段操作。并为之在数据段开辟一处空间,专门存放将要显示的数位代码。8254计时器将由PC机给定的频率加以分频,得到的新频率加到8259中断控制器的中断请求输入端。主程序为此可屏蔽中断设置专门12的中断向量码。CPU获取此中断向量码后转向待需解决的程序进行操作。而这个程序便是整个主程序的心脏。通过它将使电子钟的显示时以秒为进位,达到秒、分的增加。2.2.18255主要功能8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位、32位等。用+5V单电源供电,能在以下三种方式下工作:方式0--基本输入/出方式、方式1--选通输入/出方式、方式2--双向选通工作方式。8255的内部结构及引脚如图2.1所示:图2.1内部结构及引脚8255工作方式控制字和C口按位置位/复位控制字格式如图2.2所示:13图2.2置位/复位控制字格式2.2.28259主要功能中断控制器8259是Intel公司专为控制优先级中断而设计开发的芯片。它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中,因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并