您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 微机原理与接口技术课程设计报告-数据采集仪万年历报告
合肥工业大学微机原理与接口技术课程设计报告课题名称:数据采集仪的日历时钟接口电路的设计学生班级:姓名学号:指导教师:完成时间:成绩评定:摘要:本设计是以8086CPU为控制核心,本设计以微机原理与接口技术为基础,以8086CPU为核心,利用INTER8253可编程定时/计数器,通过引入时钟发生器产生标准时钟进行精准定时,经定时器产生中断源,采用可编程中断控制器8259A进行中断扩展,用可屏蔽中断方式进行时间的采集,以可编程并行I/O接口芯片8255A扩展接口,驱动数码管进行时间显示。关键词:8086CPU、8253、定时、中断8259A、8255A、数码管正文:近年来随着科技的飞速发展,微机原理的应用正在不断深入,计算机系统由计算机硬件和软件两部分组成。硬件包括中央处理机、存储器和外部设备。中央处理机是计算机的核心部部件,由运算器的控制器两部分组成,主要功能是解释指令、控制指令执行、控制和管理机器运行状态,以及实时处理中央处理机内部和外部出现和各种应急事件;存储器分为主存储器和辅助存储器,主存储器的主要功能是存储信息和与中央处理机直接交换信息;辅助存储器包括磁盘机、磁带机和光盘机等,通常只与主存储器交换信息;外部设备包括输入和输出设备、转换设备、终端设备等,如键盘、打印机、绘图仪和鼠标器等。软件通常分为两大类:系统软件和应用软件。系统软件最靠近硬件层,是计算机的基础软件,如操作系统、高级语言处理程序等。系统软件是计算机厂家预先设计好的。操作系统主要用于组织管理计算机系统的所有便件和软件资源,使之协调一致、高效地运行;高级语言处理程序包括编译程序和解释程序等。编译程序能将高级语言编写的源程序翻译成计算机执行的目标程序,解释程序是边解释边执行源程序。应用软件处于计算机系统的最外层,是按照某种特定的应用而编写的软件。本设计是根据利用数据采集仪来显示日历,它用到8253可编程定时/计数器产生时钟脉冲,根据时钟脉冲的边沿触发来使8259可编程中断控制器产生中断,再以可编程并行I/O接口芯片8255A扩展接口,驱动数码管进行时间显示,进而在数据采集仪上进行显示。本设计的基本要求:根据题目要求编写实验源程序;再根据所编写的程序连接硬件电路图,本设计要达到的目的:1、软件程序能够无错误的运行;2、硬件电路有显示,能够自动产生年、月、日、时、分、秒等时间信息;3、具有功工作稳定可靠、外围接口简单。一、总体设计思路本设计以微机原理与接口技术为基础,以8086CPU为核心,利用INTER8253可编程定时/计数器,通过引入时钟发生器产生标准时钟进行精准定时;经定时器产生中断源,采用可编程中断控制器8259A进行中断扩展,用可屏蔽中断方式进行时间的采集;以可编程并行I/O接口芯片8255A扩展接口,驱动数码管进行时间显示,共分为四个主要模块,8086中央处理器,8253时间定时器,8259中断发生器,8255数码管显示器。各模块之间关系如下图所示:图1.1系统整体结构键盘输入,时钟初始化主控制器80868253定时8259中断数码管显示8255初始化个人PC主程序流程图如下:图1.2主程序流程图(备注:详细流程图见附录二。)二、设计方案论证1.本课程设计在驱动数码管显示的过程中,我们选择了两种方案。方案一:用8255的PA口和PB口接数码管的字码端和位码端驱动其显示时间,通过对它进行编程,芯片可工作于不同的工作方式下。8255A芯片有三种工作方式,在本课程设计中,通过控制字,使其工作在方式0下,通过PA口给数码管送字码,让其显示世世纪、年、月、日、时、分、秒,同时通过PB口给数码管送位码,并不断的扫描8个数码管的片选段,让其显示连续的时间,但是本课题要求实现的功能中需要显示世纪,年、月、日,时、分、秒。同时需要键盘设置时间初值,而8255的端口有限,同时在键盘的扫描过程中,要有防抖的功能,这就大大加大的软件编程的难度,可实现性差。方案二:8279A芯片是一种通用的可编程序的键盘/显示接口器件,单个芯片就能完成键盘输入和LED显示控制两种功能。可与任何8位机接口。8279A芯片包括键盘输入和显示输出两个部分。若采用8279作为键盘/显示器接口,则可以实现对键盘、显示器自动扫描,8279主要是管理键盘输入和显示器输出的。8279开始系统初始化时钟定时秒+1执行数码管显示可编程键盘显示器接口芯片具有动态显示驱动电路简单、不占用CPU的时间、可自动进行键盘扫描、与计算机接口方便、编程容易、系统灵活等特点.所以用8279来驱动显示更容易实现。基于上述论证,本次设计采用方案二。2.在本次课题的审题中,我们用了两种方案。方案一:原先我们的思路是把数据采集仪的系统时间提取出来放在显示模块上显示,如果按这样的思路,我们在制作的过程中只需用到8255这块芯片用来驱动数码管显示就行,可是我们在实际的制作过程中遇到了无法解决的困难:在利用DOS系统功能调用(功能号位2AH、2CH)的时候出现了麻烦,在软件调试的时候采用单步调试,当调试的2A号去系统时间时,PC机自动重启,重新试了几次,结果一样,后来经推测,可能是星研环境不支持该功能号调用。方案二:题目要求:能够自动产生世纪、年、月、日、时、分、秒等时间信息,具有功耗低、精度高、工作稳定可靠、外围接口简单等优点。我们着眼于产生时间的功能上,再次把该题定位于电子钟类型的时钟发生器。重新确定思路,选定器件,经过两个星期的团结合作,基本完成任务。在本次课题的审定上,我们选择了方案二。三、软件设计思路在数据采集仪的日历时钟的设计过程中,我们需要用到的电子芯片主要有8255和8253、8259。他们的工作原理和功能如下所述。(一)8253芯片Intel8253芯片是一种可编程定时器/计数器,它可以利用硬件电路和中断方法控制定时,定时时间和范围完全由软件来确定和改变。在8253芯片内部具有3个独立的16位计数器通道,通过对它进行编程,最高计数频率能达到2MHz。8253还适用于许多其它的场合,如用作可编程方法频率产生器、分频率、程控单脉冲发生器等。在本课程设计中,8253芯片的通道0工作在方式2下,外接1M的时钟频率,同时与通道1级联,实现两节分频,通过软件编程使通道1工作在方式3下,产生周期为1S的方波,触发8259的可屏蔽中断IR0,进行时钟秒的+1。8253初始化编程如下:MOVDX,COM_ADDR;8253的控制端口MOVAL,00110101B;计数器T0设置在模式2状态,BCD码计数OUTDX,ALMOVDX,T0_ADDRMOVAL,00HOUTDX,AL;CLK0/1000MOVAL,10HOUTDX,ALMOVDX,COM_ADDR;计数器T1为模式3状态,输出方波,BCD码计数MOVAL,01110111BOUTDX,ALMOVDX,T1_ADDRMOVAL,00HOUTDX,ALMOVAL,20HOUTDX,AL(二)8255A芯片8255A是一种通用的可编程并行I/O接口芯片,它是为Intel系列微处理器设计的配套电路,也可用于其它微处理器系统连接。通过8255A芯片,CPU可直接同外设相连接,其负责CPU和外设之间数据传送。通过对它进行编程,芯片可工作于不同的工作方式下。8255A芯片有三种工作方式,在本课程设计中,通过控制字,使其工作在方式0下,通过PA口给数码管送字码,让其显示世世纪、年、月、日、时、分、秒,同时通过PB口给数码管送位码,并不断的扫描8个数码管的片选段,在人眼的分辨率外,看到的是一个连续的显示过程。8255A初始化编程如下:LED_TABDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;共阴数码管0-9的代码值MOVDX,COM_ADDMOVAL,10000000B;PAPBPC为基本输出方式OUTDX,AL转化为可显示的16进制数的子程序:ToCharPROCNEARADDAL,'0'CMPAL,'9'JBEToChar1ADDAL,07HToChar1:RETToCharENDP(三)8259A芯片8259A是专门为了对8085A和8086/8088进行中断控制而设计的芯片,它是可以用程序控制的中断控制器。单个的8259A能管理8级向量优先级中断。在不增加其他电路的情况下,最多可以级联成64级的向量优先级中断系统。8259A有多种工作方式,能用于各种系统。各种工作方式的设定是在初始化时通过软件进行的。在总线控制器的控制下,8259A芯片可以处于编程状态和操作状态.编程状态是CPU使用IN或OUT指令对8259A芯片进行初始化编程的状态循环等待中断。8259初始化编程:Init8259PROCNEARMOVDX,IO8259_0MOVAL,13HOUTDX,ALMOVDX,IO8259_1MOVAL,80HOUTDX,ALMOVAL,09HOUTDX,ALMOVAL,FE;屏蔽寄存器OUTDX,ALRETInit8259ENDP中断服务程序:INT_0:PUSHDXPUSHAXCALLClearIntJCINT_0_0MOVDX,RD_IO8259INAL,DXINAL,DX;判断由哪个中断源引起的中断MOVAL,CounterADDAL,1DAAMOVCounter,ALMOVReDisplayFlag,1INT_0_0:MOVDX,IO8259_0MOVAL,20HOUTDX,ALPOPAXPOPDXIRET;中断结束四、硬件设计思路本次课程设计硬件全部由星研实验板STAR-ES598PCI提供。为确保连线正确,必须熟悉实验板上各个模块的线路连接,地址总线、数据总线及片选端等的线路结构;同时要对自己设计的电路有清晰的认识,脑海中有个整体的来龙去脉,这样在布线时才可做到游刃有余。具体各模块连线如下所示:1、8253连线说明:C5区:CS、A0、A1——A3区:CS5、A0、A1C5区:CLK0——B2区:2MC5区:OUT0——C5区:CLK1C5区:OUT1——B3区:IR0C5区:GATE0、GATE1——C1区的VCC2、8259连线说明:B3区:CS、A0——A3区:CS1、A0B3区:INT、INTA——ES8688:INTR、INTAB3区:IR0——C5区:OUT1E5区:CS、A0——A3区:CS5、A0E5区:CLK——B2区:2ME5区:A、B、C、D——G5区:A、B、C、D3、8279连线说明:E5区:CS、A0——A3区:CS5、A0E5区:CLK——B2区:2ME5区:A、B、C、D——G5区:A、B、C、D(备注:详细硬件电路图见附录一)五、功能模块分析该模块设计思路是将世纪年月日时分秒分别保存至变量:century,year,month,day,hour,minute,second中,每个数字对应与一个字节,通过8253定时我们在8255的portA0口检测到低电平时调用INCSCD子程序,子程序中我们将更新century,year,month,day,hour,minute,second内的值,使秒加1,然后调用displaytime将century,year,month,day,hour,minute,second内的数据转化为十六进制并显示到数码管上。六、课程设计总结本次课程设计在制作过程中,我们从审题到确定思路、组员分工,再到设计进程安排、查找资料,最后到着手软硬件调试。我们组员都配合的也比较不错,并在规定时间内按质、按量完成任务。但是这之间我们也遇到许多的困难,但是经过努力都一一解决。通过这次课程设计,加强了我们的动手、思考和分析解决问题的能力。在整个设计过程中,我们按照老师给出的总体方案设计了一套电路原理和电路连接图。通过查阅各方面资料我们编写了程序代码,并通过了调试,最终证实了该系统方案确实可行。在设计过程中,了解了很多元器件的功能,并且对于其在电路中的使用有了更多的认识。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做,难免会遇到过各种各样的问题,同时也在设计的过程中发现了自己
本文标题:微机原理与接口技术课程设计报告-数据采集仪万年历报告
链接地址:https://www.777doc.com/doc-7052799 .html