- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
8253和8259来实现的简单的时钟,硬件中断时钟设计
利用8253和8259实现简单时钟
一、内容
利用PC系列微机现有的硬件和软件资源编写程序,以便在显示器屏幕上显示XX(时):XX(分):XX(秒),并且每秒钟更新一次显示。
二、设计目的
掌握8253、8259A芯片。
三、设计思路
IBM PC/XT系统板上使用了一片8253-5,其地址为40H ~ 43H,其中0通道在方式3下工作,初值设置23小时59分50秒,每隔55ms向中断控制器8259A的IRQ0端发一次中断请求。此定时中断的用途之一是系统报时。现在借用原有电路,重新设置定时器、编写中断服务程序来做硬件时钟实验,为此程序开始应首先保护原系统的08H中断的中断矢量(中断服务程序入口地址),以便程序退出时恢复原系统的设置。保护原系统的08H中断的中断矢量可用DOS 35H功能调用读出,并加以适当保存,也可以用以下指令将中断矢量压入堆栈保存。
具体过程:等待按键按下,调用DOS的显示字符串功能,并对中断进行压栈操作后,建立数据段的可寻址性,通过装载现行的中断服务程序,使用8253初始化的0通道,3方式,二进制计数进行方式3的10ms方波,即每10ms中断一次,通过保护原有的8259A的中断屏蔽寄存器IMR的内存,进行下一步的IMR的重写,只开放始终和键盘的中断处理。进而开中断,运行TIMER模块的时间调用及DOS显示系统时间的功能,待TIMER模块运行结束之后,关闭中断返回DOS,程序结束。
CLI ;关中断
CLD ;DF=0
MOV AX ,0000H
MOV DS ,AX ;DS:SI指向08H中断矢量表中的位置
MOV SI ,0020H
LODSW
MOV BX ,AX ;BX:原中断服务程序入口偏移地址
LODSW ;AX:原中断服务程序入口的段地址
PUSH AX ;压栈保护
PUSH BX
四、硬件原理图及相关说明
1、8253
这是8253的相关图形,一般8253要实现定时、计数控制大致可采用三种方法:
①设计数字逻辑电路来实现定时或计数的要求。即由硬件电路实现的定时器/
计数器。
②用软件来实现定时和计数的要求。即采用循环方式执行若干条指令,使程
序段执行时占用一定的延时时间。
③采用可编程定时器/计数器。其定时与计数功能可由程序灵活设定,设定后
于CPU并行工作,不占用CPU的时间,可以很好地解决以上两种定时存在的不足,这种方式广泛应用于各种定时或计数场合。
8253的工作方式三是方波发生器,方式三的输出为方波,具有“初始化自动重装”功能。向8253写入控制字后,OUT输出变为高电平,在写完计数初值后计数器自动开始对输入时钟CLK计数,OUT输出保持高电平。当计数到一半时,输出变为低电平,直至计数到0,在重装计数初值,OUT端变高开始新一轮计数。
2、8259A
8259A常用于中断优先级管理电路,它的功能有三种:
①它可以接受多个外部中断源的中断请求,并进行优先级别判断,选中当前
优先级别最高的中断请求,再将此请求送到微处理器的中断输入端。
具有提供中断向量、屏蔽中断输入等功能。
②8259A使用单+5V电源供电,有多种中断管理方式,自动提供中断服务程序
入口地址,使用灵活方便。
五、软件流程图及其说明
图1.0 硬件中断时钟设计流程图
硬件中断时钟设计算法具体描述,等待建按下调用DOS的7号功能键,并将中断的中断矢量进行压栈保护,建立数据段的可寻址性,通过装载现行的中断服务程序,使用8253初始化产生10ms方波,每10ms中断一次,保护原有的8259A的中断屏蔽寄存器IMR的内存,进行下一步的IMR的重写。进而开中断,然后调用DOS的6好功能键,通过判断是否有键按下和是否按下的是空格键实现显示时间和关闭中断返回DOS,程序结束。
六、功能模快设计说明
1、模块1
这部分模块是实现当按下空格键时程序关中断,恢复IMR,重新设置8253中断时间,恢复中断矢量以及开中断。
2、模块2
3、模块3
这个模块是实现的等待功能
4、模块4
根据秒值是否相同来执行循环,但秒值变化了就返回继续执行程序。
七、源程序
STACK SEGMENT
DB 256 DUP(0)
STACK ENDS
DATA SEGMENT
COUNT DB 100
您可能关注的文档
最近下载
- 日立电梯MCA13中文注释版电气原理图.pdf
- 财务总监培训战略成本管理-战略成本管理.ppt VIP
- 战略成本管理 .pdf VIP
- 2024-2025学年江苏省无锡市锡山高级中学高一(上)月考物理试卷(10月)(含答案).docx VIP
- 江苏省梅村某中学2022年物理高一年级上册期末达标检测试题含解析.pdf VIP
- 江苏省梅村高级中学2022年物理高一年级上册期末经典试题含解析.pdf VIP
- 小学道德与法治教学论文(5篇).pdf VIP
- 2025年智启未来·险见新机-人保寿险大模型探索及实践.docx
- 大班美术优秀教案及教学反思《秋天的画报》.docx VIP
- 《光纤耦合器讲解》课件.ppt VIP
原创力文档


文档评论(0)