微型计算机技术
Download
1 / 84

微型计算机技术 - PowerPoint PPT Presentation


  • 162 Views
  • Uploaded on

微型计算机技术. 教 学 指 导 (六). 太原广播电视大学 郭建勇. 第 6 章 常用可编程外围接口芯片 内容提要:本章主要介绍微处理器常用的外围接口芯片,定时器 8253 ,并行的外围接口芯片 8255 和串行的通讯接口芯片 8251A 。介绍每种芯片的结构框图,各个部件的功能和用途,以及它们的使用方式。 学习目标:通过学习这些接口芯片,要求掌握不同外围接口芯片在使用时的工作方式。熟练掌握它们在微机接口中的运用环境和使用时的方式控制,以及不同芯片的编程命令字的设置。进一步了解每种芯片的基本的编程步骤及各种方式命令字的使用。.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' 微型计算机技术' - tasha


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

微型计算机技术

教 学 指 导(六)

太原广播电视大学 郭建勇


  • 6章 常用可编程外围接口芯片

  • 内容提要:本章主要介绍微处理器常用的外围接口芯片,定时器8253,并行的外围接口芯片8255和串行的通讯接口芯片8251A。介绍每种芯片的结构框图,各个部件的功能和用途,以及它们的使用方式。

  • 学习目标:通过学习这些接口芯片,要求掌握不同外围接口芯片在使用时的工作方式。熟练掌握它们在微机接口中的运用环境和使用时的方式控制,以及不同芯片的编程命令字的设置。进一步了解每种芯片的基本的编程步骤及各种方式命令字的使用。


  • 6.1 定时器/计数器8253的结构与编程

  • 在微机及一些控制系统中,经常要用到定时信号。如系统的日历时钟,动态存储器刷新。对外部执行机构控制时也需要定时中断、定时检测、定时查询等。

  • 定时的方法主要是两种:

    软件定时:利用指令的执行时间设计循环程序,使CPU执行延迟子程 序的时间就是定时时间。缺点:执行延迟时,CPU一直被占用,降低了CPU的效率。

    硬件定时:用计数器/定时器作为主要硬件,在软件简单指令的控制下产生精确的时间延迟。突出优点为计数时不占用CPU时间,如利用定时器/计数器产生中断信号,可建立多作业环境,故提 高了CPU效率。


1. 计数:

  • 对事件的个数进行计数。

    • 正计数:关心记录事件的次数。

    • 倒计数:关心预先设定事件次数发生完的时刻。

  • 可由硬件计数器实现,事件作为计数器的时钟,此时事件的出现频率不一定一成不变。

2. 定时:

  • 取得给定的时间间隔。

    • 延时:求锝某事件发生后间隔一定时间的时刻。

    • 时标:求得给定时间间隔的连续脉冲。

  • 可由硬件计数器来实现,一定频率的信号作为计数器的时钟,如果只计数到就终止,即为延时。如果连续不断的计数即可输出时标。


可编程计数器/定时器的用途

计数功能

作为计数个数到中断信号。

记录外部特定时间发生的个数。

定时功能

作为周期性定时中断信号。

用于分时性操作系统。

用作系统时钟基准。

作为一个可编程波特率发生器。用于异步串行通讯。

作为I/O设备输出定时信号。实现外设与CPU的同步。

实现节约CPU的时间延时。

作为音源。


  • 6.1.18253功能及结构框图

  • 1.8253的主要功能

  • (1)每片上有3个独立的16位的计数器通道。

  • (2)对于每个计数器,都可以单独作为定时器或计数器使用,并且都可以按照二进制或十进制来计数。

  • (3)每个通道都有6种工作方式,都可以通过程序设置或改变。

  • (4)每个计数器的速率可高达2MH2。最高的计数时钟频率为2.6MHz。

  • (5)所有的输入、输出都是TTL电平,便于与外围接口电路相连接。

  • (6)单一的+5V电源


CLOCK0

D7 ~D0

数据总线

缓冲器

计数器0

GATE0

OUT0

RD

计数器1

读/写

逻辑

WR

A1

A0

计数器2

控制寄存器

  • 2.8253的结构框图


  • 四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的16位的计数器通道。这三个计数器分别是计数器0通道、计数器1通道和计数器2通道。

  • (1)数据总线缓冲器:8位的双向三态缓冲器。用于暂存数据,使用在以下几个方面:

  • ①CPU在初始化编程时,向8253写入控制字。

  • ②CPU向某一通道写计数初值。

  • ③CPU从某一通道读计数初值。

  • (2)读/写控制逻辑电路:接受输入的RD、WR、CS、A1、A0等信号组合产生出对8253要执行的操作,见操作表。

  • (3)控制字寄存器:只能写入,不能读出。8初始化编程时,写入控制字决定通道的工作方式。

  • (4)3个计数器:分别为0、1和2,是3个独立的计数/定时通道,都可按不同的方式工作。每个计数器内部都包含一个16位的预置初始值寄存器。一个可预置数减法计数器和一个锁存器。


  • 信号名 引四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的 脚 信号方向 功 能 定 义

  • D7—D0 1—8双向8位 三态的数据线

  • CLK0 9 输入 计数器0的时钟输入OUT0 10输出 计数器0的输出

  • GATE0 11 输入 计数器0的门控输入CLK1 15输入 计数器1的时钟输入OUT1 13输出 计数器1的输出GATE2 14输入 计数器1的门控输入

  • CLK2 18输入 计数器2的时钟输入OUT2 17输出 计数器2的输出GATE2 16输入 计数器2的门控输入,CS 21输入 片选信号,

  • RD 22输入 读信号,低电平有效。CS=0 ,RD=0时,

  • 读取某个计数器当前的计数值。

  • WR 23输入 写信号,低电平有效。CS=0、WR=0时,

  • 写入控制字或计数器置初值。

  • A1,A0 20,19输入 A1,A0的组合对3个计数

  • 和控制器寄存 器进行寻址。


  • 6四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的.1.38253编程命令字和工作方式

  • 1.初始化编程的原则 ’

  • 8253的控制字寄存器和3个计数器分别具有独立的编程地址,由控制字的内容确定使用的是哪个寄存器以及执行什么操作。因此8253在初始化编程时并没有严格的顺序规定,但是在编程时,必须遵守两条原则:

  • ①在对某个计数器设置韧始值之前,必须先写入控制字。

  • ②在设计初始值时,要符合在控制字中规定的格式。

  • 作定时器时初值的确定:当计数器装入初值后,在GATE端由低变高时,由CLK脉冲触发开始,自动计数,当汁数变到0时,由OUT端发定时时间到信号。计数器的计数初值n(时间常数)与定时时间t及时钟周期TCK之间的关系是 :

t

n=

TCK


  • 2四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的.8253的初始化编程

  • (1)设置控制命令字:用来选择计数器,设置工作方式和计数格式。

  • D7D6位(SC1,SC0):用于选择计数器,根据这2位的编码来确定使用的是哪一个计数器。

  • D5D4(RW1,RW0):用于确定读/写的格式。

  • D3~D1位(M2,M1,M0):这三位用来指定计数器的工作方式,8253的计数器共有6种工作方式。

  • D0位(BCD):用来选择计数的类型,确定计数器是采用二进制计数还是采用二~十进制计数。

  • (2)设置初始值命令。

  • (3)锁存命令:读计数器的值时必须先用锁存命令将当前计数值在输出锁存器中锁定。否则,计数器的数值有可能正处在改变过程中。这样输入可能得到一个不确定的结果。


D7四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的

SC1

D6

SC0

D5

RW1

D4

RW0

D3

M2

D2

M1

D1

M0

D0

BCD

00:计数器0

01:计数器1

10:计数器2

11:无定义

00:计数器0

0:二进制

1:BCD码

00:锁存计数值 000:方式0

01:读/写低八位 001:方式1

10:读/写高八位 ×10:方式2

11:先读/写低八位 ×11:方式3

后读/写高八位 100:方式4

  • 101:方式5

  • 8253控制字的格式

01:计数器1

10:计数器2

11:无定义


  • 6.1.4 8253四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的工作方式与工作时序

  • 8253有6种工作方式,对它们的操作都遵守以下3条基本原则:

  • (1)当控制字写入8253时,所有的控制逻辑电路自动复位,这时输出端OUT进入初始态。

  • (2)当初始值写入计数器以后,要经过一个时钟周期,减法计数器才开始工作,时钟脉冲的下降沿使计数器进行减1计数。计数器的最大初始值是0,用二进制计数时0相当于216,用BCD码时,0相当于104。

  • (3)对于一般情况下,在时钟脉冲CLK的上升沿时,采样门控信号。对门控信号(GATE)的触发方式是有具体规定的:

  • 门控信号为电平触发的有:方式0,方式4。

  • 门控信号为上升沿触发的有:方式1,方式5。

  • 门控信号可为电平触发也可为上升沿触发的有:方式2,方式3。

  • 计数方式的有:方式0,方式1,方式4,方式5

  • 定时方式的有:方式2,方式3。


  • 8253四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的门控信号(GATE)的控制功能

  • 方式 信号状态

  • 低电平或负跳变 正跳变 高电平

  • 0 禁止记数 ——允许记数

  • 1 —— 1.初始化,启动记数 ——

  • 2.下一个脉冲输出变低

  • 2 1.禁止记数 初始化,启动记数 允许记数

  • 2.输出变高

  • 3 1.禁止记数 初始化,启动记数 允许记数

  • 2.输出变高

  • 4 禁止记数 ——允许记数

  • 5 ——初始化,启动记数 ——


  • 1四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的.方式0(计数结束产生中断的计数器)

  • 写入方式控制字后,输出端OUT为低电平;写入计数常数后,开始计数。计数器减为0之前,输出端OUT维持低电平。当计数值为0时,输出端OUT才变为高电平,向CPU发出中断请求,直到CPU写入新的控制字或者写入新的计数值为止。

n=4

CW

WR

CLK

GATE

4

3

2

1

OUT


CW四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的

n=3

WR

  • 方式0可由门控信号控制暂停,GATE为低电平时,计数器暂停,GATE信号变高后,就接着计数。

CLK

GATE

3

2

2

1

OUT


CW四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的

n=3

n=5

WR

  • 2.方式1(可重复编程的单脉冲)

  • 设定工作方式和写入计数值后,OUT输出高电平,GATE(触发信号)变为高电平后,OUT变为低电平,开始计数。当计数器减到0时,OUT才输出高电平。输出低电平期间,写入新计数值,不会影响原记数过程。只有第一次计数完,GATE再来一个正跳变时才使用新的计数值计数

CLK

GATE

3

2

1

5

OUT

开始记数

记数结束

开始记数


CW四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的

n=3

WR

  • 若在第一次计数末完成之前,GATE又产生正跳变(即下一个脉冲信号又到来)时,则从新的GATE的上升沿以后,开始重新计数,OUT端输出的低电平保持不变,2次的计数过程合在一起,因此使输出的负脉冲宽度加宽了

CLK

GATE

3

2

1

3

2

1

OUT


CW四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的

n=3

WR

  • 3.方式2 (分频器)

  • 写入方式2的控制字后,OUT变高,设GATE为高先到,计数器对CLK计数,设计数初值为N。当计数器计到(N一1)个CLK信号时,OUT输出变低,计数器的值为l。最后一个CLK信号输入后,计数器减到0,OUT回到高,计数器又自动从初值开始计数。因此OUT端在每N个CLK信号中输出一个宽度等于CLK信号周期的负脉冲。

  • 负脉冲的周期=计数值N×时钟CLK的周期T。

CLK

GATE

3

2

1

3

2

1

OUT

重新记数

记数结束

重新记数


CW四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的

n=3

WR

CLK

  • 计数过程中要求门控脉冲GAT置保持为高,当GATE为低电平时,则计数被中止暂停,在GATE再变高后,计数器又被置入初值,重新计数。

GATE

2

3

2

2

3

2

1

OUT

重新记数

方式2输出负脉冲的周期为CLK周期的N倍,

频率是1/N。称为分频器,可以用来给自动控

制中的实时检测,实时控制提供时钟信号。


CW四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的

n=4

WR

  • 4.方式3(方波发生器)

  • 采用方式3工作时,计数器输出为方波信号(GATE始终为高电平) 。当计数值为偶数时,在前N/2计数期间,OUT输出高电平,而后N/2个计数期间,OUT输出为低电平,对称方波。

CLK

GATE

4

2

4

2

4

2

4

2

OUT


CW四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的

n=5

WR

  • 记数值为N奇数时的波形

  • 当计数值为奇数时,在前(N+1)/2计数期间,OUT输出高电平,而后(N-1)/2个计数期间,OUT输出为低电平。

CLK

GATE

4

2

0

4

2

4

2

0

OUT

高电平宽度比低电平宽度大一个时钟周期的近似方波。

实际上由于时钟周期很小,几乎没什么差别。


CW四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的

n=4

WR

  • 方式3计数时要求GATE为高电平,当GATE为低电平时,停止计数。若OUT为低电平, GATE变为低电平时,OUT立即变高,计数器将重新装入初始值,重新计数。

CLK

GATE

4

2

4

2

2

2

4

2

4

2

OUT


CW四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的

n=3

WR

  • 5.方式4(软件触发选通)

  • 当方式4的控制字写入8253后,计数器输出OUT为高电平。在写入计数初值后,而且GATE为高电平时,开始计数,计数到0后输出一个时钟周期的低电平脉冲。门控信号GATE=1时允许计数,GATE=0禁止计数。

CLK

GATE

3

2

1

0

OUT

软件触发选通体现在当GATE为高电平时,写

入计数初值后开始计数。


CW四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的

n=4

WR

  • 6.方式5[硬件触发选通)

  • 当写入方式5的控制字及计数常数后,输出OUT为高电平。只有在门控信号GATE上升沿到来时才开始作减1计数,计数到达0时输出一个时钟周期宽度的负脉冲。

CLK

GATE

3

2

1

0

3

OUT

硬件触发选通:GATE信号一般由硬件产生。


CW四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的

n=3

WR

  • 计数器一旦开始计数以后,将不受GATE信号变成低电平的影响,但如果GATE信号又产生了正跳变的话,则不论计数是否完成,又将给计数器置人初值,重新开始新一轮计数。

CLK

GATE

3

2

3

2

1

0

OUT

新计数


  • 6.1.5 8253四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的初始化编程

  • 要使用8253首先要对它进行初始化编程,编程时主要是写入每个计数器的控制字和计数初值,初始化的步骤是:

  • (1)写入控制字:选择计数器和规定计数器的工作模式。

  • (2)写入计数初值。若规定只写低8位,高8位自动置0。若规定写16位,则先写低8位,后写高8位。

  • 例:设置计数器0,工作在方式3,按二进制计数,计数值200。

  • 计数器0 先写低8位,后写高8位 方式3 二进制计数

  • 程序段如下:MOV AL,36H ;控制字送AL

  • MOV DX,CRLP ;控制口地址送DX

  • OUT DX,AL ;控制字送控制寄存器

控制字

0

0

1

1

0

1

1

0

36H

设控制口地

址为CRLP。


  • CPU四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的在读取任一通道的随机计数值时,需将当前的计数值锁存。实现锁存的方法有2种:

  • (1)利用GATE信号的变化使计数过程暂停。

  • (2)向8253输出一个通道控制字(D5D4=00) ,命令8253计数器中的锁存器锁存。

  • 其程序如下:

  • MOV AL,00H ;O号通道, D5D4=00锁存命令。

  • MOV DX,CRLP ;控制口地址送DX

  • OUT DX,AL ;控制字送控制口

  • IN AL,PRT0;读计数器0的低8位

  • 当前计数值

  • XCHG AL,AH ;低8位当前计数值暂存AH

  • IN AL,PRT0;读高位当前计数值

  • XCHG AL,AH ;利用交换指令使计数值的低8位送AL,

  • 高8位送AH

设PRT0为计数

器0的口地址。


  • 6.1.6 8253四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的编程应用举例

  • 在一个实际的数据采集系统中,要求5s钟采一个数,现场的主时钟的振荡频率为2.5MHz。

  • 分析:选择工作方式3(方波发生器),连续工作对2.5M的脉冲分频。

  • 时钟周期Tck=l/2.5×106

  • 计数初值n=T/Tck=5÷(l/2.5×106 )=1.25×107

  • 一个计数器最多的分频次数是65536,是不够用的。采用两级计数器,用计数器0的输出OUT0作为计数器1的输入CLK1。

  • 计数器0的计数值为50000;C350H计数器1的250;FAH。则有:

  • 总的计数值=50000×250=1.25 ×107

  • 计数器0:方式3(方波发生器)控制宇36H

  • 计数器1:方式2(分频器)控制字54H

  • 设:控制口地址:CRPT;0号计数器:PRT0;1号计数器:PRT1


  • 实现上述过程的程序如下:四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的

  • MOV AL,36H

  • MOV DX,CRPT

  • OUT DX,AL ;0号计数器方式3

  • MOV AL,50H

  • MOV DX,PRT0

  • OUT DX,AL ;计数值低8位

  • MOV AL,C3H

  • OUT DX,AL ;计数值高8位

  • MOV AL,54H

  • MOV DX,CRPT

  • OUT DX,AL ; 1号计数器方式2

  • MOV AL,FAH

  • MOV DX,PRT1

  • OUT DX,AL ;计数值低8位

2.5MHZ

8253

CLK0

GATE0

+5V

OUT0

CLK1

GATE0

+5V

OUT0

5S脉冲


  • 6.2 四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的并行外围接口8255A的结构与编程

  • 6.2.1 并行通信的简单原理

  • 中央处理器(CPU)和外部设备进行数据传输,都采用接口电路和CPU相连。

  • 接口方式:串行通信接口和并行通信接口。

  • 状态端口:状态信息表示外设当前所处的工作状态。

  • 接口: 数据端口:数据信息进行数据传输。

  • 地址端口:控制信息控制外设接口的工作方式等。

  • 典型的并行接口:有一个控制寄存器,CPU对外设的操作命令都寄存在控制寄存器中。一个状态寄存器,主要是用来提供外设的各种状态位,以供CPU来查询。另外在并行接口中还设置了输入缓冲寄存器和输出缓冲寄存器,缓冲器的作用是用来暂存数据。主要是用来匹配CPU和外设的数据处理速度的。


并行接口原理结构图四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的

数据总线

输入数据

控制寄存器

准备好输出

输入数据准备好

准备好输入

状态寄存器

输入回答

中断请求

输入缓冲寄存器

CPU

复位

输出缓冲寄存器

RD

输出数据

WR

M/IO

地址

译码器

输出数据准备好

CS

地址总线

输出回答

A0

A1


  • 数据输入:四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的

  • (1)外设先使状态线“输入数据准备好”为高电平(有效);

  • (2)数据接收到输入缓冲寄存器中;

  • (3)把“输入回答”信号置成高电平(有效),并发给外设;

  • (4)外设接到回答信号后,将撤消“输入数据准备好”的信号。

  • (5)当接口收到数据后,会在状态寄存器中设置“准备好输入”状态位,以便CPU对其进行查询或中断输入。

  • 数据输出:

  • (1)当外设从接口接收到一个数据后,接口的输出缓冲寄存器“空”,使状态寄存器“输出数据准备好”状态位为高电平有效;

  • (2)CPU将输出数据送到接口的输出缓冲寄存器;

  • (3)接口向外设发送一个启动信号,启动外设接收数据;

  • (4)外设接收到数据后,向接口回送一个“输出回答”信号;

  • (5)接口电路收到该信号后,自动将接口状态寄存器中的“准备好输出”状态位重新置为高电平“l”。


  • 6.2.2 8255A四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的结构框图及功能部件说明

  • 8255A是为Intel公司的微处理机配套的通用可编程并行接口芯片,可编程的I/O引脚有24条,分为2组,每组12条,并有三种工作方式。

  • 芯片的主要技术特性是:

  • ①输入、输出电平与TTL电平完全兼容;

  • ②改善了时序特性;

  • ③直接位的置1/置0功能,便于实现控制性接口使用;

  • ④单一的+5V电源。

  • 8255A的内部结构:


内部逻辑四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的

外设接口

CPU接口

端口

A(8)

PA7-PA0

A组

控制

PC7-PC4

端口C

上半部

(4)

数据

总线

缓冲器

DB

8位内部

数据总线

端口C

下半部

(4)

PC3-PC0

RD

读/ 写

控制

逻辑

WR

端口

B(8)

A0

B组

控制

A1

PB7-PB0

REST

CS

8253A内部结构


  • 1四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的.三个独立的数据端口

  • ①A端口:A端口对应一个8位的数据输入锁存器和一个8位的数据输出锁存和缓冲器。用于双向的数据传输,有锁存功能。

  • ②B端口和C端口:这两个端口分别是由一个8位的数据输入缓冲器和一个8位的数据输出锁存和缓冲器组成。输出有锁存功能;输入无锁存。

  • 2。A组控制电路和B组控制电路

  • A组控制电路控制A端口和C端口的高4位(PC4一PC7)。

  • B组控制电路控制B端口和C端口的低4位(PC0一PC3)。

  • 控制电路的作用是:接收CPU输出的方式控制命令字;接收来自读/写控制逻辑电路的读/写命令;决定A组和B组的工作方式和读/写操作。

  • 3.读写控制逻辑电路

  • 完成内部三个数据端口的译码工作,由CPU的地址总线Al、AO,8255A的片选信号CS和RD、WR信号组合后产生控制命令,并将产生的控制命令传送给A组和B组的控制电路,从而完成对数据信息的传输控制。


  • 8255A四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的的控制信号与执行的操作之间的对应表

  • CS RD WR A1A0 执行的操作

  • 0 0 1 00 读A端口(A端口数据→数据总线)

  • 0 1 0 00 写A端口(A端口←数据总线数据)

  • 0 0 1 01 读B端口(B端口数据→数据总线)

  • 0 1 0 01 写B端口(B端口←数据总线数据)

  • 0 0 1 10 读C端口(C端口数据→数据总线)

  • 0 1 0 10 写C端口(C端口←数据总线数据)

  • 0 1 0 11 当D7=l时,对8255A写入控制字

  • 当D7=O时,对C端口置位/复位

  • 0 0 1 11 非法的信号组合

  • 0 1 1 ** 数据线D7~D0进入高阻状态

  • 1 * * ** 未选择


  • 6.2.3 8255A四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的引脚信号定义

  • 8255A是40条引脚双列直插式芯片。引脚按连接功能分为2组。

  • 1.与CPU相连的引脚

  • RESET:复位信号,高电平有效。复位后把8255A内部的所有寄存器都清“0”,并将三个数据端口自动设置为输入端口。

  • CS:片选信号,低电平有效。只有当芯片被选中才能进行读、写操作。

  • RD:读信号,低电平有效。

  • WR:写信号,低电乎有效。

  • A1A0:端口译码信号。00选中A端口;01选中B端口;

  • 10选中C端口;11选中控制端口。

  • D7~D0:双向8位三态数据线,与系统的数据总线相连接。

  • 2.和外设端相连的引脚

  • PA7~PA0:A端口的输入/输出引脚;

  • PB7~PB0:B端口的输入/输出引脚;

  • PC7~PC0:C端口的输入/输出引脚;


  • 6.2.4 8255A四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的的控制字

  • 8255A的控制字:方式选择控制字和端口C置1/置0控制宇

  • 1.1.方式选择控制字

  • 方式选择控制字

  • 标识位总为 1

D7 D6 D5 D4 D3 D2 D1 D0

0 0:方式0

0 1:方式1

1﹡:方式2

PA口

1:输入

0:输出

PC7~PC4

1:输入

0:输出

0:方式0

1:方式1

PB口

1:输入

0:输出

PC3~PC0

1:输入

0:输出

A 组 控 制

B 组 控 制


1四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的

0

0

1

0

1

0

0

控制字

为94H

  • 如果要求8255A的A端口作输入,B端口和C端口作输出,A组工作在方式0,B组工作在方式l。

  • 94H

  • 标志位

  • A方式0 B方式1

  • A口输入 B口输出

  • C口输出 C口输出

  • 相应的程序段:

  • MOV AL,94H ;方式选择控制字送AL。

  • MOV DX,Portctr ;控制口地址Portctr送DX

  • OUT DX,AL ;方式选择控制字输出给8255入的

  • ;控制端口,完成方式选择

Portctr为控制口的地址


  • 2四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的.端口C置1/置0控制字

  • 8255A在和CPU传输数据的过程中,经常将C端口的某几位作为控制位或状态位来使用,配合A端口或B端口的工作。

  • 初始化时,C端口置l/置0控制字可以单独设置到C端口的某一位为0或某一位为1,控制字的D7位为“0”是C端口置l/置0控制字中的标识位。

  • D6~D4位可为任意值,不影响操作。D3~D1位用来决定对C端口8位中的哪一位进行操作。Do位用来决定对所选择的位是置l还是置0。

  • C端口位选择

  • C端口置位000:PC0 001:PC1置1/置0选择

  • 标识位010:PC2 011:PC3 0:置0

  • 总为 0 100:PC4 101:PC5 1:置1

  • 110:PC6 111:PC7

D7

D6

D5

D4

D3

D2

D1

D0

任意值

一般为0


0 0 0 0 0 1 1 0四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的

0 0 0 0 1 1 1 1

  • 例如:要将C端口的PC3置0,PC7置l,可用下列程序段实现。

  • 06H 0FH

  • MOV AL,06H ;PC3置0控制字送AL

  • MOX DX,PortCtr ; 控制口地址 PortCtr送DX

  • OUT DX,AL ;对PC3 完成置0操作

  • MOV AL,0FH ;PC7置1控制字送AL

  • OUT DX,AL ;对PC7完成置1操作

置0

置1

PC3

PC7


  • 6.2.5 8255A四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的的工作方式

  • 8255A有3种工作方式:方式0,方式l和方式2。

  • A端口:3种方式中的任一种;

  • B端口:方式0和方式1;

  • C瑞口:通常作为控制信号使用,配合A端口和B端口的工作。

  • 1.方式0:基本的输入输出方式

  • 方式0的基本定义如下:2个8位的端口和2个4位的端口。都可以作为输入或输出。输出可以被锁存。输入不能锁存。


输入时序对各信号的要求是:四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的

  • ①地址信号要领先于RD信号。RD信号有效到数据稳定的最长时间为250ns ;

  • ②读信号有效到数据稳定的时间内,应由输入设备解决数据锁存问题。

方式0输入时序

tRR

RD

tIR

tHR

输入数据

数据有效

tRA

CS、A1、A0

tAR

D7~D0

数据有效

tRD

tDF


  • 输出时序对各信号的要求是:四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的

  • ①地址信号必须在写信号WR之前有效,且维持到WR撤消后的20ns以后。

  • ②写脉冲WR的宽度最小要求是400ns。

  • ③数据必须在写信号之前100ns时间出现在数据总线上;写信号撤消后,数据的最小保持时间是30ns。

tWW

WR

D7~D0

数据有效

CS、A1、A0

输出数据

数据有效

方式0输出时序


  • 2四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的.方式1:选通的输入/输出方式

  • 在这种方式下,当A端口和B端口进行输入输出时,必须利用C端口提供的选通和应答信号。

  • 方式1的基本定义如下:分成2组(A组和B组)。每组包含一个8位的数据端口和1个4位的控制/数据端口。

  • 8位的数据端口既可以作为输入也可以作输出,输入和输出都可以被锁存。

  • 4位的控制/数据端口用于传送8位数据端口的控制和状态信息。

  • (1)选通的输入方式

  • 选通输入方式:规定是PC3~PC5分配给A端口,PC0~PC2分配给B端口。C端口剩下的2位PC6,PC7可’作为简单的输入/输出线使用,控制字的D3位为l时输入;D3位为0时输出。


1四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的

0

1

1

1/0

×

×

×

1

×

×

×

×

1

1

×

  • A组工作于方式1输入的控制字 B组工作于方式1输入的控制字

PC7、PC6

方式1

方式1

1输入,0输出

端口B输入

端口A输入

8

PB7~PB0

8

PA7~PA0

INTE

A

INTE

B

PC4

STBA

PC2

STBB

PC5

PC1

IBFA

IBFB

PC3

INTRA

PC0

INTRB

PC6、PC7

RD

RD

I/O

方式1输入时C端口对A、B端口的控制


方式四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的1选通输入时序

STB

  • ①外设数据送到

  • 数据线上时,发出

  • 选通输入信号STB

  • (≥500ns)锁存

  • 数据到输入寄存器。

  • STB信号变低后

  • (≤300ns)使

  • 输入缓冲器满信号

  • IBF变为高电平。

  • ②STB结束后,最

  • 多经过300ns时间向CPU发出中断请求信号(INTR变高)。

  • ③CPU响应中断后发出读信号RD,将数据读入到CPU中,读信号有效(低电平)后,最多经过400ns时间就清除中断请求,使中断请求信号变低。

  • ④当读信号结束后,才使输入缓冲器满信号IBF变低,通知外设可以输入新的数据。

IBF

INTR

RD

从外设来的

输入数据


  • 方式四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的l选通输入方式时,各控制信号的意义如下:

  • STB:选通输入信号,低电平有效。A组方式控制字中对应

  • PC4 ;B组方式控制字中对应PC2。宽度最小是500ns。

  • IBF:输入缓冲器满信号,高电平有效。A组方式控制字中对应PC5;B组方式控制字中对应PC1。STB变低后300ns时间内变有效的高电平。在RD信号撤消后的300ns时间内IBF信号才撤消。保证数据传输的可靠性。

  • INTR:中断请求信号,高电平有效,A组方式控制字中对应PC3;B组方式控制字中对应PC0。STB信号撤销后最多300ns时间内,IBF信号变为高电平有效。

  • INTE:中断允许信号、高电平有效。INTE的状态是用软件通过由C端口置1/置0控制字来控制的。


  • (2)四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的选通的输出方式

  • 方式1在选通输出情况下对应的控制信号:

  • PC3,PC6,PC7分配给A端口;PC2,PC1,PC 0分配给B端口。PC4,PC5可作为简单的输入/输出线使用,当控制字的D3位为1时PC4,PC5作输入;当控制字的D3位为0时PC4,PC5作输出。

1

0

1

0

1/0

×

×

×

1

×

×

×

×

1

0

×

方式1

端口B输出

方式1

端口A输出

PA7~PA0

PB7~PB0

INTEA

INTEB

PC6

ACKA

PC2

ACKB

PC7

OBFA

PC1

OBFB

PC3

INTRA

PC0

INTRB

WR

PC4~PC5

WR


WR四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的

OBF

  • 8255A方式1输出时序

  • 8255A工作在方式1

  • 输出选通方式一般是采用

  • 中断方式。

  • CPU响应中断以后,

    向8255A输出数据,写

    信号WR出现;经过850ns

    写信号WR撤消,其上升

    沿一方面撤消中断请求

    信号INTR①,另一方面使

    OBF信号变为有效的低电平②,通知外设可以接收数据。

    当外设收到数据后,便发出一个ACK信号,同时使OBF变为无效③,表示数据已经取走,当前缓冲器空。

    ACK信号结束时使INTR信号变为有效的高电平④,向CPU发出中断请求信

    号,从而开始新的数据输出过程。

    OBF:输出缓冲器满信号,低电平有效。INTR:中断请求信号,高电平有效。

    ACK:数据接收应答信号,低电平有效。INTE:中断允许信号,高电平有效。

INTR

ACK

送外设的数据

数据有效


  • 3四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的.方式2:带选通的双向传输方式

  • 双向的传输方式:可以向外设发送数据;又可以接收从外设发来的数据

  • 方式2的基本定义如下:只能适用于A端口。一个8位的双向端口(A端口)和1个5位的控制端口(C端口)。

INTRA

1

1

×

×

×

PC3

PA7~PA0

端口A

端口B

PC2~PC0

方式设定

PC7

OBFA

方式2

1输入,0输出

INTE1

PC6

ACKA

方式2时各控制信号:

STB:选通信号,低电平有效。

IBF:输入缓冲器满信号,高电平有效。

OBF:输出缓冲器满信号,低电平有效。

INTR:中断请求信号,高电平有效。

ACK:数据接收应答信号,低电平有效。

INTEI:输出中断允许信号。

PC4

STBA

WR

INTE2

PC5

IBFA

RD

PC3~PC0

I/O

3


  • 6.2.5 8255A四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的编程应用举例

  • 例:采用查询方式传送数据,A端口作为8位数据的输出口,工作在方式1,输出方式。C端口作为状态口和控制口使用,打印机有3个控制状态信号线。BUSY表示打印机是否为“忙”状态,高电平有效。STB选通信号,低电平有效。ACK是打印机对主机的应答信号,当打印机接收完字符后发出该信号。

  • 当STB信号有效时将BUSY信号置为高电平,ACK有效使BUSY置为低电平.图中的单稳定用来展宽脉冲,以满足打印机对STB信号要求的时间宽度。

数据总线

D7~D0

PA7~PA0

D7~D0

复位

REST PC4

BUSY

IOR

RD PC6

ACK

IOW

WR (ACK)

AEN

地址

译码

单稳

DATASTB

CS PC7

地址总线

打印机

(OBF)

A0

查询方式接线图

A1 8255A


  • A四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的端口地址用PRA表示,C端口地址用PRC表示,控制口地址用PORC表示。输出500个字符程序段如下:

  • MOV AL ,08AH ;A端口方式1输出,PC4输入

  • MOV DX ,PORC ;控制口地址送DX

  • OUT DX ,AL ;输出控制字到控制口

  • MOV CX ,500 ;传送字符数500个

  • MOV DI ,BUF ;送字符缓冲区首地址

    LOP1:MOV AL ,[DI] ;从字符缓冲区取字符

    MOV DX ,PRA ;A端口地址送DX

    OUT DX ,AL ;从A端口输出—个字符

    MOV DX ,PRC ;C端口地址送DX

    NEXT: IN AL , DX ;从C端口渎入打印机状态

    TEST AL ,10H ;测试BUSY信号

    JNZ NEXT ;如果打印机忙,继续测试,等待

    INC DI ;数据缓冲区地址加1

    LOOP LOP1 ;继续输出下一个字符


数据总线四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的

D7~D0

D7~D0

ACK

DATASTB

PA7~PA0

复位

REST PC6

  • 中断方式传送数据电路的连接图

  • CFU控制PC4产生选通脉冲,PC4作输出用,这里OBF没有用。PC3作为中断请求INTR,由ACK信号上升沿产生,使用IRQ3,中断向量OBH。

(ACK)

IOR

RD

打印机

IOW

WR

PC4

地址

译码

CS

8255A

地址总线

A0

PC3

INTR 去CPU

A1

(INTR)


A四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的端口方式1

输出方式,

PC4作输出

1 0 1 0 0 0 0 0

0AH

标志位 方式1 输出 PC4输出

  • MOV AL , 0A0H

  • MOV DX , PROC

  • OUT DX , AL

  • MOV AL ,09H ;置PC4=1,令DATASTB=1选通无效

  • CLI ;关中断

  • MOV AH ,35H

  • MOV AL ,OBH

  • INT 21H

  • PUSH ES

  • PUSH BX

  • PUSH DS

  • MOV DX ,OFFSET INTSERV

  • MOV AX ,SEG INTSERV

  • MOV DS ,AX

  • MOV AL ,0BH

  • MOV AH ,25H

  • INT 21H

09H

0 0 0 0 1 0 0 1

取中断号0BH

的中断向量。

标志位

PC4

置0

保存0BH的

中断向量。

INTSERV是中断服务程序的入口地址

OFFSET INSERV ;取偏移量,

SEG INSERV ;取段基值,

通过功能号25H的DOS功能调用设置

中断号0BH的中断矢量。


0 0 0 0 1 1 0 1四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的

0DH

使PC6=1

INTE为1

允许中断

C口置1/0

标志位

置1

PC6

  • POP DS

  • MOV AL ,0DH

  • MOV DX ,PROC

  • OUT DX ,AL

  • STI ;开中断

  • CLI

  • POP DX ;将开始压线的ES、BX的内容弹入DS、DX中

  • POP DS

  • MOV AL ,0BH

  • MOV AH ,25H

  • INT 21H ;恢复0BH原中断向量

  • STI


  • 中断服务程序四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的

  • INSERV:

  • PUSHAD ;寄存器压栈

  • MOV AL ,CL ;打印字符送AL

  • MOV DX ,PORTA

  • OUT DX ,AL ;打印字符送A端口

  • MOV AL ,00H

  • MOV DX ,PORTCTR

  • OUT DX ,AL ;置PC4=0产生选通信号,

  • ;使DATASTB为低电平

  • INC AL

  • OUT DX ,AL ;使PC4=1,撤消选通信号

  • MOV DX ,20H

  • OUT DX ,20H ;发EOI命令

  • POPAD

  • IRET


  • 6四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的.3 串行通信接口8251A的结构与编程

    6.3.1 串行通信的基本概念与术语

  • 串行通信:是一位一位地进行数据传输。串行通信具有传输线少,成本低等优点,适合远距离传送。缺点是速度慢,若并行传送n位数据需时间T,则串行传送的时间最少为nT。

串行通信接口

数据总线

RXRDY

扩展寄存器

TXRDY

状态寄存器

复位

CPU

串行数据入

RD

数据输入寄存器

WR

输出缓冲寄存器

M/IO

地址

译码

CS

地址总线

串行数据出

C/D

控制


  • 串行接口部件的典型结构四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的:由控制寄存器、状态寄存器、数据输入寄存器和数据输出寄存器组成

  • 输入:串行数据经过串行输入并行输出电路转换成并行数据;

  • 输出:并行数据经过并行输入串行输出电路转换成串行数据。

  • 1.串行通信中使用的术语

  • (1)发送时钟和接收时钟。二进制数据序列在传输线上是以数字信号形式出现,即高电平表示二进制数1,低电平表示二进制数0。而且每一位持续的时间是固定的,在发送时是发送时钟作为数据位的划分界限,在接收时是以接收时钟作为数据位的检测。

8位、16位、

32位或更多

并行

输入

串行

输出

串行

输入

并行

输出

8位、16位、

32位或更多

1位输出

1位输入

来自CPU

送往CPU

串行、并行,输入、输出示意图


  • 发送时钟:并行的数据序列送移位寄存器,由发送时钟触发进行移位输出,数据位的时间间隔由钟周期来划分。发送时钟:并行的数据序列送移位寄存器,由发送时钟触发进行移位输出,数据位的时间间隔由钟周期来划分。

  • 接收时钟:接收时钟作为移位寄存器的触发脉冲将串行数据逐位打入移位寄存器,转换成并行数据。

  • 2 .DTE和DCE

  • 数据终端设备(DTE):是对属于用户所有联网设备和工作站的统称。

  • DCE是对网络设备的统称,该设备为用户设备提供人网的连接点。自动呼叫/应答设备,调制解调和其他一些中间设备均属DCE。

  • 信道:是传输信息所经过的路径,是连接2个DTE的线路。它包括传输介质和有关的中间设备。

信道

DTE

数据终

端设备

DTE

数据终

端设备

DCE

DCE


  • 2.发送时钟:并行的数据序列送移位寄存器,由发送时钟触发进行移位输出,数据位的时间间隔由钟周期来划分。串行通信中的工作方式

  • 全双工:相互通信的双方都可以同时进行发送信号和接收信号。(手机的工作方式即是全双工方式。)

  • 半双工:在某一个时刻,只能进行发送,或只能进行接收。发送和接收不能同时进行,这种传输方式称为半双工。(常见的步话机就是半双工方式。 )

  • 单工方式:通信的一端为发送器.另—端为接收器,即形成单向连接。数据按照一个固定的方向传送(也称广播方式)。

A站点

B站点

A站点

B站点

发送器

发送器

发送器

发送器

接收器

接收器

接收器

接收器

全双工方式

半双工方式

A站点

B站点

发送器

接收器

单工方式


  • 3发送时钟:并行的数据序列送移位寄存器,由发送时钟触发进行移位输出,数据位的时间间隔由钟周期来划分。.同步通信和异步通信方式

  • 同步通信:由一个统一的时钟控制发送方和接收方,若干字符组成一个信息组。开始为1—2个同步字符(常称为帧头),后面跟着的是5~8位的字符数据。

  • 同步传输时,要求必须连续传送字符,每个字符的位数要相同,中间不允许有间隔;若没有字符时,也要发送专用的“空闲”字符或者是同步字符。

同步字符

同步字符

字符

字符

字符

同步通信字符格式


奇偶校验发送时钟:并行的数据序列送移位寄存器,由发送时钟触发进行移位输出,数据位的时间间隔由钟周期来划分。

7位数据代码

下一个字符

空闲位

  • 异步通信:字符是一帧一帧的传送,每—帧字符的传送靠起始位来同步。

  • 异步通信字符格式:

  • 一位起始位“0”(低电平);5~8位的数据位;1位奇偶校验位(也可能没有);以及1、1.5、2位的停止位“1”(高电平)。

0

0

1/0

1/0

1/0

1/0

1/0

1/0

1/0

1/0

1 1 1 1

1/0

1/0

停止停止

停止位

起始位

低位

高位

停止位或空闲位的

下降沿指出下一

个字符的开始。

异步通信字符格式


同步:发送时钟:并行的数据序列送移位寄存器,由发送时钟触发进行移位输出,数据位的时间间隔由钟周期来划分。1~2个同步字

符,后面跟着的是5~8

位的字符数据。

异步:一位起始位“0”,

5~8位的数据位, 1位

奇偶校验位,1、1.5、2位

的停止位“1”。

  • 4.通信中必须遵循的规定

  • (1)字符格式的规定。

  • (2)比特率、波特率

  • 比特率:每秒传输的二进制数的位数bit(位/s)。

  • 波特率=1/二进制位的持续时间

  • 发送时钟与波特率的关系是:

  • (n可以是1,16,32,64)。n为波特率因子,是传输一位二进制数时所用的时钟周期数。

时钟频率=n×波特率


模拟信号发送时钟:并行的数据序列送移位寄存器,由发送时钟触发进行移位输出,数据位的时间间隔由钟周期来划分。

  • 5.信号的调制与解调

  • 采用调制解调器(modem)利用电话线来实现远距离的信息传输。

  • 调制器:把数字信号转换为模拟信号。

  • 解调器:把模拟信号转换为数字信号。

  • 调制解调器(modom)是完成调制和解调的功能。

  • 发送时:调制器把数字信号转换为模拟信号(图中是调频信号

  • 即频率高的信号代表1,频率低的信号代表0)。

  • 接收时:解调器把模拟信号转换为数字信号。

1 0 1 0

1 0 1 0 1 1 0

1 01 01 1 0

计算机

计算机

MODEM

MODEM


  • 6.3.2 8251A发送时钟:并行的数据序列送移位寄存器,由发送时钟触发进行移位输出,数据位的时间间隔由钟周期来划分。结构框图及功能部件说明

  • 1.8251A芯片基本性能

  • 8251A是可编程的串行通信接口芯片,它的基本性能如下:

  • (1)可工作在同步方式(波特率为0 ~64k ),也可工作在异步方式(波特率为0 ~19.2k)。

  • (2)同步方式时,每个字符可定义为5 ~8位。两种方法实现同步,由内部自功检测同步字符或由外部给出同步信号。允许同步方式下增加奇/偶校验位进行校验。

  • (3)在异步方式下,每个字符可定义为5 ~8位,用1位作奇偶校验。时钟速率可用软件定义为波特率的l,16或64倍。另外,8251A在异步方式下能自动为每个被输出的数据增加1个起始位,并能根据软件编程为每个输出数据设置1位,1.5佐或2位停止位。

  • (4)能进行出错检测,带有奇偶,溢出和帧错误等检测电路。用户可通过输入状态寄存器的内容进行查询。


  • 8251A发送时钟:并行的数据序列送移位寄存器,由发送时钟触发进行移位输出,数据位的时间间隔由钟周期来划分。的内部结构框图


  • 数据总线缓冲器、发送时钟:并行的数据序列送移位寄存器,由发送时钟触发进行移位输出,数据位的时间间隔由钟周期来划分。

  • 读/写控制逻辑(见表)

  • 发送缓冲器、

  • 发送控制器、

  • 8251A的基本组成 接收缓冲器、

  • 接收控制器、

  • 调制/解调控制逻辑、

  • 同步字符寄存器

  • 控制各种操作的方式寄存器

CS RD WR C/D 执行的操作

0 0 1 0 CPU由8251A输入数据

0 1 0 0 CPU向8251A输出数据

0 0 1 1 CPU读取8251A的状态

0 1 0 1 CPU向8251A写入控制命令


  • 6.3.3 8251A发送时钟:并行的数据序列送移位寄存器,由发送时钟触发进行移位输出,数据位的时间间隔由钟周期来划分。引脚信号定义

  • 1.8251A与CPU的接口信号

  • (1)双向的数据信号线D7~D0。

  • (2)片选信号CS,低电平有效。

  • (3)读/写控制信号:

  • 读信号RD :低电平有效。

  • 写信号WR :低电平有效。

  • 控制/数据信号C/D :

  • 高电平:系统处理的是控制信息或状态信息;

  • 低电平:写入的是数据。

  • 复位信号RESET:高电平有效。

  • 主时钟信号CLK:用于芯片内部的定时


(4)发送时钟:并行的数据序列送移位寄存器,由发送时钟触发进行移位输出,数据位的时间间隔由钟周期来划分。与发送有关的联络信号。

发送器准备好信号TXRDY(输入):高电平有效。

TxRDY=输出缓冲器空 · CTS · TSEN

发送器空信号TxEMPTY:高电平有效。

发送时钟信号TXC:控制8251A发送器发送字符的速度。

(5)与接收有关的联络信号

接收器准备好信号RxRDY(输出):高电平有效。

同步检测/断缺检测信号SYNDET/BRKDET(输入/输出):高电平有效。

外同步方式时,SYNDET作为输入端。当外部检测到同步字符以后,输入一个高电平信号,表示已达到同步。

异步方式下BRKDET实现断缺检测功能,当连续收到8个0信号时,表示当前处于数据断缺状态。

接收器时钟信号RXC:控制8251A接收字符的速度。


2发送时钟:并行的数据序列送移位寄存器,由发送时钟触发进行移位输出,数据位的时间间隔由钟周期来划分。.8251A与外部装置之间的接口信号

连接的信号可分为数据信号和收发联络信号2类。

(1)数据信号

TxD(输出):发送数据信号端。

RxD(输入):接收数据信号端。

(2)发送数据时的联结信号

RTS(输出):请求发送信号,低电平有效。该信号有效时,表示CPU请求通过8251A向调制解调器发送数据。

CTS(输人):发送允许信号,低电平有效。该信号有效时,8251A才能执行发送操作。

(3)接收数据时的联络信号

DTR(输出):数据终端准备好信号,低电平有效。CPU可以通过8251A从调制解调器接收数据。

DSR(输入):数据装置准备好信号,低电平有效。


D发送时钟:并行的数据序列送移位寄存器,由发送时钟触发进行移位输出,数据位的时间间隔由钟周期来划分。7~D0

BB

D7~D0

RS-232C

收发器

TXD

BA

IOR

RD

AB

RXD

WR

IOW

CD

DTR

A0

C/D

CC

DSR

CB

AEN

地址

译码

CTS

CA

RTS

地址总线

8251A

TXC

时钟源

RXC

8251A异步通信方式


D发送时钟:并行的数据序列送移位寄存器,由发送时钟触发进行移位输出,数据位的时间间隔由钟周期来划分。7~D0

BB

D7~D0

RS-232C

收发器

TXD

BA

IOR

RD

AB

RXD

WR

IOW

CD

DTR

A0

C/D

CC

DSR

CB

AEN

地址

译码

CTS

CA

RTS

地址总线

DB

8251A

TXC

RXC

8251A同步通信方式


  • 6.3.5 8251A发送时钟:并行的数据序列送移位寄存器,由发送时钟触发进行移位输出,数据位的时间间隔由钟周期来划分。的方式字、命令字的设定

  • 1.方式寄存器

  • 方式寄存器是在初始化时,用来写入方式选择字的。

  • 同步方式:最低2位为“00”;

  • 异步方式:最低2位不全是0。

  • 2.控制寄存器

  • 写入了方式选择字后,接着要写入的是命令字,由命令字来规定8251A的工作状态,才能启动串行通信开始工作或置位。

  • 控制寄存器的格式

  • 3.状态寄存器

  • 状态寄存器是反映8251A内部工作状态的寄存器,只能读出,不能写入,CPU可用IN指令来读取状态寄存器的内容。

  • 状态寄存器格式


8251A发送时钟:并行的数据序列送移位寄存器,由发送时钟触发进行移位输出,数据位的时间间隔由钟周期来划分。同步方式的方式字

D7

SCS

D6

ESD

D5

EP

D4

PEN

D3

L2

D2

L1

D1

0

D0

0

同步字符数0:2个字符1:1个字符

检验类型 检验设置

全0为同步方式否则为异步方式

0:奇校验 0:无校验

1:偶校验 1:有校验

同步方式

0:内同步,SYNDET为输出

1:外同步,SYNDET为输入

数据位数

00:5位 01:6位

10:7位 11:8位

  • 要求外同步通信接口,数据位8位, 2个同步字符,偶校验,

  • 其方式选择字应为十六进制的7CH(01111100B=7CH)。


8251A发送时钟:并行的数据序列送移位寄存器,由发送时钟触发进行移位输出,数据位的时间间隔由钟周期来划分。异步方式的方式字

D7

S2

D6

S1

D5

EP

D4

PEN

D3

L2

D2

L1

D1

B2

D0

B1

波特率因子

00:同步模式

01:波特率因子为1

10:波特率因子为16

11:波特率因子为64

停止位个数00:无定义01: 1个10: 1个半 11: 2个

检验类型

校验设置

0:奇校验1:偶校验

0:无校验1:有校验

数据位数

00:5位 ;01:6位

10:7位 ;11:8位

8251A芯片作为异步通信,波特率为64,字符长度8位,

奇校验,2个停止位的方式选择字应为0DFH

(11011111B=0DFH)。


8251A发送时钟:并行的数据序列送移位寄存器,由发送时钟触发进行移位输出,数据位的时间间隔由钟周期来划分。扩展寄存器格式

D7

EH

D6

IR

D5

RTS

D4

ER

D3

SBRK

D2

RXEN

D1

DTR

D0

TXEN

请求发送置“1”后RTS输出0

送终止符置“1”后TXD输出0

数据终端就绪置“1”后DTR输出0

置“1”为搜索同步字符

置“1”后

8251A内部复位

清除错误标志

置“1”后清

PE、OE、FE

1:接收允许

0:屏蔽

1:发送允许

0:屏蔽


D发送时钟:并行的数据序列送移位寄存器,由发送时钟触发进行移位输出,数据位的时间间隔由钟周期来划分。7

DSR

D6

S/BDET

D5

FE

D4

OE

D3

PE

D2

TXEMP

D1

RXRDY

D0

TXRDY

  • 8251A的状态寄存器

帧格式出

错标志,

出错为“1”

奇偶校验

出错标志

出错为“1”

接收器

就绪为

“1”

数据设备就绪

后为“1”

后映同步方式SYNDE/

异步方式BRKDET状态

溢出出错标志,

出错为“1” 。

发送器

空为“1”

发送器

就绪为“1”


系统复位发送时钟:并行的数据序列送移位寄存器,由发送时钟触发进行移位输出,数据位的时间间隔由钟周期来划分。

输入方式指令

Y

  • 6.3.6 8251A编程应用举例

  • 8251A初始化编程

  • 1.同步方式下的初始化

  • 要求2个同步字符,外同步,

  • 奇校验,每个字符8位,方式选

  • 择字应是:01011100B=5CH。

  • 工作状态要求:出错标志复位。

  • 启动发送器和接收器,控制字

  • 应是:10010111B=B7H。第一

  • 个同步字符为A5H,第二个同步

  • 字符为27H(2个同步字符也可是

  • 相同的)。

异步方式?

N

输入第一个同步字符

Y

一个同步字符?

N

输入第二个同步字符

输入命令指令

Y

内部复位?

传送数据

N

完成?

Y


  • 初始化时,先用内部复位命令将发送时钟:并行的数据序列送移位寄存器,由发送时钟触发进行移位输出,数据位的时间间隔由钟周期来划分。40H送人8251A奇地址,复位后重新写入奇地址(设PortE为控制寄存器的奇地址。)

  • MOV AL ,40H

  • OUT PortE ,AL

  • MOV AL ,5CH

  • OUT PortE ,AL

  • MOV AL ,0A5H

  • OUT PortE ,AL

  • MOV AL ,0E7H

  • OUT PortE ,AL

  • MOX AL ,0B7H

  • OUT PortE ,AL

40H写入奇地址PortE,

使8251A复位。

设置方式选择字

写入第一个同步字符

写入第二个同步字符

设置控制源,启动发送器和接收器


  • 2发送时钟:并行的数据序列送移位寄存器,由发送时钟触发进行移位输出,数据位的时间间隔由钟周期来划分。.异步方式下的初始化

  • 例如: 要求异步方式下,波特率因子16,8位数据,l位停止位,方式选择字应是0101110B=5DH。在异步方式下输入50个字符,采用查询状态字的方法,在程序中需对状态寄存器的RxRDY位进行测试,查询8251A是否已经从外设接收了一个字符,如果收到,Dl位RxRDY变为有效的“1”。CPU用输入指令从偶地址口取回数据送入内存缓冲区中,当CPU读取字符后,RxRDY自动复位,变为“0”。除检测RxRDY位以外,还要检测D3位(PE),D4位(OE),D5位(FE)是否出错,如果出错后转错误处理程序,工作状态的要求同上边的同步方式相同。


MOV AL 发送时钟:并行的数据序列送移位寄存器,由发送时钟触发进行移位输出,数据位的时间间隔由钟周期来划分。,40H

OUT PORTE ,AL ;复位8251A

MOV AL , 5DH

OUT PORTE , AL ;写入异步方式选择字

MOV AL ,37H

OUT PORTE , AL ;控制字写入

MOV DI , 0

MOV CX ,32H ;传送字符个数

INPUT:IN AL ,PORTE ;读取状态字

TEST AL ,02H ;测试状态字第二位RXRDY

JZ INPUT ;未收到字符,重新读取

IN AL ,PORTO ; RXRDY有效,读数据

LEA DX ,BUFFER ;缓冲区首址送DX

MOV [DX+DI] ,AL ;字符送入缓冲区

INC DI


  • IN AL 发送时钟:并行的数据序列送移位寄存器,由发送时钟触发进行移位输出,数据位的时间间隔由钟周期来划分。,PORTE ;再度状态字

  • TEST AL ,38H ;测试有无三种错误

  • JNZ ERROR ;有错转错误处理

  • LOOP INPUT ;无错,不够50个字符,转INPUT

  • JMP EXIT ;够50个字符,转结束。

  • ERROR:

  • EXIT: