NN: INC BH
RCR AL,1 JC NN
MOV AH,0 ;查表取键值显示码 MOV AL,BH MOV SI,AX
MOV AL,LED[SI]
MOV DX,200H ;从 8255A 口送显示码,驱动 LED 显示 OUT DX,AL
EXIT: MOV AX,4C00H ;退出
INT 21H
CODE ENDS
END START
3. 如下图所示,用8253编程,写入控制字后发光二极管处于暗状态,在按键按下8次后使发光二极管亮(输出端OUT为高电平)。其中8253用计数器1,二进制计数,设端口地址为80H;81H;82H;83H。 +5V CLK 变高电平“1”时发光管亮 OUT 8253 +5V GATE R D 开关K,按下产生一个负脉冲,即“下降沿” 注:“+5V”即为“1”
【答案】
MOV AL ,50H ; (01010000B 写入控制字:计数器1; OUT 83H ,AL 只读写低8位;方式0;二进制计数) MOV AL ,07H ; (写入计数值7,使实际计 OUT 81H ,AL 数到8后OUT为高电平)
4. 如图所示,用8255和8253编程,使扬声器发出500HZ的可听频率,有键按下即停止。其中8253计数器2,方式3,二进制计数,端口地址3F82H,控制口地址3F86H;8255的PA0接键盘,有键按下为1;8255端口A、B、C、和控制口的地址为80H 、81H、82H、83H。
万维试题库系统 第 11 页
8255 PA0 8253 5MHZ CLK2 GATE2 OUT2 键盘 PB0 PB1 与 扬声器
【答案】
BEEP PROC
MOV AL,0B6H ;写8253控制字 MOV DX,3F86H OUT DX,AL
MOV AX,10000 ;写8253计数器初始值 MOV DX,3F82H OUT DX,AL MOV AL,AH OUT DX,AL
MOV AL,90H ;写8255控制字 OUT 83H,AL
IN AL,80H ;清8255PA0 AND AL,0FEH OUT 80H,AL
IN AL,81H ;读B口原输出值 MOV AH,AL ;存于AH中
OR AL,03H ;使PB0,PB1为1,扬声器发声 OUT 81H,AL
L: IN AL,80H ;判断有无按键 TEST AL,01H JZ L
MOV AL,AH ;停止发声 OUT 81H,AL RET
BEEP ENP
5. 打印机驱动接口是一个并行接口,它需要数据口输出数据,控制口用于控制打印机工作,状态口用于测试打印机的现行工作状态。要求用8255芯片设计一个打印机控制接口。(10分)
(1)画出硬件连接原理图。
(2)以查询方式编制输出一个字符(设该字符已在BL寄存器中)的程序。
要求:PC6去检测打印机的BUSY信号,PC2产生STB信号,PA口作为输出字符的数据口,工
万维试题库系统 第 12 页
作于方式0 【答案】
查询方式程序:
设打印机控制口为83H, PA口为80H,PC口为82H
MOV AL, 88H (控制字若为8AH,8CH,8EH也对) OUT 83H, AL MOV AL, 05H OUT 83H, AL
WAIT:IN AL, 82H TEST AL, 40H JNZ WAIT MOV AL, BL OUT 80H, AL MOV AL,04 OUT 83H, AL INC AL
OUT 83H, AL
6. 图为非编码键盘和微处理器的接口电路。图中8255A端口A口和B口均工作在方式0,前者
用作输出,后者用作输入。设端口地址为0FFF8H,0FFFAH,0FFFCH,0FFFEH,请回答:(1)写出8255A的初始化程序(2)图中小键盘可以设置的键数最多是多少?(3)无键按下时,B口读入的列码B7B6?B0是多少?
万维试题库系统 第 13 页
【答案】
(1)MOV DX,0FFFEH
MOV AL,1000X01XB ;X是为任意值 MOV DX,AL (2)64 (3)0FFH
7. 如图所示,开关K1-K3打开对应发光二极管L0-L3亮,;开关闭合则对应的发光二极管不亮,编写初始化代码和控制程序。端口A-C,控制字地址为FF0H-FF3H。
【答案】
MOV DX , 0FF3H MOV AL , 10000001B OUT DX , AL MOV DX , 0FF2H
万维试题库系统 第 14 页
L1: IN AL , DX
MOV CL, 04H RCL AL ,CL OUT DX , AL JMP L1 8. 8255A 接口电路如图所示。已知8255A 控制字寄存器的端口地址为 103H,编写 8255A 初始化程序和循 环彩灯控制程序。初始时 D0 亮,其 余不亮,D0 亮一秒后移位一次,D1 亮,其余不亮,以此类推每隔一秒移位一次,每移位 8 次为一个循环。 共循环 8 次。要求用汇编语言写出 满足上述要求的程序段(已知一个 延时 1 秒的子程序入口地址为DELAY1S)。
【答案】
MOV DX , 103H MOV AL , 80H OUT DX , AL
位可置 0
MOV CX , 8 MOV DX , 101H
AGAIN: MOV AL , 01H 第一个彩灯
NEXTP: OUT DX , AL
CALL DELAY1S
持 1S
SHL AL , 1 JNZ NEXTP LOOP AGAIN
; 103H 为方式控制字地址
;设置该 8255 B 口为方式 0 输出,其他;设置循环次数
;101H 为 B 口数据端口地址
;先设置D0 位输出为高电平,点亮
;B 口相应位发出高电平点亮彩灯,并维
9. 如图所示8255A的 口 地 址 为 3FF0H~ 3 FF3H ,A 口 接 4个 开 关 K 3 ~K 0 , B 口接一个七段 L E D 显 示器 , 用 来显示 4个开关所拨通的16进制数字0 ~ F ,开关都闭合时显示 0 ;都断开时显示 F 。编写实现这种功能的完整的程序。
万维试题库系统 第 15 页

