微机原理(3)8255

时间:2024-04-12 10:02:15

微机原理(3)8255

例如:

  1. 已知一CPU,其地址总线为A0到A15,数据总线为D0-D7,通过74LS138和门电路进行地址译码,与8255A的接口电路如下图所示。其中k0-k7与8255A端口B相连,LED发光二极管D0-D7及相应的驱动电路与端口A相连。要求如下。(24分)
  1. 分析A口寄存器、B口寄存器和控制寄存器的端口地址。(9分)
  2. 若要将开关k0-k7的状态在对应的LED二极管D0-D7上随时反映出来,即:若ki(i=0,…,7)开关闭合,则相应的LED 灯Di(i=0,…,7)点亮。编写一个8086汇编语言程序段,实现对8255A的初始化及要求的控制功能。(15 

 

微机原理(3)8255

 

  1. 由于8255A的片选端cs是由74LS138的Y5引脚输出,因此要使能8255A,相关的地质引脚编码如下表。

地址

A15

A14

A13

A12

A11

A10

A9

A8

A7

A6

A5

A4

A3

A2

取值

0

X

0

1

0

0

1

0

1

1

0

0

1

1

表中X表示无关项。

因此,8255A的A口寄存器的端口地址有两个,分别为12CCH和52CCH。8255A的B口寄存器的端口地址有两个,分别为12CDH和52CDH。8255A的控制寄存器的端口地址有两个,分别为12CFH和52CFH。

2. 因为8255A有两组地址,任选一组。满足题意的控制字为10000010B。

MOV     DX, 12CFH           ;控制口地址

MOV     AL, 10000010B   ;依据8255A控制字对8255A初始化

OUT      DX, AL

       CALL     DELAY                  ;调用外部的延迟子程序

TEST:        //初始化

       MOV     DX, 12CDH          ; B口地址

       IN           AL, DX                  ;读B口状态

       XOR      AL, 11111111B    ;B口状态取反

       MOV     DX, 12CCH           ;A口地址

       OUT      DX, AL                  ;将取反后的B口状态送到A口,控制LED灯亮

       CALL     DELAY                  ;调用外部的延迟子程序

…..

       JMP       TEST                    ;循环执行