您好,欢迎访问三七文档
电子时钟设计一、课程设计目的和意义掌握8255、8259、8253芯片使用方法和编程方法,通过本次课程设计,学以致用,进一步理解所学的相关芯片的原理、内部结构、使用方法等,学会相关芯片实际应用及编程,系统中采用8088微处理器完成了电子钟的小系统的独立设计。同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰。二、开发环境及设备1、设计环境PC机一台、windows98系统、实验箱、导线若干。2、设计所用设备8253定时器:用于产生秒脉冲,其输出信号可作为中断请示信号送IRQ2。8255并口:用做接口芯片,和控制键相连。8259中断控制器:用于产生中断。LED:四个LED用于显示分:秒值。KK1或KK2键与K7键,用于控制设置。三、设计思想与原理1、设计思想在本系统设计的电子时钟以8088微处理器作为CPU,用8253做定时计数器产生时钟频率,8255做可编程并行接口显示时钟和控制键电路,8259做中断控制器产生中断。在此系统中,8253的功能是定时,接入8253的CLK信号为周期性时钟信号。8253采用计数器0,工作于方式2,使8253的OUT0端输出周期性的负脉冲信号。即每隔20ms,8253的OUT0端就会输出一个负脉冲的信号,此信号接8259的IR2,当中断到50次数后,CPU即处理,使液晶显示器上的时间发生变化。其中8259只需初始化ICW1,其功能是向8259表明IRx输入是电瓶触发方式还是上升沿触发方式,是单片8259还是多片8259。8259接收到信号后,产生中断信号送CPU处理。2、设计原理利用实验台上提供的定时器8253和扩展板上提供的8259以及控制键和数码显示电路,设计一个电子时钟,由8253中断定时,控制键控制电子时钟的启停及初始值的预置。电子时钟的显示格式MM:SS由左到右分别为分、秒,最大记时59:59超过这个时间分秒位都清零从00:00重新开始。基本工作原理:每百分之一秒对百分之一秒寄存器的内容加一,并依次对秒、分寄存器的内容加一,四个数码管动态显示分、秒的当前值。三、设计所用芯片结构1、8259A芯片的内部结构及引脚中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片。它将中断源优先排队、辨别中断源以及提供中断矢量的电路集中于一片中。因此无需附加任何电路,只需对8259A编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。在MD微机系统中,8259芯片工作于单片方式。8259引脚图如图3.3,各引脚功能如下。D7~D0——八条双向数据线;WR(低电平有效)——写输入信号;RD(低电平有效)——读输入信号;CS(低电平有效)——片选输入信号;A0——地址信号;INT——中断请求信号;INTA(低电平有效)——中断响应信号;CAS0~CAS2——级联信号,形成一条专用8259A总线,以便多片8259A的级联;SP/EN——从编程/允许级联。在缓冲方式中,可用做图3.18259A引脚图输出信号以控制总线缓冲器的接收和发送。在非缓冲方式中,作为输入信号用于表示主片还是从片;IR0~IR7——外部中断请求输入线。要求输入的中断请求信号是由低电平到高电平的上升沿(并保持高电平到CPU响应时为止)或者是高电平。8259中断矢量地址与中断信号之间的关系如表3.1所示:中断序号01234567功能调用08H09H0AH0BH0CH0DH0EH0FH矢量地址20H~23H24H~27H28H~2BH2CH~2FH30H~33H34H~37H38H~3BH3CH~3FH说明时钟键盘可用可用串行口可用可用可用2、8255芯片的内部结构及引脚8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种工作方式下工作:方式0—基本输入/输出方式方式1—选通输入/输出方式方式2—双向选通输入/输出方式8255引脚图如图3.2示,各引脚功能如下。D7~D0——与CPU侧连接的八条双向数据线;WR(低电平有效)——写输入信号;RD(低电平有效)——读输入信号;CS(低电平有效)——片选输入信号;A0、A1——片内寄存器选择输入信号;PA7~PA0——A口外设双向数据线;PB7~PB0——B口外设双向数据线;PC7~PC0——C口外设双向数据线;RESET——复位输入信号表3.18259A中断矢量表图3.28255引脚图2、8255端口地址信号线寄存器编址IOY3A口60HB口61HC口62H控制寄存器63H3、8253芯片的内部结构及引脚8253可编程定时/计数器是Intel公司生产的通用外围芯片之一,有3个独立的十六位计数器,技术频率范围为0~2MHZ,它所有的技术方式和操作方式都通过编程控制。8253的功能用途是:(1)延时中断(2)可编程频率发生器(3)事件计数器(4)二进倍频器(5)实时时钟(6)数字单稳(7)复杂的电机控制器8253有六种工作方式:(1)方式0:计数结束中断(2)方式1:可编程频率发生器(3)方式2:频率发生器(4)方式3:方波频率发生器(5)方式4:软件触发的选通信号(6)方式5:硬件触发的选通信号8253引脚图如图3.3示,各引脚功能如下。表3.28255端口地址表图3.38253引脚图D7~D0——八条双向数据线;WR(低电平有效)——写输入信号;RD(低电平有效)——读输入信号;CS(低电平有效)——片选输入信号;A0、A1——片内寄存器地址输入信号;CLK——计数输入,用于输入定时基准脉冲或计数脉冲;OUT——输出信号,以相应的电平指示计数的完成,或输出脉冲波形;GATE——选通输入(门控输入),用于启动或禁止计数器的操作,以使计数器和计测对象同步。2、8253端口地址信号线寄存器编址IOY20#计数器40H1#计数器41H2#计数器42H控制寄存器43H四、具体模块设计1、概述本系统设计的电子钟以8088微处理器作为CPU,用8253做定时计数器产生时钟频率,8255做可编程并行接口显示时钟和键盘电路,8259做中断控制器产生中断。在此系统中,8253的功能是定时,接入8253的CLK信号为周期性时钟信号。8253采用计数器0,工作于方式2,使8253的OUT0端输出周期性的负脉冲信号。即每隔20ms,8253的OUT0端就会输出一个负脉冲的信号,此信号接8259的IR2,当中断到50次数后,CPU即处理,使液晶显示器上的时间发生变化。程序由以下模块组成:系统共有5个功能模块,分别为,主控模块,显示模块,定时模块,中断模块,小键盘模块。系统框图如下:表3.38253端口地址表2、主程序模块主控模块是系的核心模块,对8253、8255A进行初始化,设置中断向量,扫描键盘根据按键值作相应的处理。主要由软件实现。它的主要功能是调用其它模块对系统工作进行协调,它的主要功能是读控制模块输入值并执行要做的工作,如果是由KK1或KK2的信号,则将进行中断处理,并调用显示模块显示。如果控制模块输出的K7的信号,则将进入对时状态。3、控制模块控制模块送入主控模块的子功能模块。由软件和硬件实现,硬件上由控制键和8255互连,将键值由8255送入主控模块。软件上使用行扫描法获得键值并送回主控模块。4、显示模块显示模块是将显示缓冲区的数值送到LED显示的功能模块,显示缓冲区是由六个字节构成,分别保存小时的高位和低位,分钟的高位和低位,秒钟的高位和低位。硬件上由六个LED构成,软件上由扫描显示的方法实现。实现代码如下:DISPLAYPROCNEARMOVCX,77FFH控制模块读入的数显示缓冲的值秒脉冲显示模块主控模块中断模块定时模块控制模块四个LED控制键8255A82538259LED52:CALLDISUPLOOPLED52DISUP:PUSHCXMOVDI,OFFSETMIN1MOVCL,01DISUP1:MOVAL,0MOVDX,PORTBITOUTDX,ALMOVAL,[DI]MOVBX,OFFSETLEDXLATMOVDX,PORTSEGOUTDX,ALMOVAL,CLMOVDX,PORTBITOUTDX,ALMOVBX,35HDELAY1:DECBXJNZDELAY1CMPCL,20HJZDISUP2INCDISHLCL,1JMPDISUP1DISUP2:POPCXRETDISPLAYENDP5、定时模块定时模块是为8259提供中断请求信号的。由一片8253实现,选用定时器0#,工作在方式3,由于时钟应该1秒走动一次,所以输出值应为1S,其输出信号可作为8259的中断请求信号。6、中断处理模块中断模块实现动态显示的,硬件为一片8259,由于中断请求信号为每秒一次,中断程序该为时间按秒增加,并显示,只要开中断,便可实现每秒显示时间增加一秒,从而达到动态显示的效果。代码:START:moval,14hout76h,almoval,3dhOUT74H,ALMOVAL,1FHOUT80H,ALMOVAL,18HOUT81H,ALMOVAL,03HOUT81H,ALMOVAL,80HOUT0D6H,ALMOVAL,7FHOUT81H,ALMOVAX,0000HMOVCX,AXMOVBL,ALIR7:OUT00D0H,CLOUT00D2H,CHOUT00D4H,BLINCCLCMPCL,3CHJGEP1CALLIR7P1:MOVCL,ALINCCHCMPCH,3CHJGEP2CALLIR7P2:MOVCH,AHINCBLCMPBL,18HJGEP3CALLIR7MOVBL,ALCALLIR7CODEENDSENDSTART五、心得体会本次课程设计做的是电子时钟设计,本以为设计思路清楚,设计会简单,可是经过两周的时间,发现选择了一个相对比较难的题目,最终也没有将其完全设计出来,比较遗憾。这个题目有几个难处,一,是汇编语言与微机原理的相结合部分比较难,导致部分代码不能正确写出:二,对实验箱了解不充分,设计起来对具体端口不理解。三,本次设计的大多数题目都能在网上找到可以借鉴的程序,而我们的虽然找到了,但是遇到了相当不擅长的端口问题,暴漏了平常学习的缺漏。四,总结,中断,计数,以及端口等的知识在学习中没有能够很好的学习,遇到具体细节问题时,解决不了。两组成员一起讨论,仍然没有很好的解决,不过确实对微机原理的相关知识很有收获。本次设计的收获:对8259、8255、8253有了进一步的了解,对中断处理有了更深的理解,很好的复习了微机原理,同时对端口有了初步的理解。通过课程设计更加体会到了团队作战的长处,大家一起受益颇多,取长补短,最主要的是认识到了自己的不足,需要进一步学习所含知识,尤其是端口,更需要勤加练习汇编语言与微机原理的结合,课程设计受益颇多。参考书目:1、戴梅萼,史嘉权编著.微型计算机技术及应用(第三版).北京:清华大学出版社,20032、李顺增,吴国东,赵河明等.微机原理及接口技术.北京:机械工业出版社,20063、杨立新.微型计算机原理和应用[M].北京:科学技术文献出版社,1986.114、眭碧霞.微型计算机原理与组成[M].人民邮电出版社,2003.8
本文标题:电子时钟课程设计
链接地址:https://www.777doc.com/doc-75661 .html