网站大量收购独家精品文档,联系QQ:2885784924

中断系统与 8259A 中断控制器.ppt

  1. 1、本文档共105页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中断系统与 8259A 中断控制器

5. 避免“DOS重入” “DOS 重入”示意图 : : : INT21H 现行程序 21H型服务程序 : : IRET 有中断请求 : : INT 21H DOS不允许重入 6. 中断服务程序的执行时间必须远小于定时中断的时间间隔 7. 中断结束向8259A发中断结束命令 定时中断周期T1 服务程序执行时间 IRX T2 T1 T2 二、定时中断程序结构 结构一: 主程序 服务程序 关中断 中断源初始化 置换中断向量 其他准备工作 开中断 等待中断 程序结束前 恢复系统资源 恢复中断向量 返回DOS 保护现场 定时时间到? 执行定时操作 向8259A送结束命令 恢复现场 IRET 避免DOS重入 Yes No 二、定时中断程序结构 结构二: 主程序 服务程序 关中断 中断源初始化 置换中断向量 其他准备工作 开中断 恢复系统资源 恢复中断向量 返回DOS 保护现场 定时时间到? 设置“时间到”标志 向8259A送结束命令 恢复现场 IRET 其他操作 执行定时操作 程序是否需要结束? 有无“时间到”标志? Yes Yes No No 特点:服务程序不直接执行定时操作,而是建立“时间到”标志,由主程序判断时间到标志再进行定时操作。 Yes No 三、定时中断程序举例 【例8.1】 1CH型中断的应用 假设微机系统外扩了共阴级数码管电路(见下页),要求使用系统定时源并采用中断方式每隔一秒完成一次8字左移,循环往复,直到主机键盘按下任意键时停止。 a b c d e f g h 共阴级数码管结构 h a b c d e f g h 8位锁存器(位选) (200H选中) D0 D1 D2 D3 D4 D5 D6 D7 D0-D7 8位锁存器(段选) (201H选中) D0 D7 D6 D5 D4 D3 D2 D1 a b c d e f g h CS CS (反相输出) COM COM COM COM COM COM 数码管显示原理 使用段选码和位选码进行控制: 段选码:显示什么字符。6个数码管的同名段共享连接,即D0→a;D1→b…;D6→g;D7→h 。显示字符“8”的段选码是7FH。 位选码:选择被点亮的LED(仅D5-D0有效)。 点亮右边第1个LED,位选码 点亮右边第2个LED,位选码 : : 点亮左边第1个LED,位选码 [设计思路] 主要解决四个问题: 字符“8”的显示控制问题,包括段选码和位选码; 定时时间间隔1秒钟如何实现; 每隔一秒钟“8”如何左移一位显示; 显示过程如何结束 MOV DX,201H MOV AL,7FH ;“8”段码 OUT DX, AL MOV DX,200H MOV AL,Origin ;位码 OUT DX, AL SHR Origin,1 : SCAN:MOV AL,1 INT 16H JZ SCAN 结束准备 定时程序由主程序和1CH型中断服务程序组成 主程序: 关中断 转移系统的1CH型中断向量 写入用户的1CH型中断向量 第6位数码管显示“8”字符 开中断 有键入? 恢复系统的1CH型中断向量 返回DOS Yes No SCAN: MOV AH,1 INT 16H JZ SCAN CALL RESET MOV AH,4CH INT 21H 定时程序由主程序和1CH型中断服务程序组成 1CH型中断服务程序: 保护现场 重新定义用户数据段 中断计数 满18次? 18→中断计数单元 “8”左移一位 恢复现场 中断返回 Yes No ; FILENAME:891.ASM .486 DATA SEGMENT USE16 ; 数据段定义 OLD1C DD ? ICOUNT DB 18 ; 中断计数初值 ORIGIN DB 20H ; 数码管位选初值 DATA ENDS CODE SEGMENT USE16 ; 代码段 ASSUME CS:CODE, DS:DATA START: MOV AX, DATA ; DS段赋值 MOV DS, AX CLI ; 关中断 CALL READ1C CALL WRIT

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档