《第九章-可编程串行异步通信接口芯片8250要点课件.ppt》由会员分享,可在线阅读,更多相关《第九章-可编程串行异步通信接口芯片8250要点课件.ppt(46页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第九章第九章 可编程串行异步通信接口芯可编程串行异步通信接口芯片片82509.19.1串行通讯概述串行通讯概述9.2 82509.2 8250简介简介9.3 82509.3 8250应用举例应用举例一、串并行通讯一、串并行通讯9.1串行通讯概述 串串行行通通信信是是指指使使用用一一条条数数据据线线,将将数数据据一一位位一一位位地地依依次次传传输输,每每一一位位数数据据占占据据一一个个固固定定的的时时间间长长度度。其其只只需需要要少少数数几几条条线线就就可可以以在在系系统统间间交交换换信信息息,特特别别使使用用于于计计算算机机与与计计算算机机、计计算算机机与外设之间的远距离通信。与外设之间的远距
2、离通信。其特点是:其特点是:v节省传输线,这是显而易见的。尤其是在远程通信时,此特点节省传输线,这是显而易见的。尤其是在远程通信时,此特点尤为重要。这也是串行通信的主要优点。尤为重要。这也是串行通信的主要优点。v数据传送效率低。与并行通信比,这也这是显而易见的。这也数据传送效率低。与并行通信比,这也这是显而易见的。这也是串行通信的主要缺点。是串行通信的主要缺点。如果一组数据的各数据位在多条线上同时被传输,这种传输方如果一组数据的各数据位在多条线上同时被传输,这种传输方式称为并行通信。并行式称为并行通信。并行通信通信时数据的各个位同时传送,可以字时数据的各个位同时传送,可以字或或字节字节为单位并
3、行进行。为单位并行进行。其特点是:其特点是:v各数据位同时传输,传输速度快、效率高,多用在实时、快速各数据位同时传输,传输速度快、效率高,多用在实时、快速的场合。的场合。v并行传输的数据宽度可以是并行传输的数据宽度可以是1-1281-128位,甚至更宽,但是有多少位,甚至更宽,但是有多少数据位就需要多少根数据线,因此传输的成本较高。数据位就需要多少根数据线,因此传输的成本较高。v并行数据传输只适用于近距离的通信,通常传输距离小于并行数据传输只适用于近距离的通信,通常传输距离小于3030米。米。串行通信串行通信优点优点:便于长距离传送便于长距离传送 缺点缺点:传送速度较慢传送速度较慢计算机与外界
4、信息交换称为计算机与外界信息交换称为通信通信。通信的通信的基本方式基本方式可分为并行通信和串行通信:可分为并行通信和串行通信:并行通信并行通信是数据的各位同时发送或同时接收;是数据的各位同时发送或同时接收;串行通信串行通信是数据的各位依次逐位发送或接收。是数据的各位依次逐位发送或接收。并行通信并行通信优点优点:传送速度快传送速度快 缺点缺点:不便长距离传送不便长距离传送异异步步通通信信对对硬硬件件要要求求较较低低,实实现现起起来来比比较较简简单单、灵灵活活,适适用用于于数数据据的的随随机机发发送送/接接收收,但但因因每每个个字字节节都都要要建建立立一一次次同同步步,即即每每个个字字符符都都要要
5、额额外外附附加加两两位位,所所以以工工作作速速度度较较低低,在在单单片片机机中主要采用异步通信方式。中主要采用异步通信方式。二、二、异步通信和同步通信异步通信和同步通信串行通信按同步方式可分为异步通信和同步通信。串行通信按同步方式可分为异步通信和同步通信。1、异步通信异步通信异步通信依靠起始位、停止位保持通信同步。异步通信依靠起始位、停止位保持通信同步。异步通信数据传送按帧传输,一帧数据包含异步通信数据传送按帧传输,一帧数据包含起始位、数据位、校验位和停止位。起始位、数据位、校验位和停止位。n n帧格式帧格式帧格式帧格式,一个字符由四部分组成:起始位、数据位、奇偶,一个字符由四部分组成:起始位
6、、数据位、奇偶,一个字符由四部分组成:起始位、数据位、奇偶,一个字符由四部分组成:起始位、数据位、奇偶校验位和停止位。校验位和停止位。校验位和停止位。校验位和停止位。停止位(停止位(停止位(停止位(1 1)停止位用来表征字符的结束。停止位可以是停止位用来表征字符的结束。停止位可以是停止位用来表征字符的结束。停止位可以是停止位用来表征字符的结束。停止位可以是1 1位、位、位、位、1.51.5位或位或位或位或2 2位。接收端收到停止位后,知道上一字符已传送完毕位。接收端收到停止位后,知道上一字符已传送完毕位。接收端收到停止位后,知道上一字符已传送完毕位。接收端收到停止位后,知道上一字符已传送完毕
7、同同步步通通信信传传输输速速度度较较快快,但但要要求求有有准准确确的的时时钟钟来来实实现现收收发发双双方方的的严严格格同同步步,对对硬硬件件要要求求较高,适用于成批数据传送。较高,适用于成批数据传送。2、同步通信同步通信同步通信依靠同步字符保持通信同步。同步通信依靠同步字符保持通信同步。同步通信是由同步通信是由1 12 2个同步字符和多字节数个同步字符和多字节数据位组成,同步字符作为起始位以触发同步时据位组成,同步字符作为起始位以触发同步时钟开始发送或接收数据;多字节数据之间不允钟开始发送或接收数据;多字节数据之间不允许有空隙,每位占用的时间相等;空闲位需发许有空隙,每位占用的时间相等;空闲位
8、需发送同步字符。送同步字符。波特率的倒数即为每位传输所需的时间。波特率的倒数即为每位传输所需的时间。相相互互通通信信的的甲甲乙乙双双方方必必须须具具有有相相同同的的波波特特率,否则无法成功地完成串行数据通信。率,否则无法成功地完成串行数据通信。三、三、串行通信波特率串行通信波特率波特率波特率bps(bitbps(bit per second)per second)定义定义:每秒传输数据的位数,即:每秒传输数据的位数,即:1波特波特=1位位/秒(秒(1bps1bps)四四、串行通信的制式串行通信的制式 串串行行通通信信按按照照数数据据传传送送方方向向可可分分为为三三种种制制式:式:单工制式单工制
9、式是指甲乙双方通信时是指甲乙双方通信时只能单向传只能单向传送数据送数据,发送方和接收方固定。,发送方和接收方固定。1 1、单工制式(单工制式(SimplexSimplex)半半双双工工制制式式是是指指通通信信双双方方都都具具有有发发送送器器和和接接收收器器,既既可可发发送送也也可可接接收收,但但不不能能同同时时接接收收和和发发送送,发发送送时时不不能能接接收收,接接收收时时不不能能发送发送。2、半双工制式(半双工制式(Half DuplexHalf Duplex)全全双双工工制制式式是是指指通通信信双双方方均均设设有有发发送送器器和和接接收收器器,并并且且信信道道划划分分为为发发送送信信道道和
10、和接接收收信信道道,因因此此全全双双工工制制式式可可实实现现甲甲乙乙双双方方同同时时发发送送和和接接收数据收数据,发送时能接收,接收时也能发送。,发送时能接收,接收时也能发送。3 3、全双工制式(全双工制式(Full DuplexFull Duplex)六、调制解调器六、调制解调器 计算机内的信息是由计算机内的信息是由“0”0”和和“1”1”组成数字信号,而在电话组成数字信号,而在电话线上传递的却只能是模拟电信号。于是,当两台计算机要通线上传递的却只能是模拟电信号。于是,当两台计算机要通过电话线进行数据传输时,就需要一个设备负责数模的转换。过电话线进行数据传输时,就需要一个设备负责数模的转换。
11、这个这个数模转换器数模转换器就是就是ModemModem。计算机在发送数据时,先由。计算机在发送数据时,先由ModemModem把数字信号转换为相应的模拟信号,这个过程称为把数字信号转换为相应的模拟信号,这个过程称为“调制调制”。经过调制的信号通过电话。经过调制的信号通过电话载波载波传送到另一台计算机传送到另一台计算机之前,也要经由接收方的之前,也要经由接收方的ModemModem负责把模拟信号还原为计算负责把模拟信号还原为计算机能识别的数字信号,这个过程称为机能识别的数字信号,这个过程称为“解调解调”。正是通过间。正是通过间这样一个这样一个“调制调制”与与“解调解调”的数模转换过程,从而实现
12、了的数模转换过程,从而实现了两台计算机远程通讯。两台计算机远程通讯。9.2 82509.2 8250简介简介一、一、PCPC中的中的UARTUART UART:UniversalUART:Universal Asynchronous Asynchronous Receiver/TransmitterReceiver/Transmitter,通用异步接收,通用异步接收/发送装置,发送装置,UARTUART是一个并行输入成为串行输出的芯片,通常集是一个并行输入成为串行输出的芯片,通常集成在主板上。成在主板上。1.INS8250 1.INS8250 2.PC16450/PC16550 2.PC164
13、50/PC16550 带带1616字节的发送缓冲器和字节的发送缓冲器和1414字节的接收缓冲器字节的接收缓冲器 FIFOFIFO我的电脑中串口配置二、二、UARTUART的简单应用的简单应用1.1.连线:连线:RS232CRS232C接口标准,接口标准,3 3线或线或7 7线连接方式线连接方式 2.2.编程:编程:1 1)自己编写初始化及接收发送程序)自己编写初始化及接收发送程序 2 2)调用)调用BIOSBIOS编程:编程:INT14H 3 3)调用)调用DOSDOS编程:编程:INT21H,调用号03和04 4 4)DOSDOS下按照文件编程,文件名就是下按照文件编程,文件名就是COM1:
14、COM1:或或COM2:COM2:5 5)WINDOWSWINDOWS下下VBVB编程,用编程,用MSCOMMMSCOMM控件编程控件编程 6 6)WINDOWSWINDOWS下下VCVC编程,用类、控件,或者按文件编程。编程,用类、控件,或者按文件编程。7 7)用开发包编程:有很多,可以从网上下载。)用开发包编程:有很多,可以从网上下载。三、三、82508250的管脚与结构的管脚与结构 1.1.管脚管脚管脚信号说明管脚信号说明v数据总线缓冲器数据总线缓冲器:D D0 0D D7 7:双向数据:双向数据线线v选择与控制逻辑选择与控制逻辑:vCS0CS0、CS1CS1、CS2-CS2-:输入片选
15、信号:输入片选信号vA0A0、A1A1、A2A2:82508250内部寄存器选择内部寄存器选择信号信号vMRMR:主复位输入信号,高电平有效:主复位输入信号,高电平有效vADS-ADS-:地址选通信号:地址选通信号=AEN=AENvDISTRDISTR、DISTR-DISTR-:数据输入选通信号:数据输入选通信号vDOSTRDOSTR、DOSTR-DOSTR-:数据输出选通信号:数据输出选通信号vDDISDDIS:驱动器禁止信号,在:驱动器禁止信号,在CPUCPU从从82508250读取数据时为低电平,其他时读取数据时为低电平,其他时间为高电平禁止外部收发器对系统间为高电平禁止外部收发器对系统
16、总线的驱动总线的驱动 vCSOUTCSOUT:片选输出信号:片选输出信号vXTAL1XTAL1、XTAL2XTAL2:外部时钟端:外部时钟端v中断控制逻辑:中断控制逻辑:vINTRINTR:中断请求输出信号:中断请求输出信号vMODEMMODEM控制逻辑:控制逻辑:vCTS-CTS-:清除发送信号:清除发送信号vRTS-RTS-:请求发送信号:请求发送信号vDTR-DTR-:数据终端准备好信号:数据终端准备好信号vDSR-DSR-:数据装置准备好信号:数据装置准备好信号vRLSD-RLSD-:接收线路信号检测信号:接收线路信号检测信号vRI-RI-:振铃指示信号:振铃指示信号vOUT1-OUT
17、1-:由用户编程指定的输出端:由用户编程指定的输出端vOUT2-OUT2-:与:与OUT1OUT1一样,可以由用户一样,可以由用户编程指定(编程指定(PCPC用)用)v发送移位寄存器发送移位寄存器vSOUTSOUT:串行输出信号:串行输出信号v接收移位寄存器接收移位寄存器vSINSIN:串行输入信号:串行输入信号vRCLKRCLK:接收时钟信号:接收时钟信号v波特率发生器波特率发生器vBAUDOUTBAUDOUT:波特率输出:波特率输出2.内部结构内部结构数据接收寄存器数据发送寄存器接收移位寄存器发送移位寄存器线路控制寄存器线路状态寄存器除数寄存器高位除数寄存器低位波特率发生器MODE控制寄存
18、器MODE状态寄存器中断允许寄存器中断识别寄存器 控制逻辑 控制逻辑数据总线缓冲器读写控制逻辑内部数据总线D0 D7CS0CS1CS2A2A1A0ADSDISTRDISTRDOSTRDOSTRDDISMROOOSOUTSINXTAL2XTAL1BAUD OUTRTSCTSDTRDSRRLSDRIOUT1OUT2INTRPTRCLK发送器控制逻辑接收器控制逻辑3.连接连接PC/XT异步通信适配器电路异步通信适配器电路 四、寄存器与四、寄存器与BPSBPS1.1.地址分配及其复用地址分配及其复用 3 3根地址信号线:根地址信号线:A2 A1 A0A2 A1 A0 8 8个地址,个地址,7 7个可用
19、,个可用,1010个可编程物理端口,复个可编程物理端口,复用。用。2.102.10个寄存器及其每位的作用个寄存器及其每位的作用(1)通信控制寄存器该控制字主要决定在串行通信时所使用的数据格式,例如数据位数、奇偶校验及停止位的多少。同时,特别注意该控制字的D7。当我们需要读写除数锁存器时,必须先将该寄存器的D7置1。而在读写其他寄存器时,又要使其为0。(2)通信状态寄存器通信状态寄存器的作用在于通过其状态说明在通信过程中8250接收和发送数据的情况。(3)发送数据寄存器这是一个8位的寄存器,发送数据时,处理器将数据写入寄存器。只要发送移位寄存器空,该发送数据寄存器的数据便会由8250硬件自动并行
20、送到移位寄存器中,以便串行移出。(4)接收数据寄存器是一个8位的寄存器,当8250接收到一个完整的字符时,会将该字符由接收移位寄存器传送到接收数据寄存器。处理器可直接由此寄存器读取数据。(5)除数锁存器(波特率因子寄存器)该锁存器为16位,外部时钟被除数锁存器中的除数相除,可以获得所得的波特率。如果外部时钟频率f已知,而8250所要求的波特率F也已规定。那么,就可以由下式求出除数锁存器应锁存的除数:波特率因子=1.8432Mhz/(1200*16)=96例如,当输入时钟频率为1.8432MHZ时,若要求使用1200波特来传送数据,这时可算出锁存于除数锁存器的除数应为96。在8250工作前首先要
21、将除数写到除数锁存器中,以便产生所希望的波特率。为了写入除数,首先在通信控制寄存器中将D7置为1,而后就可以将16位除数先低8位,后高8位写入除数锁存器中。(6)中断允许寄存器中断允许寄存器只用D0D3这四位,每位的0或1编码分别允许或禁止8250的四种中断源提出中断。在中断允许字中,接收线路状态包括越限错、奇偶错、结构错、间断等中断源引起的中断。而MODEM状态引起的中断见下面对MODEM状态寄存器的解释。(7)中断标志寄存器中断标志寄存器为8位,高五位为0,只用低三位来实现8250的中断标志。8250有四个中断源,在8250内不按排优先级的顺序为:最高优先极为接收器线路状态中断,包括越限、
22、奇偶错、结构错、间断等。读通信状态寄存器可使此中断复位。下一优先级是接收寄存器满中断。读接收寄存器可复位此中断。再下一优先级为发送数据寄存器空中断。写发送数据寄存器克使这一中断复位。最高优先级为MODEM状态中断,包括发送结束、数传机准备好、振铃指示、接收线路信号检测等为MODEM状态中断源。读MODEM状态寄存器可复位该中断。(8)MODEM控制寄存器这是一个8位的寄存器,用以控制MODEM或其他数字设备。(9)MODEM状态寄存器MODEM状态寄存器提供了与8250相连接的MODEM或其他外设加到8250上的控制线的信号状态以及这些控制线的状态变化。当由MODEM来的控制线变化时,MODE
23、M状态寄存器的低4位被相应的置1。再读此寄存器时,使这4位同时清零。3.3.波特率因子波特率因子 波特率因子波特率因子(BRDBRD)是)是1616位数,它与位数,它与82508250的的数据传输速率(波特率)有关。当使用数据传输速率(波特率)有关。当使用82508250的的内部时钟频率为内部时钟频率为1.8432MHz1.8432MHz时,则波特率因子时,则波特率因子BRDBRD与波特率与波特率BaudBaud之间的关系如下式所示:之间的关系如下式所示:BRD=BRD=时钟频率时钟频率/(16Baud16Baud)。)。例如,若要计算波特率为例如,若要计算波特率为1200b/s1200b/s
24、的波特率的波特率除数,则有:除数,则有:BDR=1843200/BDR=1843200/(161200161200)=0060H=96=0060H=96。端口地址端口地址初始化顺序1、通信线路控制器、通信线路控制器 (011B PC机地址 3FBH)D0D1D2D3D4D5D6D700:5位01:6位10:7位11:8位字符长停止位 0:1个停止位 1:1.5个停止位(字符长5位)2个停止位(字符长6 8位)0:无校验位1:有校验位校验类型 0:奇校验,1:偶校验固定奇偶位,既当D4,D3=11时(偶校验),D5=0 当D4,D3=01时(奇校验),D5=10表示正常收发D7=0 寻址TBR、
25、RBR IERD7=1寻址DLL、DHL选择异步通信格式选择异步通信格式D0D1D2D3D4D5D6D72、通信状态寄存器、通信状态寄存器 LSR(101 3FDH)DROEPEFEBITHRETSRE01:接收数据就绪1:溢出错1:奇偶较验错1:幀错误1:正在传输中止符1:发送缓冲器空发送移位寄存器空3、分频次数锁存器、分频次数锁存器DLH和和DLL(3F9H,3F8H)1.8432MHZ基准时钟,进行1 65535次分频后由BAUDOUT引脚输出的频率为 16b/s的时钟。8250初始化时,必须将16位的分频次数分两次写入高低两个8位 分频次数锁存器DLH和DLL分频次数 =1843200
26、HZ/16波特率(基准时钟)D0D1D2D3D4D5D6D7DTRRTSOUT1OUT2LOOP0004、调制解调控制寄存器、调制解调控制寄存器MCR(100B 3FCH)其中D0 D3位对应8250的四个引脚,当该位为1时,相应的引脚输出有效的低电平。当D4=1时,8250工作循环回送状态。(此时8250发送的数据被自身接收。用于自检)D0D1D2D3D4D5D6D7CTSDSRRIRLSDCTSDSRRIRLSD5、调制解调状态寄存器、调制解调状态寄存器MSR(110B 3FEH)MSR检测8250芯片4个输入引脚状态。D0 D3置1表示允许四个引脚电平发生变化。D4 D7表示四个引脚的电
27、平,1:低电平(有效电平),0:高电平。D0D1D2D3D4D5D6D7000006、中断识别寄存器、中断识别寄存器 IIR(010B 3FAH)1:无中断请求0:有中断请求中断源00:MODEM状态发生变化中断01:发送寄存器空10:接收数据就绪11:接收数据错优先级最高优先级最低D0D1D2D3D4D5D6D7EDSS10007、中断允许寄存器、中断允许寄存器 IER (001 3F9H)ERBF1ETBE1ELS10接收数据准备好中断发送寄存器空中断接收数据错中断MODE状态中断D0 D3位为1时,相应的位允许相应的中断五、8250工作过程 1.数据发送过程vCPU将要发送的数据以字符为
28、单位写到8250的THR中()。当TSR中的数据全部移出变空时,存于THR中待发送的数据将会自动发送并行送到TSR(8250初始化后,TSR为空状态,所以初始化后传送到THR的第一个字符总是立即送到TSRE。)。TSR在发送时钟的激励下,按照事先和接收方约定的字符传送式(参见图7-35),加上起始位,奇偶校验位和停止位,再以约定的波特率(由波特率控制部分产生)按照从底到高的顺序一位一位的由SOUT端发送出去。v一旦THR的内容送到TSR,就会在LSR中建立数据发送保持寄存器空的状态位;而且也可以用此状态位来触发产生中断。因此,查询状态位或者利用该状态触发的中断即可实现数据的连续发送。2.数据接
29、收过程v由通信对方来的数据在接收时钟RCLK的作用下,通过SIN端逐位进入RSR。RSR根据初始化时定义的数据位数确定接收到了一个完整的数据后会立即将数据自动并行传送到RBR。RBR收到RSR的数据后,就立即在状态寄存器中建立接收到数据准备好的状态,而且也可以用此状态位来触发中断。因此,查询状态位或者利用该状态触发的中断即可实现数据的连续接收。v由于串行异步通信的速率低,无论是用查询方式还是中断方式来实现异步通信均不很困难。六、六、8250初始化编程初始化编程 1.1.写写BPSBPS 8250初始化时,通常首先使通信控制字的初始化时,通常首先使通信控制字的D7=1,即使即使DLAB为为1.在
30、此条件下,将除数低在此条件下,将除数低8位和高位和高8位分别写入位分别写入8250内部的除数寄存器。内部的除数寄存器。1.MOV DX,3FBH;LCR的地址的地址2.MOV AL,80H;开始;开始3.OUT DX,AL;4.MOV DX,3F8H;使使LCR的的D7=15.MOV AL,60H;DLL的地址的地址6.OUT DX,AL;写除数低;写除数低8位位7.INC DX;DLH的地址的地址8.MOV AL,09.OUT DX,AL;写除数高;写除数高8位位2.2.写通讯线控制字写通讯线控制字vMOV DX,3FBH;LCR的地址的地址vMOV AL,0AH;1 位停止位,位停止位,7
31、位数据位,奇校验位数据位,奇校验vOUT DX,AL;初始化通信控制寄存器;初始化通信控制寄存器3.3.写写MODEMMODEM控制字控制字vMOV DX,3FCH;MCR的地址的地址vMOV AL,03H;使;使DTR和和RTS有效有效/3/13/B/1BvOUT DX,AL;初始化初始化modem控制器控制器4.4.写中断允许字(中断方式)写中断允许字(中断方式)vMOV DX,3F9H;IER的地址的地址vMOV AL,0;禁止所有中断;禁止所有中断vOUT DX,AL;写中断允许寄存器写中断允许寄存器1.查询方式v假定要发送的字节数放在BX中,要发送的数据顺序存放在以DATA为首地址的
32、内存区中,则发送数据的程序段如下所示。SENDPRG:vMOV DX,3FDHvLEA SI,DATAWAITTHR:IN AL,DXvTEST AL,20H;检查检查THR是否空是否空vJZ WAITTHRvPUSH DXvMOV DX,3F8HvLODSBvOUT DX,ALvPOP DXvDEC BXvJNZ WAITTHRv9.3 82509.3 8250应用举例应用举例SENDPRG:vMOV DX,3FDHvLEA SI,DATAWAITTHR:IN AL,DXvTEST AL,20H ;检查检查THR是否空是否空vJZ WAITTHRvPUSH DXvMOV DX,3F8HvLO
33、DSBvOUT DX,ALvPOP DXvDEC BXvDEC BXvJNZ WAITTHRv查询方式实现数据的接收。查询方式实现数据的接收。MOV DX,3F8HIN AL,DX;接收一个字节;接收一个字节RECVPRG:MOV DX,3FDHWAITRBR:IN AL,DXvTEST AL,1EH;检查是否有任何错误产生检查是否有任何错误产生vJNZ ERRORvTEST AL,01H;检查数据准备好否;检查数据准备好否vJZ WAITRBRvMOV DX,3F8HvIN AL,DX;接收一个字节;接收一个字节vAND AL,7FH;只保留低;只保留低7位位vERROR:MOV DX,3F
34、8HIN AL,DX;接收一个字节;接收一个字节2.中断方式以查询方式发送数据,以中断方式接收数据,以查询方式发送数据,以中断方式接收数据,vINISIR:MOV DX,3FBHvMOV AL,80H vOUT DX,AL;置;置DLAB=1vMOV DX,3F8HvMOV AL,0CHvOUT DX,ALvMOV DX,3F9HvMOV AL,0;置除数为;置除数为000CH,规定波特,规定波特率为率为9600波特波特vOUT DX,ALvMOV DX,3FBHvMOV AL,0AH;1 位停止位,位停止位,7位数据位,奇校验位数据位,奇校验vOUT DX,AL;初始化通信控制寄存器;初始化
35、通信控制寄存器vMOV DX,3FCHvMOV AL,0BH;使;使OUT2,DTR和和RTS 有效有效vOUT DX,AL;初始化;初始化MODEM 寄存器寄存器vMOV DX,3F9HvMOV AL,01H;允许接收数据寄存器满产生中断;允许接收数据寄存器满产生中断vOUT DX,AL;初始化中断允许寄存器;初始化中断允许寄存器vSTI;CPU 开中断开中断v中断服务程序中断服务程序RECVE:vPUSH AXvPUSH BXvPUSH DXvPUSH DSvMOV DX,3FDHvIN AL,DXvMOV AH,AL;保存接收状态;保存接收状态vMOV DX,3F8HvIN AL,DX;读入接收到的数据;读入接收到的数据vAND AL,7FHvTEST AH,1EH;检查有无错误产生;检查有无错误产生vJZ SAVEDATAvMOV AL,?;出错的数据用问号替代;出错的数据用问号替代SAVEDATA:vMOV DX,SEG BUFFERvMOV DS,DXvMOV BX,OFFSET BUFFERvMOV BX,ALv;MOV DX,20H;中断控制器端口地址;中断控制器端口地址vMOV AL,20H;将;将EOI命令发给中断控制器命令发给中断控制器8259vOUT 20H,ALvPOP DSvPOP DXvPOP BXvPOP AXvSTIvIRET