微机原理与总复习湖北文理学院2012 .ppt
文本预览下载声明
8255A应用举例 ----- 用8255A实现微处理器与打印机的接口 图8-12 打印机数据传输时序 普通的打印机一般通过一个并行接口与主机相连。打印机的并行接口中,最常用的接口信号线有10根,包括8根数据线D7~D0、选通信号和打印机“忙”信号BUSY,如图8-12所示。是打印机的控制信号,当其为低电平(有效)时,要打印的数据就可通过数据线D7~D0送入打印机的数据缓冲区内,打印机就可以打印数据了。BUSY是打印机的状态信号,打印机数据缓冲区满时,会置BUSY信号线为高电平(有效),通知主机停止传送数据。通常打印机还有一根响应信号,当打印机处理完数据缓冲区内的数据后使有效,通知主机可以发下一个数据,同时使BUSY失效。打印机的工作时序如图8-12所示。 利用8255A的A口方式0与微型打印机相连,将内存缓冲区BUFF中的字符打印输出。试完成相应的软硬件设计。(CPU为8088)硬件连线如图8-13所示。用8255A的方式0实现。由PC0充当打印机的选通信号,通过对PC0的置位/复位来产生选通。同时,由PC7来接收打印机发出的“BUSY”信号,作为查询能否输出的条件。 8255A的控制字为即88H。A口方式0,输出;C口高位方式0输入,低位方式0输出。 PC0置位即01H。 PC0复位即 00H。 设8255A的4个口地址设依次为:00H、01H、02H和03H。 图8-13 打印机通过8255A接口与主机连线 编制程序如下: ;数据段 BUFF DB Print try!,$ ;代码段 START:MOV SI,OFFSET BUFF MOV AL,88H ;8255A初始化,A口方式0,输出 OUT 03H,AL ;C口高位方式0输入,低位方式0输出 MOV AL,01H OUT 03H,AL ;使PC0置位,即使选通无效 WAIT: IN AL,02H TEST AL, 80H ;检测PC7是否为1即是否忙 JNZ WAIT ;为忙则等待 MOV AL,[SI] CMP AL,$ ;是否结束符 JZ DONE ;是则输出回车 OUT 00H,AL ;不是结束符,则从A口输出 MOV AL,00H OUT 03H, AL MOV AL, 01H OUT 03H,AL ;产生选通信号 INC SI ;修改指针,指向下一个字符 JMP WAIT DONE: MOV AL,0DH OUT 00H,AL ;输出回车符 MOV AL, 00H OUT 03H,AL MOV AL, 01H OUT 03H,AL ;产生选通 WAIT1:IN AL, 02H TEST AL, 80H ;检测PC7是否为1即是否忙 JNZ WAIT 1 ; 为忙则等待 MOV AL,0AH OUT 00H,AL ;输出换行符 MOV AL, 00H OUT 03H,AL MOV AL, 01H OUT 03H,AL ;产生选通信号 MOV AH,4CH INT 21H 10.2.2 8253的内部结构 8253的内部结构如右图所示。由计数器、控制寄存器、读/写控制逻辑和数据总线缓冲器4部分和内部数据总线构成。 数据总线缓冲器。 8位双向三态的缓冲器,可直接挂在数据总线上,CPU通过它,一方面可以向控制寄存器写入控制字,向计数器写入计数初值;另一方面CPU也可通过该缓冲器读出计数器的当前计数值。 A1 A0 操作功能 PC/XT计算机端口 0 0 0 1 0 写计数初值到T0计数器 40H 0 0 1 1 0 写计数初值到T1计数器 41H 0 1 0 1 0 写计数初值到T2计数器 42H 0 1 1 1 0 写控制器字到控制寄存器 43H 0 0 0 0 1 读T0计数器计数值 40H 0 0 1 0 1 读T1计数器计数值 41H 0 1 0 0 1
显示全部