用8088设计电子时钟参考模板_第1页
用8088设计电子时钟参考模板_第2页
用8088设计电子时钟参考模板_第3页
用8088设计电子时钟参考模板_第4页
用8088设计电子时钟参考模板_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、利用8088设计电子时钟的设计报告目 录一、设计任务和要求2二、设计方案的选择与论证3 2.1方案比较3 2.2方案选择4三、程序设计计算与分析5 3.1实现时钟计时的基本方法5 3.2电子钟的时间显示6 3.3硬件设计电路图6 3.3.1主电路模块6 3.3.2 LED显示模块7 3.3.3按键模块8 3.3.4总体电路图8 3.4硬件设计所用芯片介绍9 3.5、软件设计13 3.5.1主程序流程框图13 3.5.2键扫子程序流程框图14 3.5.3中断处理程序流程框图15 3.6电子时钟总体程序16四、总结及体会16五附录17六参考文献261 / 29一、设计任务和要求 时钟就是一种对时间

2、进行累计的工具,即计时。计时的本质就是计数,只不过这里的“数”的单位是时间单位,如果把一小片一小片计时单位累计起来,就可获得一段时间。因此,使用计数器对时钟脉冲进行计数,就是时钟实现的基本原理;再用LED数码管显示出来,并设计出几个按键用于对时钟进行调整,这样,一个完整的时钟就设计完成了。本次课程设计要求利用8253定时器设计一个具有时、分、秒显示的电子时钟,并定义一个启动键,当按下该键的时候,时钟从当前的设定值(可以在缓冲区中设置)开始走时。同时,再定义三个按键,分别对时、分、秒进行校正。可调整运行的电子钟具有三种工作状态:“P.”状态、运行状态、调整状态。 (1)“P.”状态:依靠上电进入

3、,在此状态下,按B, C, D键均无效,按A键有效,进入运行状态。 (2)运行状态:按奇数次A键进入,在此状态下,按B, C, D键均无效,只有按A键有效,按下A键后,退出运行状态,进入调整状态。 (3)调整状态:按偶数次A键进入,在此状态下,按A, B, C, D键均有效。如按下A键,则退出调整状态,进入运行状态;按下B, C, D键,则分别对时、分、秒加1,调整结束后必须按A键,即可退出调整状态,进入运行状态口 基本功能要求: “P.”稳定地显示在LED显示器的最左端数码管上,无A键按下(在“P.”状态下,按下B, C, D键无效),则不进入电子钟的运行状态,继续显示“P.”。 按下A键后

4、,电子钟从当前的设定值开始走时。 再次按下A键后,电子钟退出运行状态,进入调整状态,利用B, C, D键把电子钟的显示时间修改为当前实时时间,时间修改正确后可再次按下A键,电子钟则退出调整状态,进入运行状态。二、设计方案的选择与论证2.1方案比较 方案一:利用AT89S52单片机内部的定时/计数器进行中断定时,配合软件延时实现时、分、秒的计时:AT89S52的PO口和P2口外接LED数码管构成显示器;P1口外接四个按键A, B, C, D构成键盘电路。如图2-1所示。 图2-1 AT89S52单片机设计方案框图 方案二:以8088微处理器作为CPU, 8253做定时计数器产生时钟脉冲,8255

5、A做可编程并行接口,接LED显示时钟和扩展调整按键。如图2-2所示。 图2-2以8088为CPU设计方案框图2.2方案选择 就方案一用单片机来设计电子时钟,从主要芯片耗材上来说比方案二要少,但是用单片机来设计电子时钟,需要做的其他模块,如单片机最小系统,相对方案二要复杂很多,而且就程序上的编写来说,方案二也比方案一简单。因此,本设计采用方案二来做。 三、程序设计计算与分析3.1实现时钟计时的基本方法 利用8253的16位可编程定时/计数器及8088中断系统实现时钟计数。 (1)计数初值计算: 选用8253的定时/计数器1,把定时器设为工作方式2.输入250kHz,输出200Hz,定时时间为5毫

6、秒,则计数溢出200次即得时钟计时最小单位一秒. (2)采用中断方式进行fly出次数累计,计满200次为秒计时(1秒); (3)从秒到分和从分到时的计时是通过累加和数值比较实现。 8253的初始化程序段:设置8253, t1,方式2,输入250kHz,输出200Hz。计数初值计算公式t=1/f*TC,t为设定时间,TC为计算初值。 mov dx,233h mov a1,74h;设置控制字 out dx,al mov dx,231h mov ax,1250;设置初值 out dx,al mov al,ah out dx,al3.2电子钟的时间显示 电子钟的时钟时间在六位数码管上进行显示,因此,在

7、内部RAN中设置显示缓冲区共6个单元。电子钟设置4个按键通过程序控制来完成电子钟的启、停及时间调整A键控制电子钟的启、停: B键调整时 C键调整分D键调整秒3.3硬件设计电路图3.3.1主电路模块主电路模块由8088, 8253, 8255A构成,电路如图所示。3-3-1主电路模块电路3.3.2 LED显示模块显示部分由6个LED组成,用8255A的A口作LED的段码输出口,B口作六个LED数码管的位控输出线。电路如图3-3-23-3-2显示模块电路3.3.3按键模块四个按键A, B, C, D分别完成各自功能,由8255A的C口控制。电路如图3-3-33-3-3按键模块电路3.3.4总体电路

8、图 总体电路图见附录l3.4硬件设计所用芯片介绍1.8088的芯片引脚介绍在本系统中,8088工作在最小模式下。负责对8255A,8253等芯片进行工作方式控制和数据处理,对时钟信号进行响应并控制LED数码管进行显示。1.AD7AD0(双向。三态)为低8位地址数据的复用引脚线。采用分时的多路转换方法来实现对地址线和数据线的复用。在总线坐骑的T1状态。可见对复用信号使用时间来加以划分的。它要求在T1状态线出现低8位地址时,用地址锁存器加以锁存。这样在随后的T状态,即使这些线用作数据线,而低8位地址线的地址在个体却被记录保存下来,并送到地址总线上。在DMA方式时,这些引线被浮置为高阻状态。 2.A

9、15A8(输出,三态)为8位地址线。在读写存储器或外设端口的总线周期内,都作为地址线输出高8位地址。在DMA方式时,这些引线被浮置为高阻。3.A19/S6A16/S3(输出。三态)为地址状态复用引脚线,在总线周期的T1状态,这些线表示为最高4位的地址线,在总线周期的其他T状态,这些线用作提供状态信息,同样需要地址锁存器对T1状态出现的最高4位地址加以锁存。状态信息S6总是为低电平,S5反映当前允许中断标志的状态。S4与S3一起指示当前哪一个段寄存器被使用。 在DMA方式时,这些引线被浮置为高阻。4.RD(输出,三态)读信号,当其有效时表示正在对存储器或IO端口进行读操作。若IOM为低电平,表示

10、读取存储器的数据,若IOM为高电平,表示读取IO端口的数据。在DMA方式时,这些引线被浮置为高阻。5.READY(输入)为准备就绪信号。低电平有效。本信号由等待指令WAIT来检查。我们知道当CPU执行WAIT指令时,CPU处于等待状态,一旦检测到TEST号为低,则结束等待状态,继续执行WAIT指令下面的指令。6.TEST(输入)为检测信号,低电平有效。本信号由等待指令WAIT来检查。我们知道当CPU执行WAIT指令时,CPU处于等待状态,一旦检测到TEST号为低,则结束等待状态,继续执行WAIT指令下面的指令。7.INTR(输入)可屏蔽中断请求信号,高电平有效。CPU在执行每条指令的最后一个T

11、状态时,去采样INTR信号,若发现有效,而中断允许标志IF有为1,则CPU在结束当前指令周期后响应中断请求,转去执行中断处理程序。8.NMI(输入)非屏幕中断请求信号,为一个边缘触发信号,不能由软件加以屏蔽。只要在NMI线上出现由低到高的变化信号,则CPU就会在当前指令中,转去执行给屏蔽中断处理程序。9.RESET(输入)复位信号,高电平有效,复位时该信号要求维持高电平值到4个时钟周期,若使初次加电,则高电平信号至少要保持50us,复位信号的到来,将立即结束CPU的当前操作,内部寄存器恢复到初始状态。当RESET信号从高电平回到低电平时,即复位后进入重新启动时,CPU执行从内存FFFF0H处的

12、指令,通常在FFFF0H存放一条无条件转移指令,转移到系统程序的实际入口处。这样只要系统被复位启动,就自动进入系统程序。10.CLK(输入) 时钟信号,它为CPU和总线控制电路提供基准时钟,对时钟信号要求:13周期为高电平,23周期为低电平。8088的标准时钟频率为5MHz。11.电源和地 VCC为电源引线,单一的为+5V电源。引脚为1和20为两条GND线,要求均要接地。12.IOM 访问存储器或IO端口的控制信号。若IOM为高电平,则访问的是IO端口;若IOM为低电平,则访问的是存储器。13.WR 写信号。当其有效时表示CPU正在对存储器或IO端口进行写操作,具体对谁进行写操作,有IOM信号

13、决定。本信号在总线周期的T2,T3。TW状态有效。在DMA方式时,此线被浮置为高阻。2. 8253芯片的内部结构及引脚8253有3个独立的十六位计数器,计数频率范围为0-2.6MHz。它所有的计数方式和操作方式都通过编程控制。8253的功能用途是:(1)延时中断;(2)可编程频率发生器;(3)事件计数器;(4)二进倍频器;(5)实时时钟;(6)数字单稳;(7)复杂的电机控制器。8253引脚图以及功能说明:图3-4-1 8253引脚38255A芯片的内部结构及引脚8255A可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A, B, C三个并行接口,用+5V单电源供电,能在以

14、下三种工作方式下工作:方式0-基本输入/输出方式,方式1-选通输入/输出方式,方式2-双向选通输入/输出方式。8255A引脚图如图4-6所示,各引脚功能如下:图3-4-2 8255A引脚D7-DO与CPU连接的双向数据线;WR(低电平有效)写输入信号;RD(低电平有效)读输入信号;CS(低电平有效)片选输入信号:A0, A1片内寄存器选择输入信号; PAOPA7 A口外PA7-PAO A口外设双向数据线; PB7-PBO B口外设双向数据线;PC7-PCO C口外设双向数据线RESET复位输入信号 3.5、软件设计3.5.1主程序流程框图图3-5-1主程序流程框图3.5.2键扫子程序流程框图如

15、图3-5-2所示图3-5-2键扫子程序流程框图3.5.3中断处理程序流程框图图3-5-3中断处理程序流程框图3.6电子时钟总体程序总程序见附录2四、总结及体会随着计算机技术的飞速发展,微机接口技术作为计算机技术的一门学科,它是一门应用性、综合性、实践性都较强的课程,通过本次课程设计过程,我基本熟悉和掌握了微机系统的软件、硬件设计的方法、设计步骤,是一次微机开发应用方面的初步训练;通过本次课程设计使我熟练掌握了微机系统与接口扩展电路的设计方法,并熟练应用8088汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法。通过本次设计,不但使我的专业知识得到巩固

16、和开拓,而且能使我将所学与实践联系起来,我对所学的知识有了更深刻的了解和掌握,使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。计算机技术的发展日新月异,其接口技术应用十分广泛,我不但要经常跟踪专业新技术、新动态,时刻走在时代的前列;还要注重积累经验,积累一些通用俗语,才能使自己慢慢地融入专业之中,更快地进入工作角色。此外,还要注重养成终身的学习习惯,扩大自己的知识面,才能促进自己不断进步。有了这次的设计经验,在以后的学习设计实践过程中,我会继续努力。五附录附录1附录2电子时钟程序

17、;8255A用作读键盘信息;8253提供时钟信号;LED采用动态显示;8088工作在最小模式下stack 50data; 数据段buf db 0,0,0,0,0,0 ;显示缓冲区led db 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,80h;数码管笔形码0,1等hour db 08h ;时缓冲单元min db 30h ;分缓冲单元sec db 30h ;秒缓冲单元msec db 0 ;毫秒缓冲单元dex db 0 ;笔形码索引值keytab dw 57FH,5BFH,5DFH,5EFH,5FEH,5FDH,5FBH,5F7H dw 67FH,6BFH,6D

18、FH,6EFH,6FEH,6FDH,6FBH,6F7H ;键盘编码表keyend dw 7ffhagekey db 12 ;键龄oldkey dw 0 ;键码字保存keynum db 0 ;键号keyok db 0 ;按键响应标记state db 0 ;系统状态,0一运行态;1一修改态keymd db 0 ;修改键标记,B修改时;C修改分;D修改秒stime db 0 ;时间设定单元,保存键盘输入的时间代码段code;主程序:;实现8253的设置,中断向量的设置,检测系统大键盘信号,有按键就结束程序返回系统。main proc farstart: mov ax,data ;设置数据段和附加段

19、mov ds,ax mov es,ax cli;关中断;设置8253, 计数器1,方式2,输入250kHz,输出200Hz mov dx,233h mov a1,74h ;设置控制字 out dx,al mov dx,231h mov ax,1250 ;设置初值 out dx,al mov al,ah out dx,al;保存原中断向量 mov al,Obh mov ah,35h int 21hpush es ;保护现场push bxpush ds;设置新中断向量mov dx, offset intpromov ax,seg intpromov ds,axmov a1,Obhmov ah,25

20、hint 21h;打开中断屏蔽 pop ds in a1,21h and al,Of7h out 21h,a1 sti;开中断;等持按键,返回系统wait: mov ah,l int lbh jz wait;回复中断向量 pop dx ;恢复现场 pop ds mov a1,Obh mov ah,25h int 21h;退出程序,返回系统 mov ax,4e00h int 21h;中断一f程序:;完成时钟处理、键盘监控和显示功能intpro proc near push ds ;保存寄存器 push ax push cx axmov ax,data ;设置数据段和代码段寄存器mov ds,ax

21、;不是修改状态才走时钟nush;时钟处理模块,以5毫秒为单位调整时、分秒。elk: inc msec ; 毫秒加1mov al,msecadd al,ldaamov sec,alcmp sec,60hjnz nextmov sec,0mov al,minadd al,ldaamov min,alcmp min,60hjnz nextmov min,0mov al,houradd al,ldaamov hour,alcmp hour,24hjnz nextmov hour,0;键盘监控模块next: dec agekeyjz nextljmp dspnextl: mov agekey,12mov

22、 dx,223h ;设置PA输出,PB输入mov a1,82h ;设置8255A控制字out dx,almov a1,0 ;A口输出低电平,读B口mov dx,220h out dx,almov dx,221hin al,dxmov bh,almov dx,223h ;设置PB输出,PA输入mov a1,90h ;设置8255A控制字out dx,almov al,0 mov dx,22lhout dx,almov dx,220hin al,dxmov bl,al and bx,7ffh ;去除键码中无用位数cmp bx,7ffhjnz keyon ;有按键则进入按键处理mov keyok,0

23、 ;无按键则清除响应标志退出按键处理jmp dspkeyon: cmp bx,oldkeyjz keyonl ;已经去抖动则直接处理按键mov agekey,4 ;有新按键则设置键龄退出中断mov keyok,0mov oldkey,bxjmp dspkeyonl: cmp keyok,ljnz II ;按键已响应则退出键盘处理jmp dspII: mov keyok,l ;设立按键响应标记 stdlea di,keyend ;指向键码表mov ax,bx ;读取键号,地址递减,cx的值为键号 mov cx,17 ;串长送寄存器cxrepne scasw ;不相等继续查找,一旦相等退出je k

24、eyon2jmp dspkeyon2: mov keynum,cl ;保存键号cmp state,0 ;系统在修改态否?jne keyon3 ;跳到修改态的处理cmp keynum,0ah ;为A键否jne keybmov keymd,l ;作a键修改标志mov hour,0aah ;时显示为一mov state,l ;进入修改态jmp dspkeyb: cmp keynum,Obh ;为B键否jne keycmov keymd,2 ;作b键修改标志mov min,0aah ;分钟异示为.mov state,l ;进入修改态jmp dspkeyc: cmp keynum,Och ;为c键否je

25、 keycljmp dspkeycl: mov keymd,3 ;作c键修改标志mov sec,0aahmov state,l ;秒显示为.jmp dspkeyon3: cmp keynum,9 ;在修改态,判断是否为数字键jbe keys ;<=9则认为是数字键jmp keyen ;否则判断是否为确定键keyn: mov al,stime ;滋取输入时间,十进制格式 mov c1,4shl al,cl ;在确定以前最后输入的两个十进制数有效or al,keynum mov stime,aljmp dspkeyen: cmp keynum,Ofh ;处理f键je keyenljmp ds

26、pkeyenl: mov state,0 ;恢复到运行态cmp keymd,l ;将修改内容送小时单元jne keyen2mov keymd,0 ;清除修改小时标志cmp stime,24h ;判断输入时间是否>=24jb key-3mov hour,0 ;大于24时,输入为0mov stime,0 ;清除时间单元jmp dspkey-3: mov al,stimemov hour,al ;小于24时,输入设定时间mov stime,0 ;清除时间单元jmp dspkey-2: cmp keymd,2 ;将修改分钟标志jne keyen4mov keymd,0 ;请除修改分钟标志cmp stime,60hjb keyen5 mov min,0 mov stime,0jmp dspkeyen5: mov al,stime mov min,al mov stime,0jmp dspkeyen4: cmp keymd,3 ;将修改秒jne dspmov keymd,0cmp stime,60h ;判断输入时间是否>

温馨提示

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

评论

0/150

提交评论