8088系统BUSD7D0A0A110987654325242123222272620A0A1A2A3A4A5A6A7A8A9A10A11A12OEWECS2CS1D0D1D2D3D4D5D6D762641112131516171819A12 MEMRMEMWA18A19A17A16A15A14A13+5V
六、(本题15分) 1.
(1).电路图如下(6分)
+5RRRS?ROW043214039383718192021222324251415161713121110PA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7PC0PC1PC2PC3PC4PC5PC6PC7SW-PBD0D1D2D3D4D5D6D7RDWRA0A1RESETCS343332313029282753698356ROW1ROW7
第6题电路图 (2).电路工作原理:(4分,每个知识点1分)
1)8255A的口A设置为输出状态,PA0~PA7接行线ROW0~ROW7。 2)8255A的口B设置为输入状态,PB0~PB7接列线C0~C7。 3)电阻R为列线上拉电阻,保证列线静态电位为高电平。
4)行列线交点接一开关,开关按下时将交点上行线逻辑状态送到该交点的列线上。 (3.行扫描法识别键按下(5分,每个知识点1分)
1)扫描程序首先让8255A的口A输出扫描码(初值为11111110B);
2)扫描程序读入8255A的B口连接的列线状态,判断是否有为逻辑0的列线;
3)若B口读入有为0的位,说明本行有键按下,经移位检测出为0的列线序号,与扫
描码为0位对应的行线序号共同形成键号,转相应键处理程序;
4)若B口读入没有为0的位,说明本行无键按下,修改扫描码(第二次为11111101B) 5)转向1),进行下一次扫描,如此循环直至发现有键按下为止。 2.
(1).参考程序: DATA SEGMENT
ARRAY DB D1,D2,D3,...D80;D1,D2...80个数据值 MAX DB ? DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA
MOV DS,AX LEA SI,ARRAY MOV AH,0 MOV CX,80
AGAIN: MOV AL,[SI] INC SI CMP AL,AH JC NEXT MOV AH,AL NEXT: LOOP AGAIN MOV MAX,AH MVO AH,4CH INT 21H CODE ENDS END START
说明:没有数据定义不扣分;没有返回DOS不扣分。如能实现要求功能,用其他语句也可。 (2).参考程序: CODE SEGMENT ASUME CS:CODE START:
MOV AX,3DA0H MOV DS,AX MOV ES,AX MOV SI,1FFFH MOV DI,1FFFH+8 MOV CX,1000H STD
REP MOVSB MOV AH,4CH INT 21H
CODE ENDS END START
说明:如能实现要求功能,用其他语句也可。数据传送必须从后向前进行。