清华大学电子工程系:《微机原理》实验四 接口实验

实验四接口实验 、实验目的 1.熟悉8253、8259、8250的使用方法 2.掌握中断管理程序、中断服务程序的编程方法 3.了解串行通信的原理与方法 二、实验内容 1.读懂并调通下面的硬件时钟程序 硬件时钟程序 利用微机现有资源,不外接任何电路进行硬件实验的例子。本程序通过修改实时时钟 (中断类型号08H)的中断向量使之指向用户的中断服务程序,程序中重新设置8253的计 数器0,使它每1/100秒产生一次中断,100次中断后秒量加1,然后调整时、分、秒并显示 之。程序从按下非空格键开始显示数据区中存放的时间值,然后每秒更新一次显示。运行中 若按下空格键即退出程序返回DOS STACK SEGMENT PARA STACK STACK DB 256DUP(0) STACK ENDS DATA SEGMENT SEGS IMR DB COUNT TENH DB HOUR DB TENM DB MINUTE DB SECOND DB 0. ODH ' S DATA ENDS CODE SEGMENT START PROC FAR ASSUME CS CODE. DS: DATA
实验四 接口实验 一、实验目的 1.熟悉 8253、8259、8250 的使用方法 2.掌握中断管理程序、中断服务程序的编程方法 3.了解串行通信的原理与方法 二、实验内容 1.读懂并调通下面的硬件时钟程序 硬件时钟程序 利用微机现有资源,不外接任何电路进行硬件实验的例子。本程序通过修改实时时钟 (中断类型号 08H)的中断向量使之指向用户的中断服务程序,程序中重新设置 8253 的计 数器 0,使它每 1/100 秒产生一次中断,100 次中断后秒量加 1,然后调整时、分、秒并显示 之。程序从按下非空格键开始显示数据区中存放的时间值,然后每秒更新一次显示。运行中 若按下空格键即退出程序返回 DOS。 STACK SEGMENT PARA STACK 'STACK' DB 256 DUP(0) STACK ENDS DATA SEGMENT SEG8 DW ? OFF8 DW ? IMR DB ? COUNT DB 100 TENH DB '2' HOUR DB '3:' TENM DB '5' MINUTE DB '9:' TENS DB '5' SECOND DB '0', 0DH, '$' DATA ENDS CODE SEGMENT START PROC FAR ASSUME CS:CODE, DS:DATA

MOV AX. DATA MOV MOV AH. O 等待键按下,并读出到AX中 T MOV AL,08H取8H中断的中断向量并保存 MOV AH. 35H INT 21H MOV SEG& ES MOV OFF8 BX CLI 用户中断服务程序装载 PUSH MOV TIMER DS MOV DX OFFSET TIMER MOV AH. 25H INT 21H POP MOV AL,00110110B8253初始化,10Ms中断一次 43H AL MOV AX,11932 OUT 40H AL AL, 21H 读8259的IMR MOV IMR. AL 保存IMR MOV AL, OFCH 重写IMR,开放时钟和键盘中断 不改变其他位 OUT 2IH. AL STI FOREVER: MOV AH. I 检测键盘而不等待 INT 16H CMP AL, 20H 有空格按下吗? EXIT 有空格按下退出 MOV DX, OFFSET TENH;无空格按下,显示时间 MOV AH. 09H INT 21H MOV AL, SECOND取秒值 WAITCHA: AL, SECOND秒值变否 WAITCHA 秒值不变等待 JMP FOREVER EXIT CLI MOV AL, IMR 恢复保存的IMR
MOV AX, DATA MOV DS, AX MOV AH, 0 ;等待键按下,并读出到 AX 中 INT 16H MOV AL, 08H ;取8H中断的中断向量并保存 MOV AH, 35H INT 21H MOV SEG8, ES MOV OFF8, BX CLI ;用户中断服务程序装载 PUSH DS MOV AX, SEG TIMER MOV DS, AX MOV DX, OFFSET TIMER MOV AH, 25H INT 21H POP DS MOV AL, 00110110B ;8253初始化,10MS中断一次 OUT 43H, AL MOV AX, 11932 OUT 40H, AL MOV AL, AH OUT 40H, AL IN AL, 21H ;读8259的IMR MOV IMR, AL ;保存IMR MOV AL, 0FCH ;重写IMR,开放时钟和键盘中断, ;不改变其他位 OUT 21H, AL STI FOREVER: MOV AH, 1 ;检测键盘而不等待 INT 16H CMP AL, 20H ;有空格按下吗? JZ EXIT ;有空格按下退出 MOV DX, OFFSET TENH ;无空格按下,显示时间 MOV AH, 09H INT 21H MOV AL, SECOND ;取秒值 WAITCHA: CMP AL, SECOND ;秒值变否 JZ WAITCHA ;秒值不变等待 JMP FOREVER EXIT: CLI MOV AL, IMR ;恢复保存的IMR

2IH.AL MOV AL, 36H 重新设置8253,55MS中断一次 4H. AL MOV 40H AL OUT 40H AL CLI 恢复原中断向量 PUSH MOV AX. SEGS MOV DS. AX MOV DX. OFF& MOV MOV AL, 08H INT 21H STI MOV AH. 43H INT TIMER PROC FAR PUSH AX COUNT MOV COUNT 100 SECOND MP SECOND. 9 JLE TIMEXT MOV SECOND. 0 TENS TENS TIMEXT TENS. 0 MINUTE CMP MINUTE 9 JLE TIMEXT MOV MINUTE. O TENM CMP TENM TIMEXT MOV TENM. O J MP JMP TIMEXT AL, HOUR AND AL, OFH MOV AF H. TENH
OUT 21H, AL MOV AL, 36H ;重新设置8253,55MS中断一次 OUT 43H, AL MOV AL, 0 OUT 40H, AL OUT 40H, AL CLI ;恢复原中断向量 PUSH DS MOV AX, SEG8 MOV DS, AX MOV DX, OFF8 MOV AH, 25H MOV AL, 08H INT 21H STI MOV AH, 43H INT 21H TIMER PROC FAR PUSH AX DEC COUNT JNZ L2 MOV COUNT, 100 INC SECOND CMP SECOND, '9' JLE TIMEXT MOV SECOND, '0' INC TENS CMP TENS, '6' JL TIMEXT MOV TENS, '0' INC MINUTE CMP MINUTE, '9' JLE TIMEXT MOV MINUTE, '0' INC TENM CMP TENM, '6' JL TIMEXT MOV TENM, '0' JMP L3 L2: JMP TIMEXT L3: MOV AL, HOUR AND AL, 0FH MOV AH, TENH

AND AH ODH MOV ROL AH. CL AL, AH DAA AL,24 MOV TENH. O MOV HOUR O JMP TIMEXT MOV AH. AL AND AL, OFH Al MOV HOUR AL MOV CL. 4 ROR AH. CL AND AH OFH OR AH. 30H MOV TENH. AH TIMEXT: MOV AL, 20H 20H AL POP AX IRET TIMER ENDP START ENDP CODE ENDS STAI 2.参考教材P260的程序,编写完整的8250通信口自测程序。程序运行过程中,按下 Ctrl c退出程序返回DOS 三、实验报告要求 调试通过的程序清单和程序说明
AND AH, 0DH MOV CL, 4 ROL AH, CL OR AL, AH ADD AL, 1 DAA CMP AL, 24 JL L1 MOV TENH, '0' MOV HOUR, '0' JMP TIMEXT L1: MOV AH, AL AND AL, 0FH OR AL, 30H MOV HOUR, AL MOV CL, 4 ROR AH, CL AND AH, 0FH OR AH, 30H MOV TENH, AH TIMEXT: MOV AL, 20H OUT 20H, AL POP AX IRET TIMER ENDP START ENDP CODE ENDS END START 2.参考教材 P. 260 的程序,编写完整的 8250 通信口自测程序。程序运行过程中,按下 Ctrl_c 退出程序返回 DOS 三、实验报告要求 调试通过的程序清单和程序说明

按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 清华大学电子工程系:《微机原理》实验二小键盘按键识别.doc
- 清华大学电子工程系:《微机原理》实验三ADDA.doc
- 清华大学电子工程系:《微机原理》实验三 汇编语言程序设计(3).doc
- 清华大学电子工程系:《微机原理》实验一设计数码管电子表.doc
- 清华大学电子工程系:《微机原理》考试大纲.doc
- 清华大学电子工程系:《微机原理》MessageBox.doc
- 清华大学电子工程系:《微机原理》ISA-based data acquisition and control board.doc
- 《网络安全设计》 附录 D CHAP、 MS-CHAP和 MS-CHAP V2中的 身份验证.ppt
- 《网络安全设计》 附录C安全管理的运营框架设计.ppt
- 《网络安全设计》 附录B网络管理策略的设计.ppt
- 《网络安全设计》 附录A可接受使用策略的设计.ppt
- 《网络安全设计》 第十二章 设计安全事件应对措施.ppt
- 《网络安全设计》 第十一章 创建网络周边安全设计.ppt
- 《网络安全设计》 第十章 创建数据传输安全设计.ppt
- 《网络安全设计》 第九章 数据安全设计.ppt
- 《网络安全设计》 第八章 身份验证的安全设计.ppt
- 《网络安全设计》 第七章 创建账户安全设计.ppt
- 《网络安全设计》 第六章 创建计算机安全设计.ppt
- 《网络安全设计》 第五章 创建物理资源安全设计.ppt
- 《网络安全设计》 第四章 分析安全风险.ppt
- 清华大学电子工程系:《微机原理》实验四DMA.doc
- 清华大学电子工程系:《微机原理》第一章 微型计算机系统概论.ppt
- 清华大学电子工程系:《微机原理》第二章 Pentium微处理器的体系结构 2.1 计算机体系结构的含义 2.2 Pentium微处理器的内部结构 2.3 实模式软件体系结构.ppt
- 清华大学电子工程系:《微机原理》第三章 Pentium微处理器的指令系统 3.1 概述 3.2 Pentium微处理器的寻址方式 3.3 数据传送指令 3.4 算术运算指令.ppt
- 清华大学电子工程系:《微机原理》第三章 Pentium微处理器的指令系统(3.5-3.10)第四章 汇编语言程序设计(4.1-4.4).ppt
- 清华大学电子工程系:《微机原理》第四章 汇编语言程序设计 4.5 保护模式下的汇编语言程序设计 4.6 Win32汇编语言程序设计 4.7 与高级语言的接口.ppt
- 清华大学电子工程系:《微机原理》第四章 Pentium微处理器的体系结构 2.4 保护模式软件体系结构 2.5 浮点部件软件体系结构.ppt
- 清华大学电子工程系:《微机原理》浮点运算指令及汇编语言程序设计.ppt
- 清华大学电子工程系:《微机原理》第五章 Pentium微处理器的硬件接口.ppt
- 清华大学电子工程系:《微机原理》第六章 存储器系统.ppt
- 清华大学电子工程系:《微机原理》第七章 输入输出接口 7.1概述 7.2CPU与外设数据传送的方式 7.3可编程计数器/定时器8253.ppt
- 清华大学电子工程系:《微机原理》第八章 中断与中断控制 8.1 中断的基本概念 8.2 可编程中断控制器8259 8.3 中断服务程序的编程 8.4 保护模式的中断处理.ppt
- 清华大学电子工程系:《微机原理》第七章 输入/输出接口 7.4串行通讯和串行接口 7.5 并行接口.ppt
- 清华大学电子工程系:《微机原理》第七章 输入/输出接口 7.6 DMA控制器8237 7.7 D/A和A/D转换技术.ppt
- 清华大学电子工程系:《微机原理》第八章 总线 8.1 概述 8.2 ISA总线 8.3 PCI总线.ppt
- 清华大学电子工程系:《微机原理》期中自测试题.doc
- 清华大学电子工程系:《微机原理》自测试题参考答案.doc
- 清华大学电子工程系:《微机原理》汇编程序设计实验报告一.doc
- 清华大学电子工程系:《微机原理》第一周作业参考.doc
- 清华大学电子工程系:《微机原理》第七次作业参考答案.doc