计算机原理课程设计8086电子时钟设计.doc

上传人:文库蛋蛋多 文档编号:2882220 上传时间:2023-03-01 格式:DOC 页数:24 大小:1.42MB
返回 下载 相关 举报
计算机原理课程设计8086电子时钟设计.doc_第1页
第1页 / 共24页
计算机原理课程设计8086电子时钟设计.doc_第2页
第2页 / 共24页
计算机原理课程设计8086电子时钟设计.doc_第3页
第3页 / 共24页
计算机原理课程设计8086电子时钟设计.doc_第4页
第4页 / 共24页
计算机原理课程设计8086电子时钟设计.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《计算机原理课程设计8086电子时钟设计.doc》由会员分享,可在线阅读,更多相关《计算机原理课程设计8086电子时钟设计.doc(24页珍藏版)》请在三一办公上搜索。

1、 计算机原理课程设计报告题 目 基于8086CPU的电子时钟的 设计 学 院 电子信息工程学院 专 业 电气工程及其自动化 学生姓名 学 号 201010316117 年级 10级1班 指导教师 职称 副教授 2012 年 6月 28日 摘 要 微机接口技术是一门应用性、综合性、实践性较强的课程,通过有针对性的课程设计,使学生学会系统地综合运用所学的理论知识,提高学生在微机应用方面的开发与设计本领,系统的掌握微机硬软件设计方法。 时钟就是一种对时间进行累计的工具,即计时。计时的本质就是计数,只不过这里的“数”的单位是时间单位,如果把一小片一小片计时单位累计起来,就可获得一段时间。因此,使用计数

2、器对时钟脉冲进行计数,就是时钟实现的基本原理;再用LED数码管显示出来,并设计出几个按键用于对时钟进行调整,这样,一个完整的时钟就设计完成了。关键字:原理、芯片、流程图、程序目录第一章 绪论1.1电子时钟背景介绍.4 1.2电子时钟功能介绍4 1.3 课程设计的目的及要求.4第二章 电子时钟的工作原理52.1实现时钟计时的基本方法52.2电子钟的时间显示5 2.3电子时钟启、停及时间调整.5 第三章 硬件设计3.1硬件设计电路图6 3.1.1 主电路模块.63.1.2 LED显示模块63.1.3按键模块73.2硬件设计所用芯片介绍73.2.1 8253芯片的内部结构及引脚93.2.2 8279

3、芯片的内部结构及引脚10 3.2.3 8259芯片的内部结构及引脚.12第四章 软件设计134.1 电子时钟部分程序流程框图13 4.1.1主程序流程框图14 4.1.2 键扫程序流程框图15 4.1.3 中断处理程序流程框图16 4.2 电子时钟总体程序.16第五章 总结与体会17参考文献.18附录.19 第1章 绪论1.1 电子时钟背景介绍 电子钟亦称数显钟(数字显示钟),是一种用数字电路技术实现时、分、秒计时的装置,与机械时钟相比,直观性为其主要显著特点,且因非机械驱动,具有更长的使用寿命,相较石英钟的石英机芯驱动,更具准确性。电子钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭

4、以及车站、码头、剧院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大地方便。相对于其他时钟类型,它的特点可归结为“两强一弱 ”:比机械钟强在观时显著,比石英钟强在走时准确,但是它的弱点为显时较为单调。 1.2 电子时钟功能介绍 可调整运行的电子钟具有三种工作状态:P.”状态、运行状态、调整状态。 (1)“P.”状态:依靠上电进入,在此状态下,按B, C, D键均无效,按A键有效,进入运行状态。 (2)运行状态:按奇数次A键进入,在此状态下,按B, C, D键均无效,只有按A键有效,按下A键后,退出运行状态,进入调整状态。 (3)调整状态:按偶数次A键进入,在此状态下,按A, B, C

5、, D键均有效。如按下A键,则退出调整状态,进入运行状态;按下B, C, D键,则分别对时、分、秒加1,调整结束后必须按A键,即可退出调整状态,进入运行状态口 基本功能要求: “P.”稳定地显示在LED显示器的最左端数码管上,无A键按下(在“P.”状态下,按下B, C, D键无效),则不进入电子钟的运行状态,继续显示“P.”。 按下A键后,电子钟从当前的设定值开始走时。 再次按下A键后,电子钟退出运行状态,进入调整状态,利用B, C, D键把电子钟的显示时间修改为当前实时时间,时间修改正确后可再次按下A键,电子钟则退出调整状态,进入运行状态。1.3 课程设计目的和要求(1)进一步熟悉8259、

6、8279、8253芯片的内部结构及其功能;(2)使用8253定时功能,产生0.5S的定时中断给8259;(3)在G5区的数码管上显示时间;(4)允许设置时钟初值。新的一章要换页! 第二章 电子时钟的工作原理2.1实现时钟计时的基本方法 利用8253的16位可编程定时/计数器及8086中断系统实现时钟计数。 (1)计数初值计算: 选用8253的定时/计数器1,把定时器设为工作方式2.输入250kHz,输出200Hz,定时时间为5-,则计数溢出200次即得时钟计时最小单位一秒. (2)采用中断方式进行fly出次数累计,计满200次为秒计时(1秒); (3)从秒到分和从分到时的计时是通过累加和数值比

7、较实现。 8253的初始化程序段:设置8253, t1,方式2,输入250kHz,输出200Hza mov dx,233h mov ax,1250 mov a1,74h out dx,al out dx,al mov aLah mov dx,231h out dx,al2.2电子钟的时间显示 电子钟的时钟时间在六位数码管上进行显示,因此,在内部RAN中设置显示缓冲区共6个单元。2.3电子钟的启、停及时间调整电子钟设置4个按键通过程序控制来完成电子钟的启、停及时间调整。 A-键控制电子钟的启、停 B-键调整时 C-键调整分D-键调整秒 第三章 硬件设计3.1 硬件设计电路图3.1.1主电路模块3

8、.1.2 LED显示模块显示部分由6个LED组成,用8255A的A口作LED的段码输出口,B口作六个LED数码管的位控输出线。电路如图4-2。!下面的图标跟这个不符合 图3-1-1 显示模块电路3.1.3按键模型 四个按键A, B, C, D分别完成各自功能,由8255A的C口控制。电路如图4-3。 图3-1-2 按键模块电路图 3.2硬件设计所用芯片介绍在本系统中,8086工作在最小模式下。负责对8259,8253等芯片进行工作方式控制和数据处理,对时钟信号进行响应并控制led数码管进行显示。(1)AD7AD0(双向。三态)为低8位地址数据的复用引脚线。采用分时的多路转换方法来实现对地址线和

9、数据线的复用。在总线坐骑的T1状态。这些银线表示为这些银线用作株距总线。可见对复用信号使用时间来加以划分的。它要求在T1状态线出现低8位地址时,用地址锁存器加以锁存。这样在随后的T状态,即使这些线用作数据线,而第8位地址线的地址在个体却被记录保存下来,并送到地址总线上。在DMA方式时,这些银线被浮置为高阻状态。 (2)A15A8(输出,三态)为8位地址线。在读写存储器或外设端口色中个总线周期内,都作为地址线输出高8位地址。在DMA方式时,这些引线被浮置为高阻。(3)A19/S6A16/S3(输出。三态)为地址状态服用引脚线,在总线周期的T1状态,这些线表示为最高4位的地址线,在总线周期的其他T

10、状态,这些线用作提供状态信息,同样需要地址锁存器对T1状态出现的最高4位地址加以锁存。状态信息S6总是为低电平,S5反映当前允许中断标志的状态。S4与S3一起指示当前那一个段寄存器被使用。 在DMA方式时,这些引线被浮置为高阻。(4)RD(输出,三态)读信号,当其有效时表示正在对存储器或IO端口进行读操作。若IOM为低电平,表示读取存储器的数据,若IOM为高电平,表示读取IO端口的数据。在DMA方式时,这些引线被浮置为高阻。(5)READY(输入)为准备就绪信号。低电平有效。本信号由等待指令WAIT来检查。我们知道当CPU执行WAIT指令时,CPU处于等待状态,一旦检测到TEST号为低,则结束

11、等待状态,继续执行WAIT指令下面的指令。(6)TEST(输入)为检测信号,低电平有效。本信号由低呢古代指令WAIT来检查。我们知道当CPU执行WAIT指令时,CPU处于等待状态,一旦检测到TEST号为低,则结束等待状态,继续执行WAIT指令下面的指令。(7)INTR(输入)可屏蔽中断请求信号,高电平有效。CPU在执行每条指令的最后一个T状态时,去采样INTR信号,若发现有效,而中断允许标志IF有为1,则CPU在结束当前指令周期后相应中断请求,赚取执行中断处理程序。(8)NMI(输入)非屏幕中断请求信号,为一个边缘触发信号,不能有软件加以屏蔽。只要在NMI线上出现由低到高的变化信号,则CPU就

12、会在当前指令中,赚取之行给屏蔽中断处理程序。(9)RESET(输入)复位信号,高电平有效,复位时该信号要求维持高电平值到4个时钟周期,若使初次加电,则高电平信号至少要保持50us,复位信号的到来,将立即结束CPU的当前操作,内部寄存器恢复到初始状态。当RESET信号从高电平回到低电平时,及复位后进入重新启动时,变质型从内存FFFF0H处带式的指令,通常在FFFF0H存放一条无条件转移指令,转移到系统程序的实际入口处。这样只要系统被复位启动,就自动进入系统程序。 (10)CLK(输入)时钟信号,它为CPU和总线控制电路提供基准时钟,对时钟信号要求:13周期为高电平,23周期为低电平。8088的标

13、准时钟频率为5MZ。 (11)电源和地VCC为电源引线,单一的为+5V电源。引脚为1和20为两条GND线,要求均要接地。 (12)IOM访问存储器或IO端口的控制信号。若IOM为高电平,则访问的是IO端口;若IOM为低电平,则访问的是存储器。 (13)WR写信号。当其有效时表示CPU正在对存储器或IO端口进行写操作,具体对水进行写操作,有IOM信号决定。本信号在总线周期的T2,T3。TW状态有效。在DMA方式时,此线被浮置为高阻。3.2.1 8253芯片的内部结构及引脚 8253有3个独立的十六位计数器,计数频率范围为0-2hIHZ。它所有的计数方式和操作方式都通过编程控制。 8253的功能用

14、途是:(1)延时中断;(2)可编程频率发生器;(3)事件计数器;(4)二进倍频器;(5)实时时钟;(6)数字单稳;(7)复杂的电机控制器。 8253引脚图以及功能说明:图3-2-1 8253引脚图 由上图可知,8253一共有24条引脚,其中: D7 -DO双向数据线:WR(低电平有效)写输入信号; RD(低电平有效)读愉入信号; CS(低电平有效)片选输入信号: A0, A1片内寄存器地址输入信号; CLK一一-it数输入,用于输入定时基准脉冲或计数脉冲 OUT输出信号,以相应的电平指示计数的完成,或输出脉冲波形 GATE-迭通输入(门控输入),用于启动或禁止计数器的操作,以使计数器和计测对象

15、同步。3.2.2 8279芯片的内部结构及引脚 图 3-2-2 8279引脚图图要居中!8279采用单5V电源供电,40脚封装。DB0DB7:双向数据总线,用来传送8279与CPU之间的数据和命令。CLK:时钟输入线,用以产生内部定时的时钟脉冲。RESET:复位输入线,8279复位后被置为字符显示左端输入,二键闭锁的触点回弹型式,程序时钟前置分频器被置为31,RESET信号为高电平有效。CS:片选输入线,低电平有效,单片机在CS端为低时可以对8279读/写操作。A0:缓冲器低位地址,当A0为高电平时,表示数据总线上为命令或状态, 当为低电平时,表示数据总线上为数据。RD:读信号输入线,低电平有

16、效,将缓冲器读出,数据送往外部总线。WR:写信号输入线,低电平有效,将缓立器读出,将数据从外部数据总线写入8279的缓冲器。RL2- 1 40 -VCCRL3- 2 39 -RL 1CLK- 3 38 -RL 0IRQ- 4 37 -CNTL/STBRL4- 5 36 -SHIFTRL5- 6 35 -SL 3RL6- 7 34 -SL 2RL7- 8 33 -SL 1RESRT- 9 32 -SL 0RD- 10 31 -OUT B0WR- 11 30 -OUT B1DB0- 12 29 -OUT B2DB1- 13 28 -OUT B3DB2- 14 27 -OUT A0DB3- 15 2

17、6 -OUT A1DB4- 16 25 -OUT A2DB5- 17 24 -OUT A3DB6- 18 23 -BDDB7- 19 22 -CSVSS- 20 21 -A0IRQ:中断请求输出线,高电平有效,在键盘工作方式下,当FIFO/传感器RAM中有数据时,此中断线变为高电平,在FIFO/传感器RAM每次读出时,中断线就下降为低电平,若在RAM中还有信息,则此线重又变为高电平。在传感器工作方式中,每当探测到传感器信号变化时,中断线就变为高电平。SL0SL3:扫描线,用来扫描按键开关,传感器阵列和显示数字, 这些可被编程或被译码。RL0RL7:回送线,经过按键或传感器开关与扫描线联接, 这

18、些回送线内部设置有上拉电路,使之保持为高电平,只有当一个按闭合时,对应的返回线变为低电平;无按键闭合时,均保持高电平。SHIFT:换位功能,当有开关闭合时被拉为低电平,没有按下SHIFT开关时,SHIFT输入端保持高电平,在键盘扫描方式中,按键一闭合,按键位置和换位输入状态一起被存贮起来。CNTL/STB:当CNTL/STB开关闭合时将其拉到低电平,否则始终保持高电平, 对于键盘输入方式,此线用作控制输入端,当键被按下时,按键位置就和控制输入状态一起被存贮起来,在选通输入方式中,作选通用,把数据存入FIFO RAM中。OUTA3OUTA0及OUTB3OUTB0:显示输出A口及B口,这两个口是1

19、64切换的数字显示。这两个端口可被独立控制,也可看成一个8位端口。BD:空格显示,此输出端信号用于在数字转换时将显示空格或者用显示空格命令控制其显示空格字符。VCC:+5V电源输入线。VSS:地线输入线。 3.2.3 8259A芯片的内部结构及引脚中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片。它将中断源优先排队、辨别中断源以及提供中断矢量的电路集中于一片中。因此无需附加任何电路,只需对8259A编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。在MD微机系统中,8259芯片工作于单片方式。8259引脚图如图3.3,各引脚功能如下。

20、D7D0八条双向数据线;WR(低电平有效)写输入信号;RD(低电平有效)读输入信号; CS(低电平有效)片选输入信号;A0地址信号; 图3-2-38259引脚图INT中断请求信号; INTA(低电平有效)中断响应信号;CAS0CAS2级联信号,形成一条专用8259A总线,以便多片8259A的级联;SP/EN从编程/允许级联。在缓冲方式中,可用做输出信号以控制总线缓冲器的接收和发送。在非缓冲方式中,作为输入信号用于表示主片还是从片;IR0IR7外部中断请求输入线。要求输入的中断请求信号是由低电平到高电平的上升沿(并保持高电平到CPU响应时为止)或者是高电平。8259中断矢量地址与中断信号之间的关

21、系如表3.1所示:表3.2.1 8259A中断矢量表中断序号01234567功能调用08H09H0AH0BH0CH0DH0EH0FH矢量地址20H23H24H27H28H2BH2CH2FH30H33H34H37H38H3BH3CH3FH说明时钟键盘可用可用串行口可用可用可用新的一章要换页! 第四章 软件设计4.1电子时钟部分程序流程框图4.1.1主程序流程框图 下面这个图的图标呢?!流程图也要有图的标号哈NYYNYYYNN8254A作为中断源产生20MS脉冲设置堆栈显示提示信息用INT21H35H号功能保存系统中8259A原中断向量 用INT21H35H号功能设置0A中断新的中断向量,指向年,

22、月,日加1的中断处理程序置8259A的IMR第2位为0,允许IRQ2中断调用键扫描子程序(KEY),键号的ASCII码在CHAR1单元中用INT21H35H号功能恢复原中断向量开中断 返回DOS是C键码?调用C键处理子程序是G键码?调用G键处理子程序是D键码?调用D键处理子程序是P键码?调用P键处理子程序是E键码?N开始开始显示缓冲区初始化、8279初始化8279状态口地址 DPTR状态字节 A屏蔽高4位、保留低4位 A A=0?调用取值子程序键值0FH?功能键处理子程序8279显示子程序显示缓冲区首址 R0计数长度 R7取显示数据为段选码,写入8279显示RAM指向下一个显示缓冲器R7-1

23、R7=0?结果结果4.1.2键扫子程序流程框图 4.1.3 中断处理程序流程框图 4.2电子时钟总体程序总程序见附录1 第五章 心得体会 微机接口技术是一门应用性、综合性、实践性都较强的课程,通过本次课程设计过程,我基木熟悉和掌握了微机系统的软件、硬件设计的方法、设计步骤,是一次微机开发应用方面的初步训练;通过本次课程设计使我熟练掌握了微机系统与接口扩展电路的设计方法,并熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法. 这次的课程设计对我来说,是一次非常重要的锻炼,通过这次设计,我对所学的知识有了更深刻的了解和掌握,使我懂得了理论

24、与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。有了这次的设计经验,相信在以后的学习设计实践过程中,我可以做到更好。 回顾此次课程设计的过程,可以用“累并收获着”来概括。通过本次设计,不但使我的专业知识得到巩固和开拓,而且能使我将所学与实践联系起来,认识到自身知识的缺漏,明确自己的努力的方向。计算机技术的发展日新月异,其接口技术应用十分广泛,我不但要经常跟踪专业新技术、新动态,时刻走在时代的前列;还要注重积累经验,在此次设计中,积累一些通用俗语,才能使自己慢慢地融入专业之中

25、,更快地进入工作角色:此外,还要注重养成终身的学习习惯,扩大自己的知识面,才能促进自己不断进步。参考文献 1.戴梅馨,史嘉权编著.微型计算机技术及应用.第三版.北京:清华大学出版社,2003: 2.李顺增,吴国东,赵河明等编著.微机原理及接口技术.第二版.北京:机械工业出版社,2006: 3.孙德文编著.微型计算机技术.第四版.高等教育出版社,2001: 4.赵明富.黄丽雯,李文杰等编著.微机原理及接口技术实验.第二版.重庆工学院电子信息与白动化学院出版,2002: 5.侯伯亨,李伯成编著.微机原理与接口技术.第五版.西安电子科技大学出版社,2000:附录.MODELTINYEXTRNDisp

26、lay8:NEAR, GetKeyA:NEAR, GetKeyB:NEARIO8259_0EQU0F000HIO8259_1EQU0F001HCon_8253EQU0E003HT0_8253EQU0E000H.STACK200.DATAhalfsecDB0;0.5秒计数SecDB0;秒MinDB0;分hourDB0;时bufferDB8 DUP(0);显示缓冲区,8个字节buffer1DB8 DUP(0);显示缓冲区,8个字节bNeedDisplayDB0;需要刷新显示numberDB0;设置哪一位时间bFlashDB0;设置时是否需要刷新.CODESTART:MOVAX,DATAMOVDS,

27、AXMOVES,AXNOPmovsec,0;时分秒赋初值23:58:00movmin,58movhour,23MOVbNeedDisplay,1;显示初始值CALLInit8253CALLInit8259CALLWriIntverSTIMAIN:CALLGetKeyA;按键扫描JNBMain1CMPAL,0FH;设置时间JNZMain1CALLSetTimeMain1:CMPbNeedDisplay,0JZMAINCALLDisplay_LED;显示时分秒MOVbNeedDisplay,0;1s定时到刷新转速Main2:JMPMAIN ;循环进行实验内容介绍与测速功能测试SetTimePROC

28、NEARLEASI,buffer1CALLTimeToBufferMOVNumber,0Key:CMPbFlash,0JZKey2LEASI,buffer1LEADI,bufferMOVCX,8REPMOVSBCMPhalfsec,0JNZFLASHMOVBL,numberNOTBLANDBX,07HLEASI,bufferMOVBYTE PTR SI+BX,10H;当前设置位置产生闪烁效果FLASH:LEASI,bufferCALLDisplay8MOVbFlash,0Key2:CALLGetKeyAJNBKeyCMPAL,0EH;放弃设置JNZKey1JMPExitKey1:CMPAL,0

29、FHJZSetTime8SetTime1:CMPAL,10JNBKey;无效按键CMPnumber,0JNZSetTime2CMPAL,3;调整时的十位数JNBKeyMOVbuffer1 + 7,ALJMPSetTime7SetTime2:CMPnumber,1JNZSetTime3CMPbuffer1 + 7,1;调整时的个位数JZSetTime2_1CMPAL,4JNBKeySetTime2_1:MOVbuffer1 + 6,ALINCnumberJMPSetTime7SetTime3:CMPnumber,3JNZSetTime4CMPAL,6;调整分的十位数JNBKeyMOVbuffer

30、1 + 4,ALJMPSetTime7SetTime4:CMPnumber,4JNZSetTime5MOVbuffer1 + 3,AL;调整分的个位数INCnumberJMPSetTime7SetTime5:CMPnumber,6JNZSetTime6CMPAL,6;调整秒的十位数JBSetTime5_1JMPKeySetTime5_1:MOVbuffer1 + 1,ALJMPSetTime7SetTime6:MOVbuffer1,AL;调整秒的个位数SetTime7:INCnumberCMPnumber,8JNBSetTime8MOVbFlash,1;需要刷新JMPKeySetTime8:M

31、OVAL,buffer1 + 1;确认MOVBL,10MULBLADDAL,buffer1MOVsec,AL;秒MOVAL,buffer1 + 4MULBLADDAL,buffer1 + 3MOVmin,AL;分MOVAL,buffer1 + 7MULBLADDAL,buffer1 + 6MOVhour,AL;时JMPExitExit:RETSetTimeENDP;hour min sec转化成可显示格式TimeToBufferPROCNEARMOVAL,secXORAH,AHMOVBL,10DIVBLMOVSI,AHMOVSI + 1,AL;秒MOVBYTE PTR SI + 2,10H;这

32、位不显示MOVAL,minXORAH,AHDIVBLMOVSI + 3,AHMOVSI + 4,AL;分MOVBYTE PTR SI + 5,10H ;这位不显示MOVAL,hourXORAH,AHDIVBLMOVSI + 6,AHMOVSI + 7,AL;时RETTimeToBufferENDP;显示时分秒Display_LEDPROCNEARLEASI,bufferCALLTimeToBufferLEASI,bufferCALLDisplay8;显示RETDisplay_LEDENDP;0.5s产生一次中断Timer0Int:PUSHAXPUSHDXMOVbFlash,1INChalfse

33、cCMPhalfsec,2JNZTimer0Int1MOVbNeedDisplay,1MOVhalfsec,0INCsecCMPsec,60JNZTimer0Int1MOVsec,0INCminCMPmin,60JNZTimer0Int1MOVmin,0INChourCMPhour,24JNZTimer0Int1MOVhour,0Timer0Int1:MOVDX,IO8259_0MOVAL,20HOUTDX,ALPOPDXPOPAXIRETInit8253PROCNEARMOVDX,Con_8253MOVAL,34HOUTDX,AL;计数器T0设置在模式2状态,HEX计数MOVDX,T0_82

34、53MOVAL,12HOUTDX,ALMOVAL,7AHOUTDX,AL;CLK0=62.5kHz,0.5s定时RETInit8253ENDPInit8259PROCNEARMOVDX,IO8259_0MOVAL,13HOUTDX,ALMOVDX,IO8259_1MOVAL,08HOUTDX,ALMOVAL,09HOUTDX,ALMOVAL,0FEHOUTDX,ALRETInit8259ENDPWriIntverPROCNEARPUSHESMOVAX,0MOVES,AXMOVDI,20HLEAAX,Timer0IntSTOSWMOVAX,CSSTOSWPOPESRETWriIntverENDPENDSTART

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号