七段数码管显示秒表_第1页
七段数码管显示秒表_第2页
七段数码管显示秒表_第3页
七段数码管显示秒表_第4页
七段数码管显示秒表_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

沈阳工程学院课程设计摘要目录摘要 I第1章概述 11.1设计题目 11.2设计目的 11.3设备器材 11.4任务分析 1第2章设计原理 32.1设计原理 32.2元器件功能特性 32.2.18255简介 32.2.28259简介 52.2.38254简介 62.2.4七段LED数码管及其接口 8第3章系统设计 93.1硬件设计 93.2软件设计 9第4章系统实现 114.1概述 114.2程序模块 114.2.1主程序模块 114.2.2显示模块 124.2.3小键盘模块 134.2.4定时模块 134.2.5中断处理模块 14第5章遇到的问题及解决方法 155.1遇到的问题 155.2解决的方法 15总结 17致谢 18参考文献 19附录 20A1.1源程序代码 20沈阳工程学院课程设计第1章概述第1章概述1.1设计题目用七段LED数码管显示秒表1.2设计目的《微型计算机原理及应用》是一门实践性较强的课程,让学生在学完该课程之后,进行一次课程设计,使学生将课堂所学的知识和实践有机结合起来,初步掌握计算机应用系统设计的步骤和接口设计的方法,提高分析和解决实际问题的能力。通过设计实践,不但要培养和提高学生解决工程具体问题,动脑动手的技术工作能力,还能巩固所学的知识。具体要求如下:1、中断工作原理,定时计数原理。2、掌握8259芯片,8254芯片,8255芯片功能,结构。3、掌握8259芯片,8254芯片,8255芯片的编程。4、能运用所提到的芯片,设计系统并进行程序开发,满足用户需求。1.3设备器材(1)设计环境PC机一台、TD-ADS软件、TD-PITE实验箱、导线若干。(2)设计所用设备8254定时器:用于产生秒脉冲,其输出信号可作为中断请示信号送IRQ7。8255并口:用做接口芯片,和小键盘及LED相连。8259中断控制器:用于产生中断。LED:四个LED用于显示时:秒:毫秒值。小键盘:用于控制设置。1.4任务分析1、总体内容:设计一秒表,能在数码管上显示时间并计时,而且可通过键盘控制计时、暂停计时。2、接口设计:根据题目和所用的接口电路芯片设计出完整的接口电路,并在实验系统上完成电路的连接和调试通过.3、程序设计:要求画出程序框图,设计出全部程序并给出程序设计说明和程序注释。4、完成的实验有:8259A中断控制器实验,8254定时计数器实验,8255并行接口实验。选择8254A的计数器0进行定时,其输出于OUT0与8259的IRQ7相连,产生一个中断信号,在中断服务程序进行秒的计数,并送入相应的存储单元;8255的A口接七段数码管的位选信号,B口接七段数码管的段选信号,C口上面接键盘,通过键盘控制暂停计时、沈阳工程学院课程设计第2章设计原理第2章设计原理2.1设计原理秒表的总体设计原理是:首先利用定时芯片8254的定时作用定时计数,在给定的时间内逐渐变为0时,就会发出一个中断信号,8259中断器接到此中断信号就会调用MIR7时间显示程序,执行此程序后8255就会工作,扫描键盘,通过开关控制暂停计时、继续计时,最后把接到的二进制时间码转换成ASCII码在四个码管上显示时间。具体做法是为了实现精确走时,显示秒、毫秒,我们先在数据段开辟一显示缓冲区,用来存储系统时间,初始化我们所要应用的芯片8254,8255,8259后,允许中断信号输入,主程序开始,为了显示秒、毫秒,并被我们识别,先调用DIS程序,实现片选的功能。为了得到良好的显示效果,本程序调用了一段精确的延时程序,使各位在时间显示上有短暂的间隔,延时程序要尽量接近1秒,但又不能超过一秒。同时,由于8254定时器的分频功能,产生中断信号,8259中断器就会调用MIR7时间显示程序,实现位选,通过LED数码管显示出来,时间刷新,再显示,有此循环,就形成了精确走时的秒表。通过扫描键盘,判断是否有键按下来控制秒表的计时、暂停计时。2.2元器件功能特性秒表功能的实现主要由C8086、8255、8254、8259和七段数码管及键盘共同完成。各元器件的功能具体如下:2.2.18255简介18255引脚功能RESET:复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。CS:片选信号线,当这个输入引脚为低电平时,表示芯片被选中,允许8255与CPU进行通讯。RD:读信号线,当这个输入引脚为低电平时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。WR:写入信号,当这个输入引脚为低电平时,允许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内部有3个口:A口、B口、C口,还有一个控制寄存器,它们由程序寻址。A1A0选择00A口01B口10C口11控制寄存器28255三种工作方式8255的工作方式分别为工作方式0,工作方式1和工作方式2。1:工作方式0,又称为基本工作方式。在此方式下,可分别将A口的8条线,B口的8条线,C口高4位对应的4条线和C口的低四位对应的四条线定义为输入或输出。故它们的输入输出共有16种不同的组合。2:工作方式1,即选通输入输出方式。在这种方式下,A口和B口仍作为数据的输出口和输入口,同时还要利用C口的某些位作为控制和状态信号。3:工作方式2,又称双向输入输出方式。这种方式只有8255的口A才有。在A口工作于双向输入输出方式时,要利用C口的5条线才能实现。因此,B口只能工作在工作方式0或工作方式1,而C口剩下的3条线可以作为输入输出线使用或B口方式1下的控制线。38255的控制字7654321控制C口抵控制C口抵4位1:输入0:输出控制B口8位1:输入0:输出方式选择0:方式01:方式1控制C口高4位0:输出1:输入控制A口8位0:输出1:输入方式选择00:方式001:方式11X:方式2功能控制0功能控制0:位操作1:方式选择说明:当控制字bit7=1时,控制字的bit6~bit3这4位用来控制A组,即A口的8位和C口的高4位,而控制字的低3位bit2~bit0用来控制B组,包括B口的8位和C口的低42.2.28259简介8259是一种可编程的中断控制器。每块芯片可管理8级向量中断,同时,可通过多片级连实现多达64级的中断管理。

中断控制器8259有四种主要工作方式,即全嵌套、循环优先级、特定屏蔽和程序查询方式。同时,它还有一4种从属工作方式,即结束中断、读状态、中断请求触发和数据缓冲方式。 18259的外部引线D0-D7为双向数据线,与系统总线数据线相连。WR,RD为写和读控制信号,与系统总线的读写信号相连接。CS为片选信号。A0是8259内部寄存器的选择信号。INT为8259的中断请求输出信号,可直接接到CPU的INTR输入端。CAS0-CAS1为级联控制线。IR0-IR7中断请求输入端。28259的工作方式1特殊屏蔽方式在正常情况下,当一个中断请求被响应时,8259将被禁止所有同级及更低优先级中断请求这就称为一般屏蔽方式。但是,在一特殊情况下,希望也允许较低优先级的中断请求产生中断。2中断结束中断结束分自动结束和利用命令结束3优先级循环它有两种优先级规定:循环优先级和固定优先级。固定优先级规定8个中断源以IR0的优先级最高依次降低。循环优先级有3个结构:自动优先级循环用于中断源具有相等优先级的情况。指定优先级循环可以利用命令一次性改变优先级。自动结束方式下的优先级循环,其优先权控制方式与自动优先级循环的相同。4查询状态通过将操作命令字OCW3中的P位置1,可以查询8259的状态。2.2.38254简介18254的引脚8254具有3个独立的16位计数器,6种不同的工作方式。计数寄存器用来寄存计数初值,计数工作单元为16位减1计数器,它的初值便是计数寄存器内容,计数单元对CLK脉冲计数,每出现一个CLK脉冲,计数器减1,当减为零时,通过OUT输出指示信号表明计数单元已为零。当作为定时器工作时,每当计数单元为零时,计数寄存器内容会自动重新装入计数单元,而且CLK输入是均匀的脉冲序列,于是OUT输出频率是降低了的(相对于CLK信号频率)脉冲序列。当作为计数器工作时,表明只关心在CLK端出现(代表事件)的脉冲个数,当CLK端出现了规定个数的脉冲时,OUT输出一个脉冲。本次设计主要利用8254产生10ms的方波,其与总线相连接的引线主要是:D0~D7双向数据线,用以传送数据和控制字。这里分别与XD0~XD7相连接。CS输入信号,低电平有效,当它有效时才能选中该定时器芯片,实现对它的读或写,这里与系统IOY3相连接。RD读控制信号,低电平有效,与系统总线IOR#相连接。WR写控制信号,低电平有效,与系统总线IOW#相连接。A0、A1为8254的内部计数器和一个控制寄存器的编码选择信号,其功能如下:A1A0选择00计数器001计数器110计数器211控制寄存器CLK0是计数器的时钟输入端。本次设计的时钟为1MHZ,计数器对此时钟信号进行计数。GATE0门控信号,即计数器的控制输入信号,用来控制计数器的工作,这里使其为高电平,直接接系统5V。OUT计数器输出信号,用来产生不同方式工作时的输出波形,本次设计的1ms方波由此输出。28254的功能8254的功能用途是:(1)延时中断(2)可编程频率发生器(3)事件计数器(4)二进倍频器(5)实时时钟(6)数字单稳(7)复杂的电机控制器38254的工作方式8254有六种工作方式:(1)方式0:计数结束中断(2)方式1:可编程频率发生器(3)方式2:频率发生器(4)方式3:方波频率发生器(5)方式4:软件触发的选通信号(6)方式5:硬件触发的选通信号8254有6种方式工作,由于只用来产生方波,所以使其工作在方式3(方波发生器),在此方式下,GATA信号为低电平时,强迫OUT输出高电平,当GATA主高电平时,OUT输出时称方波。2.2.4七段LED数码管及其接口七段LED数码管由七个发光段构成,每段均为1个LED二极管。通过控制不同段的点亮和熄灭,显示出16进制数字或字符。七段LED显示器有共阳极和共阴极两种结构,如图所示的七段LED实际上包含8个LED(7段字形加上小数点DP)。1位LED显示器有1根位选线和8根段选线,段选线控制字符的选择,位选线控制显示位的亮和暗。

十六进制数及空白字符与数码管的显示段码字型共阳级段码共阴极段码字型共阳级段码共阴极段码0C0H3FH990H6FH1F9H06HA88H77H2A4H5BHB83H7CH3B0H4FHCC6H39H499H66HDA1H5EH592H6DHE86H79H682H7DHF84H71H7F8H07H空白FFH00H880H7FHP8CH73H沈阳工程学院课程设计第3章系统设计第3章系统设计3.1硬件设计LED数码管芯片8254系统总线芯片8255及键盘D0PB0D1PB1D2PB2D3PB3D4PB4D5PB5D6PB6D7PB7WRRDPA3CSPA2A0PA1A1PA0PC3PC2PC1PC0ABCDEFGDPX1X2X3X4Y1Y2Y3Y4XD0XD1XD2XD3XD4XD5XD6XD7IOW#WOR#IOY3IOY0XA1XA2PCLKMIR7+5VD0D1D2D3D4D5D6D7WRRDCSA0A1CLK0OUT0GATE03.2软件设计开始开中断扫描键盘Y是否有键按下调用显示NY毫秒个位小于秒个位加110N毫秒个位清零十位加1Y毫秒十位小于10N毫秒十位清零秒个位加1秒个位小Y于10N秒个位清零十位加1Y秒十位小于6N秒十位清零发中断结束命令中断返回沈阳工程学院课程设计第4章系统实现第4章系统实现4.1概述本系统设计的秒表以8086微处理器作为CPU,用8254做定时计数器产生时钟频率,8255做可编程并行接口显示时钟和键盘电路,8259做中断控制器产生中断。在此系统中,8254的功能是定时,接入8254的CLK信号为周期性时钟信号。程序由以下模块组成:系统共有5个功能模块,分别为,主控模块,显示模块,定时模块,中断模块,小键盘模块。系统框图如下:键盘读入的数键盘读入的数显示缓冲的值秒脉冲显示模块主控模块中断模块定时模块小键盘模块四个LED小键盘8255A825482594.2程序模块4.2.1主程序模块主控模块是系统的核心模块,对8255A进行初始化,主程序开始,为了显示秒、毫秒,并被我们识别,先调用DIS程序,实现片选的功能。最终把接到的二进制时间码转换成ASCII码在四个码管上显示时间。MOVMSEC,0INCNUM;毫秒个位加1CMPNUM,BYTEPTR10;毫秒个位与10比较JNZWAN;若不为10则显示输出MOVNUM,0;把NUM单元清零INCNUM+1;毫秒十位加1CMPNUM+1,BYTEPTR10JNZWANMOVNUM+1,0INCNUM+2CMPNUM+2,BYTEPTR10JNZWANMOVNUM+2,0INCNUM+3CMPNUM+3,BYTEPTR6JNZWANMOVNUM+3,04.2.2显示模块显示模块是将接到的数值送到LED显示的功能模块,显示缓冲区是由四个字节构成,分别保存秒的高位和低位,毫秒的高位和低位。硬件上由四个LED构成,软件上由扫描显示的方法实现。DIS:MOVSI,OFFSETNUMMOVCL,0F7HLP1:MOVDX,MY8255_A;将DX中低四位送外设MOVAL,CLOUTDX,ALMOVDX,MY8255_BMOVAL,[SI]MOVAH,0;AX高四位寄存器清零MOVDI,BXADDDI,AXMOVAL,[DI]CMPCL,0FDHJNZADBORAL,80HADB:OUTDXCALLDLYRORCL,1TESTCL,80HJZLP2INCSIJMPLP1LP2:RET4.2.3小键盘模块小键盘模块送入主控模块的子功能模块。由软件和硬件实现,硬件上由小键盘和8255互连,将小键值由8255送入主控模块。软件上使用行扫描法获得键值并送回主控模块。执行延时程序后再扫描键盘,若标志位RUN=0表示真正有键按下,从而实现秒表的计时、暂停计时。CCSCAN:MOVAL,00HMOVDX,MY8255_A;读端口A地址 OUTDX,ALMOVDX,MY8255_C;读端口C地址INAL,DX NOTALANDAL,0FH RET4.2.4定时模块定时模块是为8259提供中断请求信号的。由一片8254实现,选用定时器0,工作在方式3,毫秒表应该10ms走动一次,所以输出值应为10ms,其输出信号可作为8259的中断请求信号。MOVDX,CON8254;初始化主片8254MOVAL,36HOUTDXMOVDX,A8254MOVAL,0E8HOUTDX,ALMOVAL,03HOUTDX,AL4.2.5中断处理模块中断模块实现动态显示的,硬件为一片8259,由于中断请求信号为每10ms一次,中断程序该为时间按10ms增加,并显示,只要开中断,便可实现每10ms显示时间增加10ms,从而达到动态显示的效果。MIR7:STI;置中断标志位IFPUSHDSPUSHAXMOVAX,SEGDATA;回送DATA的段地址值MOVDS,AXMOVAL,MSECMOVAL,1MOVMSEC,AL MRET:MOVAL,20H;中断结束命令 OUT20H,AL POPAX POPDSIRET沈阳工程学院课程设计第5章遇到的问题及解决的办法第5章遇到的问题及解决方法5.1遇到的问题(1)七段数码管显示时秒的个位后不显示点(2)键盘程序感应不灵敏(3)中断程序没被使用5.2解决的方法(1)原因分析:秒的个位七段数码管的DP位没有输入高电位解决的方法:利用循环右移的方法,判断是否到达显示秒的个位,如果到了就往DP位送高电平。ADB:OUTDXCALLDLYRORCL,1TESTCL,80HJZLP2INCSIJMPLP1LP2:RET原因分析:键盘存在抖动解决的方法:设置一个运行标志位,消除抖动,提高了按键的灵敏度,还可消除外界干扰。SDF1:CALLCCSCAN ;扫描 JZINK1;没有键按下跳到INK1 CALLDLY;调用延时 CALLCCSCAN ;扫描 JZINK1 MOVAL,RUN NOTAL ANDAL,01 MOVRUN,ALMOVAL,RUN NOTAL ANDAL,01 MOVRUN,AL(3)当外部产生中断时,系统自动调用中断程序,但中断程序并没把主要的功能写在中断里时,可设置一个中断标志位,实现回送数据段地址的功能。MIR7:STI;置中断标志位IFPUSHDSPUSHAXMOVAX,SEGDATA;回送DATA的段地址值MOVDS,AXMOVAL,MSECMOVAL,1MOVMSEC,AL MRET:MOVAL,20H;中断结束命令 OUT20H,AL POPAX POPDSIRET沈阳工程学院课程设计总结总结微机原理与接口技术的设计主要是要完成一个数字秒表,并且要求可以显示实时时间,当按下按键来控制秒表的计时、暂停计时。通过这次课程设计历时一个星期的微机原理课程设计,并且在这个星期的学习过程中,发现了自己的很多不足,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。这次的微机原理课程设计是培养我们综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,微机原理已经成为当今计算机应用中空前活跃的领域,在生活当中可以说得是无处不在。因此作为二十一世纪的大学来说掌握微机原理是十分重要的。在开始做的阶段,首先运用软件工程所学的东西,画出了系统流程图,这为我后来的系统提供了很大的帮助,"微机原理与系统设计"作为电子信息类本科生教学的主要基础课之一,课程紧密结合电子信息类的专业特点,围绕微型计算机原理和应用主题,以Intelx86CPU为主线,系统介绍微型计算机的基本知识,基本组成,体系结构和工作模式,从而使学生能较清楚地了解微机的结构与工作流程,建立起系统的概念。以前对于编程工具的使用还处于一知半解的状态上,但是经过一段上机的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解每个寄存器的内容以确保程序的正确性上都有了很大程度的提高。首先,我们一组三人,经过认真的商议和探讨,将主程序的整体框架编译了出来,再运用我们在微机原理课所学到的知识,对程序的主体进行运行,发现错误及时进行修改,经过一段时间,终于可以使程序能够没有错误的运行,接下来是在PC机上的连线,使程序能够和我们编的程序能够结合起来,在主体框架完成的情况下,依据老师的要求,将上述所做东西以报告的形式做成文档。我感觉到到对知识真正的掌握制在于应用,这次设计用到了数字电路基础的知识,微机原理知识,电路基础等,当这些知识深深地结合在一起的时候,我感觉到了基础知识是如此的重要,把这些零散的知识组合在一起居然能够实现如此现代化的需求,设计出如此有价值的数字秒表。设计的完成要感谢老师的细心指导和尊尊教诲,相信这些经历对我以后的工作乃至于生活都会有着有用的指导意义。沈阳工程学院课程设计致谢致谢微机原理课程设计算是圆满结束了,经过一周的实习,我最大的收获就是理解了微机的一些简单的程序设计。在这个课程设计的过程中得到了王庆利、踪念品老师的悉心指导。两位老师在整个课程设计的过程中一直耐心的为我们进行指导,时时关注我们的进展,给我们提出很多建议,帮助我开拓解决问题思路,并耐心对我们遇到的问题进行指导、讲解。虽然只有短短一周的时间,却给以终生受益无穷之道。对两位老师的感激之情是无法用言语表达的。感谢学校对我们此次课程设计的大力支持,为我们安排了充分的时间使用学校的机房。为我们安排了两位出色并且负责的老师来解答我们的疑虑。最后我要感谢我们组的其他成员,经过我们的一起讨论,共同解决问题,并且借给我很多参考资料。也给了我很大帮助。沈阳工程学院课程设计参考文献参考文献1、《微型计算机原理及应用》王庆利主编西安电子科技大学出版社2、《微机原理与接口技术》北京航空航天大学出版社3、《微型计算机原理与汇编语言》电子工业出版社4、《微机原理与应用》大连理工大学出版社5、《微型计算机原理及应用》李伯成主编西安电子科技大学出版社 沈阳工程学院课程设计附录附录A1.1源程序代码MY8255_AEQU0600HMY8255_BEQU0602HMY8255_CEQU0604HMY8255_MODEEQU0606HA8254EQU06C0HB8254EQU06C2HC8254EQU06C4HCON8254EQU06C6H;宏定义SSTACK SEGMENTSTACK;设置段,开辟一个内存空间 DW32DUP(?)SSTACK ENDS DATASEGMENT;定义数据段RUNDB1NUMDB0,0,0,0MSECDB0DTABLEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB7FH,6FH,77H,7CH,39H,5EH,79H,71HDATAENDSCODESEGMENT;定义代码段ASSUMECS:CODE,DS:DATASTART:PUSHDS;入栈代码段 MOVAX,0000H MOVDS,AX MOVAX,OFFSETMIR7 ;取中断入口地址 MOVSI,003CH ;中断矢量地址 MOV[SI],AX ;填IRQ7的偏移矢量确定地址 MOVAX,CS ;段地址 MOVSI,003EH MOV[SI],AX ;填IRQ7的段地址矢量 CLI;清除中断标志 POPDS;出栈;初始化8255MOVDX,MY8255_MODEMOVAL,81H;A口方式0输出,B口方式0输出,C口高4位输出,低4位输入OUTDX;初始化主片8254 MOVDX,CON8254MOVAL,36H;计数器0,方式3OUTDXMOVDX,A8254MOVAL,0E8HOUTDXMOVAL,03HOUTDX,AL ;初始化主片8259 MOVAL,11H OUT20H,AL ;ICW1 MOVAL,08H OUT21H,AL ;ICW2 MOVAL,04H OUT21H,AL ;ICW3 MOVAL,01H OUT21H,AL ;ICW4 MOVAL,6FH ;OCW1 OUT21H,AL STI MOVAX,DATAMOVDS,AX MOVBX,OFFSETDTABLE;取显示码地址偏移WAN:CALLDISSDF1:CALLCCSCAN ;扫描 JZINK1;没有键按下跳到INK1 CALLDLY CALLDLY;调用延时 CALLCCSCAN ;扫描 JZINK1 CALLDLY CALLDLY MOVAL,RUN NOTAL ANDA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论