- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验八 实时电子时钟.doc
实验八 实时电子时钟
实验目的
在实际微机应用系统中,常常会同时使用8253/8254和8259A两种芯片来实现整个系统和系统中某个子系统的功能。例如,利用它们协同工作来实现电子时钟、日时钟和定时中断等功能,就是它们较常见的用途。本实验的主要目的就是通过这些应用实验,使学生能够:
掌握利用8253/8254和8259A协同工作来实现实时时钟和定时中断等功能的方法。
进一步了解并掌握中断的机理和中断的全过程。
进一步掌握8253/8254和8259A的工作原理、主要功能与正确的使用方法。
二、实验任务
利用8253/8254和8259A芯片完成实时电子时钟功能的实验。
三、 实验设备器材
1.80X86微型计算机一台。
2.微机硬件实验平台。
3.8253/8254接口芯片一片。
4.基本TTL电路芯片若干。
四、 实验准备
1.复习8253/8254和8259A接口芯片的工作原理和初始化编程的方法。
2.复习8253/8254和8259A接口芯片的管脚图和内部结构。
3.根据实验任务,画出实验电路的硬件连线图。
4.编写好实验源程序。
五、实验原理提示
利用8253/8254和8259A芯片实现实时电子时钟
要设计实现一个电子时钟,首先必不可少的环节就是需要有一个定时脉冲信号来使得系统进行计数操作。在本实验中,正好可以采用8253/8254计数/定时器芯片来获得这一定时脉冲信号。
在实验设计时,可以将8253/8254的计数器0设置为1/100S向微机发出一次中断请求信号,微机则根据中断的次数来完成对时间的计数和累加的操作。要实现8253/8254每隔1/100S向微机发一次中断请求的功能,可以将8253/8254的时钟端与一定的外接时钟相连接,并根据以下公式计算出计数器的计数初值,然后在初始化编程时对计数器进行设置:
8253/8254计数值=输入脉冲频率值÷输出频率值
或:8253/8254计数值=输入脉冲频率值×定时时间
在许多微机硬件实验平台上,都提供了一个现成的晶振发生器和分频/计数电路(例如,在CHI-A型微机硬件实验箱上有一个8MHZ的晶体和一个由74LS393组成的分频/计数电路)实验时可以利用该分频电路将晶体分为1MHZ的脉冲信号,再将输出端OUT0与微机总线上的中断请求IRQ3端相连,并将GATE0接高电平。由此即可完成8253/8254每隔1/100S向微机发一次中断请求的功能,然后在中断服务程序中通过软件计数来相继获得秒、分、时等实时时钟的单位值。
通过以上基本方法和思路的介绍,可以将本实验的硬件连接图设计如图1所示,供参考。
根据以上思路和实验的设计要求,应当将8253/8254的计数器0设置为方式3的工作模式,并根据要求设计本实验的主程序。其设计思路如下:
(1)为了简化程序的设计,可以将时钟显示的时、分、秒数据都用两位数来表示,中间用“:”号分隔开。设计和实现时可以首先在屏幕上显示出提示信息:“请按格式输入HH:MM:SS”(其中,“HH”表示小时数,“MM”表示分钟数,“SS”表示秒数),然后利用INT 21H的0AH号功能调用将时钟的初始值从键盘输入到计算机中去。而此时输入的时间值是以ASCLL字符的后面加上“$”符作为结束标志。
(2)将8253/8254中断服务程序的入口地址添入中断向量表;然后送中断屏蔽字,使系统只开放键盘中断和用户使用的IRQn中断。
(3)初始化8253/8254的通道0,写入方式控制字和计数初值。
(4)判是否有键盘按下,如果无键按下,则继续执行(4);若有键盘按下,则读键值,当键值为“ESC”时,进行结束处理(5),若键值非“ESC”则转去执行(4)
(5)恢复系统中断屏蔽字和原中断向量,返回DOS。
综上所述,实时电子时钟实验的主程序流程图可如图2所示。
有了以上主程序的设计,对于本实验的中断服务子程序的设计思路如下:
由于8253/8254的定时时间为1/100S,因此每过1/100S 8253/8254就通过8259发出一次中断请求,因此,在中断服务程序中应该首先将1/100S计数单元加1;如果1/100S计数单元的计数值已满100时,则将其清0,并将秒个位计数单元加1;当秒个位计数单元累计到10时,将秒个位清0,并将秒十位计数单元加1;当秒十位计满到6时,将秒十位、个位都清9,并将分个位加1……依此类推。由此时钟计数的整个进位过程就完成了。图3给出了电子时钟的中断服务子程序的参考流程图。
六、注意事项
1.由于实验中的实验数据是以ASCII码的形式键入、存放和输出显示的,因此在编程时需要用ASCII码的数字形式来进行运算操作。例如:在完成将秒个位清0操作时,应当将秒个位写为30H(0的ASCII码为30H)。
2.在
文档评论(0)