微机原理与接口技术(第三版)课堂布置及需要关注习题参考答案 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:
;打印一个字符的子程序