《微型计算机串行接口技术.ppt》由会员分享,可在线阅读,更多相关《微型计算机串行接口技术.ppt(61页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第1页第第12章章 微型计算机串行接口技术微型计算机串行接口技术l12.112.1数据通信的基础知识数据通信的基础知识l12.212.2可编程串行异步通信接口可编程串行异步通信接口82508250第2页12.1 数据通信的基础知识数据通信的基础知识 l12.1.1并行通信与串行通信并行通信与串行通信l12.1.2数据通信方式数据通信方式l12.1.3异步通信与同步通信异步通信与同步通信l12.1.4串行异步通信接口标准串行异步通信接口标准EIA RS-232C第3页12.1.1 并行通信与串行通信并行通信与串行通信图图12.1 并行接口的连接并行接口的连接图图12.2 串行接口的连接串行接口的
2、连接 第4页12.1.2 数据通信方式数据通信方式图图12.3 单工通信单工通信 图图12.4 半双工通信半双工通信图图12.5 全双工通信全双工通信第5页12.1.3 异步通信与同步通信异步通信与同步通信图图12.6 异步通信的字符格式异步通信的字符格式 异步通信的一个字符通常由起始位,数据位,奇偶校异步通信的一个字符通常由起始位,数据位,奇偶校验位,停止位,空闲位组成。验位,停止位,空闲位组成。第6页12.1.3 异步通信与同步通信异步通信与同步通信图图12.7 异步通信字符传输位图(接收时钟频率为异步通信字符传输位图(接收时钟频率为波特率波特率的的16倍)倍)第7页12.1.4串行异步通
3、信接口标准串行异步通信接口标准EIA RS-232C图图12.8 DTE通过通过DCE与通信传输线路相连与通信传输线路相连第8页12.1.4串行异步通信接口标准串行异步通信接口标准EIA RS-232C图图12.9 RS-232连接器(连接器(25芯和芯和9芯)芯)第9页DSR数据装置就绪(数据装置就绪(Data Set Ready):表明):表明DCE状态。状态。DTR数据终端就绪(数据终端就绪(Data Terminal Ready):表明表明DTE状态。状态。RTS请求发送(请求发送(Request to Send):当):当DTE端要发送数据时,使该信号端要发送数据时,使该信号有效,向
4、有效,向DCE请求发送。请求发送。CTS允许发送(允许发送(Clear to Send):表示):表示DCE准备好接收准备好接收DTE发来的数据,发来的数据,是对请求发送信号是对请求发送信号RTS的响应信号。的响应信号。DCD数据载波检测(数据载波检测(Data Carrier Detect):当):当DCE检测到载波信号时,检测到载波信号时,使使DCD信号有效,通知信号有效,通知DTE端准备接收。端准备接收。RI振铃指示(振铃指示(Ring Indicator):当):当DCE收到振铃信号时,该信号有效,收到振铃信号时,该信号有效,通知通知DTE端已被呼叫。端已被呼叫。TXD发送数据(发送数
5、据(Transmit Data):):DTE通过通过TXD终端将串行数据发送到终端将串行数据发送到DCE。RXD接收数据(接收数据(Received Data):):DTE通过通过RXD终端接收从终端接收从DCE发来的发来的串行数据。串行数据。GND地线:信号地。地线:信号地。第10页12.1.4串行异步通信接口标准串行异步通信接口标准EIA RS-232C图图12.10 RS-232电平信号电平信号第11页12.2 可编程串行异步通信接口可编程串行异步通信接口8250 8250是一种可编程串行异步通信接口芯片。是一种可编程串行异步通信接口芯片。1.8250芯片引脚定义与功能芯片引脚定义与功能
6、 2.8250芯片的内部结构和寻址方式芯片的内部结构和寻址方式 3.8250内部控制状态寄存器的功能内部控制状态寄存器的功能 4.8250通信编程通信编程 5.8250应用举例应用举例 第12页8250的主要性能的主要性能 8250芯片是一种通用的串行异步通信接口芯片,是沟通微机和串行芯片是一种通用的串行异步通信接口芯片,是沟通微机和串行外设之间的桥梁。它的基本性能如下:外设之间的桥梁。它的基本性能如下:1.8250是异步接收和发送控制器,发送时自动在每帧数据中插入起始是异步接收和发送控制器,发送时自动在每帧数据中插入起始位(位(1位)、停止位(位)、停止位(1、1.5或或2位)和奇偶校验位,
7、字符格式可以编位)和奇偶校验位,字符格式可以编程,接收时自动删除这些附加位。程,接收时自动删除这些附加位。2.最高波特率为最高波特率为9600b/s,波特率可编程设置。,波特率可编程设置。3.具有独立的中断优先级控制和自测试功能,并能提供具有独立的中断优先级控制和自测试功能,并能提供MODEM的全部的全部状态。状态。4.具有错误检测的功能。具有错误检测的功能。第13页1.82501.8250芯片引脚定义与功能芯片引脚定义与功能 82508250是一个是一个4040脚封装的双列直插式芯片。脚封装的双列直插式芯片。其引脚可分为两类:其引脚可分为两类:与与CPUCPU系统总线相连的信号线;系统总线相
8、连的信号线;与通信设备相连的信号线。与通信设备相连的信号线。第14页与与CPUCPU系统总线相连的信号线系统总线相连的信号线 1)1)双向数据线:双向数据线:D7D7D0D0:8 8位数据线。位数据线。2)2)地址控制信号:地址控制信号:CS0CS0、CS1CS1、CS2#:CS2#:片选信号、输入。片选信号、输入。必必须同时有效须同时有效。A2A2、A1A1、A0A0:地址信号、输入。选择地址信号、输入。选择内部寄存器。内部寄存器。ADS#ADS#:地址选通信号、输入。地址选通信号、输入。ADS#=0 ADS#=0 时锁存片选信号和地址信号。时锁存片选信号和地址信号。如果不锁存,可将如果不锁
9、存,可将ADS#ADS#直接接地。直接接地。CSOUTCSOUT:片选输出,高电平有效。片选输出,高电平有效。82508250芯片被选中时,输出高电平。此信号通常芯片被选中时,输出高电平。此信号通常不用而悬空。不用而悬空。第15页与与CPUCPU系统总线相连的信号线系统总线相连的信号线 3)3)读读/写控制信号写控制信号 DISTRDISTR与与DISTR#DISTR#:数据输入选通信号、输入。数据输入选通信号、输入。若若DISTR=1DISTR=1或或DISTR#=0DISTR#=0,CPUCPU就会从被选择的就会从被选择的内部寄存器中读出数据;内部寄存器中读出数据;若选择若选择DISTR#
10、DISTR#接接CPUCPU的的IORC#IORC#,则应将,则应将DISTRDISTR接接地使其变为无效。地使其变为无效。DOSTRDOSTR与与DOSTR#DOSTR#:数据输出选通信号、输入。数据输出选通信号、输入。若若DOSTR=1DOSTR=1或或DOSTR#=0DOSTR#=0,CPUCPU就会将数据写入就会将数据写入从被选择的内部寄存器中。从被选择的内部寄存器中。若选择若选择DOSTR#DOSTR#接接CPUCPU的的IOWC#IOWC#,则应将,则应将DOSTRDOSTR接接地使其变为无效。地使其变为无效。DDISDDIS:驱动器禁止、输出。驱动器禁止、输出。该输出信号在该输出
11、信号在CPUCPU读读82508250时为低电平,非读时时为低电平,非读时为高电平,可用此信号来控制为高电平,可用此信号来控制82508250与系统总线间与系统总线间的数据总线驱动器。的数据总线驱动器。第16页与与CPUCPU系统总线相连的信号线系统总线相连的信号线 4)4)中断控制和复位控制信号:中断控制和复位控制信号:INTRPTINTRPT:中断请求、输出。高电平申请中断请求、输出。高电平申请中断。中断。MRMR:复位信号、输入。高电平有效。一复位信号、输入。高电平有效。一般接系统复位线般接系统复位线RESETRESET。第17页与与CPUCPU系统总线相连的信号线系统总线相连的信号线5
12、)5)时钟与传输速率控制信号:时钟与传输速率控制信号:XTAL1XTAL1与与XTAL2XTAL2:时钟信号输入和输出时钟信号输入和输出引脚。引脚。外接晶振或时钟信号。时钟频率为外接晶振或时钟信号。时钟频率为1.8432MHz1.8432MHz。BAUDOUT#BAUDOUT#:波特率输出引脚。波特率输出引脚。频率为频率为发送数据波特率的发送数据波特率的1616倍。倍。RCLKRCLK:接收时钟输入引脚。接收时钟输入引脚。接收外部提供的接收外部提供的1616倍波特率的时钟信倍波特率的时钟信号。由于通常采用号。由于通常采用82508250内部的发送时钟作内部的发送时钟作为接收时钟,故可直接连到为
13、接收时钟,故可直接连到BAUDOUT#BAUDOUT#引脚,引脚,以保证接收与发送的波特率相同。以保证接收与发送的波特率相同。第18页与外部通信设备相连的信号线与外部通信设备相连的信号线 RTS#RTS#:请求发送输出引脚。当请求发送输出引脚。当RTS#RTS#为为低电平时,低电平时,表示表示82508250(DTEDTE)通知数据通)通知数据通信装置(信装置(DCEDCE),准备发送数据。),准备发送数据。CTS#CTS#:允许发送输入引脚。当允许发送输入引脚。当CTS#CTS#为为低电平时,表示数据通信装置(低电平时,表示数据通信装置(DCEDCE)通知)通知82508250(DTEDTE
14、),已做好接收数据的准备。),已做好接收数据的准备。DTR#DTR#:数据终端就绪输出引脚。当数据终端就绪输出引脚。当DTR#DTR#为低电平时,为低电平时,表示表示82508250(DTEDTE)通知)通知数据通信装置(数据通信装置(DCEDCE),已经做好通信准备。),已经做好通信准备。DSR#DSR#:数据通信装置就绪输出引脚。数据通信装置就绪输出引脚。当当DSR#DSR#为低电平时,表示数据通信装置为低电平时,表示数据通信装置(DCEDCE)通知)通知82508250(DTEDTE),已做好建立通),已做好建立通信链路的准备。信链路的准备。第19页与外部通信设备相连的信号线与外部通信设
15、备相连的信号线 RLSD#RLSD#:载波检测输入引脚。当载波检测输入引脚。当RLSD#RLSD#为为低电平时,表示数据通信装置(低电平时,表示数据通信装置(DCEDCE)通知)通知82508250(DTEDTE),已检测到通信线路上的载波信),已检测到通信线路上的载波信号,开始接收数据。号,开始接收数据。RI#RI#:振铃指示输入引脚。当振铃指示输入引脚。当RI#RI#为低电为低电平时,表示平时,表示 表示数据通信装置(表示数据通信装置(DCEDCE)通知)通知82508250(DTEDTE),已接收到振铃信号。),已接收到振铃信号。OUT1#OUT1#:用户指定的输出引脚。可以通过用户指定
16、的输出引脚。可以通过对对82508250的编程使的编程使OUT1OUT1为低电平或高电平。为低电平或高电平。OUT2#OUT2#:用户指定的另一输出引脚。也可用户指定的另一输出引脚。也可以通过对以通过对82508250的编程使的编程使OUT2OUT2为低电平或高电为低电平或高电平。平。第20页第21页2.82502.8250芯片的内部结构和寻址方式芯片的内部结构和寻址方式 8250 8250芯片的内部结构:芯片的内部结构:1010个内部寄存器、数据缓冲器、寄存器选择与个内部寄存器、数据缓冲器、寄存器选择与I/OI/O控制逻辑。控制逻辑。通过微处理器的输入通过微处理器的输入/输出指令可以对输出指
17、令可以对1010个内部寄存器进行操作,以实个内部寄存器进行操作,以实现各种异步通信的要求。现各种异步通信的要求。第22页第23页2 2、82508250芯片的内部结构和寻址芯片的内部结构和寻址方式方式线路控制寄存器线路控制寄存器3FF未用未用第24页3.82503.8250内部控制状态寄存器的功能内部控制状态寄存器的功能(1 1)发送保持寄存器)发送保持寄存器THRTHR(3F8H3F8H)(2 2)接收数据缓冲寄存器)接收数据缓冲寄存器RBRRBR(3F8H3F8H)(3 3)线路控制寄存器)线路控制寄存器LCRLCR(3FBH3FBH)(4 4)除数寄存器)除数寄存器DLRDLR(3F8H
18、3F8H,3F9H3F9H)(5 5)中断允许寄存器)中断允许寄存器IERIER(3F9H3F9H)(6 6)中断标识寄存器)中断标识寄存器IIRIIR(3FAH3FAH)(7 7)线路状态寄存器)线路状态寄存器LSRLSR(3FDH3FDH)(8 8)ModemModem控制寄存器控制寄存器MCRMCR(3FCH3FCH)(9 9)ModemModem状态寄存器状态寄存器MSRMSR(3FEH3FEH)第25页 (1 1)发送保持寄存器)发送保持寄存器THRTHR(3F8H3F8H)当发送数据时,当发送数据时,CPUCPU先将待发送的字符写入已空的先将待发送的字符写入已空的THRTHR中,其
19、中第中,其中第0 0位是位是串行发送的第串行发送的第1 1位数据。位数据。只要发送移位寄存器只要发送移位寄存器TSRTSR为空,则为空,则THRTHR中的数据会由中的数据会由82508250的硬件自动送入的硬件自动送入TSRTSR,并在发送时钟的作用下转换成串行信号,且按照预置的帧格式添加起,并在发送时钟的作用下转换成串行信号,且按照预置的帧格式添加起始位、校验位和停止位,从始位、校验位和停止位,从SOUTSOUT引脚输出。引脚输出。(2 2)接收数据缓冲寄存器)接收数据缓冲寄存器RBRRBR(3F8H3F8H)当外来的串行数据(一个完整的字符)在接收时钟作用下,由当外来的串行数据(一个完整的
20、字符)在接收时钟作用下,由SINSIN引脚引脚输入到接收移位寄存器时,会自动去掉起始位、校验位和停止位,并转换成输入到接收移位寄存器时,会自动去掉起始位、校验位和停止位,并转换成并行数据,输入到并行数据,输入到RBRRBR中,等待中,等待CPUCPU读取该字符。读取该字符。第26页 (3 3)线路控制寄存器)线路控制寄存器LCRLCR(3FBH3FBH)规定了异步串行通信的数据格式,包括数据位数(字长)、停止位的位规定了异步串行通信的数据格式,包括数据位数(字长)、停止位的位数与奇偶校验位的设置等。数与奇偶校验位的设置等。由于由于82508250仅用了仅用了3 3根地址线来寻址内部的根地址线来
21、寻址内部的8 8个寄存器,故不得不使波特率个寄存器,故不得不使波特率因子寄存器或除数寄存器因子寄存器或除数寄存器DLRDLR和其他寄存器公用地址,由和其他寄存器公用地址,由D7D7位来加以区分。位来加以区分。第27页3 3、82508250内部控制状态寄存器的内部控制状态寄存器的功能功能D5D4D3D5D4D3为为101101时:时:在奇偶校验位在奇偶校验位和停止位之间插和停止位之间插入一个奇偶标志入一个奇偶标志位位1 1。D5D4D3D5D4D3为为111111时:时:在奇偶校验位在奇偶校验位和停止位之间插和停止位之间插入一个奇偶标志入一个奇偶标志位位0 0。强迫强迫82508250连续输出
22、低电平。连续输出低电平。第28页3 3、82508250内部控制状态寄存器的内部控制状态寄存器的功能功能D5D4D3D5D4D3为为101101时:时:在奇偶校验在奇偶校验位和停止位之位和停止位之间插入一个奇间插入一个奇偶标志位偶标志位1 1。D5D4D3D5D4D3为为111111时:时:在奇偶校验在奇偶校验位和停止位之位和停止位之间插入一个奇间插入一个奇偶标志位偶标志位0 0。强迫强迫82508250连续输出低电平。连续输出低电平。第29页 (4 4)除数寄存器)除数寄存器DLRDLR(3F8H3F8H,3F9H3F9H)82508250芯片规定当芯片规定当LCR LCR 的位的位D7D7
23、写入写入1 1时,接着可对口地址时,接着可对口地址3F8H3F8H、3F9H3F9H分别分别写入分频系数的低字节和高字节,即将写入分频系数的低字节和高字节,即将1616位除数写入位除数写入DLRDLR(L L)和)和DLRDLR(H H)中。)中。波特率波特率 =1.8432MHz/=1.8432MHz/(分频系数分频系数1616)分频系数分频系数=1.8432MHz/=1.8432MHz/(波特率(波特率1616)例如例如:要求发送波特率为要求发送波特率为12001200波特,则分频系数为:波特,则分频系数为:分频系数分频系数 =1.8432MHz/(120016)=96=1.8432MHz
24、/(120016)=96 因此,因此,3F8H3F8H口地址应写入口地址应写入9696(60H60H),),3F9H3F9H口地址应写入口地址应写入0 0。第30页3 3、82508250内部控制状态寄存器的内部控制状态寄存器的功能功能第31页(5 5)中断允许寄存器)中断允许寄存器IERIER(3F9H3F9H)IERIER用来设置允许或禁止用来设置允许或禁止8250 8250 的的4 4个中断源发出中断请求(将相应位置个中断源发出中断请求(将相应位置1 1或或0 0即可)。即可)。D7D7D4D4位:恒为位:恒为0 0。D3D3D0D0位:表示是否允许位:表示是否允许4 4类中断。类中断。
25、当允许中断时,则通过当允许中断时,则通过IR4IR4向向8086/8088CPU8086/8088CPU发中断请求。发中断请求。第32页第33页 (6 6)中断标识寄存器)中断标识寄存器IIRIIR(3FAH3FAH)IIRIIR可以用来判断有无中断产生以及产生了哪一类中断请求。可以用来判断有无中断产生以及产生了哪一类中断请求。D7D7D3D3位:恒为位:恒为0 0。D0D0位:表示有无中断待处理,若位:表示有无中断待处理,若D0=1D0=1,表示无中断待处理;若,表示无中断待处理;若D0=0D0=0,表,表示有待处理的中断。示有待处理的中断。D2D2D1D1:位用于标识:位用于标识4 4类中
26、断,其中,类中断,其中,D2D1=11D2D1=11的线路出错中断的优先级的线路出错中断的优先级最高,而最高,而D2D1=00D2D1=00的的ModemModem中断的优先级最低。中断的优先级最低。第34页第35页 (7 7)线路状态寄存器)线路状态寄存器LSRLSR(3FDH3FDH)LSRLSR是一个是一个8 8位寄存器,它向位寄存器,它向CPUCPU提供有关发送与接收数据的状态信息提供有关发送与接收数据的状态信息 。第36页 D0D0:接收数据就绪位。当接收数据就绪位。当D0=1D0=1时,表示时,表示82508250的接收器已接收到一帧完的接收器已接收到一帧完整的字符。整的字符。D1
27、D1:数据重叠错(又称为越限状态错或溢出错)标志。当数据重叠错(又称为越限状态错或溢出错)标志。当D1=1D1=1时,表时,表示接收器的输入字符尚未读走,而新的字符已经到来并将前一帧数据覆盖。示接收器的输入字符尚未读走,而新的字符已经到来并将前一帧数据覆盖。D2D2:数据奇偶错标志位。当数据奇偶错标志位。当D2=1D2=1时,表示接收的数据经校验出现奇偶时,表示接收的数据经校验出现奇偶性错误。性错误。D3D3:帧错(即接收数据格式错)标志。当接收数据的停止位个数不正确帧错(即接收数据格式错)标志。当接收数据的停止位个数不正确时,则时,则D3=1D3=1。第37页 D4D4:接收空缺位。若在一个
28、完整的字符编码的时间间隔中收到的均为空接收空缺位。若在一个完整的字符编码的时间间隔中收到的均为空闲状态,则闲状态,则D4=1D4=1,表示线路信号间断。,表示线路信号间断。注意:注意:D1D1D4D4均为出错标志,只要其中有一位置均为出错标志,只要其中有一位置1 1,在中断允许的情况,在中断允许的情况下,下,82508250内部就会产生内部就会产生“接收字符错误接收字符错误”中断,一旦中断,一旦CPUCPU读取这些状态后,读取这些状态后,即自动复即自动复0 0。D5D5:数据发送保持器空标志。当数据发送保持器空标志。当D5D5为为1 1时,表示时,表示THRTHR空。一旦空。一旦CPUCPU将
29、数据将数据写入写入THRTHR,则此位复,则此位复0 0。D6D6:数据发送移位寄存器空标志。当数据发送移位寄存器空标志。当D6D6为为1 1时,表示时,表示TSRTSR空。一旦空。一旦THRTHR将将数据写入数据写入TSRTSR,则此位复,则此位复0 0。D7D7:恒为恒为0 0。第38页 (8 8)ModemModem控制寄存器控制寄存器MCRMCR(3FCH3FCH)MCRMCR用于控制调制解调器或数传机,可直接控制用于控制调制解调器或数传机,可直接控制RS-232CRS-232C接口的引脚信号。接口的引脚信号。第39页第40页 (9 9)ModemModem状态寄存器状态寄存器MSRM
30、SR(3FEH3FEH)MSRMSR反映了调制解调器控制线的当前状态及其变化信息。反映了调制解调器控制线的当前状态及其变化信息。各数据等于各数据等于1 1为有效。为有效。MSRMSR低低4 4位中任一位置位中任一位置1 1,均将产生调制解调器状态中断,当,均将产生调制解调器状态中断,当CPUCPU读取该寄读取该寄存器或复位后,低存器或复位后,低4 4位被清零。位被清零。dCTSdRSLDCTS DSR RI dDSR dRIRLSDD0D1D2D3D4D5D6D7高高4 4位中某位为位中某位为1 1,说明相,说明相应输入信号当前为低电平应输入信号当前为低电平,有效。有效。低低4 4位位中中某某
31、位位为为1 1,则则说说明明从从上上次次CPUCPU读读取取该该状状态态字字后后,相相应应输输入入信信号号已已发发生生改改变变,从从高变低或反之。高变低或反之。第41页4.82504.8250通信编程通信编程1)1)、82508250初始化初始化 (1 1)设置波特率)设置波特率 (2 2)设置串行通信数据格式)设置串行通信数据格式 (3 3)设置工作方式)设置工作方式 2)2)、程序查询方式通信编程、程序查询方式通信编程 3)3)、用中断方式编程、用中断方式编程 (1 1)初始化)初始化8259A8259A中断控制器中断控制器 (2 2)设置中断向量)设置中断向量IRIR4 4 (3 3)设
32、置允许)设置允许/屏蔽位屏蔽位 (4 4)82508250重新响应中断请求重新响应中断请求第42页1 1)、)、82508250初始化初始化 (1 1)设置波特率)设置波特率 例如,设波特率为例如,设波特率为96009600,则波特率因子,则波特率因子N=12N=12MOV DXMOV DX,3FBH3FBHMOV ALMOV AL,80H80H;设置波特率;设置波特率OUT DXOUT DX,ALALMOV DXMOV DX,3F8H3F8HMOV ALMOV AL,1212OUT DXOUT DX,ALALINC DX INC DX MOV ALMOV AL,0 0OUT DXOUT DX
33、,ALAL第43页3 3、82508250内部控制状态寄存器的内部控制状态寄存器的功能功能D5D4D3D5D4D3为为101101时:时:在奇偶校验位在奇偶校验位和停止位之间插和停止位之间插入一个奇偶标志入一个奇偶标志位位1 1。D5D4D3D5D4D3为为111111时:时:在奇偶校验位在奇偶校验位和停止位之间插和停止位之间插入一个奇偶标志入一个奇偶标志位位0 0。强迫强迫82508250连续输出低电平。连续输出低电平。第44页1 1)、)、82508250初始化初始化 (2 2)设置串行通信数据格式)设置串行通信数据格式 例如,数据格式为例如,数据格式为8 8位,位,1 1位停止位,奇校验
34、。位停止位,奇校验。MOV ALMOV AL,0BH0BHMOV DXMOV DX,3FBH3FBHOUT DXOUT DX,ALAL第45页1 1)、)、82508250初始化初始化 (3 3)设置工作方式)设置工作方式 无中断:无中断:MOV ALMOV AL,3 3;OUT1#OUT1#、OUT2#OUT2#均为高电平均为高电平MOV DXMOV DX,3FCH3FCHOUT DX OUT DX,AL AL 有中断:有中断:MOV ALMOV AL,0BH0BH;OUT2#OUT2#为低电平,允许为低电平,允许INTRTINTRT去申请中断去申请中断MOV DXMOV DX,3FCH3F
35、CHOUT DXOUT DX,AL AL 循环测试:循环测试:MOV ALMOV AL,13H13HMOV DXMOV DX,3FCH3FCHOUT DXOUT DX,ALAL第46页 (8 8)ModemModem控制寄存器控制寄存器MCRMCR(3FCH3FCH)MCRMCR用于控制调制解调器或数传机,可直接控制用于控制调制解调器或数传机,可直接控制RS-232CRS-232C接口的引脚信号。接口的引脚信号。第47页2 2、82508250芯片的内部结构和寻址芯片的内部结构和寻址方式方式第48页2 2)、程序查询方式通信编程)、程序查询方式通信编程 采用程序查询方式工作时,采用程序查询方式
36、工作时,CPUCPU可以通过读线路状态寄存器(可以通过读线路状态寄存器(3FDH3FDH)查)查相应状态位(相应状态位(D0D0与与D5D5位),来检查接收数据寄存器是否就绪(位),来检查接收数据寄存器是否就绪(D0=1D0=1)与发送)与发送保持器是否空(保持器是否空(D5=1D5=1)。)。第49页2 2)、程序查询方式通信编程)、程序查询方式通信编程 发送程序:发送程序:TRTR:MOV DXMOV DX,3FDH 3FDH IN ALIN AL,DXDXTEST ALTEST AL,20H 20H JZ TR JZ TR MOV ALMOV AL,SISI;从;从SISI中取出发送数据
37、中取出发送数据 MOV DXMOV DX,3F8H 3F8H OUT DXOUT DX,ALAL第50页2 2)、程序查询方式通信编程)、程序查询方式通信编程 接收程序:接收程序:RERE:MOV DXMOV DX,3FDH 3FDH IN ALIN AL,DX DX TEST ALTEST AL,1 1 JZ RE JZ RE MOV DXMOV DX,3F8H 3F8H IN ALIN AL,DX DX MOV MOV DIDI,ALAL;读入数据存入;读入数据存入DIDI中中 第51页3 3)、用中断方式编程)、用中断方式编程 (1 1)初始化)初始化8259A8259A中断控制器中断控
38、制器MOV ALMOV AL,13H13H;单片使用,需要;单片使用,需要ICW4ICW4MOV DXMOV DX,20H 20H OUT DXOUT DX,AL AL;ICW1ICW1 MOV ALMOV AL,8 8;中断类型号为;中断类型号为08H08H0FH 0FH INC DX INC DX OUT DXOUT DX,AL AL;ICW2 ICW2 INC AL INC AL ;缓冲方式,;缓冲方式,8088/8086 8088/8086 OUT DXOUT DX,AL AL;ICW4ICW4MOV ALMOV AL,8CH8CH;允许;允许0 0,1 1,4 4,5 5,6 6级中
39、断级中断 OUT DXOUT DX,AL AL;送中断屏蔽字;送中断屏蔽字OCW1 OCW1 第52页3 3)、用中断方式编程)、用中断方式编程(2 2)设置中断向量)设置中断向量IR4 IR4 对对IR4 IR4,中断类型号为,中断类型号为0CH0CH,0CH4=30H0CH4=30H。因此,应在。因此,应在30H30H、31H31H存放存放IPIP值,值,32H32H、33H33H存放存放CSCS值。值。设中断服务程序入口地址为设中断服务程序入口地址为2000H2000H:100H100HXOR AXXOR AX,AX AX MOV DSMOV DS,AX AX MOV AXMOV AX,
40、100H 100H MOV WORD PTRMOV WORD PTR0030H0030H,AXAXMOV AXMOV AX,2000H2000HMOV WORD PTRMOV WORD PTR0032H0032H,AXAX第53页3 3)、用中断方式编程)、用中断方式编程 (3 3)设置允许)设置允许/屏蔽位屏蔽位 对对82508250送中断允许寄存器(送中断允许寄存器(3F9H3F9H)设置允许)设置允许/屏蔽位。屏蔽位。例如,允许发送与接收中断请求。例如,允许发送与接收中断请求。MOV ALMOV AL,3 3 MOV DXMOV DX,3F9H 3F9H OUT DXOUT DX,ALA
41、L第54页3 3)、用中断方式编程)、用中断方式编程 (4 4)82508250重新响应中断请求重新响应中断请求 在中断结束返回时,需要对在中断结束返回时,需要对8259A8259A发发EOIEOI命令,保证命令,保证82598259可以重新响应中可以重新响应中断请求。断请求。MOV ALMOV AL,20H 20H MOV DXMOV DX,20H20HOUT DXOUT DX,ALAL;发;发EOIEOI命令,命令,OCW2OCW2IRETIRET;开中断允许,并从中断返回;开中断允许,并从中断返回第55页课堂练习课堂练习1 1、利用、利用82508250、74LS24574LS245、1
42、.8432MHz1.8432MHz晶体、门电路、电阻、电容等,画出基晶体、门电路、电阻、电容等,画出基于于PC/XTPC/XT总线的串行接口卡电路原理图(不考虑电平转换)。总线的串行接口卡电路原理图(不考虑电平转换)。课堂练习课堂练习第56页课堂练习课堂练习2 2、程序设计要求:在、程序设计要求:在IBM PCIBM PC机上用汇编语言按查询方式编制一个发送与接机上用汇编语言按查询方式编制一个发送与接收程序,它能把键入的每一个收程序,它能把键入的每一个ASCIIASCII字符发送出去,并显示在字符发送出去,并显示在CRTCRT上,同时能上,同时能把接收到的每一个字符也以把接收到的每一个字符也以
43、ASCIIASCII码形式显示在码形式显示在CRTCRT屏幕上屏幕上 设:数据传送速率为设:数据传送速率为96009600波特:通信格式为波特:通信格式为8 8位位/每字符,每字符,1 1位停止位,位停止位,奇校验。奇校验。第57页课堂练习课堂练习1 1 在在IBM PCIBM PC机上用汇编语言按查询方式编制一个发机上用汇编语言按查询方式编制一个发送与接收程序,它能把键入的每一个送与接收程序,它能把键入的每一个ASCIIASCII字符发送出字符发送出去,并显示在去,并显示在CRTCRT上,同时能把接收到的每一个字符也上,同时能把接收到的每一个字符也以以ASCIIASCII码形式显示在码形式显
44、示在CRTCRT屏幕上屏幕上 设:设:数据传送速率为数据传送速率为96009600波特:通信格式为波特:通信格式为8 8位位/每字符,每字符,1 1位停止位,奇校验。位停止位,奇校验。第58页课堂练习课堂练习1 1 在在IBM PCIBM PC机上用汇编语言按查询方式编制一个发机上用汇编语言按查询方式编制一个发送与接收程序,它能把键入的每一个送与接收程序,它能把键入的每一个ASCIIASCII字符发送出字符发送出去,并显示在去,并显示在CRTCRT上,同时能把接收到的每一个字符也上,同时能把接收到的每一个字符也以以ASCIIASCII码形式显示在码形式显示在CRTCRT屏幕上屏幕上 设:设:数
45、据传送速率为数据传送速率为96009600波特:通信格式为波特:通信格式为8 8位位/每字符,每字符,1 1位停止位,奇校验。位停止位,奇校验。第59页课堂练习课堂练习2 2MOV ALMOV AL,13H13HMOV DXMOV DX,3FCH3FCHOUT DXOUT DX,AL AL;循环测试;循环测试CHECKCHECK:MOV DXMOV DX,3FDH3FDHIN ALIN AL,DX DX;读线路状态寄存器;读线路状态寄存器TEST ALTEST AL,1H1H;查接收缓冲器是否满,若满转接;查接收缓冲器是否满,若满转接;收子程序;收子程序JNZ REVJNZ REVTEST A
46、LTEST AL,20H 20H ;查发送缓冲器是否空,不空;查发送缓冲器是否空,不空;转;转CHECKCHECKJZ CHECKJZ CHECKTRTR:MOV AHMOV AH,1 1;读键盘缓冲器内容,若有键按;读键盘缓冲器内容,若有键按;下,则;下,则ZFZF标志为标志为0 0,且,且AL=AL=字符码字符码INT 16HINT 16HJZ CHECK JZ CHECK ;如;如ZF=1ZF=1,转,转CHECKCHECKMOV DXMOV DX,3F8H 3F8H OUT DXOUT DX,ALAL;将键入代码发送出去;将键入代码发送出去 第60页课堂练习课堂练习2 2JMP CHECKJMP CHECKREVREV:MOV DXMOV DX,3F8H3F8HIN ALIN AL,DXDX;读入接收字符;读入接收字符AND ALAND AL,7FH 7FH ;屏蔽掉;屏蔽掉D7D7MOV BXMOV BX,0041H 0041H;BH=00HBH=00H,选,选0 0页;页;BL=41HBL=41H,显示属,显示属;性(红底兰字);性(红底兰字)MOV AHMOV AH,1414;用中断调用显示接收到的字符;用中断调用显示接收到的字符INT 10H INT 10H JMP CHECKJMP CHECK 第61页作业作业l12.1 12.2 12.3