在某一系统中,8255A的硬件连接如图所示,K0~K7为开关;L0~L7为发光二极管,试写出8255A的控制字,

并对其进行初始化编程。
2025-02-25 21:05:23
推荐回答(1个)
回答1:

假定系统地总线16位,低9位为A8~A0
                    A8 A7 A6 A5 A4 A3 A2 A1 A0
A口地址:     1   0   0   1   1    0   0   0   1 b = 0131h
B口地址:     1   0   0   1   1    0   0   1   1 b = 0133h
C口地址:     1   0   0   1   1    0   1   0   1 b = 0135h
控制口地址:1    0   0   1  1    0   1   1    1 b = 0137h

 

D7 D6 D5 D4 D3 D2 D1 D0      8255A控制字:
1    0    0    1   0   0    0   0 b,    A口方式0输入,B口方式0输出 

 

80x86汇编语言初始化程序:
CODE       SEGMENT  
                  ASSUME  CS:CODE
START:     MOV    AL,  10010000b  ;AL←方式控制字
                  MOV    DX,  0137h       ;DX←8255A控制口地址
                  OUT    DX,  AL         ;方式控制字→8255控制口
                  ......
INPUT:       MOV    DX,  0131h       ;DX←8255A_A口地址
                  IN     AL,  DX                ;从A口读入按键状态
                  ......
OUTPUT:   MOV    DX,  0133h       ;DX←8255A_B口地址
                  OUT    DX,   AL         ;控灯数码→B口
                   ......
CODE        ENDS
                  END    START