微机第三版教材习题参考答案 马维华 下载本文

微机原理与接口技术(第三版)课堂布置及需要关注习题参考答案 13

RS-232C RXD(DB9-2)引脚波形 +9.6V0V -9.6V f=11.52KHz(参考方波)

图6.62 题6-12图

解:分析方法同6-10,只是逻辑关系是相反的,+9.6V对应逻辑0,-9.6V对应逻辑1。 第3个参考脉冲对应起始位+9.6V(逻辑0),数据位从第4个脉冲开始的8位,依次为D0=1,D1=0,D2=0,D3=1,D4=0,D5=1,D6=0,D7=0,因此传送的数据为00101001B=29H

6-17假设8255的端口地址为60H-63H,试分别编写满足条件的初始化程序:

(1) 将A组和B组设置为方式0,端口A和B设成输入端口,C上半口为输入,下半口为输出。 (2) 将A口设为方式2,B口设为方式1输出。

(3) 将A口设为方式1输出,B口为方式1输出,PC4和PC5为输出。 解:(1)

MOV AL,10011010B

OUT 63H,AL (2)

MOV AL,11000100B

OUT 63H,AL (3)

MOV AL,10100100B

OUT 63H,AL

6-18如图6.63所示为以8086为核心采用8255扩展I/O接口,A口接一输入设备,B接输出设备,PC5作为检测输入设备的准备就绪信号READY,PC6作为输出设备忙BUSY检测端。

(1)写出8255的初始化程序片段

(2)写出读取输入设备数据并存入内存ES:DI指示单元的子程序(读时除了要判断RAEDY外,还要使能OE)

(3)写出从DS:SI指示的内存单元取出数据写到输出设备的子程序(写时除了要判断BUSY外,还要产生锁存脉冲CLK)

(4)已知8255的PC7接一上拉电阻,其对地连接一细长微型导线(A与B之间),PC3通过驱动接一蜂鸣器构成一简易防盗报警系统,如果微型导线被碰断,则蜂鸣器发出报警声(蜂鸣器得电而响)直到导线被保安人为接上,报警的同时向输出设备发送字符串“Grasp the burglar!”通知值班人员采取措施。写出有关程序。

14 IA-32 & Intel64微机原理与接口技术(第三版) 布置的习题参考答案

U1D7-D034333231302928271234856111212348561112IORCIOWCA1A2RESET53698356D0D1D2D3D4D5D6D7RDWRA0A1RESETCSPA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7PC0PC1PC2PC3PC4PC5PC6PC743214039383718192021222324251415161713121110输出设备BUSYCLKA15A14A13A12A11A10A9A8A7A6A5A4A3A0VCC输入设备R210KREADYVCCOE8255BELLR11KABBG19013

图6.63 题6-18图

解:地址定义

P8255Ctrl P8255A P8255B P8255C

EQU EQU EQU EQU

0FC56H 0FC50H 0FC52H 0FC54H

;控制口 ;C口 ;Ready ;未准备好等待

(1) MOV AL,10001010B ;A方式0输出,C上半口输入,B方式0输入,C下半口输出 MOV DX,P8255Ctrl OUT DX,AL MOV DX,P8255C

(2)

WAITL: IN AL,DX

JZ WAITL MOV

TEST AL,00100000B ;PC5 MOV DX,P8255Ctrl

AL,00000000B

;PC0=0(OE=0) ;B口

;读输入设备数据 ;写入指定内存单元 ;C口

OUT DX,AL IN AL,DX

MOV DX,P8255B MOV ES:[DI],AL MOV DX,P8255C

(3)

WAITP:IN AL,DX

TEST AL,01000000B ;PC6(BUSY) JNZ WAITP

MOV DX,P8255Ctrl MOV NOP NOP DEL AL OUT DX,AL

;PC1=0(CLK=0)

MOV AL,DS[SI]

AL,00000011B

;PC1=1(CLK=1)

OUT DX,AL

微机原理与接口技术(第三版)课堂布置及需要关注习题参考答案 15

MOV DX,P8255A OUT DX,AL

;A口 ; 数据输出

(4) MOV DX,P8255Ctrl ;控制口

MOV AL,00000010B ;PC1=CLK=0,锁存脉冲复位为0 OUT DX,AL

MOV DX,P8255C ;C口 IN AL,DX TEST AL,80H JNZ BEEP

MOV DX,P8255Ctrl

MOV AL,00000110 ;PC3=0置复位命令字 OUT DX,AL JMP START

MOV DX,P8255Ctrl ;控制口 MOV AL,00000111 ;PC3=1 OUT DX,AL MOV CX,18 IN AL,DX

TEST AL,01000000B ;BUSY=1? JNZ WAITB MOV DX,P8255A MOV AL,[SI] OUT DX,AL

MOV DX,P8255Ctrl ;控制口

MOV AL,00000011B ;PC1=CLK=1,锁存脉冲上升沿 OUT DX,AL NOP INC SI DEC AL

;PC1=CLK=0,锁存脉冲结束

OUT DX,AL LOOP WAITB

;A口

;报警

;18个字符

MOV SI,OFFSET STRINGS MOV DX,P8255C

;C口

;取消报警

;判断PC7

START:

BEEP:

WAITB:

STRINGS DB ‘Grasp the burglar!’

6-19图6.64为用8255作为打印机接口的原理图,假设要打印的数据(组合BCD码,如45H)在以PDATA开始的存储区域,且数据长度为PNUM,写出打印这些数据的子程序。

16 IA-32 & Intel64微机原理与接口技术(第三版) 布置的习题参考答案

D7-D0U1343332313029282753698356D0D1D2D3D4D5D6D78255RDWRA0A1RESETCSPB0PB1PB2PB3PB4PB5PB6PB7PC0PC1PC2PC3PC4PC5PC6PC7PA0PA1PA2PA3PA4PA5PA6PA743214039383718192021222324251415161713121110DB0DB1DB2DB3DB4DB5DB6DB7IORCIOWCA3A2RESET并行接口打印机地址译码A15~A4BE3BE2BE1BE0地址:3000H3004H3008H300CHSTBBUSY

图6.64 题6-11图

解:P8255A

P8255B P8255C P8255Ctrl

EQU EQU EQU EQU

3000H 3004H 3008H 300CH

MOV DX,P8255Ctrl MOV AL,10001000B OUT DX,AL MOV CX,PNUM

MOV AL,00000101B ;PC2=/STB=1置打印机选爱脉冲初始化为1 OUT DX,AL MOV AL,[SI] MOV BL,AL AND AL,0F0H PUSH CX MOV CL,4 SHR AL,CL ADD AL,30H POP CX CALL PSUB MOV AL,BL AND AL,0FH ADD AL,30H CALL PSUB INC SI .EXIT

;指向下一个单元

LOOP REPEAT

;取回原来的数据 ;取低4位 ;转换成ASCII码

;转换成ASCII码

;取数据 ;暂存BL ;取高4位

;方式选择控制字

MOV SI,OFFSET PDATA

REPEAT:

;打印一个字符的子程序