微机原理作业-9
- 格式:doc
- 大小:61.00 KB
- 文档页数:2
第9章
3. 8255A的方式选择字和置位复位字都写入什么端口?用什么方式区分它们?
答:
8255A的方式选择字和置位复位字都写入控制端口(写入控制字寄存器中)。
用特征位D7区分,D7=1,为方式选择控制字,D7=0,为C口的按位置位/复位。
5. 设8255A的A口、B口、C口和控制寄存器的端口地址分别为80H、82H、84H和86H。
要求A口工作在方式0输出,B口工作在方式0输入,C口高四位输入,C口低四位输出,试编写8255A的初始化程序。
解:
MOV AL,10001010B
OUT 86H,AL
6. 8255A的端口地址同第5题,要求PC4输出高电平,PC5输出低电平,PC6输出一个正脉冲,试写出完成这些功能的指令序列。
解:
MOV AL,10000000B ;定义工作方式PC口输出
OUT 86H,AL
MOV AL,00001001B
OUT 86H,AL
MOV AL,00001010B
OUT 86H,AL
MOV AL,00001100B
OUT 86H,AL
MOV AL,00001101B
OUT 86H,AL
MOV AL,00001100B
OUT 86H,AL
9. 8255A的口地址为80H~83H,8253的口地址为84H~87H。
若A口接8个开关K7~K0,B口接8个指示灯L;ED7~LED0,当开关合上时相应的指示灯点亮,断开时灯灭。
要求不断检测它们的通断状态,并随时在发光二极管LED7 ~LED0上显示出来。
试画出硬件连结电路图,编写实现这种功能的程序。
解:
硬件电路如下图所示。
8255A的4个端的地址分别为80H、81 H、82H和83 H,对应于8255A的A口、B口、C 口和控制字寄存器。
程序如下:
MOV AL, 10010000B ;控制字,PA输入,PB输出
OUT 83H, AL ;写人控制字
TEST- IT:IN AL, 80H ;从A口读人开关状态
NOT AL ;A口开关状态取反
OUT 81H ,AL ;B口控制LED,指示开关状态
JMP TEST_ IT ;循环检测
如果要求变为:当K7、K6同时合上时,所有的LED都亮,否则都灭。
程序如何设计?
MOV AL, 10010000B ;控制字,PA输入,PB输出
OUT 83H, AL ;写人控制字
TEST- IT:IN AL, 80H ;从A口读人开关状态
TEST AL, 11000000B
JZ HE ; K7、K6同时合上,结果未0,转到HE
MOV AL, 00H
OUT 81H ,AL ;K7、K6没有同时合上,所有的LED都灭
JMP TEST_ IT ;循环检测
HE:MOV AL, 0FFH
OUT 81H ,AL ;K7、K6同时合上,所有的LED都亮
JMP TEST_ IT ;循环检测。