《第10章 串行接口及可编程接口芯片8251A.ppt》由会员分享,可在线阅读,更多相关《第10章 串行接口及可编程接口芯片8251A.ppt(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第十章第十章 串行接口及可编程接口芯片串行接口及可编程接口芯片8251A本章学习的知识点本章学习的知识点:1)掌握掌握串行串行接口接口8251A的基本功能的基本功能2)掌握掌握串行串行接口接口8251A的工作方式和基本用法的工作方式和基本用法3)掌握掌握串行串行接口接口8251A的硬软件设计方法的硬软件设计方法本章学习的重点本章学习的重点:1)掌握掌握8251A的的特点、工作方式和用法的的特点、工作方式和用法2)掌握掌握8251A的硬软件设计方法的硬软件设计方法 10.1串行传输的基本概念串行传输的基本概念10.1.110.1.1串行通信的基本概念串行通信的基本概念 在计算机数据通信中,有两种
2、基本的数据传送方式:串行通信与并行通信。串串行行通通信信:计算机之间以及计算机与一些常用的外部设备之间的数据交换,往往需要采用串行通信的方式。在计算机远程通信中,串行通信更是一种不可缺少的通信方式。串行通信中只需要一条数据传输线,所以串行通信可以节省传送线。在位数较多、传输距离较长的情况下,这个优点更为突出,但串行通信的速度比并行通信的的速度要低的多。串行通信的特点串行通信的特点:数据一位一位地顺序传送,只占用一条传输线,它可由两种方式来实现:一种是依靠软件来实现串行数据传送(如图10-1所示中的D0-D7中的某一位,按一定的时间间隔来把数据转变成序列脉冲的形式);另一种是通过专用的通信接口,
3、将并行数据转换为串行数据。并行通信的特点并行通信的特点:数据有多少位就要有多少传输线,所以数据线较多。D0D0D1D1D6D6D7D7RDYSTB8位数据线发送方接收方并行传送方式1 1 001 0 1001010110发送方接收方图10-1串行传送方式在并行通信与在并行通信与串行通信之间串行通信之间的对比关系的对比关系2.串行数据传送方式串行数据传送方式 图图 10-2串行通信中数据的传送模式串行通信中数据的传送模式(a)单工通信模式单工通信模式 (b)半双工通信模式半双工通信模式 (c)全双工通信模式全双工通信模式(1)单工(Simplex)通信模式:该模式仅能进行一个方向的数据传送,数据
4、只能从发送器A发送到接收器B。(2)半双工(Half Duplex)通信模式:该模式能够在设备A和设备B之间交替地进行双向数据传送。即数据可以在一个时刻从设备A传送到设备B,而另一时刻可以从设备B传送到设备A,但不能同时进行。(3)全双工(Full Duplex)通信模式:该模式下设备A或B均能在发送的同时接收数据。3.数据传输率 数据传输率是指每秒钟传送的二进制位数。设计算机数据传送的速率是120字符/s,而每个字符假设有10个比特(bit)位(包括1个起始位、7个数据位、1个奇偶校验位和1个停止位),则其波特率为:120字符/s10 bit/字符=1200 bit/s=1200波特 每个数
5、据位的传送时间Td为波特率的倒数:Td 1/12000.000 833 s0.833 ms 最常用的波特率有110、300、600、1200、1800、2400、4800、9600和19200。通常用选定的波特率除以10来估计每秒钟可以传送的字符数。4.发送/接收时钟 用时钟来检测每一位数据的位宽度。5.波特率因子K:每BIT占用的时钟周期数。K=接接收或发送时钟频率/比特率,可取1,16,32,64例例1:一个异步串行发送器,发送具有一个异步串行发送器,发送具有8位数据位的字符,在位数据位的字符,在系统中使用一个奇偶校验位和两个停止位。若每秒发送系统中使用一个奇偶校验位和两个停止位。若每秒发
6、送100个个字符,则其波特率为多少字符,则其波特率为多少?100*(1+8+1+2)=1200 bps例例2:一个异步串行发送器,发送具有一个异步串行发送器,发送具有7位数据位的字符位数据位的字符,传送波传送波特率为特率为18001800,字符格式为:,字符格式为:1 1个奇偶校验位,个奇偶校验位,1 1个停止位,问,十个停止位,问,十秒钟内传送了多少个字符秒钟内传送了多少个字符?10*1800/(1+7+1+1)=180000/1 0/10/11 1 起始位起始位数据位数据位校验位校验位 停止位停止位一个字符一个字符格式格式 数据通信传输的是数字信号,要求传送线的频带很数据通信传输的是数字信
7、号,要求传送线的频带很宽,若传输带宽很窄,直接传输数字信号,信号就要宽,若传输带宽很窄,直接传输数字信号,信号就要发生畸变。发生畸变。因此,需用调制器将数字信号转换成模因此,需用调制器将数字信号转换成模拟信号,经传输后再用解调器将其转换成数字信号。拟信号,经传输后再用解调器将其转换成数字信号。信号的调制与解调信号的调制与解调根据载波根据载波 Asin(t+)的三个参数:幅度、频率、相的三个参数:幅度、频率、相位,常用的调制技术:位,常用的调制技术:幅度调制幅度调制 Amplitude-Modulating(AM)频移键控法频移键控法 Frequency-Shift Keying(FSK)用调幅
8、正弦波表示数字用调幅正弦波表示数字1和和0 用两种不同频率正弦波表示数字用两种不同频率正弦波表示数字1和和0 5 5串行通信的格式串行通信的格式 在数据通信中为使收、发信息准确,收发两端的动作必须相互协调配合。这种协调收发之间动作的措施称为“同步”。在串行通信中数据传送的“同步”方式有异步传送和同步传送两种。(1 1)异步通信异步通信 异步传送,是指发送设备和接收设备在约定的波特率(每秒钟传送的位数)下,不需要严格的同步,允许有相对的延迟。即两端的频率差别在1/10以内,就能正确地实现通信。在进行异步传送时必须确定字符格式及波特率。1 1)字符格式:)字符格式:在异步通信中,两个计算机之间如正
9、确的实现数据的传输必须满足下面的两个规定:(1 1)字符格式:)字符格式:字符格式即字符的编码形式及规定。如规定每个传送的数据字符由四个部分组成:1个起始位、58个数据位、1个奇偶校验位以及12个停止位。图 10-3 示出了这种串行字符编码格式。起始位后面,紧跟着要传送字符的最低位,每个字符的结束,是一个高电平的停止位。起始位至停止位构成一帧。异步通信的字符格式:异步通信的字符格式:字符格式即字符的编码形式及规定字符格式即字符的编码形式及规定 图 10-3A 异步传送数据格式(a)有空闲位;(b)无空闲位 图10-3C 起始位至两个停止位构成一帧的异步传送格式 字符格式中个位的意义:字符格式中
10、个位的意义:起起始始位位:每个字符的开始必须是持续一个比特(一位)时间的逻辑“0”电平,标志着一个字符的开始。数数据据位位:有58位,紧跟起始位之后,是字符中的有效数据位。传送字符时,先送低位,后送高位。奇奇偶偶校校验验位位:仅占一位。可根据需要设置为奇校验或偶校验,也可以不设校验位。停止位:停止位:可设置为1位、1.5位或2位,并规定为逻辑“1”状态。异步传送数据格式下传送的过程:每个字符传送前,其传输线上必须处于高电平每个字符传送前,其传输线上必须处于高电平“1 1”状态,这样,当传输线由状态,这样,当传输线由“1 1”变为变为“0 0”状态,状态,并持续并持续1 1比特时间时,就表明是字
11、符的起始位,下面传比特时间时,就表明是字符的起始位,下面传送的位信息必然是有效数据位信息。当一个字符传送完送的位信息必然是有效数据位信息。当一个字符传送完后,立即传送下一个字符,下一个字符的起始位紧挨前后,立即传送下一个字符,下一个字符的起始位紧挨前一个字符的停止位一个字符的停止位(即无空闲位即无空闲位),如图,如图10-3(b)10-3(b)所示。所示。如后续数据跟不上,则在停止位后加高电平的空闲位等如后续数据跟不上,则在停止位后加高电平的空闲位等待下一个字符的到来,如图待下一个字符的到来,如图10-2(A)10-2(A)(B B)所示。)所示。(2 2)同步通信同步通信 同步传送是指去掉异
12、步传送时每个字符的起始位和停止位,仅在数据块开始处用12个同步字符来表示数据块传送的开始,然后串行的数据块信息以连续的形式发送,每个发送时钟周期发送一位信息,故同步传送中要求对传送信息的每每一一位位都都必必须须在在收收、发发两两端端严严格格保保持持同同步步,实实现现“位位同同步步”。同步传送时一次通信传送信息的位数几乎不受限制,通常一次通信传送的数据可达几十到几百个字节。这这种种通通信信的的发发送送器器和和接收器比较复杂,成本较高接收器比较复杂,成本较高。用于同步通信的数据格式有很多种,图11-4给出了常见的几种。图中,除数据场的字节数不受限制外,其他均为8位。图10-4 同步传送数据格式(a
13、)单同步数据格式;(b)双同步数据格式 图图(a)为单同步数据格式,传送一帧数据仅使用一个同步字。为单同步数据格式,传送一帧数据仅使用一个同步字。当接收端检测到一个完整的同步字后,就连续接收数据。一当接收端检测到一个完整的同步字后,就连续接收数据。一帧数据结束,便进行帧数据结束,便进行16位的循环冗余校验位的循环冗余校验(Cyclic Redundancy Check)CRC校验,以校验所传送的数据中是否出现错误。校验,以校验所传送的数据中是否出现错误。图图(b)为双同步数据格式,这时利用两个同步字进行同步。为双同步数据格式,这时利用两个同步字进行同步。10.2 10.2 可编程串行接口芯片可
14、编程串行接口芯片8251A8251A一、8251A的基本性能8251A是可编程的串行通信接口芯片,基本性能:1 1两种工作方式:两种工作方式:同步方式,异步方式。同步方式,异步方式。同步方式下,波特率为同步方式下,波特率为064K064K,异步方式下,波特率为,异步方式下,波特率为019.2K019.2K。2 2同步方式下的格式同步方式下的格式 每个字符可以用每个字符可以用5 5、6 6、7 7或或8 8位来表示,并且内部能自动检测位来表示,并且内部能自动检测同步字符,从而实现同步。除此之外,同步字符,从而实现同步。除此之外,8251A8251A也允许同步方式下增加也允许同步方式下增加奇奇/偶
15、校验位进行校验。偶校验位进行校验。3 3异步方式下的格式异步方式下的格式 每个字符也可以用每个字符也可以用5 5、6 6、7 7或或8 8位来表示,时钟频率为传输波位来表示,时钟频率为传输波特率的特率的1 1、1616或或6464倍,用倍,用1 1位作为奇位作为奇/偶校验。偶校验。1 1个启动位。并能根据编个启动位。并能根据编程为每个数据增加程为每个数据增加1 1个、个、1 15 5个或个或2 2个停止位。可以检查假启动位,自个停止位。可以检查假启动位,自动检测和处理终止字符。动检测和处理终止字符。4 4全双工的工作方式全双工的工作方式 其内部提供具有双缓冲器的发送器和接收器。其内部提供具有双
16、缓冲器的发送器和接收器。5 5提供出错检测提供出错检测 具有奇偶、溢出和帧错误三种校验电路。具有奇偶、溢出和帧错误三种校验电路。二、内部结构二、内部结构发送缓冲器数据总线缓冲器调制解调控制电路DB读/写逻辑RESETCLKRDWRC/DCSDSRDTRCTSRTS发送控制电路接收缓冲器接收控制电路RxDTxDTxRDYTxETxCRxRDYRxCSYNDET状态缓冲器、接收数据缓冲器、发送数据/命令缓冲器1 1、发送器、发送器 发送器由发送器由发送缓冲器发送缓冲器和和发送控制电路发送控制电路两部分组成。两部分组成。采用采用异步方式异步方式,则由发送控制电路在其首尾加上,则由发送控制电路在其首尾
17、加上起始位和停止位,然后从起始位开始,经移位寄存器从数起始位和停止位,然后从起始位开始,经移位寄存器从数据输出线据输出线TXDTXD逐位串行输出。逐位串行输出。采用采用同步方式同步方式,则在发送数据之前,发送器将,则在发送数据之前,发送器将自动送出自动送出1 1个或个或2 2个同步字符,然后才逐位串行输出数据。个同步字符,然后才逐位串行输出数据。如果如果CPUCPU与与8251A8251A之间采用之间采用中断方式中断方式交换信息,交换信息,那么那么TxRDYTxRDY可作为向可作为向CPUCPU发出的中断请求信号。当发送器中发出的中断请求信号。当发送器中的的8 8位数据串行发送完毕时,由发送控
18、制电路向位数据串行发送完毕时,由发送控制电路向CPUCPU发出发出TxETxE有效信号,表示发送器中移位寄存器已空。有效信号,表示发送器中移位寄存器已空。2 2接收器接收器 接收器由接收器由接收缓冲器接收缓冲器和和接收控制电路接收控制电路两部分组成。两部分组成。接收移位寄存器从接收移位寄存器从RxDRxD引腿上接收串行数据转换成并行数引腿上接收串行数据转换成并行数据后存入接收缓冲器。据后存入接收缓冲器。异步方式:异步方式:在在RxDRxD线上检测低电平线上检测低电平,将检测到的低电平作,将检测到的低电平作为起始位,为起始位,8251A8251A开始进行采样,完成字符装配,并进行开始进行采样,完
19、成字符装配,并进行奇偶校验和去掉停止位,变成了并行数据后,送到数据输奇偶校验和去掉停止位,变成了并行数据后,送到数据输入寄存器,同时发出入寄存器,同时发出RxRDYRxRDY信号信号送送CPUCPU,表示已经收到一个,表示已经收到一个可用的数据。可用的数据。同步方式:同步方式:首先搜索同步字符。首先搜索同步字符。8251A8251A监测监测RxDRxD线,每当线,每当RxDRxD线上出现一个数据位时,接收下来并送入移位寄存器线上出现一个数据位时,接收下来并送入移位寄存器移位,与同步字符寄存器的内容进行比较,如果两者不相移位,与同步字符寄存器的内容进行比较,如果两者不相等,则接收下一位数据,并且
20、重复上述比较过程。当两个等,则接收下一位数据,并且重复上述比较过程。当两个寄存器的内容比较相等时,寄存器的内容比较相等时,8251A8251A的的SYNDETSYNDET升为高电平,升为高电平,表示同步字符已经找到,同步已经实现。表示同步字符已经找到,同步已经实现。采用采用双同步方式双同步方式,就要在测得输入移位寄存器的内容与第,就要在测得输入移位寄存器的内容与第一个同步字符寄存器的内容相同后,再继续检测此后输入一个同步字符寄存器的内容相同后,再继续检测此后输入移位寄存器的内容是否与第二个同步字符寄存器的内容相移位寄存器的内容是否与第二个同步字符寄存器的内容相同。如果相同,则认为同步已经实现。
21、同。如果相同,则认为同步已经实现。实现同步之后,接收器和发送器间就开始进行数据的同步实现同步之后,接收器和发送器间就开始进行数据的同步传输。这时,接收器利用时钟信号对传输。这时,接收器利用时钟信号对RxDRxD线进行采样,并线进行采样,并把收到的数据位送到移位寄存器中。在把收到的数据位送到移位寄存器中。在RxRDYRxRDY引脚上发出引脚上发出一个信号,表示收到了一个字符。一个信号,表示收到了一个字符。3 3数据总线缓冲器数据总线缓冲器数据总线缓冲器是数据总线缓冲器是CPUCPU与与8251A8251A之间的数据接口。包含之间的数据接口。包含3 3个个8 8位的缓冲寄存器:位的缓冲寄存器:两个
22、寄存器两个寄存器分别用来存放分别用来存放CPUCPU向向8251A8251A读读取的数据或状态信息。一个寄存器用来存放取的数据或状态信息。一个寄存器用来存放CPUCPU向向8251A8251A写写入的数据或控制。入的数据或控制。4 4读读/写控制电路写控制电路读读/写控制电路用来配合数据总线缓冲器的工作。功能如下:写控制电路用来配合数据总线缓冲器的工作。功能如下:(1)(1)接收写信号接收写信号,并将来自数据总线的数据和控制字写入,并将来自数据总线的数据和控制字写入8251A8251A;(2)(2)接收读信号接收读信号,并将数据或状态字从,并将数据或状态字从8251A8251A送往数据总线;送
23、往数据总线;(3)(3)接收控制接收控制/数据信号数据信号C/D*C/D*,高电平时为控制字或状态字;,高电平时为控制字或状态字;低电平时为数据。低电平时为数据。(4)(4)接收时钟信号接收时钟信号CLKCLK完成完成8251A8251A的内部定时;的内部定时;(5)(5)接收复位信号接收复位信号RESETRESET,使,使8251A8251A处于空闲状态。处于空闲状态。5 5调制解调控制电路调制解调控制电路调制解调控制电路用来简化调制解调控制电路用来简化8251A8251A和调制解调器的连接。和调制解调器的连接。三三8251A8251A的引脚功能的引脚功能1 1、8251A8251A和和CP
24、UCPU之间的连接信号之间的连接信号8251A8251A和和CPUCPU之间的连接信号可以分为四类:之间的连接信号可以分为四类:片选信号片选信号 CS*CS*:片选信号,它由:片选信号,它由CPUCPU的地址信号通过译码后得到。的地址信号通过译码后得到。数据信号数据信号D0-D7D0-D7:8 8位,三态,双向数据线,与系统的数据总线相连。位,三态,双向数据线,与系统的数据总线相连。传输传输CPUCPU对对8251A8251A的编程命令字和的编程命令字和8251A8251A送往送往CPUCPU的状态信息的状态信息及数据。及数据。读读/写控制信号写控制信号 RD*RD*:读信号,低电平时,:读信
25、号,低电平时,CPUCPU当前正在从当前正在从8251A8251A读取数据读取数据或者状态信息。或者状态信息。WR*WR*:写信号,低电乎时,:写信号,低电乎时,CPUCPU当前正在往当前正在往8251A8251A写入数据写入数据或者控制信息。或者控制信息。C/D*C/D*:控制:控制/数据信号,用来区分当前读数据信号,用来区分当前读/写的是数据还是写的是数据还是控制信息或状态信息。该信号也可看作是控制信息或状态信息。该信号也可看作是8251A8251A数据口数据口/控控制口的选择信号。制口的选择信号。P332P332表表10.1 8251A10.1 8251A的操作信号的操作信号收发联络信号
26、收发联络信号TxRDYTxRDY:发送器准备好信号,用来通知:发送器准备好信号,用来通知CPUCPU,8251A8251A已准备已准备好发送一个字符。好发送一个字符。TxEMPTYTxEMPTY:发送器空信号,:发送器空信号,TxEMPTYTxEMPTY为高电平时有效,用为高电平时有效,用来表示此时来表示此时8251A8251A发送器中并行到串行转换器空,说明一发送器中并行到串行转换器空,说明一个发送动作已完成。个发送动作已完成。RxRDYRxRDY:接收器准备好信号,用来表示当前:接收器准备好信号,用来表示当前8251A8251A已经从已经从外部设备或调制解调器接收到一个字符,等待外部设备或
27、调制解调器接收到一个字符,等待CPUCPU来取走。来取走。因此,在中断方式时,因此,在中断方式时,RxRDYRxRDY可用来作为中断请求信号;可用来作为中断请求信号;在查询方式时,在查询方式时,RxRDYRxRDY可用来作为查询信号。可用来作为查询信号。SYNDETSYNDET:同步检测信号,只用于同步方式。:同步检测信号,只用于同步方式。8251A8251A与外部设备之间的连接信号分为两类:与外部设备之间的连接信号分为两类:(1)(1)收发联络信号收发联络信号 DTR*DTR*:数据终端准备好信号,通知外部设备,:数据终端准备好信号,通知外部设备,CPUCPU当前已当前已经准备就绪。经准备就
28、绪。DSR*DSR*:数据设备准备好信号,表示当前外设已经准备好。:数据设备准备好信号,表示当前外设已经准备好。RTS*RTS*:请求发送信号,表示:请求发送信号,表示CPUCPU已经准备好发送。已经准备好发送。CTS*CTS*:允许发送信号,是对的响应,由外设送往:允许发送信号,是对的响应,由外设送往8251A8251A。实际使用时,这实际使用时,这4 4个信号中通常只有必须为低电平,个信号中通常只有必须为低电平,其它其它3 3个信号可以悬空。个信号可以悬空。(2)(2)数据信号数据信号 TxDTxD:发送器数据输出信号。当:发送器数据输出信号。当CPUCPU送往送往8251A8251A的并
29、行数据的并行数据被转变为串行数据后,通过被转变为串行数据后,通过TxDTxD送往外设。送往外设。RxDRxD:接收器数据输入信号。用来接收外设送来的串行数:接收器数据输入信号。用来接收外设送来的串行数据,数据进入据,数据进入8251A8251A后被转变为并行方式。后被转变为并行方式。四四8251A8251A的编程的编程编程的内容包括两大方面编程的内容包括两大方面:是由是由CPUCPU发出的控制字,即方式选择控制字和操作命令控发出的控制字,即方式选择控制字和操作命令控制字;制字;是由是由8251A8251A向向CPUCPU送出的状态字。送出的状态字。1 1方式选择控制字(模式字)方式选择控制字(
30、模式字)方式选择控制字的格式如图所示。方式选择控制字的格式如图所示。1方式选择控制字(设定8251的工作方式)2操作命令控制字(控制字)操作命令控制字的格式如下:自自动动搜搜索索同同步步字字符符使得端口TxD=0 8251 8251的方式字和命令控制字写入同一个端口,为了区别的方式字和命令控制字写入同一个端口,为了区别它们,在复位后写入的是方式控制字,此后写入的是命令控制字,它们,在复位后写入的是方式控制字,此后写入的是命令控制字,且在对芯片复位以前,写入的都是命令控制字。且在对芯片复位以前,写入的都是命令控制字。3、状态字(CPU读取8251的工作情况)【例1】若要查询8251A接收器是否准
31、备好,则可用下列程序段完成:MOV DX,0FFF2H ;状态口 L:IN AL,DX ;读状态口 AND AL,02H ;查D11?即接收器准备好了吗?JZ L ;未准备好,则等待 MOV DX,OFFF0H ;数据口 IN AL,DX ;已准备好则输入数据48251A的初始化 芯片复位以后,第一次用奇地址端口写入的值作为方式字进入方式寄存器。如果方式字中规定了8251A工作在同步模式,由CPU用奇地址端口写入的值将作为控制字送到控制寄存器,而用偶地址端口写入的值将作为数据送到数据输出缓冲寄存器。流程图如下:1异步模式下的初始化程序举例设8251A工作在异步模式,波特率系数(因子)为16,7
32、个数据位/字符,偶校验,2个停止位,发送、接收允许,设端口地址为00E2H和00E4H。完成初始化程序。【分析】根据题目要求,可以确定模式字为:11111010B即FAH而控制字为:00110111B 即37H则初始化程序如下:MOV AL,0FAH ;送模式字MOV DX,00E2HOUT DX,AL ;异步方式,7位/字符,;偶校验,2个停止位MOV AL,37H ;设置控制字,使发送、接收允许,;清出错标志,使RTS*、DTR*有效;OUT DX,AL 2同步模式下初始化程序举例设端口地址为52H,采用内同步方式,2个同步字符(设同步字符为16H),偶校验,7位数据位/字符。【分析】根据
33、题目要求,可以确定模式字为:00111000B 即38H而控制字为:10010111B 即97H。它使8251A对同步字符进行检索;同时使状态寄存器中的3个出错标志复位;此外,使8251A的发送器启动,接收器也启动;控制字还通知8251A,CPU当前已经准备好进行数据传输。具体程序段如下:MOV AL,38H ;设置模式字,同步模式,用2个同步字符,OUT 52H,AL ;7个数据位,偶校验MOV AL,16H OUT 52H,AL ;送同步字符16HOUT 52H,AL MOV AL,97H ;设置控制字,使发送器和接收器启动OUT 52H,AL3、两台微型计算机通过8251A相互通信的举例
34、 通过8251A实现相距较远的两台微型计算机相互通信的系统连接简化框图如下。这时,利用两片8251A通过标准串行接口RS-232C实现两台8086微机之问的串行通信,可采用异步或同步工作方式。【分析】设系统采用查询方式控制传输过程,异步传送。初始化程序由两部分组成:是将一方定义为发送器。发送端CPU每查询到TXRDY有效,则向8251A并行输出一个字节数据;是将对方定义为接收器。接收端CPU每查询到RXRDY有效,则从8251A输入一个字节数据,一直进行到全部数据传送完毕为止。发送端初始化程序与发送控制程序如下所示:STT:MOV DX,8251A控制端口 MOV AL,7FH OUT DX,
35、AL ;将825lA定义为异步方式,8位数据,1位停止位 MOV AL,11H ;偶校验,取波特率系数为64,允许发送。OUT DX,AL MOV DI,发送数据块首地址 ;设置地址指针 MOV CX,发送数据块字节数 ;设置计数器初值NEXT:MOV DX,8251A控制端口 IN AL,DX AND AL,01H ;查询TXRDY有效否?JZ NEXT ;无效则等待 MOV DX,8251A数据端口 MOV AL,DI ;向8251A输出一个字节数据。OUT DX,AL INC DI ;修改地址指针 LOOP NEXT ;未传输完,则继续下一个 HLT接收端初始化程序和接收控制程序如下所示
36、:SRR:MOV DX,8251A控制端口 MOV AL,7FH OUT DX,AL ;初始化8251A,异步方式,8位数据 MOV AL,14H ;1位停止位,偶校验,波特率系数64,允许接收。OUT DX,AL MOV DI,接收数据块首地址 ;设置地址指针 MOV CX,接收数据块字节数;设置计数器初值COMT:MOV DX,8251A控制端口 IN AL,DX ROR AL,1 ;查询RXRDY有效否?ROR AL,1 JNC COMT ;无效则等待ROR AL,1 ROR AL,1 ;有效时,进一步查询是否有奇偶校验错。JC ERR ;有错时,转出错处理MOV DX,8251A数据端口 IN AL,DX ;无错时,输入一个字节到接收数据块。MOV DI,AL INC DI ;修改地址指针LOOP COMT ;未传输完,则继续下一个HLTERR:CALL ERR-OUT