《微机原理+课程设计+数字钟.pdf》由会员分享,可在线阅读,更多相关《微机原理+课程设计+数字钟.pdf(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、.目录一、设计要求1二、设计所用芯片。2三、设计思想。.2四、设计所用芯片结构51、8259A 芯片的内部结构及引脚52、8279 芯片的内部结构及引脚43、8253 芯片的内部结构及引脚5五、系统各个模块设计61、系统总体设计62、主控模块73、CPU 模块74、定时模块 .95、中断处理模块。96、显示模块和小键盘模块 错误错误!未定义书签。未定义书签。六、程序流程图错误错误!未定义书签。未定义书签。1、主程序流程图错误错误!未定义书签。未定义书签。2、定时中断服务程序流程图 22七、设计总结 23.附录一:参考书目 24附录二:总体图.24附录三:源代码 17一、设计要求一、设计要求.利
2、用试验平台提供的硬件资源设计一个电子表。该电子表以时、分、秒的形式实时显示当前时间,且具有校表功能,利用小键盘与标准时间校准。掌握 8255、8259、8253 芯片使用方法和编程方法,通过本次课程设计,学以致用,进一步理解所学的相关芯片的原理、内部结构、使用方法等,学会相关芯片实际应用及编程,系统中采用 8088 微处理器完成了电子钟的小系统的独立设计。同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰。二、设计所用芯片二、设计所用芯片8253 定时器:用于产生秒脉冲,其输出信号可作为中断请示信号送 IRQ2。8279 接口
3、芯片:实现键盘输入和显示输出。8259 中断控制器:用于产生中断。LED:六个 LED 用于显示时:分:秒值。小键盘:用于控制设置。三、设计思想三、设计思想1、设计思想本系统设计的电子时钟以 8088 微处理器作为 CPU,用 8253 做定时计数器产生时钟频率,8279 做可编程并行接口显示时钟和键盘电路,8259 做中断控制器产生中断。在此系统中,8253 的功能是定时,接入 8253 的 CLK 信号为周期性时钟信号。8253 采用计数器 0,工作于方式 2,使 8253 的 OUT0 端输出周期性的负脉冲信号。即每隔 20ms,8253 的 OUT0.端就会输出一个负脉冲的信号,此信号
4、接 8259 的 IR2,当中断到 50 次数后,CPU 即处理,使液晶显示器上的时间发生变化。其中 8259 只需初始化 ICW1,其功能是向 8259 表明 IRx 输入是电平触发方式还是上升沿触发方式,是单片 8259 还是多片 8259。8259 接收到信号后,产生中断信号送 CPU 处理。2、设计原理利用定时器 8253 和 8259 以及键盘和数码显示电路,设计一个电子时钟,由8253 中断定时,小键盘控制电子时钟的启停及初始值的预置。电子时钟的显示格式 HH:MM:SS 由左到右分别为时、分、秒,最大记时59:59:59超过这个时间时分秒位都清零从 00:00:00 重新开始。设
5、计一个定时显示装置,用六个数码管显示时间,用小键盘控制计时,设置和显示时间。系统一运行就从00 点 00 分 00 秒开始计时,并在数码管上显示时、分、秒当前值,而且,可以用键盘设置当前时间。基本工作原理:每百分之一秒对百分之一秒寄存器的内容加一,并依次对秒、分、小时寄存器的内容加一;六个数码管动态显示时、分、秒的当前值。C 键:置初值,显示 00:00:00G 键:显示动态变化(启动表);D 键:显示静态不变(表停止);E 键:终止程序,返回 DOS;P 键:设置时:分:秒的值.四、设计所用芯片结构四、设计所用芯片结构1、8259A 芯片的内部结构及引脚中断控制器 8259A 是 Intel
6、 公司专为控制优先级中断而设计开发的芯片。它将中断源优先排队、辨别中断源以及提供中断矢量的电路集中于一片中。因此无需附加任何电路,只需对 8259A 编程,就可以管理 8 级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。在 MD 微机系统中,8259 芯片工作于单片方式。8259 引脚图如图 3.3,各引脚功能如下。8259A 引脚图.D7D0八条双向数据线;WR(低电平有效)写输入信号;RD(低电平有效)读输入信号;CS(低电平有效)片选输入信号;A0地址信号;INT中断请求信号;INTA(低电平有效)中断响应信号;CAS0CAS2级联信号,形成一条专用 8259A 总
7、线,以便多片 8259A 的级联;SP/EN从编程/允许级联。在缓冲方式中,可用做输出信号以控制总线缓冲器的接收和发送。在非缓冲方式中,作为输入信号用于表示主片还是从片;IR0IR7外部中断请求输入线。要求输入的中断请求信号是由低电平到高电平的上升沿(并保持高电平到 CPU 响应时为止)或者是高电平。8259 中断矢量地址与中断信号之间的关系如表 3.1 所示:中断序号0功能调用08H矢量地址20H.8259A 中断矢量表109H24H20AH28H30BH2CH40CH30H50DH34H60EH38H70FH3CH.23H说明时钟27H键盘2BH可用2FH可用33H37H3BH可用3FH可
8、用串行口可用2、8279 芯片的内部结构及引脚Intel8279 是一种通用的可编程序的键盘、显示接口器件,单片器件就能够完成键盘输入和显示控制两种功能。键盘部分提供一种扫描的工作方式,可以和具有64 个按键的矩阵键盘相连接,能对键盘不断扫描,自动消抖,自动识别按下的键并给出编码,能对双键或 n 键同时按下实行保护。.显示部分为发光二极管、荧光管及其它显示器提供了按扫描方式工作的显示接口,它为显示器提供多路复用信号,可以显示多达 16 位的字符或数字。DB0DB7:双向数据总线,用来传送 8279 与 CPU 之间的数据和命令。CLK:时钟输入线,用以产生内部定时的时钟脉冲。RESET:复位输
9、入线,8279 复位后被置为字符显示左端输入,二键闭锁的触点回弹型式,程序时钟前置分频器被置为 31,RESET 信号为高电平有效。CS:片选输入线,低电平有效,单片机在 CS 端为低时可以对 8279 读/写操作。A0:缓冲器低位地址,当A0 为高电平时,表示数据总线上为命令或状态,当为低电平时,表示数据总线上为命令或状态,当为低电平时,表示数据总线上为数据。RD:读信号输入线,低电平有效,将缓冲器读出,数据送往外部总线。WR:写信号输入线,低电平有效,将缓立器读出,将数据从外部数据总线写入 8279 的缓冲器。3、8253 芯片的内部结构及引脚.8253 可编程定时/计数器是 Intel
10、公司生产的通用外围芯片之一,有 3 个独立的十六位计数器,技术频率范围为 02MHZ,它所有的技术方式和操作方式都通过编程控制。8253 的功能用途是:(1)延时中断(2)可编程频率发生器(3)事件计数器(4)二进倍频器(5)实时时钟(6)数字单稳(7)复杂的电机控制器8253 有六种工作方式:.(1)方式 0:计数结束中断(2)方式 1:可编程频率发生器(3)方式 2:频率发生器(4)方式 3:方波频率发生器(5)方式 4:软件触发的选通信号(6)方式 5:硬件触发的选通信号8253 引脚图如图 3.3 示,各引脚功能如下。D7D0八条双向数据线;WR(低电平有效)写输入信号;RD(低电平有
11、效)读输入信号;CS(低电平有效)片选输入信号;A0、A1片内寄存器地址输入信号;CLK计数输入,用于输入定时基准脉冲或计数脉冲;OUT输出信号,以相应的电平指示计数的完成,或输出脉冲波形;GATE选通输入(门控输入),用于启动或禁止计数器的操作,以使计数器和计测对象同步。2、8253 端口地址信号线.8253端口地址表寄存器编址.0#计数器1#计数器IOY22#计数器控制寄存器五、系统各个模块设计五、系统各个模块设计1、系统总体设计40H41H42H43H本系统设计的电子钟以 8088 微处理器作为 CPU,用 8253 做定时计数器产生时钟频率,8279 做可编程并行接口显示时钟和键盘电路
12、,8259 做中断控制器产生中断。在此系统中,8253 的功能是定时,接入 8253 的 CLK 信号为周期性时钟信号。8253 采用计数器 0,工作于方式 2,使 8253 的 OUT0 端输出周期性的负脉冲信号。即每隔 20ms,8253 的 OUT0 端就会输出一个负脉冲的信号,此信号接8259 的 IR2,当中断到 50 次数后,CPU 即处理,使液晶显示器上的时间发生变化。程序由以下模块组成:系统共有 5 个功能模块,分别为,主控模块,显示模块,定时模块,中断模块,小键盘模块。系统总体框图如下:.显示模块小键盘模块小键盘六个 LED8279显示缓冲的值键盘读入的数2、主控模块主控模块
13、是系的核心模块,对 8253、8279 进行初始化,设置中断向量,扫描键盘根据按键值作相应的处理。主要由软件实现。它的主要功能是调用其它模块对系统工作进行协调,它的主要功能是读小键盘输入键值并执行要做的工作,如果键值为 C 则将显示初始值00:00:00 置入显示缓冲,并调用显示模块显示。如果键值为 G 则开中断,(中断程序为秒最低位加一)。如果键值为D 则关中断,停止动态显示。如健值为P 则连续六次调用小键盘模块,将键值依次存入显示缓冲。并调用显示模块显示。如果健值为E,则终止程序,返回 DOS。.主控模块中断模块8259秒脉冲定时模块8253系统总体框图.3、CPU 模块8088 最小工作
14、模式,作为整个电子表的核心控制部分。在 8088 最小模式中,硬件连接上有如下特点:(1)MN/MX 端接+5V,决定了 8088 工作在最小模式。(2)有 1 片 8284A,作为时钟发生器。(3)有 3 片 8282,用来作为地址锁存器。8282 是典型的锁存器芯片,因为它是 8 位的,所以需要 3 片 8282 作为锁存器。(4)当系统中所连的存储器和外设系统较多时,需要增加数据总线的驱动能力,这时,要用两片 8286 作为总线收发器。.8088 构成的 CPU.4、定时模块定时模块是为 8259 提供中断请求信号的。由一片 8253 实现,选用定时器 0#,工作在方式 3,由于时钟应该
15、1 秒走动一次,所以输出值应为1S,其输出信号可作为8259 的中断请求信号。定时模块原理图5、中断处理模块.中断模块实现动态显示的,硬件为一片 8259,由于中断请求信号为每秒一次,中断程序该为时间按秒增加,并显示,只要开中断,便可实现每秒显示时间增加一秒,从而达到动态显示的效果。中断模块原理图6、显示模块和小键盘模块显示模块是将显示缓冲区的数值送到 LED 显示的功能模块,显示缓冲区是由六个字节构成,分别保存小时的高位和低位,分钟的高位和低位,秒钟的高位和低位。硬件上由六个 LED 构成,软件上由扫描显示的方法实现。.小键盘模块送入主控模块的子功能模块。由软件和硬件实现,硬件上由小键盘和
16、8279互连,将小键值由8279 送入主控模块。软件上使用行扫描法获得键值并送回主控模块。本课题只考虑去抖动。执行一个约10ms 的延时程序后再扫描键盘,若F0=1 表示真正有键按下,从而消除了抖动影响。其中 8279 接口电路如下:显示模块原理图.键盘部分原理图:.六、程序流程图1、主程序流程图.2、定时中断服务程序流程图:保护现场秒单元+1秒单元=60?Y秒单元清零,分单元+1N分单元=60?Y分单元清零,小时单元+1N时单元=24?Y小时单元=0N显示时分秒恢复现场中断返回.七、设计总结七、设计总结通过本次课程设计,我对利用微机原理课程所学的知识设计电子表的基本过程的设计方法、步骤、思路
17、、有一定的了解与认识。它相当于实际工业设计的模拟。在课程设计过程中,我先是收集、调查有关资料,然后进入草案阶段,其间与指导教师进行几次方案的讨论、修改,再讨论、再修改,最后定案,得出了总体方案设计。设计方案确定后,又在老师指导下进行扩初详细设计,并分别设计了相应的模块;将这些模块组合起来,便形成了一个完整的电子表的设计。经过这次成功的设计,我更加深刻的理解了微机原理的相关知识。对一些常用芯片有了更深一步的认识,并且能够很好的使用它们。应该说,这次课程设计达到了目的。.附录一:参考书籍1、戴梅萼,史嘉权编著.微型计算机技术及应用(第 4 版).北京:清华大学出版社,20082、周明德编著.微型计
18、算机系统原理及应用(第四版).北京:清华大学出版社,20023、李顺增,吴国东,赵河明等.微机原理及接口技术.北京:机械工业出版社,20064、杨立新.微型计算机原理和应用M.北京:科学技术文献出版社,1986.115、李大友.微型计算机原理M.北京:清华大学出版社,1998.76、眭碧霞.微型计算机原理与组成M.人民邮电出版社,2003.8附录二、总体原理图.附录三:源代码D8279equ 200HC8279equ 202HC8253equ 20bHD82530 equ 208HD82531 equ 209HC82590 equ 210HC82591 equ 211Hdata segment
19、HOURdb 00MINUTEdb 00STATdb 00LEDdb 3fH,06H,5bH,4fH,66H,6dH,7dH,27H,7fH,6fH,00H,00HDISBUFdb 8 dup(0)data endsstack segment stack.dw 100 dup(?)stack endscode segmentassume cs:code,ds:datastart:MOVAX,DATAMOVDS,AX;=INIT 8259=CLIMOVAL,13HMOVDX,C82590OUTDX,ALMOVAL,8MOVDX,C82591OUTDX,ALMOVAL,1OUTDX,ALMOVAX
20、,0MOVES,AXLEAAX,INT0.MOVES:4*8,AXMOVAX,CSMOVES:4*8+2,AX;=INIT 8253=MOVMOVOUTMOVMOVOUTMOVOUTMOVMOVOUTMOVMOVOUTMOV.DX,C8253AL,36HDX,D82530AX,10000AL,AHDX,C8253AL,36HDX,D82531AX,100AL,AHDX,ALDX,ALDX,ALDX,ALDX,AL.OUTDX,AL;=INIT 8279=MOVDX,C8279MOVAL,00HOUTDX,ALMOVAL,34HOUTDX,ALMOVAL,0D2HOUTDX,ALMOVSTAT,
21、0MOVDX,C82591MOVAL,0FEHOUTDX,AL;=WAIT1:MOVDX,C8279INAL,DXMOVAH,ALANDAL,80HJNEWAIT1.MOVAL,AHANDAL,0FHCMPAL,00HJEWAIT1MOVAL,40HOUTDX,ALCHK:MOVDX,D8279INAL,DXCMPAL,33HJNEBBBMOVDX,C82591MOVAL,0FFHOUTDX,ALMOVAL,STATINCALMOVSTAT,ALCMPAL,1JNZAA1MOVSI,OFFSET DISBUF.MOVCX,4MOVAL,00BB0:MOVSI,ALINCSILOOPBB0CAL
22、LDISPJMPCHK;=AA1:MPAL,2JNZAA2MOVSI,OFFSET DISBUFMOVAL,00MOVSI,ALINCSIMOVSI,ALADDSI,2MOVSI,ALINCSIMOVSI,AL.CALLDISPJMPCHK;=AA2:MPAL,3JNZAA3MOVSI,OFFSET DISBUF+2MOVCX,4MOVAL,00BB1:MOVSI,ALINCSILOOPBB1CALLDISPJMPCHK;=AA3:MOVSTAT,00MOVAL,0FEHMOVDX,C82591OUTDX,ALCALLFULLSFM.CALLDISPJMPCHK;=BBB:CMPAL,3BHJ
23、EBB0JMPCCCBB0:MOVAL,STATCMPAL,1JNZBBB1MOVAL,HOURADDAL,1DAAMOVHOUR,ALCALLFULLSHICALLDISPJMPBBB;=BBB1:MOVAL,STATCMPAL,2.JNZBBB3MOVAL,MINUTEADDAL,1DAAMOVMINUTE,ALCALLFULLFENCALLDISPJMPBBB;=BBB3:MOVAL,STATCMPAL,3JZBBB4JMPDDDBBB4:MOVAL,SECONDADDAL,1DAAMOVSECOND,ALCALLFULLMIAOCALLDISP.JMPBBB;=CCC:CMPAL,3A
24、HJECC0JMPDDDCC0:MOVAL,STATCMPAL,1JNZCCC1MOVAL,HOURSUBAL,1DASMOVAL,HOURSUBAL,1DASMOVHOUR,ALCALLFULLSH1CALLDISPJMPCCC.CCC1:MOVAL,STATCMPAL,2JNZCCC3MOVAL,MINUTESUBAL,1DASMOVMINUTE,ALCALLFULLFENCALLDISPJMPCCCCCC3:MOVAL,STATCMPAL,3JZCCC4JMPDDDCCC4:MOVAL,SECONDSUBAL,1DAS.MOVSECOND,ALCALLFULLMIAOCALLDISPJM
25、PCCCDDD:MOVSTAT,0MOVAL,0FFHMOVDX,C82591OUTDX,ALCALLFULLSFMCALLDISPJMPCHKINT0:PUSHAXPUSHBXPUSHDIPUSHSIMOVAL,SECONDADDAL,1DAAMOVSECOND,AL.CMPAL,60HJNZFANHUIMOVSECOND,0MOVAL,MINUTEADDDAAMOVCMPJNZMOVMOVADDDAAMOVCMPJNZMOVCALLCALL.AL,1MINUTE,ALAL,60HMINUTE,0AL,HOURAL,1HOUR,ALAL,24HHOUR,0FANHUIFANHUIFULLSF
26、MDISP.POPSIPOPDIPOPBXPOPAXIRETFULLSFMPROC NEARLEADI,DISBUFLEABX,LEDLEASI,SECONDMOVCX,3AA4:MOVAL,SIANDAL,0FHXLATMOVDI,ALINCDIMOVAL,SIPUSHCXMOVCL,4.SHRAL,CLANDAL,0FHXLATMOVDI,ALINCDIPOPCXINCSILOOP AA4RETFULLSFMENDPFULLSHIPROC NEARLEASI,DISBUFMOVAL,0MOVCX,4CCC0:MOVSI,ALINCSILOOP CCC0LEABX,LEDMOVAL,HOUR
27、.ANDAL,0FHXLATMOVSI,ALXLATMOVSI,ALMOVAL,HOURMOVCL,4SHRAL,CLANDAL,0FHXLATINCSIMOVSI,ALRETFULLSHIENDPFULLFENPROCNEARLEASI,DISBUFMOVAL,0MOVSI,ALINCSI.MOVSI,ALINCSILEABX,LEDMOVAL,MINUTEANDAL,0FHXLATMOVSI,ALMOVAL,MINUTEMOVCL,4SHRAL,CLANDAL,0FHXLATINCSIMOVSI,ALRETFULLFENENDPFULLMIAOPROC NEARLEASI,DISBUFLEABX,LED.MOVAL,SECONDANDAL,0FHXLATMOVSI,ALMOVMOVSHRANDXLATINCMOVMOVINCMOVINCMOVINCMOVINC.AL,SECONDCL,4AL,CLAL,0FHSISI,ALAL,0SISI,ALSISI,ALSISI,ALSI.MOVSI,ALRETFULLMIAOENDPDISPPROCNEARMOVCX,8MOVDX,D8279LEASI,DISBUFDISIMOVAL,SIOUTDX,ALINCSILOOPDISIRETCODEENDSENDSTART.
限制150内