微机实践实验一
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一开关状态显示
一、实验目的
熟悉实验箱和软件开发平台的使用。了解基本 I/O 端口的操作方法和技巧,掌握编程
和调试基本技能。
二、实验内容
利用74LS244作为输入口,读取开关状态,根据给定表格中开关状态对应的输出关系,通过74LS273驱动发光二极管显示出来。
三、实验区域电路连接图
参考上图连线:
Y0~Y1接K1~K2(对应J1、J2);Q0~Q7接L1~L8(对应J3至J10);CS1接8000H孔(对应J12);CS2接9000H孔(对应J11);IOWR→IOWR;IORD→IORD;然后用数据排线连接JX7→JX17(BUS2)。
四、编程指南
本实验要求编写程序将连接在74LS244芯片端口的开关状态读入,根据下面表格给出
的开关状态对应的LED输出灯亮状态,控
制74LS273芯片驱动LED。按下M O N或系统复位
五、程序框图
六、实验步骤
1.按连线图连接好,检查无误后打开实验箱电源。
2.在PC端软件开发平台上输入设计好的程序,编译通过后下载到实验箱。
3.运行程序后,拨动K1-K2,L1-L8会跟着亮灭。
4.如果运行不正常就要检查连线,程序。排查错误,修改程序,直到运行程序正常。
七、实验程序清单及注释
CODE SEGMENT
ASSUME CS:CODE
ORG 1200H
Start:MOV DX,8000H 累加器A输入8000H口的数据
IN AL,DX
TEST AL,01H 判断累加器A是不是为01H
JNZ JUDGE1 值不等于零跳转JUDGE1
TEST AL,02H 判断累加器A是不是为02H
JNZ JUDGE2 值不等于零跳转JUDGE2
MOV DX,9000H
MOV AL,0FFH 0FFH送9000H口
OUT DX,AL
JMPSTART跳转循环
JUDGE1: TEST AL,02H
JNZ JUDGE3 值不等于零跳转
MOV DX,9000H
MOV AL,0AAH 0AAH送9000H口,点亮奇数号灯
OUT DX,AL
JMPSTART跳转循环
JUDGE3: MOV DX,9000H
MO V AL,0 0H送9000H口所有灯全灭
OUT DX,AL
JMPSTART跳转循环
JUDGE2: MOV DX,9000H
MOV AL,55H 55H送9000H口,点亮偶数号灯
OUT DX,AL
JMPSTART跳转循环
CODE ENDS
E N D S T A R T
问答题:
1. I/O 端口的寻址方式有哪 2 种?在 x86 系统中,采用哪一种?
一种是“I/O端口与内存统一编址”和“I/O端口与内存独立编址”;在x86系统中采用的是“I/O 端口与内存独立编址”
2. 在输入/输出电路中,为什么常常要使用锁存器和缓冲器?
在输出接口电路中,通常使用锁存器。原因是外设速度比较慢,要求输出数据在接口电路输出端维持一段时间。在输入接口电路中,通常使用缓冲器。原因是缓冲器具有三态输出,选通时,输出端为输入数据并进数据总线;未被选通时,输出端为高阻态,不影响数据总线。