8255A口A地址为200H,要使口A工作在方式0输出,口B工作在方式1输入,PC7—PC4为输入,PC3—PC0为输出,请编写初始化程序段[1]。
题目解答
答案
答:MOV AL,10001110BMOV DX,203HOUT DX,AL
解析
本题考查82255可编程并行接口芯片的初始化编程,核心是控制字的设置,需结合题目给定的各端口工作方式和引脚功能要求,确定正确的控制字并写入控制端口。
关键知识点回顾8255的控制字分为方式控制字和C口置位/复位控制字,本题仅需设置方式控制字(因未涉及C口单个引脚的置位/复位,无需后者)。#### 1. 端口地址分配8255A的端口地址计算公式:若A口地址为200H,则- A口:200H- B口:202H- C口:202H- 控制口:203H(控制口地址=A口地址+3)#### 一次寻址后,端口地址可通过DX寄存器传递。#### 2. 方式控制字格式(8位控制字,D7DD7=1时为方式控制字):| D7 | D6 D5 D4 | D3 D2 D1 D0 ||----|----------|------------|| 1 | A组方式控制 | B组方式控制 || | (A口+PA7~PA3)| (B口+PB7~PB0) || | 方式选择+A口 | 方式选择+B分解 |A组方式控制字段(D6 D5 D4):- D6 D5:A口工作方式(0=方式0,1=方式1,2=方式2)- D4:A口输入/输出(0=输出,1=输入)- D3:PC7~PC4输入/输出(仅方式0有效)B组方式字段(D3 D2 D1 D0):- D3 D2:B口工作方式(0=方式0,1=方式1,2=方式2)- D1:B口输入/输出(0=输出,1输入)- D0:PC3~PC0输入/输出(仅方式0有效)### 题目要求转化1. A口A工作在方式0输出:- A组方式:D6 D5=00(方式0),D4=0(输出)- D3:PC7~PC4输入(题目要求),故D3=12. 口B工作在方式1输入:- B组方式:D3 D2=01(方式1),D1=1(输入)- D0:PC3~PC0输出(题目要求),故D0=03. 控制字拼接:D7=1(方式控制字标志),各字段组合:D7 D6 D5 D4 D3 D2 D1 D0=1 0 0 0 1 1 1 0→ 二进制:10001110B(即0x8E)### 初始化程序设计1. 控制字送入AL寄存器:MOV AL, 10001110B2.控制口地址送入DX:MOV DX, 203H3.控制字写入控制口:OUT DX, AL