第6章串并行接口11.pptVIP

  • 14
  • 0
  • 约1.41万字
  • 约 69页
  • 2017-11-26 发布于湖北
  • 举报
第6章串并行接口11

6.4.4 8251A与CPU的数据交换 可采用查询方式或中断方式 采用查询方式,在数据交换前应读取状态寄存器。 状态寄存器D0=1,CPU可以向8251A数据端口写入数据,完成串行数据的发送。 状态寄存器D1=1,CPU可以从8251A数据端口读出数据,完成一帧数据的接收。 查询方式流程图 6.4.5 8251A编程举例 例:编写8251A异步模式下的发送和接收程序,完成256个字符的发送和接收。设8251A端口地址:208H,209H,波特率因子16,1个起始位,1个停止位,无奇偶校验,每字符8位。待发送字符存于tranbuf为首的内存数据区。接收的256个字节,放在recvbuf为首的单元中。 数据区定义: Data segment Tranbuf DB 41H,48H,… recvbuf DB 256 dup(?) Data ends 发送程序 MOV DX,209H MOV AL,40H ;复位命令。 OUT DX,AL MOV AL ;设置异步模式字 OUT DX,AL MOV AL ;控制字,启动发送、接收 OUT DX,AL LEA SI, tranbuf MOV CX,256 ;发送256字节 发送程序(续) NEXT: MOV DX, 209H NEXT1: IN AL,DX;读状态字 TEST AL,01H ;TxRDY? JZ NEXT1 MOV AL,[SI] MOV DX,208H OUT DX,AL;发送一个字符 INC SI ;SI指向下一个字符 LOOP NEXT 接收程序 MOV DX,209H MOV AL,40H ;复位 OUT DX,AL MOV AL;模式字 OUT DX,AL MOV AL;控制字 OUT DX,AL MOV CX,256;接收256字节 LEA DI,recvbuf RECV:MOV DX,209H RECV1:IN AL,DX;状态字 TEST AL,02H; JZ RECV1 MOV DX,208H IN AL,DX;接收1字符 MOV [DI],AL INC DI LOOP RECV 方式2的联络信号 PC3 PA7 ~ PA0 ACKA OBFA INTRA PC6 PC7 INTE1 PC4 PC5 INTE2 STBA IBFA PC6 PC4 A口方式2的控制信号 WR RD 方式2的联络信号说明 INTRA(PC3)中断请求信号,输出,高电平有效,在输入和输出方式下,都可用于向CPU发出中断请求信号。 OBFA(PC7) 输出缓冲器满信号,输出,低电平有效,是由8255A送给外设的控制信号。有效时,表示CPU已将一个数据写入8255A的A口,通知外设将数据取走。一般用作外设取走数据工作的启动信号。 ACKA(PC6) 外设发给8255A的响应信号,输入,低电平有效。ACKA的有效沿启动8255A端口A的三态输出缓冲器,向外设送出数据。否则,输出缓冲器处于高阻状态。ACKA的上升沿是数据已被外设取走的回答信号。 STBA(PC4) 选通输入,低电平有效,是外设送给8255A的选通信号,它把外设送到PA7~PA0的数据送到A口的输入锁存器。 方式2的联络信号说明 ⑤ IBFA(PC5) 输入缓冲器满,高电平有效,是8255A送给外设的状态信号。有效时,表示输入数据已进入8255A的A口输入锁存器,等待CPU取走。数据被CPU取走前,IBFA始终为高电平,阻止外设送来新的数据。 ⑥ INTE1? 中断允许标志位,当其为“1”时,A口的输出处于中断允许状态,允许8255A的INTR向CPU发中断请求,INTE1为“0”时,A口的输出中断屏蔽,禁止INTR发中断请求。它由对PC6的置/复位控制。 ⑦ INTE2? 中断允许标志位,当其为“1”时,A口的输入处于中断允许状态,否则,A口的输入为中断屏蔽状态。它由对PC4的置/复位控制。 6.2.5 8255A的应用举例 使用8255A时,一般要完成以下几步工作: ① 根据需要把8255A正确地接入系统中。 ② 对8255A进行初始化编程。 ③ 在输入输出程序的控制下,完成数据的输入或输出。 CPU对8255A的写操作可以分别对A口、B口、C口和控制寄存器进行。写入A口、B口、C口的是输出数据,写入控制寄存器的是发给8255A的方式选择控制字或C口置/复位控制字。 CPU对8255A的读操作只能对A口、B口、C口进行。读入的信息分为两种:一种是当A口、B口 、C口工作于方式0时,由A口、B口、C口输入的数据;另一种是当A口、B口工作于方式1时,由A

文档评论(0)

1亿VIP精品文档

相关文档