8251习题培训资料.ppt
第七章8251串行通信接口精品PPT课件
调制器(Modulator)是一个波形变换器,它将基带数字 的波形变换成适合于模拟信道传输的波形。
解调器是一个波形识别器,将模拟信号恢复成原来的数字信 号。
010010 调制器
010010 解调器
3. 调制方法:
最基本的调制方法有以下几种:
(1)调幅(AM)
0 10011
即载波的振幅随基带数字信号而变化.
②若干个字符组成一个数据块列成方阵,列向按位相加产生
一个单字节检验和附加到数据块未尾。
1101001 0
0100000 1
1010101 0 1111001 1
奇偶位
1100001 特率: 是指在串行通信中,在基本波传输的情况下, 每秒钟传送的二进制脉冲的数目。 用波特率表示:即1波特=bit/s (位/秒)
数字
1
信号
-
+ 输出
振幅键控(ASK)、频移键控(FSK)、相移 键控(PSK)
五、信息的检错与纠错 串行数据在传输过程中,由于干扰而引起误 码是
难免的,这直接影响通信系统的可靠性,对通信中 的检/纠错能力是一个通信系统的重要内容。
检错:如何发现传输中的错误,称为检错。 纠错:如何消除错误,称为纠错 例:奇偶校验检错
A站
B站
发送器
发送器
接收器
接收器
图8.2 半双工方式示意图
特点:①每端需有一个收/发切换电子开关 ②因有切换,会产生时间延迟
应用:打印机串口,单向传送设备,发送器→接收器
单工 :数据只能单向传送
A站 接收器
B站 发送器
图8.2 半双工方式示意图
四、信号的调制和解调
计算机的通信是要求传送数字信号,而在进行远程数据通 信时,线路往往是借用现有的公用电话网,但是,电话网是为 音频模拟信号的设计的。一般为300~3400Hz,不适合于数据 信号。
第10章 8251A
图10.4 8251A引脚图
图10.5 8251A内部结构框图
1、数据总线缓冲器
数据总线缓冲器是CPU与8251A之间的数据接口,是8251A与
CPU之间并行交换信息的必经之路。它内部包含3个三态、双向、
8位缓冲器(称为状态缓冲器、接收数据缓冲器、发送数据/命令 缓冲器)。前两个缓冲器用来存放8251A的状态信息和它所接收 的数据,CPU通过执行IN指令可以从这两个寄存器中分别读取状 态字和数据;后一个用来存放CPU向8251A写入的数据或命令字, CPU通过执行OUT指令可向8251A写入。
10.2 可编程串行通信接口芯片8251A
Intel 825lA是通用可编程的串行同步/异步数据收发器
(USART),可用来将8086/8088CPU与以串行方式工作的
外设相连,或实现远距离的计算机之间的通信;它能将并行 输入的8位数据变换成串行信号逐位输出,也能将串行输入 的数据变换成并行数据一次传送给处理机。
10.1.2 串行传送的两种基本工作方式
串行通信有两种基本工作方式:异步方式和同步方式。
1、异步方式
异步通信方式的特点是:以字符为单位传送。字符是一帧
一帧的传送,每一帧字符的传送靠起始位来同步。在数据传输 过程中,传输线上允许有空字符。所谓异步通信,是指通信中 两个字符之间的时间间隔是不固定的,而在同一字符中的两个 相邻代码间的时间间隔是固定的通信。异步通信中发送方和接 收方的时钟频率也不要求完全一样,但不能超过一定的允许范 围。异步传输时控制信号,执行
CPU所要求的操作,并输出状态信息和控制信息。
在UART工作时,其接收器始终监视着串行输入端, 当发现一个起始位时,就开始一个字符的接收过程。在 时钟控制下,先逐位把数据移入移位寄存器,再按相应 的格式转换成并行数据,送入并行寄存器中,等待CPU 来读取。在接收过程中,自动进行出错检测(奇偶校验、 帧格式错、溢出错误),置位相应标志位,CPU检测状 态标志位,可作出相应的处理动作。 在UART工作于发送方式时,发送缓冲器把CPU来 的并行数据加上相应的成帧信号(如起始位、停止位 等),再在时钟控制下,经移位寄存器移位后,逐位从 数据输出线上发送出去。
微机原理计算机接口技术8251(ppt2003)
2. 同步通信 在同步通信时所使用的数据格式根据控制 规程分为面向字符及面向比特的两种。 ⑴面向字符型的数据格式:面向字符型的同步 数据格式可采用单同步、双同步及外同步3种 数据格式,如图3所示。 单同步是在传送数据之前先传送一个同步 字符“SYNC”,双同步则先传送两个同步字符 “SYNC”。接收端检测到该同步字符后开始接 收数据。外同步通信的数据格式中没有同步字 符,而是用一条专用控制线来传送同步字符, 使接受方及发送端实现同步。当每一帧信息结 束时均用两个字节的循环控制码CRC为结束。
⑵面向比特型的数据格式:根据同步数据链路控 制规程(SDLC),面向比特型的数据以帧为单 位传输,每帧由6个部分组成。第1部分是开始 标志“7EH”;第2部分是一个字节的地址场; 第3部分是一个字节的控制场;第4部分是需要 传送的数据,数据都是位(bit)的集合;第5 部分是两个字节的循环控制码CRC;最后部分 又是“7EH”,作为结束标志。面向比特型的 数据格式如图4所示。
在SDLC规程中不允许数据段和CRC段中 出现6个“1”,否则会误会认为是结束标志。 因此要求在发送端进行检验,当连续出现5个 “1”,则立即插入一个“0”,到接收端要将这 个插入的“0”去掉,恢复原来的数据,保证通 信的正常进行。 通常,异步通信率要比同步通信的低。 最高同步通信率可达800K位,因此适合用于 传送信息量大,要求传送速率很高的系统中。
四、信号的调制与解调 计算机的通信是一种数字信号的通信,它要求传 输线的频带很宽。但在目前长距离的通信中,大都采 用电话线进行信息传递,而电话线的频带又没有这么 宽,所以,简单地直接使用电话线去传送数字信号, 就会造成信号的畸变。 为了保证信号的可靠性,在长距离通信中,常常 采用调制/解调器来保证信号品质。调制器 (Modulator)把数字信号转换为模拟信号,经过传 输线传送到目的地后,再用解调器(Demodulator) 检测此模拟信号,再把它转换成数字信号,如图5所 示。通常把调制、解调电路做在一起,构成调制/解调 器。在串行通信中,要用一对调制/解调器来实现信号 转换。
8.2 微机8251
异步通信方式
◆异步通信双方用各自的时钟(异步时钟)信号控制发送和 接收, 通信是随机进行的。 ◆异步通信方式的数据以字符为单位(字符帧)。各个字符 可以连续传送, 也可以间断传送。 ◆异步通信的字符帧格式规定:每个字符由起始位、数据位、 奇/偶校验位、停止位四部分(共7~12位)组成。 ◆两个字符帧之间可以有若干个空闲位。
◆ 8251初始化设置信息全部写入控制端口, 特征是C/D=1。
◆ 8251的每次设置需有一定的延时来保证设置的可靠完成 (常通过调用软件延时子程序实现)。
8251应用例
【例8.4】8251采用查询方式将显示缓冲区的字符送CRT显示。 ◆ 8251异步传送方式, 8位数据位、奇校验、1位停止位, 波特率因子16。 ◆ 8251数据口地址为50H, 控制口地址为51H。
移位寄存器、同步字符寄存器(2个)、数据位计数 器、奇/偶校验位检测器等。
8251发送器工作过程
◆ 8251异步通信的发送: 发送器把发送数据寄存器的数据组织成一帧字符信息,从TxD端逐 位发送出去, 即先发送起始位(“0”), 再逐位发送字符数据位, 并根 据编程设定在字符数据位后发送校验位和停止位。 若发送器没有字符帧信息发送, 则发送“1”空闲位。 ◆ 8251同步通信的发送:
IR
RTS
ER
SBRK
RXE
DTR
TXE
发送允许 1:允许, 0:禁止 数据终端准备好 1:迫使DTR输出0
接收允许
1:允许, 0:禁止 发送断点字符 1:迫使TxD为低, 0:正常
8251的状态字
D7 D6 D5 D4 D3 D2 D1 D0 同引脚定义 DSR SYNDET FE OE PE TxE RxRDY TxRDY
第8章 8251
3.串行通信中数据传送方式 . 在串行通信中,数据在两个站点( 在串行通信中,数据在两个站点(如 计算机终端)之间传输, 计算机终端)之间传输,主要有单工方 式、半双工方式和全工方式三种基本传 输方式。 输方式。
(1)单工方式。这种方式数据只允许按照一个固 )单工方式。 定方向传送。通信线路的两端,一端为发送端, 定方向传送。通信线路的两端,一端为发送端, 则另一端为接收端,如图 则另一端为接收端,如图8.29(a)所示。在参加 ( )所示。 通信的A、 两端中 两端中, 只能为接收器 只能为接收器, 只能为 通信的 、B两端中,A只能为接收器,B只能为 发送器。 发送器。 (2)半双工方式。参加通信 、B两端均具备和发 )半双工方式。参加通信A、 两端均具备和发 送能力。由于 、 是由一条通道相连 是由一条通道相连, 送能力。由于A、B是由一条通道相连,通信双方 不能同时收发数据,而是分时收/发,如图8.29 不能同时收发数据,而是分时收 发 如图 (b)所示。采用半双工时,通信系统中每一端 )所示。采用半双工时, 的收、发器通过收 发开关进行传送方向的切换 发开关进行传送方向的切换。 的收、发器通过收\发开关进行传送方向的切换。 无线对讲机就是半双工的例子。 无线对讲机就是半双工的例子。
图(a)
为单同步数据格式, 为单同步数据格式,传送一帧数据仅使
用一个同步字。 用一个同步字。当接收端检测到一个完整的 同步字后,就连续接收数据。一帧数据结束, 同步字后,就连续接收数据。一帧数据结束, 便进行16位的循环冗余校验 校验, 便进行 位的循环冗余校验CRC校验,以校 位的循环冗余校验 校验 验所传送的数据中是否出现错误。 验所传送的数据中是否出现错误。 为双同步数据格式, 图(b) 为双同步数据格式,这时利用两个同步 字进行同步。 字进行同步。 图(c) 是IBM公司推出的同步数据链路控制数 公司推出的同步数据链路控制数 据格式SDLC(Synchronous Data Link 据格式 Control)。 。
微机技术825140页PPT
01001001
8T
计
算
计
机
算
机
或
外
设
( (
( (
0
1
0
0 计1 算0 机0
1
D0 D1 D2 D3 D4 D5 D6 D7
控制(选通)
0
1
0计 0算 1机
0
0
或 外
1设
状态
T
(a)
(b)
(a) 串行通信; (b) 并行通信
9.3.1 串行通信概述
串行通信:将数据分解成二进制位用一条 信号线,一位一位顺序传送的方式
无 空(b) 闲 位
(2)数据传输速率
数据传输速率也称比特率(Bit Rate) 每秒传输的二进制位数bit 字符中每个二进制位持续的时间长度都一样,为 数据传输速率的倒数
当进行二进制数码传输,且每位时间长度相等时, 比特率还等于波特率(Baud Rate)
过去,串行异步通信的数据传输速率限制在50 bit 到9600 bit之间。现在,可以达到115200 bit或更高
❖若计算机数据传输的速率是120字符/s,而每个字符假如为 10个比特(bit)位,则其传输的波特率为
10 bit/字符×120字符/s=1200 bit/s
❖每一位的传输时间Td就是波特率的倒数,在上例中则为
Td=1/1200=0.833 ms ❖国际上规定了一个标准波特率系列,如110、300、600、
串行通信的优势:由于通信的线路少,因 而在远距离通信时可以极大地降低成本
串行通信适合于远距离数据传送,也常用 于速度要求不高的近距离数据传送
PC系列机上有两个串行异步通信接口:键 盘、鼠标器与主机间采用串行数据传送
第八章-8251
串行接口标准RS-232C
美国电子工业协会EIA制定的通用标准串行接口 设计目的是用于连接调制解调器 现已成为数据终端设备DTE(例如计算机)与数据通信设备
DCE(例如调制解调器)的标准接口 可实现远距离通信,也可近距离连接两台微机 属于网络层次结构中的最低层:物理层
RS-232C的引脚定义
奇校验:所有传送的数位(包含字符的各个数位和校验位)中,1 的个数为奇数 偶校验:所有传送的数位(包含字符的各个数位和校验位)中,1 的个数为偶数
奇偶校验能够检测出1位误码,但是不能纠错。
数据传输速率
数据传输速率也称比特率(Bit Rate) 每秒传输的二进制位数bps
波特率―――每秒传输的“符号”(也称离散状态)的个数。 在计算机中, 比特率等于波特率(Baud Rate) 标准 波特率系列:50,75,110,150,300,600,1200,
2400,3600,4800,9600, 115200……
收发时钟
发送时钟:发送端所用的时钟信号。 用来决定发送端数据的每一位对应的时间长度
接收时钟:接收端所用的时钟信号。 用来决定接收端数据的每一位对应的时间长度
波特率因子
波特率因子:收发时钟对 波特率的倍数。 可以是16倍、32倍、64倍。
CTS:清除发送(允许发送) 当数据通信设备已准备好接收数据终端设备的传送数据时,发 出CTS有效信号来响应RTS信号
RTS和CTS是数据终端设备与数据通信设备间一对用于数据发送的 联络信号
RS-232C的引脚
DTR:数据终端准备好
通常当数据终端设备一加电,该信号就有效,表明数据终端设备准 备就绪
1位 5位、6位、7位、8位 1位或无 1位、1.5位或2位 任意数量
06-串行通信.8251-北科
27
1-串行通信
串行I/O的实现:软件 的实现:
数据的串、并行转换通过软件实现 数据的串、 优点: 优点:电路简单 缺点:但降低CPU CPU利用率 缺点:但降低CPU利用率
28
1-串行通信
串行I/O的实现:软件 的实现:
举例:CPU的数据通过电传打字机串行输出,一个字符用7位 举例:CPU的数据通过电传打字机串行输出,一个字符用7 的数据通过电传打字机串行输出 ASCII码 位奇偶校验位、 位起始位、 位停止位, 11位 ASCII码、1位奇偶校验位、1位起始位、2位停止位,共11位。若 电传打字机的速度为110波特,且要输出的字符已在寄存器DL中 电传打字机的速度为110波特,且要输出的字符已在寄存器DL中, 110波特 DL 软件实现串行输出的程序为 实现串行输出的程序为: 则软件实现串行输出的程序为:
9
1-串行通信
分析: 分析:
异步通信方式
波特率是指单位时间内传送的有效二进制数据位数。 A错~波特率是指单位时间内传送的有效二进制数据位数。 发时钟频率与波特率通常有下列关系: 发时钟= C错~收/发时钟频率与波特率通常有下列关系:收/发时钟=n× 波特率, 称为波特率因子。 波特率,n称为波特率因子。 D错~国际上标准的波特率系列为:110、300、1200、2400、 国际上标准的波特率系列为:110、300、1200、2400、 4800、9600和19200, 64bps不是标准波特率。 4800、9600和19200,而64bps不是标准波特率。 不是标准波特率 12位组成 B对~根据异步串行据信息格式,一般每帧信息可由7—12位组成, 根据异步串行据信息格式,一般每帧信息可由7 12位组成, 故B是对的。 是对的。
23
【微机原理】8251习题
1 串行接口 8251A 习题8.2 设8251A 的控制和状态端口地址为52H ,数据输入/输出口地址为50H(输出端口未用),输入50个字符,将字符放在BUFFER 所指的内存缓冲区中。
请写出这段的程序1 8086系统中,8251A 的C/D 端应当和哪个信号相连,以便实现对状态端口、数据端口、控制端口的读/写?与地址线的低位相连。
2 什么是波特率?若要产生一个波特率为2400的串行信号,且波特率因子编程为16,那么串口发送/接收时钟的频率是多少?P221波特率是指单位时间内传送二进制数据的位数,以位/秒为单位。
38400Hz3 设计一个采用异步通信方式输入字符的程序段,规定波特率因子为64,7个数据位,1个停止位,偶校验,端口地址为40H 、42H ,待输入字符存放在2000H:4000H 单元。
MOV AL, 01111011BOUT 42H, ALMOV AL, 04HOUT 42H, ALMOV DI, 0MOV CX, 2000;发送2000个字符 MOV BX, 4000HL0: IN AL, 42H;读取状态字TEST AL, 02HJZ L0IN AL, 40H2 MOV [BX+DI], ALINC DIIN AL, 42HTEST AL, 38H;测试有无帧校验错 JZ ERRLOOP L0JMP EXITERR: CALL ERR-OUT;调出错处理 EXIT:...4 设8251A 为异步工作方式,波特率因子为16,7位数据位,奇校验,2位停止位。
8251A 端口地址为2A1H 、2A2H 。
编写程序从串口输出100个字符,设字符存放在BUF 开始的缓冲区中。
MOV AL, 0EAHMOV DX, 2A2HOUT DX, ALMOV AL, 11HOUT DX, ALMOV DI ,0MOV CX, 100MOV BX, OFFSET BUFBEG: IN AL, DXTEST AL, 01HJZ BEGMOV AL ,[BX+DI]3 MOV DX,2A1H OUT DX ,AL INC DIMOV DX ,2A2H IN AL,DXTEST AL,38H JZ ERROR LOOP BEG JMP EXITERROR:CALL ERR_OUT EXIT: ....。
8251练习题
题型解析一、选择题1.串行接口器件8251( )。
A.只能作异步传送B.只能作同步传送C.A和 B均可D.可作并行传送2.串行接口中,并行数据和串行数据的转换是用( )来实现的。
A.数据寄存器B.移位寄存器C.锁存器D.A/D转换器3.串行异步通信的实现,必须作到( )。
A.通信双方有同步时钟的传送,以实现同步B.一块数据传送结束时,用循环冗余校验码进行校验C.以字符为传送信息的单位,按约定配上起始位、停止位和校验位D.块与块间用同步字符01111110隔开4. RS-232C标准的电气特性规定逻辑“0”电平为( )。
A.O~0.4VB.O~0.8VC.-3V~-15V C.+3V~+15V5.在异步串行通信中,使用波特率来表示数据的传送速率,它是指( )。
A.每秒钟传送的字符数B.每秒钟传送的字节数C.每秒钟传送的二进制位数D.每分钟传送的字节数6.在异步串行传输时,如果规定采用5位数据位、偶校验和2位停止位,在接收时,如果接收到5位数据和1位校验位后,再接收到一位高电平信号和一位低电平信号,其结果表示( )。
A.一个字符的数据已正确接收B.已经开始接收下一个字符C.传输中出现了奇偶错D.传输中出现了帧错二、简答题1.比较串行通信与并行通信的优缺点。
2.简要说明异步串行通信的帧格式。
三、应用题1.8251A工作于异步方式,波特率为1200b/s,收发时钟RxC=TxC,频率为76.8KHz,异步字符格式为:数据位7位,采用偶校验,两位终止位,CPU从8251A读入1O0个字符,存入变量INARY,8251A 的地址为80H与81H。
试对其进行初始化编程和数据输入程序段。
2 .已知 8251 发送的数据格式为:数据位 7 位、偶校验、 1 个停止位、波特率因子 64 。
设 8251 控制寄存器的地址是 3FBH ,发送 / 接收寄存器的地址码是 3FAH 。
试编写用查询法和中断法收发数据的通信程序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
EXIT: …
利用状态字进行编程的举例P215
以下例题的接收部分与P215类似
选用8251A进行异步方式的通信,发送100个字符,规定 波特率因子为64,7位数据位,1位停止位,用偶校验, 端口地址为140H、141H,缓冲区首址为2000H:3000H, 试对8251A编程。
解:发送程序:
START:MOV DX,141H
JZ BEGIN
;测试状态字的RxRDY
TEST AL,38H
;测试状态字看有无错误
JNZ ERROR
IN
AL,40H
;读取字符
MOV [DX+DI],AL
;传输字符
INC DI
;修改缓冲区指针
LOOP BEGIN ;如没有错,则接收下1个字符 CX-1
JMP EXIT ;如满80个字符,则结束
ERROR: CALL ERR_OUT ;调用出错处理程序
MOV AL,9BH
OUT DX,AL
MOV AL,37H
OUT DX,AL
解:异步工作方式, 每字符收发7位二进制数, 奇校验,1.5 个停止位,波特率系数为64,
发送和接收允许有效, 数据终端准备好有效, 请求发送有效,复位出错标志。
2、如果8251A的工作方式寄存器内容为01111011,那么发
有关串行通信理论及8251A的应用
分析题: 已知寄存器或初始化程序,让写出8251具体工作 方式,及格式
初始化: 同步初始化:先写模式字,然后同步字符,然 后控制字 异步初始化: 先写模式字,然后控制字
1、一块联接在8086微机上的8251A,其数据端口和控制端 口地址分别为130H、132H,已知其初始化编程如下,试 分析其工作状态: MOV DX,132H
INT
21H
BEGIN: MOV DX,141H
MOV AL,7BH
OUT DX,AL
MOV AL,14H
OUT DX,AL
MOV SI,2000H
MOV CX,100
L2: MOV DX,141H
IN AL,DX
TEST AL,38H
JNZ ERR
AND AL,02H
MOV DX,140H
IN AL,DX
般为0
利用状态字进行编程的举例 P215
此部分实际上是一个8251A应用的一个具体实例。 已知条件如下:
一串行外设用8251A与系统相,现要从此设输入80个 字符到BUFFER变量中,要求CPU和外设之间采用程 序查询方式进行通信。通信模式为异步模式,波 特率因子为16,每个字符有7个数据位,2个停止位, 偶校验
TXC的时钟频率应为2400*16=38400HZ
MOV [SI],AL
INC
SI
LOOP L2
JMP
L3
ERR:CALL ERR_OUT(略)
L3:MOV AX,4C00H
INT
21H
• 接收程序:
12.8251A在编程时,应遵循什么规则?
答:8251在初始化编程时,首先使芯片复位,第一次 向控制端口(奇地址)写入的是方式字;如果输入的 是同步方式,接着向奇地址端口写入的是同步字 符,若有2个同步字符,则分2次写入;以后不管 是同步方式还是异步方式,只要不是复位命令, 由CPU向奇地址端口写入的是命令控制字,向偶 地址端口写入的是数据。
MOV DX,01F1H MOV AL,0FBH OUT DX,AL MOV AL,15H OUT DX,AL
4、与8086微机相联的一片8251A作发送数据用,异步发送, 波特率系数为16,偶校验,每个字符发6位,1个停止位, 要求复位出错标志,启动发送器,请求发送有效,试编 程初始化8251A(已知8251A数据端口地址为1F0H,控 制端口地址为1F1H)。
上一页的程序段有些问题
1. MOV DX,OFFSET BUFFER的位置? 2.检查出错的相关程序段的位置? 所以改写如下:
MOV DX,OFFSET BUFFER
MOV DI, 0
;变址寄存器初始化
MOV CX,80
;共收取80个字符
BEGIN: IN AL,42H
;读状态字
TEST AL,02H
利用状态字进行编程的举例P215
外设用8251A与系统相连,所以第一步对8251A进行 初始化
MOV AL,0FAH OUT 42H,AL ;设置模式字,异步模式,波
特率因子为16,7个数据 位,2个停止位,偶校验 MOV AL,37H OUT 42H,AL ;设置控制字,并启动接收器
MOV DI, 0
送的字符格式如何?为了使接收的波特率和发送的波特 率分别为300b/s和1200b/s,试问加RxC#和TxC#上时钟 信号的频率应为多少?
解: 寄存器内容:01111011: 有1bit停止位 EP=1 PEN=1 说明采用偶校验 L2L1=10 B2B1=11 数据位为7位,波特率因子为64
RxC#上时钟信号的频率为300×64=19.2kHZ TxC#上时钟信号的频率为1200×64=76.8kHZ
MOV DX,167H MOV AL,18H OUT DX,AL MOV AL,16H OUT DX,AL OUT DX,AL MOV AL,0B7H OUT DX,AL
总结
同步方式下的初始化方法:
先写模式字,然后同步字符,然后控制字,均 写到“奇”地址(A1=1)
模式字的值很容易确定 控制字中的 EH必为1,IR一般为0,SBRK一
MOV AL,7BH
OUT DX,AL
MOV AL,37H
OUT DX,AL
MOV DI,3000H
MOV CX,100
L1: MOV DX,141H
IN AL,DX
AND AL,01H
JZ L1
MOV DX,140H
MOV AL,[DI]
OUT DX,AL
INC
DI
LOOP L1
MOV AX,4C00H
先写模式字,然后控制字,均写到“奇”地址 (A1=1)
模式字的值很容易确定 控制字中的 EH必为0,IR一般为0,SBRK一
般为0
5、选用8251A进行同步方式的通信,规定用内同步方式, 同步字符为2个,用奇校验,7位数据位,端口地址为 166H和167H,试对8251A进行初始化编程。
解:同步,所以要写模式字、同步字符、和控制字,2个 同步字符可相同,也可不同,这里规定均为16H
BUFFER DB 80 DUP(?)
利用状态字进行编程的举例 P215
解析 外设用8251A与系统相连,所以第一步对8251A进行
初始化 然后进行传输数据,又因为采用程序查询方式,所
以要不断检测状态字的RxRDY位,此部分流程图如 下
传送一个 字到 CPU
CPU从一外设读数据块至主存的查询方式流程
14. 一个异步串行发送器,发送具有8位数据位的 字符,在系统中使用一位作偶校验,2个停止位。 若每秒钟发送100个字符,它的波特率和位周期是 多少?
答:每个字符需要的发送位数是12位(数据位8位,校 验位1位,停止位2位,起始位1位)。每秒发送 100个字符共1200位。因此波特率为1200波特,位 周期= 1/1200 ≈ 833µs。
;变址寄存器初始化
MOV CX,80
;共收取80个字符
BEGIN: IN AL,42H ;读状态字
TEST AL,02H
JZ BEGIN
;测试状态字的RxRDY
IN
AL,40H
;读取字符
MOV DX,OFFSET BUFFER
MOV [DX+DI],AL
;传输字符
INC DI
;修改缓冲区指针
IN
AL,42H
3、一块联机的8251A芯片作双向数据传送用,异步方式, 波特率系数为64,每字符收发7位,偶校验,两个停止位, 允许发送接收,所有错误标志复位,试编程初始化。 (已知8251A数据端口地址为01F0H,控制端口地址为 01F1H)
解:异步初始化只写模式字和控制字且均写到奇地址
经过分析、可得方式选择控制字为FBH,操作命令控制 字应为15H (异步所以EH=0),故初始化为:
6、某系统利用8251A与外设通信,假设8251A工作在 异步方式,其传送字符格式为:1位起始位、7位 数据位、采用偶校验、1位停止位,波特率为2400。 该系统每分钟发送多少个字符?若波特率系数为 16,的时钟频率应为多少?
答:每分钟发送的字符数:(2400/(1+7+1+L,38H
;测试有无错误FE PE OE
JNZ ERROR
LOOP BEGIN ;如没有错,则接收下1个字符 CX-1
JMP EXIT ;如满80个字符,则结束
ERROR: CALL ERR_OUT ;调用出错处理程序
EXIT: …
注: 8251A没有收到字符时RxRDY为0,收到一个 字符时自动变为1,当CPU从8251A读取一个字 符后, RxRDY又自动变为0
解:异步初始化只写模式字和控制字且均写到奇地址
方式选择控制字为76H,操作命令控制字应为31H(异步, 所以EH=0,请求发送所以RTS=1,启动发送器所以 TXEN=1),故初始化为: MOV DX,01F1H
MOV AL,76H
OUT DX,AL
MOV AL,31H
OUT DX,AL
总结
异步方式下的初始化方法: