您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 用7段数码管显示9秒倒计时
11设计内容及目标1.1设计题目用七段LED数码管显示倒计时1.2设计要求(1)用8255控制七段LED数码管。(2)可选:用8254定时器显示时间。(3)可选:可通过开关控制暂停计时、继续计时或时间清零。1.3设计目的通过本学期对微机原理的学习,掌握的知识还停留在理论的上。但是这是一门实践性较强的课程,让学生在学完该课程之后,进行一次课程设计,使学生将课堂所学的知识和实践有机结合起来,初步掌握计算机应用系统设计的步骤和接口设计的方法,提高分析和解决实际问题的能力。通过设计实践,培养学生查阅专业资料,工具书或参考书,了解有关工业标准,掌握现代设计手段和软件工具,并能以图纸和说明书表达设计思想和结果的能力。通过设计,不但要培养和提高学生解决工程具体问题,动脑动手的技术工作能力,而且还要逐步建立科学正确的设计和科研思想,培养良好的设计习惯,牢固树立实事求是和严肃认真的工作态度。22设计原理2.1设计思路本次课程设计的题目是用七段LED数码管来显示倒计时。在这个设计中既要用到8255芯片,又要用到8254芯片对脉冲信号进行记数。设定初始值,每隔一秒,秒钟数字减一,每过60秒分钟个位减一。根据需要,需选择的芯片有8255、8259和8254。2.2设计环境与器材(1)PC微机一台。用于对程序的编写、编译和测试等,同时还需要对实验设备进行控制,提供整个程序的运行平台,并且收集和释放硬件信号,实现程序功能。(2)微机原理实验箱一台。此设备必须能提供8254、8255、8259和数码管等必要芯片,并且能通过接受PC机传来的信息,显示出相应的功能,以支持电子时钟的实现。(3)导线若干条。用于电路和芯片之间的连接。2.3电路原理和主要芯片2.3.1电路工作原理首先利用程序硬性规定分、秒的起始时间为9。然后通过8254计时器分频,并将以分得的频率接通8259中断控制器,进而通过CPU响应可屏蔽中断达到按秒计时的效果。具体做法是将四个七段管显示器接到两片可并行接口8255芯片上,以此来控制七段管显示器的位操作以及段操作。并为之在数据段开辟一处空间,专门存放将要显示的数位代码。8254计时器将由PC机给定的频率加以分频,得到的新频率加到8259中断控制器的中断请求输入端。主程序为此可屏蔽中断设置专门的中断向量码。CPU获取此中断向量码后转向待需解决的程序进行操作。而这个程序便是整个主程序的心脏。通过它将使倒计时的显示时间以秒为减位,达到秒、分的减少。2.3.28254主要功能8254是Intel公司生产的可编程间隔定时器。是8253的改进型,比8253具有更优良的性能。8254具有以下基本功能:●有3个独立的16位计数器;●每个计数器可按二进制或十进制(BCD)计数;每个计数器可编程工作于6种不同工作方式;每个计数器允许的最高计数频率为10MHz;3●8254有读回命令,除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容。●计数脉冲可以是有规律的时钟信号,也可以是随机信号。计数初值公式为n=fCLKi÷fOUTi,其中fCLKi是输入时钟脉冲的频率,fOUTi是输出波形的频率。图1内部结构框图和引脚图上图是8254的内部结构框图和引脚图,它是由与CPU的接口、内部控制电路和三个计数器组成。8254的工作方式如下述:(1)方式0:计数到0结束输出正跃变信号方式。(2)方式1:硬件可重触发单稳方式。(3)方式2:频率发生器方式。(4)方式3:方波发生器。(5)方式4:软件触发选通方式。(6)方式5:硬件触发选通方式。8254的控制字有两个:一个用来设置计数器的工作方式,称为方式控制字;另一个用来设置读回命令,称为读回控制字。这两个控制字共用一个地址,由标识位来区分。当读回控制字的D4位为0时,由该读回控制字D1~D2位指定的计数器的状态寄存器内容将4被锁存到状态寄存器中。状态字格式如图2.6所示:图28254状态字格式2.3.38255的主要功能8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位、32位等。用+5V单电源供电,能在以下三种方式下工作:方式0--基本输入/出方式、方式1--选通输入/出方式、方式2--双向选通工作方式。8255的内部结构及引脚如图2.1所示:5图3内部结构及引脚如图2.1所示,D0~D7为双向数据信号线,用来传送数据和控制字。为读信号线,与其他信号线一起实现对8255接口的读操作。通常接系统总线的信号。为写信号线,与其他信号一起实现对8255的写操作,通常接系统总线的。为片选信号线,当它为低电平时,才能选中该8255芯片,也才能对8255进行操作。A0、A1为口地址选择信号线。本次设计使其分别与系统总线的XA1、XA2相连,它们的不同编码可分别寻址3个口和一个控制寄存器,具体规定如下:A1A0选择00A口01B口10C口11控制寄存器6RESET为复位输入信号。此端上的高电平可使8255复位。复位后,8255的A口、B口和C口均被定义为输入状态。PA0~PA7为A口的8条输入输出信号线,该口的这8条线是工作于输入、输出还是双向(输入、输出)方式,可由软件编程来决定。PB0~PB7为B口的8条输入输出信号线,利用软件编程可指定这8条线是输入还是输出。2.3.48259主要功能终端控制器8259是Intel公司专为控制优先级中断而设计开发的芯片。它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中,因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。同时,在不需增加其他电路的情况下,通过多片8259A的级连,能构成多达64级的矢量中断系统。它的管理功能包括:1)记录各级中断源请求,2)判别优先级,确定是否响应和响应哪一级中断,3)响应中断时,向CPU传送中断类型号。8259A的内部结构和引脚如图2.3所示:图4内部结构和引脚78259的命令共有7个,一类是初始化命令字,另一类是操作命令。8259A的编程就是根据应用需要将初始化命令字ICW1-ICW4和操作命令字OCW1-OCW3分别写入初始化命令寄存器组和操作命令寄存器组。OCW1-OCW3各命令字格式如图2.4所示,其中OCW1用于设置中断屏蔽操作字,OCW2用于设置优先级循环方式和中断结束方式的操作命令字,OCW3用于设置和撤销特殊屏蔽方式、设置中断查询方式以及设置对8259内部寄存器的读出命令。图5OCW1-OCW3各命令字格83设计步骤3.1实验接线图系统的连线图主要由五个部分构成。8259中断控制器、8255并口控制器、8254定时计数器、键盘及数码管显示单元、开关及LED显示单元构成。如下图所示:芯片8254系统总线芯片8255LED数码管图6实验接线图3.2主程序流程图的设计主程序的流程图是对整个程序的逻辑的图象表示。首先是设置8254、8255、8259的各个端口地址。接着初始化各个芯片,开始计时,并通过8259中断控制时间的正确显示。在整个过程中都在检测是否有铵键响应。有则停止,没有则返回继续执行。D0PB0D1PB1D2PB2D3PB3D4PB4D5PB5D6PB6D7PB7WRRDPA0CSPA1A0PA2A1PA3XD0XD1XD2XD3XD4XD5XD6XD7IOW#IOR#IOY3IOY0XA1XA2ClkMir7+5VABCDEFGHX1X2X3X4D0D1D2D3D4D5D6D7WRRDCSA0A1CLK0OUT0GATE09开始计数单元清零TH0,TL0装入初值开中断,并允许T0中断开始倒计时SENOND减1SECOND=0吗?SECOND=60显示数据处理MINTE减1MINTE=60MINTE=0吗?显示数据处理T0中断,调用子程序显示数据处理中断返回结束图7主程序流程图103.3子程序流程图图8子程序流程图通过查表方式显示数据数码位选加1位选数值=8吗?位选数值=0秒计数减1秒计数=0秒计数=500吗?SECOND减1SECOND=0吗?SECOND=0并MINITE减1MINITE=0显示数据处理中断返回T0中断开始113.4倒计时源程序的设计MY8255_AEQU0600HMY8255_BEQU0602HMY8255_CEQU0604HMY8255_MODEEQU0606HA8254EQU06C0HB8254EQU06C2HC8254EQU06C4HCON8254EQU06C6HSSTACKSEGMENTSTACKDW32DUP(?)SSTACKENDSDATASEGMENTDTABLEDB6FH,7FHDB07H,7DH,6DH,66H,4FH,5BH,06H,3FHMSECDW0SECDB0MINDB0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:SSTACKSTART:PUSHDSMOVAX,0000HMOVDS,AXMOVAX,OFFSETMIR7;取中断入口地址MOVSI,003CH;中断矢量地址MOV[SI],AX;填IRQ7的偏移矢量确定地址MOVAX,CS;段地址MOVSI,003EHMOV[SI],AX;填IRQ7的段地址矢量CLIPOPDS;初始化主片8255MOVDX,MY8255_MODEMOVAL,81HOUTDX,AL;初始化主片8254MOVDX,CON8254MOVAL,36HOUTDX,ALMOVDX,A8254MOVAL,0E8HOUTDX,ALMOVAL,03HOUTDX,AL;初始化主片825912MOVAL,11HOUT20H,AL;ICW1MOVAL,08HOUT21H,AL;ICW2MOVAL,04HOUT21H,AL;ICW3MOVAL,01HOUT21H,AL;ICW4MOVAL,6FH;OCW1OUT21H,ALSTIMOVAX,DATAMOVDS,AXMOVSI,3000HMOVAL,00HMOV[SI],ALMOV[SI+1],ALMOV[SI+2],ALMOV[SI+3],ALMOVDI,3003HBEGIN:CALLDISCALLCLEARJMPBEGINMIR7:STIPUSHAXPUSHSIMOVAX,MSECINCAXMOVMSEC,AXCMPAX,1000JBMRETMOVAX,0MOVMSEC,AXMOVAL,SECADDAL,1DAAMOVSEC,ALCMPAL,60HJBMTODISMOVAL,0MOVSEC,ALMOVAL,MINADDAL,1DAA13MOVMIN,ALMTODIS:MOVAL,SECMOVAH,ALMOVSI,3000HANDAL,0FHMOV[SI],ALRORAH,1RORAH,1RORAH,1RORAH,1ANDAH,0FHMOV[SI+1],AHMOVAL,MINMOVAH,ALANDAL,0FHMOV[SI+2],ALRORAH,1RORAH,1RORAH,1RORAH,1ANDAH,0FHMOV[SI+3],AHMRET:MOVAL,20HOUT20H,AL;中断结束命令POPSIPOPAXIRETCLEAR:MOVDX,MY8255_BMOVAL,00HOUTDX,ALRETDIS:PUSHAXMOVSI,3000HMOVDL,0F7HMOVAL,DLAGAIN:PUSHDXMOVDX,MY8255_AOUTDX,ALMOVAL,[SI]MOVBX,OFFSETDTABLEANDAX,00FFHADDBX,AXMOVAL,[BX]MOVDX,MY8255_B14OUTDX,ALCALLDALLYINCSIPOPDXMOVAL,DLTESTAL,01HJZOUT1RORAL,1MOVDL,ALJMPAGAINOUT1:POPAXRETDALLY:PUSHCXMOVCX,000FHT1:MOVA
本文标题:用7段数码管显示9秒倒计时
链接地址:https://www.777doc.com/doc-7336985 .html