MOV AL,0 OUT 70H,AL IN AL,71H MOV [DI],AL
微机原理与接口技术(第三版)课堂布置及需要关注习题参考答案 11 ;秒单元
第六章作业
6-2简述微处理器与I/O设备之间的接口信息。
答:接口信息:微处理器与外设之间交换的信息概括起来有数据信息、状态信息和控制信息。 微机中的数据信息通常有数字量、模拟量和开关量三种基本形式。
状态信息是外部设备向微处理器提供外设当前工作状态的信息,微处理器接收到这些状态就可以了解外设的情况,适时准确地进行有效的数据传送。
常见的外设状态信息如输入设备准备好信号(READY)、输出设备是否忙(BUSY)等等。 控制信息是微处理器通过I/O接口向外部设备发送控制命令的信息。控制命令主要用于I/O设备的工作方式设置等。
6-3简述I/O编址方式。
答:I/O端口地址的编址有两种基本方法:存储器映射编址(统一编址)和I/O映射编址(独立编址)。
存储器映射I/O编址就是I/O端口的地址与存储器的地址统一混合编址,即把一个I/O口地址看作是一个存储单元。
I/O映射编址是指I/O端口与存储器分开独立编址,即I/O端口和存储器都有自己的一套地址空间,而且互不相干。这样,I/O端口不占用内存空间,但在这种编址方式下,必须采用专用的I/O指令(IN或OUT指令)才能访问I/O设备。
从8086到Pentium,仅支持I/O映射的编址方法,而P6架构及之后的处理器既支持I/O映射编址又支持存储器映射编址,即除了用IN/OUT等专用I/O指令外,还可以用访问存储器的指令访问被映射的I/O端口。
6-4微机系统中的16位、32位以及64位I/O组织的特点是什么?各自由哪些信号线访问I/O端口? 答:16位采用2个8位I/O体,32位采用4个8位I/O体,64位采用8个8位I/O体构成完整的I/O系统。I/O端口地址范围0000H~FFFFH, 不管是哪一种形式,处理器仅提供16条地址线来寻址I/O。
主要信号线有:
16位I/O组织的8086~80286:A15~A0以及IORC、IOWC和BHE; 32位的I/O组织80386~Pentium:A15~A2以及BE0~BE3、IORC和IOWC; 64位的I/O组织Pentium Pro~Core :A15~A3以及BE0~BE7、IORC和IOWC。 IN EAX,DX实际4个地址有效,OUT DX,RAX8个地址同时有效。
6-8试采用8位缓冲器和8位锁存器设计一个32位输入和输出接口,输入和输出接口的基地址均为8010H,画出原理图,并写出读该32位输入接口和写32位输出接口的程序片段,假设读入的32位数据存放在EBX中,待写的32位数据在ECX中。
答:参照教材中32位输入接口及32输出接口设计实例,满足本题要求的地址8010H的32位输入输出接口如图所示。
12 IA-32 & Intel64微机原理与接口技术(第三版) 布置的习题参考答案
DI31-DI032位I/O输入A15A14A13A12A11A10A9A8A7A6A4A5A3A212131274HC27D31-D0IORCBE3BE2DO31-DO24BE1DO23-DO16BE0DO15-DO8DO31-DO032位I/O输出DO7-DO0D31-D24D23-D16D15-D8D7-D01234121374HC2712856111274HC3032位输入接口DI31-DI24DI23-DI16DI15-DI8DI7-DI0181716151413121118171615141312111817161514131211B0B1B2B3B4B5B6B7B0B1B2B3B4B5B6B7B0B1B2B3B4B5B6B7U474HC245U374HC245U274HC245EDIREDIREDIRB0B1B2B3B4B5B6B7U174HC2451817161514131211191234567898Q7Q6Q5Q4Q3Q2Q1QU174HC5742345678919123456789191234567891213141516171819121314151617181912131415161718198Q7Q6Q5Q4Q3Q2Q1Q8Q7Q6Q5Q4Q3Q2Q1QU474HC574U374HC574CLKOCCLKOC8Q7Q6Q5Q4Q3Q2Q1QU274HC574CLKOC121314151617181911198765432BE0D7-D0987654321119876543211198765432D31-D24D23-D16D15-D8IOWCBE3BE2BE1111CLKOC8D7D6D5D4D3D2D1D8D7D6D5D4D3D2D1D8D7D6D5D4D3D2D1D8D7D6D5D4D3D2D1D191EDIRA0A1A2A3A4A5A6A7A0A1A2A3A4A5A6A7A0A1A2A3A4A5A6A7A0A1A2A3A4A5A6A732位输出接口
程序片段如下:
MOV IN MOV MOV OUT
DX,8010H EAX,DX EBX,EAX EAX,ECX DX,EAX
6-11已经波特率为2400bps,字符格式为7位数据,1位校验位,1位停止位,UART发送端的波形如图6.61所示(下方为参考方波,说明该数据是多少(用十六进制表示),采用什么校验?
+4.8V 0V f=2.4KHz参考方波) 图6.61 题6-11图
解:由UART字符格式知,传送数据是低位在前高位在后,据已经条件知,1位起始位,7位数据,1位校验位,1位停止位,共10位为一帧,从图中找出起始位(低电平)开始的连续10位,图从2.4KHz的一个脉冲对应2400bps波特率的一个位,即从第3个脉冲开始10位恰是传送的一帧字符,去掉开始的起始位,从第4个脉冲开始取7位数据位,依次是D0=1,D1=1,D2=0,D3=1,D4=0,D5=1和D6=1,校验位=0,停止位=1,因此数据为D6D5D4D3D2D1D0=1101011B=6BH,由于校验为0,因此传送的字符中(含校验位)1的个数为5,奇数,因此为奇校验。
6-13如果通过RS-232C进行双机通信,波特率为11520bps,字符格式为1位停止位,没有校验,8位数据,通过示波器得到的波形如图6.62所示,上图是RS-232C的连接器DB9-2脚(RXD)的波形,下面是为了比较方便输入的频率为11.52Kz的参考方波。指出波形对应的数据(用十六进制表示)。
微机原理与接口技术(第三版)课堂布置及需要关注习题参考答案 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,写出打印这些数据的子程序。