第第第 第第第第第第 第第第 第第第第第第 7-1 输输输输输输 输输输 传 7-2 输输输输 7-3 输输输输8255 A 7-4 输输输输输输输输输 7-5 输输输输8251 A 输输输 输输 输输输 输输输
Jan 12, 2016
第七章 输入输出接口第七章 输入输出接口7-1 输入输出数据传送方式7-2 并行接口7-3 并行接口8255A 7-4 串行接口与串行通信 7-5 串行接口8251A
第七章 小结第七章 思考题
学习目的学习目的 通过对本章的学习,您应该能够达到下列要求: 描述接口与 CPU 和外设的信号 说明接口中主要的端口的作用 说明程序传送方式的类型与原理 说明中断传送方式原理 说明 DMA 原理 8255/8251 的应用
7-17-1 、微机的输入输出方式、微机的输入输出方式
接口就是 CPU 与外界的连接部件,是 CPU与外界交换信息的中转站。
原始数据通过接口由输入设备送进去 运算结果通过接口由输出设备送出来 控制命令通过接口发出去 现场数据通过接口从输入设备送进去
7-1-17-1-1 、、 CPUCPU 和和 I/OI/O 设备之间的信设备之间的信号号一 )、数据信息 1 、数字量 2 、模拟量 3 、开关量 4 、脉冲量二 )、状态信息 反映当前外设所处的工作状态。三 )、控制信息 CPU 通过接口向外设传送控制信息。
接口部件的接口部件的 I/OI/O 端口端口 一个接口有几个寄存器,不同类型的信息进入不同的寄存器,一般称这些寄存器为端口。
1 、 、 I/OI/O 端口寻址方式端口寻址方式 直接寻址( 0~FFH ): I N AL , 80H OUT 83H , AL 间接寻址( 0000H~FFFFH ) I N AL , DX OUT DX , AL
22 、端口、端口1) 、数据端口
2) 、状态端口
3) 、控制端口
7-1-27-1-2 、输入输出的控制方式、输入输出的控制方式
程序传送方式 中断传送方式中断传送方式 DMA 方式
一、程序传送方式 由程序控制 CPU 与外设之间的数据交换。
1)1) 、无条件传送方式、无条件传送方式 外设已准备好,不查询外设的状态 输入时,外设的数据已送到三态缓冲器。
输出时, CPU 的输出信息已送到输出锁存器的输入端。
选中地址
数据
写信号
读信号
输出端口
7-2 、无条件传送
输入端口
1 、执行输入指令时 , 例 :IN AL , 80H, RD 信号有 ,M/IO=0, 输入三态缓冲器 , 被选通 , 已准备好的数据进入数据总线 , 送到 AL.
2. 执行输入指令时 ,
读信号有效
M/IO 有效
80H
例 1:输入: IN AL , 80H ;( 80H ) =10H
将 80H 端口的内容送 AL 。
IO/M=1 , RD=0 , AL=10H
例 2:输出: OUT 82H , AL ; AL=10H
将 AL 中的内容送 82H 端口。
IO/M=1 , WR=0 ,( 82H ) =10H
22 、条件(查询)传送方式、条件(查询)传送方式 程序测试外 设的状态,若满足,传送,
不满足,等待。 数据传送过程:1 )、 CPU 从接口读取状态字 ;2 )、 CPU 检测状态字的对应位是否满足“就绪” 条件,如果不满足,回到第一步读取状态 字;3 )、如状态字表明外设已处于“就绪”状态,则 传送数据。
查询部分的程序:
POLL : IN AL , S-PORT ;读入状态
TEST AL , 40H ;检查忙标志
JNZ POLL
MOV AL , STORE
OUT D-PORT , AL ;输出数据
……..
2 、中断传送方式1). 中断传送方式的原理 启动外设 外设准备好数据 ,发一个选通信号 外设向 CPU 发中断请求 CPU 受到中断请求信号,暂停现行程序 CPU 执行中断服务程序,执行输入输出操作 中断服务程序结束,返回原来程序
22 、中断优先级、中断优先级
1) 、软件查询方式 在中断处理子程序的开始部份,安排一段带优先级查询的程序。
2) 、简单硬件方式 -- 菊花链电路 当一个设备发出中断请求信号 INTR ,若CPU 允许中断,则回发中断应答信号 INTA , INTA 会由级别高的设备向级别低的设备传递。
7-8 、 (a) 、 (b)
3) 、专用硬件方式 可编程中断控制器 8259A 。
思考题
1 、查询式传送方式有什么优缺点? 中断方式为什么能弥补查询式传送方式 的缺点?2 、解决中断优先级的方法有哪些?各有
什 么优缺点?
33 、直接存储器存取方式(、直接存储器存取方式( DMADMA )) (Direct Memory Access)(Direct Memory Access)
为什么要用 DMA 方式传送数据 什么是 DMA 方式 DMA 传送原理 DMA 控制器的工作特点
( 一 )、为什么要用 DMA 方式传送数据
查询方式传送数据: 查询时占用 CPU 时间 中断方式传数据: 比查询方式传送数据效率要高,但执行中断服务程序, CPU 要保护断点、保护一些寄存器等操作,使 CPU 花费时间。
DMA 方式 用专用接口电路直接和存储器进行数据传送。
( 二 ) 、 DMA 的传送原理
1 、 DMA 控制器与其它接口电路的不同点: 具有接管和控制系统总线的功能,但在取得总线控制权之前,与其它接口芯片一样,受 CPU 的控制。
在 DMA 方式, DMA 管理总线,控制传送数据的开始与结束,传送的字节数,传送的方向及地址。
DMA 的传送原理
2 、 DMA 的功能:
①能接受外设的请求,并能向 CPU 发 DMA 请求信号;②CPU 接到 DMA 请求信号,如果允许, CPU 发 DMA响应信号, DMA 控制器接管总线,进入 DMA方式;③能寻址存储器,并修改地址;④能向外设发读 /写信号;⑤能控制传诵的字节数,判断 DMA 是否结束;⑥DMA 结束时,能向 CPU 发出结束信号,将总线控制权交还 CPU ;
思考题
1. 接口应该具备那些端口 ? 其功能 ? 2.CPU 与外设传送数据 , 主要有哪些方
式 ?
特点是什么 ? 3. 简述无条件传送方式的原理 . 4. 简述查询式输入接口原理 .
§7-2 §7-2 并行通信和并行接口并行通信和并行接口
并行通信就是把一个字符的各数位用几条线进行传输。
和串行通信相比,在同样的传输率下,并行通信的信息实际传输速度快,信息率高。
实现并行通信的接口就是并行接口。 一个并行接口可以设计为只用来作为输出接口,也可以只用来作为输入接口,此外,还可以将它设计成既作为输入又作为输出的接口。
一个控制寄存器 ,用来接收 CPU对它的控制命令。一个状态寄存器,提供各种状态位供 CPU 查询。输入缓冲寄存器和输出寄存器,实现实现输入和输出。
1. 输入过程
2. 输出过程
§7-3 §7-3 可编程并行通信可编程并行通信接口接口 8255A8255A
8255A 是 INTER 系列的并行接口芯片。它是可编程的,可以通过软件来设置芯片的工作方式。
7-3-17-3-1 、、 8255A8255A 的内部结构的内部结构 11..数据端口 A、 B、 C 22.. A组控制和 B 组控制 33..读 /写控制逻辑电路 44..数据总线缓冲器
4.读写控制信号RESET :复位信号,低电平有效。D7~D0 :和数据线相连。CS :芯片选择信号,低电平有效。RD :芯片读出信号,低电平有效。WR :芯片写入信号,低电平有效。A1、 A0:端口选择信号。
A1、 A0=00, 选中端口 A;A1、 A0=01, 选中端口 B;A1、 A0=10, 选中端口 C;A1、 A0=11, 选中控制端口 ;
7-3-27-3-2 、 、 8255A 的控制字一 .控制字 : 分为两类。 芯片各端口的方式选择控制字,它可以使 8255A 的 3个数据端口工作在不同的工作方式。
C 端口按位置 1/0 控制字,它可以使 C端口中的任何一位进行置位或复位。
8255A 的 3种基本工作方式: 方式 0:基本的输入 /输出方式 方式 1:选通的输入 /输出方式 方式 2:双向的传输方式
1.1. 方式控制字方式控制字
2. 端口端口 CC置置 1/01/0 控制字控制字
0 D7 D6 D5 D4 D3 D2 D1 D0
1= 置 1
0= 置 0
端口 C置 1/0控制字
0 0 0 PC00 0 1 PC10 1 0 PC20 1 1 PC31 0 0 PC41 0 1 PC51 1 0 PC61 1 1 PC7
图、端口 C 置 1/0 控制字
例 1 :设 A 端口工作方式 0 ,输出, B 端口工作于方式 0 ,输入。
方式选择控制字: 1 0 0 0 1/0 0 1 1/0 =10000010=82H
方式选择
A口方式0
A口输出
C口高位不用
B口方式0
B口输入
C口低位不用
注意 :① 端口 A 可以工作在 3 种工作方式中
的任意一种 ;② 端口 B 只能工作在方式 0 或方式 1; ③ 端口 C 被分为高 4 位和低 4 位 , 可以
分别工作在输入方式和输出方式,并不要求同为输入方式或同为输出方式 .
例例 22 :设 8255A 的控制口地址为 00EEH ,要求对端口 C 的 PC7置1,则控制字 00001111B=
0FH ,要求对端口 C 的 PC3置0,控制字为 000
00110B=06H 。 下面的程序可以实现上述要求: MOV AL , 0FH ; 对 PC7 置 1 的控制字 MOV DX , 00EEH ; 控制口地址送 DX
OUT DX , AL ; 对 PC7 置 1 操作 MOV AL , 06H ; 对 PC3 置 0 的控制字 OUT DX , AL ; 对 PC3 进行置 0 的操作
7-3-2.8255A7-3-2.8255A 的工作方式的工作方式
1.1. 方式方式 0--0--基本输入输出方式基本输入输出方式① 任何一个端口可以作为输入口,也可以作为输出口,各端口之间没有规定必须的关系。② 各个端口输入或输出,可以有 16 种不同的组合,所以可以适用于多种使用场合。
方式 0使用场合 两种: 一种是同步传送, 另一种是查询式传送。
22. 方式. 方式 1——1——选通的输入输出方选通的输入输出方式式 数据输入输出要在选通信号控制下工作 . 端口 A和端口 B 可以分别作为两个数据口工作于方式 1,并且,任何一个端口可以为输入口或输出口。
1)1) 方式方式 11 输入输入 :A:A 口控制信号的定义口控制信号的定义 ::
1 0 1 1 1/0 D7 D6 D5 D4 D3 D2 D1 D0
方式1
PC4.PC5
1= 输入
0= 输出端口 A 输入
RD
PA7~PA0INTE
A PC4
PC5
PC3
PC6.PC7 I OINTRA
IBFA
STBA选同信号输入端,低电平有效
输入缓冲区满信号,低电平有效
它是 8255 送往 CPU 的中断请求信号,高电平有效。
中断允许信号 ,INTE由 STB(PC4)置“ 1”,INTR 有效
A 口方式 1 输入有关信号的规定
1 1 1 D7 D6 D5 D4 D3 D2 D1 D0
端口 B 输入方式 1
RD
INTE
BPC2
PC1
PC0
PB7~PB0
STBB
IBFB
INTRB
图 1:B 口方式 1 输入有关信号的规定
选同信号输入端,低电平有效输入缓冲区满信号,低电平有效
它是 8255 送往 CPU 的中断请求信号,高电平有效。
中断允许信号 ,INTE由 STB(PC2)置“ 1”,INTR 有效
22 )方式)方式 11 输出输出
① OBF ( Output Buffer Full )输出缓冲器满信号,低电平有效。 ② ACK ( Acknowledge ):外设响应信号,它是由外设送给 8255A 的,低电平有效。 ③ INTR ( Interrupt Request ):中断请求信号,高电平有效。 ④ INTE ( Interrupt Enable ):中断允许信号。为 1 时,使端口处于中断允许状态,而为 0 时,使端口处于中断屏蔽状态。
1 0 1 0 1/0 D7 D6 D5 D4 D3 D2 D1 D0
方式1
PC4.PC5
1= 输入
0= 输出端口 A 输出
图 :A 口方式 1 输出有关信号的规定
WR
PA7~PA0INTE
A
PC3
PC6
PC7
PC4.PC5 I OINTRA
OBFA
ACKA 输出缓冲区满信号,低电平有效
外设响应信号 , 是外设送给 8255A 的
中断请求信号
中断允许信号 ,INTE由 PC6(ACKA)置“ 1”,INTR 有效
1 1 0 D7 D6 D5 D4 D3 D2 D1 D0
端口 B 输出方式 1
WR
INTE
B
PC0
PC2
PC1
PC7~PC0
ACKB
OBFB
INTRB
中断允许信号 ,INTE由 ACKB(PC2)置“ 1”,INTR 有效
输出缓冲区满信号,高电平有效
外设响应信号 , 是外设送给 8255A 的
中断请求信号
B 口方式 1 输出有关信号的规定
3) 方式 1的使用场合 在采用中断方式进行输入 /输出的场合,如果外部设
备能为 8255A提供选通信号或着数据接收应答信号,那么,通常使用 8255A 的端口工作方式 1的情况。
D7 D6 D5 D4 D3 D2 D1 D0
11
端口A 方式
B 组方式
0= 方式 0
1= 方式 1
PC7~PC0
1= 输入0= 输出
端口 B
1= 输入
0= 输出
3.3. 方式方式 2——2——双向传输方式双向传输方式 ①方式 2只适用于端口 A ②端口 A工作于方式 2时,端口 C用 5个数位自动配合端口 A提供控制。
PC2~PC0
PC4
PC5
PC6
PC7
PC3
INTE1
INTE2
I O
IBFA
STBA
ACKA
OBFA
INTRA
WR
RD
PA7 ~PA0
方式 2 的控制信号
输出缓冲区满信号外设收到数据 , 发响应信号
外设准备好数据 ,发选通信号8255A收到数据 ,向外设发输入缓冲区满信号
7-3-3. 82557-3-3. 8255 使用举例使用举例 ::例 1、用 8255A 控制三个发光二极管依秩序循环显示。1、硬件设计:
PA0 PA1
PA2
8255AA0
A1 PB0
CS
+5V
200
+5V
2K译码器
D7 ~D0
地址线
8086
CPU
用 8255A 控制三个发光二极管显示。假设开关闭合时,点亮发光二极管,开管断开时息灭二极管。 8255A 的端口地址为:
A 端口: 0040H B 端口: 0042H C 端口: 0044H 控制口: 0046H 试编写 8255初始化程序段和控制三个发光二极管显示程序段。
开始
8255A 初始化
延时
2 号亮
延时
3 号亮
1 号亮
延时
启动 ?Y
返回 DOS
N
2 、软件设计1 )设 A 口为输出口,方式 0 。 B 口输入,方式 0 ,
则方式选择控制字为 82H 。2 ) A口输出代码: 0000 0110 06H , 1号发光二极管亮 0000 0101 03H , 2号发光二极管亮 0000 0011 04H , 3号发光二极管亮3 )软件延时(1).1ms 的软件延时参考程序: 设系统的 CPU 的频率为 8MHZ,则时钟节拍为:0.125 微秒。执行 PUSHF 、 POPF 、 LOOP指令需 29个节拍。延迟 1毫秒要循环的次数:
DELAY PROC NEAR PUSH CXSTAR20T : MOV CX , 275 ;送循环次数 LP1 : PUSHF ; PUSHF 、 POPF 、 LOOP 需 29
个节拍。 POPF LOOP LP1 POP CX RETDELAY ENDP
次一次循环时间
延迟时间275
125.029
1
s
msX
DATA SEGMENT port3 EQU 046H ; 8255A 控制口地址 port1 EQU 040H ; 8255A 的 A 口地址 port2 EQU 042H ; 8255A 的 B 口地址 LED DB 06H , 03H , 04H ; LED 显示值 DATA ENDP STACK SEGMENT STA1 DW 50 DUP (?) TOP1 EQU LENGTH STA1 STACK ENDP CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK …... MOV DX,port3 MOV AL,82H ; 方式 0
OUT DX, AL ;A 口为输出 ,B 口为输入 DON: MOV DX, port2 ; B 口地址 MOV AL ,DX ; 读 B 口输入值 AND AL,01H ; 测 PB0=0? 启动? JNZ DON ; 非 0, 退出;否则 , 使灯
亮 MOV DX, port1 ;A 口地址 MOV BX, OFFSET LED ; 1 号灯代码地址 MOV AL, [BX] OUT DX, AL ;1 号灯亮 CALL DELAY ; 调延时程序 INC BX MOV AL, [BX] OUT DX, AL ;2 号灯亮 ,1 号灯灭 CALL DELAY
INC BX MOV AL , [BX] OUT DX, AL ;3 号灯亮 ,2 号灯灭 CALL DELAY JMP DON EXIT: MOV AH , 4CH INT 21H …. DEALY PROC NEAR ; 软件延时 …. RET DEALY ENDP CODE ENDS END
例 2:8255A 工作于方式 1,作为用中断方式工作的 Centronics 360 字符打印机的接口 .A端口为数据口,方式 1,输出方式, PC7 作为
输出缓冲器满 OBF 信号, PC6作为外设响应信号 ACK, PC3 作为 INTR 信号。
端口地址 : A 端口: 00C0H , B 端口: 00C2H
C 端口: 00C4H
控制口: 00C6H ; 控制字: 1010 0000B=0A0H
OBF
注意 : 当 ACK 为低时 ,OBF 为高 .
1). 初始化 8255A 程序段 : MOV AL,0A0H ; 主程序段 OUT 0C6H,AL ; 设置 8255A 的控制字 MOV AL,0CH ; 置 PC6=1 控制字 OUT 0C4H,AL ; 使 INTE(PC6) 为 0, 禁止中断2). 用查询方式输出 10 个字符程序段 : MOV CX,10 MOV SI,OFFSET BUF ; 取缓冲区首地址P1: MOV AL,[DI] ; 取一个字符 MOV 0C0H,AL ; 从 A 口输出P2: MOV AL,0C4 ; 读口 C
TEST AL,80H ; 检测 OBF(PC7) 为 1?
JZ P2 ; 为 0, 继续检测 INC DI ; 为 1, 数据已输出 , 准备下次输
出 LOOP P1
例题 3:8255 端口 A 工作于方式 0, 输出 8 位数字信息到 DAC0832; 端口 B 工作于方式 1 输入 , 接收模数转换输入信号 .
8255 方式 0 输出 , 控制字 :
1 0 0 0 0 1 1 0=86H
方式选择
A口方式0
A口输出
C口高4
输出
B口方式1
B口输入
C口低位不用
PC2自动作 STB 信号 ,PC7 作 ADC0809 的启动转换信号 .
8086
CPU8255A
DAC0832
ADC0809
PA7~PA0
PB7~PB0
PC2
PC7
控
制
系
统
D7~D0
PC0
D7~D0
D7~D0
INTR
IN0STARTEOC
1) 初始化 8255A: MOV DX,8255_CTRL ; 8255A 控制端口地址送 DX
MOV AL,86H ; 设 8255 端口方式 0 输出 , 端口 B 方式 1 输入
OUT DX,AL ;C 口高 4 位输出 MOV AL,05H MOV DX,AL ; 置 PC2=1, 允许中断
2) 用 8255A 的 PC7 启动 ADC0808: MOV DX,8255_C ;8255A 端口 C 地址送 DX
MOV AL,80H ;PC7 输出 1
OUT DX,AL MOV AL,0 OUT DX,AL ;PC7 输出 0, 启动 ADC0809
§7-4 §7-4 串行接口和串行通信串行接口和串行通信
一.串行通信的工作方式一.串行通信的工作方式 1 、通 信:指计算机与外界交换信息。 2 、并行通信:传输线没有限制,此外
还设有 联络线。 3 、串行通信 : 在一根传输线上一位一
位地传送信息。
串行通信的工作方式 :
1.单工方式 :
允许一个方向传输数据 .2.半双工方式: 允许两个方向传输数据 ,单不能同时
传输 . 输入和输出过程使用同一根传输线。3.全双工方式: 系统可以同时进行发送和接收。在数
据通信系统中,分别由两根不同的传输线传送 .
二二 ..串信接口串信接口 控制寄存器用来容纳 CPU 送给此接口的各
种控制信息,而控制信息决定接口的工作方式。
状态寄存器每一个状态位可以用来指示传输过程中的某一种错误或者当前传输状态。
数据输入寄存器总是和串行输入 / 并行输入移位寄存器配对使用的。
数据输出寄存器和并行输入 /串行输出移位寄存器配对使用。
7-22 、可编程串行接口的典型结构每一个状态位可以用来指示传输过程中的某一种错误或者当前传输状态
控制寄存器用来容纳 CPU 送给此接口的各种控制信息
数据输入寄存器总是和串行输入/ 并行输入移位寄存器配对使用的。
数据输出寄存器和并行输入 / 串行输出移位寄存器配对使用。
三三 . . 串信通信数据收发方式串信通信数据收发方式
串行通信可以分为两种类型,一种叫同步通信,另一种叫异步通信。
采用同步通信时,字符可以一个一个地 传输,中间没有空隙。
而采用异步通信时,两个字符之间的传 输间隔是任意的,每个字符的前后都要 用一些数位来作为分割位。
11 、异步通信方式、异步通信方式
1
2 3 4 5 6 7
异步通信所采用的数据格式是以一组不定“位数”数组组成。• 第一位为起始位,低电平• 接着是几位(一个字节)数据位• 最后是停止位: 1 位、 1.5 位或 2 位• 两个数据之间可有空闲位
22 、同步通信方式(协议)、同步通信方式(协议)1 )面向字符型的数据格式 单同步:传送数据前先送一个同步字符。 双同步:先送两个同步字符。 外同步:用专用控制线传送同步字符。
SYNC 数据字节 1
SYNC
数据字节 2 …... 数据字节 N CRC1 CRC2
SYNC 数据字节 1 数据字节 2 …... 数据字节 N CRC1 CRC2
数据字节 1 数据字节 2 …... 数据字节 N CRC1 CRC2
幀
2) 、面向比特型的数据格式 以幀为单位传输,每幀由六个部分组成。 开始标志为 7EH 一个字节的地址场 一个字节的控制场 数据,是位的集合 两个字节的循环控制码 结束标志
01111110 地址场 D0D1D2…DN CRC1 CRC2
幀控制场 01111110
四四 . . 串行通信的物理标准串行通信的物理标准 (( 补充补充 ))
1. 传输率传输率 ----波特率波特率 所谓传输率就是指每秒传输多少位,传输率也叫波特率。波特率是指每秒传输的离散信号的数目 .
发送 / 接收时钟频率 = 发送 / 接收波特率波特率系数
发送接收频率可以不同 ,但是波特率系数必须相
同
波特率 : 国际上规定一个标准波特率系列,标准波特
率系列为 110 、 300 、 600 、 1200 、 4800 、9600 、和 19200 。
2.传输距离2.传输距离 1) 近距离通信: RS-232-C 标准。 不用 MODEM 时,传送距离 15米以内。 2 )远距离通信 RS-232-C与调制解调器、电话线一起。 RS-422 标准:采用平衡发送,差分接收,以抑制共模干扰。不用 MODEM 时,传输速率可达10000 位 /秒。传送距离可达 1200米。
RS-485 标准:与 422兼容,允许有多个发送器,不用 MODEM 时,传输速率为 100KB/秒 ~9600B/秒。传送距离可达 1200米 ~15000米。
33 、 、 RS-232-CRS-232-C 标准标准 RS-232-C 标准对下述两个方面作了规定: 25根引线 信号电平标准; 控制信号的定义。 RS-232-C采用负逻辑规定逻辑电平,信号电
平与通常的 TTL 电平也不兼容。 RS-232-C将: -5 V ~ -15 V规定为“1”, +5V ~ +1 5V规定为“0”。
图是TTL标准和RS 232 标准之间的电平转换电路。 TTLRS232 RS232 TTL
7-57-5 可编程串行通信接口可编程串行通信接口 8251A8251A
8251A 通过编程,可以工作在同步方式,也可以工作在异步方式。同步方式下,波特率为0~ 64K,异步方式下,波特率为0~ 19.2K 。
6-5-1. 8251A6-5-1. 8251A 的内部结构的内部结构11 、发送器:、发送器:22 、接收器、接收器33 、数据总线缓冲器、数据总线缓冲器44 、读、读 // 写控制逻辑电路写控制逻辑电路55 、外设(调解、外设(调解 // 解调)控制电路解调)控制电路
8251A 的编程结构
接受器接收 RXD脚上的串行数据,并通过移位寄存器将其转换成并行数据,存放在数据缓冲器中。发RXRDY 信号 , CPU 接收数据 。
当发送器准备好 , 发送电路向 CPU 发 TXRDY 有效信号 ,CPU 就向 8251A 并行输出数据。发送缓冲器把来自CPU 的并行数据转换成串行数据从 TxD引脚发出去。
数据终端准备好信号
数据设备准备好信号
请求发送信号清除发送信号
7-5-2 8251A7-5-2 8251A 的控制字及工作方式的控制字及工作方式
一一 . 8251A. 8251A 的初始化的初始化 ① 复位,第一次用奇地址端口写入的值作为模
式字,进入方式寄存器; ② 若方式字是同步方式, CPU 接着往奇地址端
口写入一个或两个同步字符,并进入同步字符寄存器;
③然后,由 CPU往奇地址端口写入的值作为控制字,往偶地址端口写入的值作为数据送入数据寄存器。
二二 .. 方式控制字方式控制字
例 : 设置控制字,使发送器启动
0 0 0 1 0 0 0 1 B = 11 H
7-5-37-5-3 、 、 8251A8251A 的编程举例的编程举例例 1 :设置异步模式字设置模式字, 8251A 处于异步方式,波特率因子为 64, 用 8 个数据位,偶校验, 1 个停止位。
模式字: 0 1 1 1 1 1 1 1 = 7F H 例 2 :设置同步模式字, 使 8251A 处于同步模式,用 2 个同步字符,
7 个数据位,奇 /偶校验为偶校验。 0 0 1 1 1 0 0 0 = 3 8 H
异 步 同 步
例 3:P222: 双机通信 当采用查询方式,异步传送,双方实现半双工
通信时,初始化程序由两部分组成 , 一部分是将一方定义为发送器,另一部分是将对方定义为接收器、发送器 CPU每查询到 TXRDY 有效.则向 825lA 并行输出一个字节数据 ; 接收端 CPU每查询到 RXRDY 有效,则从 825lA 并行输入一个字节数据;一直进行到全部数据传送完毕为上。
NEXT:MOV DX,8251A 控制端 IN AL,DX TEST AL,01H ; 查询 TXRDY=1?
JZ NEXT MOV DX,8251A 数据端口 MOV AL,[DI] OUT DX,AL INC DI LOOP NEXT HLT
向 8251A输出一个字节
接收端程序 : SRR: MOV DX,8251A 控制端口 MOV AL,7FH OUT DX,AL MOV AL,04H OUT DX,AL MOV DI, 接收数据块首地址 MOV CX, 接收数据字节数 COMT:MOV DX,8251 控制口 IN AL,DX TEST AL,02H ; 查询 RXRDY=1? JZ COMT TEST AL,08H ; 查询有奇偶校验错 ? JNZ ERR
初始化
8251A
MOV DX,8251 数据口 IN AL,DX ; 输入一个数据
MOV [DI],AL INC DI LOOP COMT HLT ERR: ; 出错处理
第七章 小结第七章 小结1 、输入输出数据传送方式输入输出数据传送方式 程序传送方式 中断传送方式中断传送方式 DMA 方式2 、同步通信 异步通信,异步通信数据格式 8251A 初始化,应用3 、并行接口 8255A ,初始化,应用
第七章第七章思考题
1. 什么是异步通信?什么是同步通信?说明其 数据格式。2. 为什么串行接口中的四个寄存器只用一位地 址可以区分?3.声音程序设计 :利用 PC机的发声系统 .
8255A 地址 :60H,61H,62H,63H
8253 地址 :40H,41H.42H,43H
;---------sound------- ;DI=freq,bx=delaytime sound proc near push ax push bx push cx push di mov al,0b6h ;Timer2, MODE3 out 43h,al mov dx,0020h mov ax,34deh div di out 42h,al mov al,ah out 42h,al in al,61h ;read PB mov ah,al or al,3 ;PB0=1,PB1=1 out 61h,al wait1: mov cx,07fffh delay: loop delay dec bx jnz wait1 mov al,ah out 61h,al pop di pop cx pop bx pop ax ret sound endp