1、1,第6章 串并行通信和接口技术,6.1 并行接口和并行通信 6.2 可编程并行接口8255A 6.3 串行接口和串行通信 6.4 可编程串行接口8251A,2,6.1 并行接口和并行通信,并行通信多位数据通过多条数据线同时传送 能实现并行通信的接口即并行接口,3,6.2 可编程并行接口8255A,1.8255A的内部结构 2.8255A的芯片引脚信号 3.8255A的控制字 4.8255A的工作方式 5.8255A的应用举例,4,1. 8255A的内部结构,5,1)并行I/O端口A、B、C,三个独立并行I/O端口A、B、C用于与外设传递数据信息、控制信息或状态信息。 端口A:8位数据输入锁存
2、器; 8位数据输出锁存器缓冲器。 端口B:8位数据输入缓冲器; 8位数据输出锁存器缓冲器。 端口C:8位数据输入缓冲器; 8位数据输出锁存器缓冲器。 端口C还可以分为两个4位端口:C口高4位端口和C口低4位端口,每个4位端口包含一个4位输入缓冲器和一个4位输出锁存器缓冲器。,6,2)内部控制电路,控制电路: 接受读写控制逻辑命令 接受来自CPU的控制字 发出命令到所控制的端口 选择及控制各端口的工作方式 对C口置位和复位 8255A内部包括A、B两组控制电路。 A组控制A口和C口高4位 B组控制B口和C口低4位,7,3)数据总线缓冲器,是8255A与系统数据总线的接口。 缓冲器传送: 输入输出
3、的数据 CPU发出的控制字 接口的状态字,8,4)读写控制逻辑,8255A与系统控制总线和地址总线的接口。 接收CPU的控制及地址信号,控制CPU与接口的数据传输。,A1A0 端口 00 端口A 01 端口B 10 端口C 11 对控制端口写控制字,9,2.8255A芯片的引脚信号,10,3. 8255A的控制字,8255A有两种控制字: 工作方式控制字 端口C置1/置0控制字 两种控制字共用同一个控制端口。区别两种控制字,依据控制字的最高位D7: 当D7=1时,表示写入8255A的是工作方式控制字; 当D7=0时,表示写入8255A控制端口的是端口C置1/置0控制字。,11,1)工作方式控制
4、字,12,2)端口C置1/置0控制字,注意:端口C置1/置0控制字不是送至C端口,而是送至控制端口(11)。,13,4. 8255A的工作方式,8255A有三种工作方式: 方式0基本输入/输出方式 方式1选通的输入/输出方式 方式2双向传输方式 A口可以工作在方式0、方式1和方式2 B口可以工作在方式0、方式1 C口只能工作在方式0,14,1)方式0基本输入/输出方式,输入时序,15,输出时序,16,方式0适用于无条件和查询传送方式,17,输入流程,18,输出流程,19,系统连接示例,20,2)方式1-选通输入/输出方式,A口、B口可以分别作为数据口工作在方式1。 需要使用C口中特定的引脚作为
5、选通和应答使用。 C口中其余的引脚仍可工作在方式0,定义为输入或输出使用。 适用于查询和中断方式。,21,选通输入方式C端口引脚信号含义及状态字格式,(1)选通输入方式,两个状态触发器:中断允许触发器 输入数据缓冲器满触发器 CPU读取端口C可获得状态字 所缺位读得的是对应端口C的引脚信号电平,22,STB#选通信号,低电平有效 由外设提供的输入信号,当其有效时,从外部设备来的8位数据送入到8255A的输入缓冲器中。 IBF输入缓冲器满信号,高电平有效 8255A输出的联络信号,当其有效时,表示数据已锁存在输入锁存器。 INTR中断请求信号,高电平有效 8255A输出的信号,可用于向CPU提出
6、中断请求,要求CPU读取外设数据。,23,数据选通信号 表示外设已经准备好数据,输入缓冲器满信号 表示A口已经接收数据,中断请求信号 请求CPU接收数据,24,方式1输入时序,25,说明:,当外设数据准备好以后,发出一个负脉冲选通信号STB# ,使A口打开锁存器接收数据。 A口接收到数据以后,发出IBFA,由RD#信号的上升沿使IBFA恢复低电平。 STB#和IBFA都变为高电平以后,如果INTEA允许,则8255A发出中断请求信号,以便使CPU接收数据。 RD#信号的下降沿使INTRA恢复低电平。 可以通过对PC4的置位和复位来设置INTEA。,26,在选通方式下,外设数据读入CPU采用两种
7、传送方式:程序查询方式和中断方式。,采用中断方式 当INTR为高电平即向CPU发出一个中断请求,CPU响应后,完成一个新数据的读取。 8255A产生INTR高电平的条件: INTE=1、IBF=1、STB#=1及RD#=1。 开放A口中断:将09H写入控制端口使INTEA=1 开放B口中断:将05H写入控制端口使INTEB=1 8255A复位时,INTE=0。,27,方式1输出端口及引脚信号含义及状态字格式,(2)8255A方式1输出,两个状态触发器:中断允许触发器 输出数据缓冲器满触发器 CPU读取端口C可获得状态字。 所缺位读得的是对应端口C的引脚信号电平,28,OBF#输出缓冲器满信号,
8、低有效 8255A输出给外设的一个控制信号,当其有效时,表示CPU已把数据输出给指定的端口,外设可以取走 ACK#响应信号,低有效 外设的响应信号,指示8255A的端口数据已由外设接受 INTR中断请求信号,高有效 当输出设备已接受数据后,8255A输出此信号向CPU提出中断请求,要求CPU继续提供数据,29,外设响应信号 表示外设已经接收到数据,输出缓冲器满信号 表示CPU已经输出了数据,中断请求信号 请求CPU再次输出数据,30,方式1输出时序,31,说明:,当CPU向端口A输出数据以后,在WR#的上升沿使OBF#A变为低电平,使INTRA恢复低电平。 当外设接收到数据以后,发出一个负脉冲
9、ACK#A送给8255A,使OBF#A变为高电平。 ACK#A和OBF#A都变为高电平以后,如果INTEA允许,则8255A发出中断请求信号,以便使CPU再次输出数据。 可以通过对PC6的置位和复位来设置INTEA,32,在选通方式下,CPU输出数据至外设采用二种传送方式:程序查询方式和中断方式,采用中断方式 当INTR为高电平即向CPU发出一个中断请求,CPU响应后完成一个新数据写入接口的数据端口。 8255A在方式1输出时,产生INTR高电平的条件:INTE=1、OBF#=1、ACK#=1及WR#=1。,33,可通过对PC2置位或复位来设置INTEB。,34,3)方式2双向传输方式,A口可
10、以作为数据口工作在方式2 利用端口C的5个信号线,其作用与方式1相同 相当于是A口工作在方式1的输入和输出的叠加 不同:数据输出时8255A不是在OBF#有效时向外设输出数据,而是在外设提供响应信号ACK#时才送出数据 ACK#的下降沿启动A口的三态输出缓冲器,送出数据 ACK#的上升沿是数据已输出的回答信号,35,方式2的状态字,36,用PC6设置INTE1, 用PC4设置INTE2。,方式2引脚定义,37,例1:编程对8255A进行初始化并将开关状态读入,再在发光二极管上输出。,5. 8255A的应用举例,38,code segmentassume cs:code start: mov a
11、l,10000010bout 3eh,alin al,3ahout 38h,almov ax,4c00hint 21h code endsend start,39,BUSY,DATA07,例2:用8255A与打印机接口,40,8255A采用方式0工作,8255A,打印机,设8255A的端口地址为: A端口:00C0H、 B端口:00C2H C端口:00C4H、 控制端口:00C6H,41,8255A的初始化,mov dx,00C6h mov al,10000001B out dx,al mov al,00001101B out dx,al,42,打印子程序:(打印字符在ah中),printc
12、procpush axpush dx prn: mov dx,00c4hin al,dxand al,04hjnz prn mov dx,00c0h mov al,ahout dx,al,mov dx,00c6hmov al,00001100Bout dx,alnop nopmov al,00001101Bout dx,alpop dxpop axret printc endp,43,8255A采用方式1工作,1,44,PA0PA7 (DATA07),45,8255A的初始化,mov dx,00c6hmov al,10100000bout dx,almov al,0ch ;使INTEA(PC6
13、)为0,禁止中断out dx,al,46,打印子程序:,cx: 打印字节数 bx: 字符串首地址 prints procpush axpush dx print1: mov al,bx mov dx,00c0hout dx,al,mov dx,00c4h print2:in al,dxtest al,80hjz print2inc bxloop print1pop dxpop axret prints endp,47,OBF(PC7) 未使用,8255A采用方式1工作(不采用单稳态电路),ACK,DATA07,8255A,PC0,PC6PC3,PA0PA7,打印机,INTR连8259A的IR3
14、 中断类型号:0BH,48,main: mov al,0a0hout 0c6,almov al,01out 0c6,alxor ax,axmov ds,axmov ax,2000hmov word ptr002ch,axmov ax,1000hmov word ptr002eh,axmov al,0dhout 0c6h,alsti,Tintr: mov al,diout 0c0,almov al,00out 0c6h,alinc alout 0c6,aliret,49,例3:8255A与7段LED显示器的接口,七段LED由七段发光管组成, 称为a、b、c、d、e、f、g,有的带小数点h;通过7
15、个发光管的不同组合,可以显示09和AF共16个字母数字。,50,8255A与7段LED数码管的连接如下图所示。,1)写出8255A四个端口的地址; 2)按照图中的连接方式,编写8255A的初始化程序段; 3)编写在两个LED数码管上显示“78”的程序段。,51,1)8255A四个端口的地址: A端口: 290H B端口: 292H C端口: 294H 控制端口: 296H 2)8255A的初始化程序段: MOV DX,296H MOV AL,80H OUT DX,AL MOV AL,0FFH MOV DX,294H MOV DX,AL,52,3)在两个LED数码管上显示“78”的程序段DISP
16、 PROC NEAR MOV AL,07H MOV DX,290H OUT DX,AL MOV AL,0FEH MOV DX,294H OUT DX,AL MOV CX,0FFH DEAY0: LOOP DEAY0,MOV AL,7FH MOV DX,290H OUT DX,AL MOV AL,0FDH MOV DX,294H OUT DX,AL MOV CX,0FFH DEAY1: LOOP DEAY1 RET DISP ENDP,53,例:,54,(1)写出8255A初始化程序段。,MOV AL,80HMOV DX,703HOUT DX,AL,(2)写出显示子程序,55,(2)显示子程序,
17、DISP PROC NEARPUSHFPUSH AXPUSH BXPUSH DXPUSH SIPUSH CX,MOV BX,8MOV AH,7FHMOV SI,OFFSET BUFMOV DX,701H DISP1:MOV AL,AHOUT DX,AL DEC DX,56,POP CXPOP SI POP DXPOP BXPOP AXPOPFRET DISP ENDP,MOV AL,BX+SI-1OUT DX,ALMOV CX,3000 DELAY:LOOP DELAYROR AH,1INC DXDEC BXJNZ DISP1,57,例4. 8255A与键盘的接口,矩阵式结构键盘的处理步骤 键
18、扫描-确定是否有键按下 键识别-查出被按下键的位置,并得到反映键功能的键值或键码 键处理-针对按键所规定的功能完成相应的操作,58,键盘扫描方法行扫描法,59,设置行线所接的并行端口工作于输出方式,列线所接的并行端口工作于输入方式。 第一次扫描 CPU通过输出端口往行线送全0值,然后读列线的值。列值中有某位为 0,表示有键按下。 第二次逐行扫描 CPU输出一个行扫描码:向1行输出0值,其余行输出1值,读列线的值若列值中有某位为0,则表示1行线与该列交点处的键被按下;否则扫描下一行,直到扫描到某一列线的值0时为止。 在第二次扫描时,当读到某一列线的值为0时,此时的行扫描码和列线的值可以唯一确定按
19、键的位置。,60,8255A与键盘的连接图:,61,DATA SEGMENTDIS0 DB PRESS ANY OF THE KEYS TO QUITI8255TYPE DW 0C803H ;8255控制字的地址I8255addA DW 0C800H ;8255的A口地址I8255addB DW 0C801H ;8255的B口地址I8255addC DW 0C802H ; 8255的C口地址KEY_SV DB 0,0,1,0,2,0,0,0,3KEY_V_BUF DB ?SCAN_V DB ?KEY_HV DB ?DATA ENDS,62,CODE SEGMENT ASSUME CS:CODE
20、,DS:DATA START: MOV AX,DATAMOV DS,AXMOV DX,OFFSET DIS0 ;显示提示MOV AH,9INT 21HMOV DX,I8255TYPE ;初始8255AMOV AL, 81H;C口低4位输入,高4位输出OUT DX,ALMOV KEY_V_BUF,0FFH MAIN_LP: CALL KEYSCAN,63,CMP AL,KEY_V_BUFJZ MNLP1CMP AL,0FFHJZ MNLP1MOV KEY_V_BUF,ALCALL DISPLAY MNLP1: CALL TIMECALL PCKEYJMP MAIN_LP,64,KEYSCAN P
21、ROC NEARMOV KEY_HV,0MOV SCAN_V,10H SCAN_LP: MOV AL,SCAN_VMOV DX,I8255addCOUT DX,ALIN AL,DXAND AL,0FH;得c口0-3位数据CMP AL,0JE KYSC1MOV BX,OFFSET KEY_SVMOV AH,0MOV SI,AXMOV AL,BX+SIADD AL,KEY_HVRET,65,KYSC1: ADD KEY_HV,4ROL SCAN_V,1CMP SCAN_V,1JNZ KYSC2MOV AL,0FFHRET KYSC2: JMP SCAN_LP KEYSCAN ENDP,66,DIS
22、PLAY PROC NEARCMP AL,10HJL DSPLY1RET DSPLY1: ADD AL,30HCMP AL,9JBE DISP_HADD AL,7 DISP_H:MOV AH,2MOV DL,ALINT 21HRET DISPLAY ENDP,67,TIME PROC NEARMOV AX,0FFH T2: DEC AXMOV BX,0FFFH T1: DEC BXJNZ T1CMP AL,0JZ T2RET TIME ENDP,68,PCKEY PROC NEARMOV AH,6MOV DL,0FFHINT 21HJE P1MOV AX,4C00HINT 21H P1: RE
23、T PCKEY ENDP CODE ENDSEND START,69,6.3 串行接口和串行通信,串行通信:利用一条传输线将数据一位位地顺序传送。 串行通信的优势:线路少,降低成本 串行通信适合于远距离数据传送或速度要求不高的近距离数据传送 在一根传输线上既传送数据信息,又传送联络控制信息。通过通信协议约定的信息格式来识别联络信号、数据信号。 串行接口:能实现串行通信的接口 串行接口最主要的功能是实现数据的串并行转换。,70,1.异步通信和同步通信 1)异步通信 (1)异步通信的数据格式 (2)异步通信的同步问题 (3)数据传输速率(比特率)/波特率 / 时钟频率与波特率的关系 2)同步通信
24、2.数据传送的方向 3.串行接口,71,1.异步通信和同步通信,两种通信方式:异步通信、同步通信 异步通信是指通信中二个字符间的时间间隔是不固定的,然而在同一个字符中的二个相邻位代码的时间间隔是固定的。 同步通信在通信过程中,不仅每个字符中各相邻位代码间的时间间隔是固定的,而且每个字符间隔也是固定的。,72,1)异步通信,(1)异步通信的数据格式 异步传输以字符为单位,传送一个字符的数据内容称为一个信息帧。 一帧包括起始位、数据位、校验位、停止位四部分。每个字符信息帧之间可以有若干个空闲位。,73,空闲位,58位 数据位,空闲位,74,空闲位传送字符之间的逻辑1电平,表示没有进行传送 停止位表
25、示该字符传送结束。停止位采用逻辑1电平,可选择1、1.5或2位 校验位用于校验是否传送正确;可选择奇检验、偶校验或不传送校验位 数据位数据位紧跟着起始位传送。由58个二进制位组成,低位先传送 起始位每个字符开始传送的标志,起始位采用逻辑0电平,75,(2)异步通信的同步问题,收发双方通过发送数据线、接收数据线及信号地连接,按字符进行传输,没有时钟信号与数据一起发送。 发送端和接收端不共用公共的时钟源。,收发双方的同步采用字符再同步技术。 (利用起始位)收、发两端的时钟频率可略有偏差,不会因偏差积累而导致错位。,76,(3)数据传输速率(比特率)/波特率 / 时钟频率与波特率的关系,数据传输速率
26、(比特率Bit Rate) 数据每秒传输的二进制位数bps 。 字符中每个二进制位持续的时间长度都一样,为数据传输速率的倒数。,77,波特率 传输速率在基波传输的情况下(不加调制,以其固有的频率传送)是用每秒钟传送的位数(bit/s)即波特率来表示。1波特=1位秒。 区分字符速率和波特率 假如在某异步串行通信中传送1个字符,包括1个起始位,8个数据位,1个偶校验位,2个停止位,若传输速率是1200波特,那么,每秒所能传送的字符数是1200(1+8+1+2)=100个。,78,发送接收时钟 在发送数据时,发送器在发送时钟(下降沿)作用下将移位寄存器的数据按位串行移位输出; 在接收数据时,接收器在
27、接收时钟(上升沿)作用下对接收数据位采样,并按位串行移入移位寄存器。,79,发送接收时钟频率与波特率的关系 时钟频率=n波特率 波特率因子n1,16,32,64 根据所要求的传输波特率及所选择的n来确定发送接收时钟的频率。 例如:要求传输速率为1200波特,则 当选择n=1时,时钟频率1.2kHz 当选择n=16时,时钟频率19.2kHz 当选择n64时,时钟频率76.8kHz,80,(1)同步通信格式 同步通信是以数据块方式传输数据的,每个数据块由一个字符序列组成,每个字符取相同的位数,字符之间是连续的,没有起始位、停止位和空闲位。 在数据块的前面置1个(单同步)或2个(双同步)同步字符作为
28、帧的边界起联络作用,通知接收方开始接收。在数据块尾部放置校验字符,用于校验传输的数据是否正确。,2)同步通信,81,单同步,双同步,外同步:利用专用控制线传输信号进行同步,82,(2)同步通信的同步问题,接口中除包括发送数据线、接收数据线及信号地线以外,还有一根时钟信号线。 同步通信要求发送端和接收端共用同一时钟源。,在近距离传送时,增加一根时钟信号线在远距离传送时,通过解调器从数据流中提取同步信号,83,(3)同步通信的速度高于异步通信,例如:当传送速率为1200波特时 若进行异步通信,每帧信息为10位,则每秒钟能传输的最大字符数为 1200/10=120(个字符); 若进行同步通信,每帧信
29、息用2个8位同步字符作为信息帧头,数据块包含100个字符的ASCII码(7位),帧尾用2个8位的CRC,则100个字符传输时间为: (4 * 8+100 * 7)/1200=0.61(s) 每秒传输的字符数为: 100/0.61=164(个字符)。,84,2. 数据传送的方向,按照数据流的方向,串行通信可分成三种基本的传送模式 :全双工、半双工和单工。,85,采用半双工时,通信系统每一端的发送器和接收器,通过收发开关接到通信线上,进行方向的切换。收发开关实际上是由软件控制的电子开关。 在全双工方式下,通信系统的每一端都设置了独立的发送器和接收器,因此,能控制数据同时在两个方向上传送。全双工方式
30、无需进行方向的切换,因此,没有切换操作所产生的时间延迟。,86,3.串行接口,控制寄存器,87,(1)串行接口部件内部的主要寄存器,控制寄存器 状态寄存器 数据输入寄存器(接收数据寄存器) 数据输出寄存器(发送数据寄存器),88,(2)发送,89,(3)接收,接收时序,90,接收时钟频率为波特率的16倍,起始位检测及数据位采样,91,三种错误,奇偶校验错: 若接收到的字符的“1”的个数不符合奇偶校验要求 帧错: 若接收到的字符格式不符合规定(如缺少停止位) 溢出错: 若接收移位寄存器接收到一个数据,并送至输入缓冲器时,CPU还未取走前一个数据,就会出现数据溢出,92,(4)UART和 USAR
31、T,UART (通用异步收发器)例如:8250 USART(通用同步异步收发器)例如:8251A PC机中的串行接口 UART 使用 8250 ,最高速率9600 bps 。 使用 8250的后续芯片16450、16550等,最高速率可达128000 bps。 COM1 :IRQ=4 IO=3F8H3FFH COM2 :IRQ=3 IO=2F8H2FFH,93,6.4 可编程串行接口8251A,1.8251A的基本工作原理 2.8251A的对外引脚信号 3.8251A的编程 4.8251A应用举例,94,1. 8251A的基本工作原理,95,1)数据总线缓冲器,8251A与CPU之间的信息交换
32、通道 CPU读取的信息: 状态字 数据 CPU写入的信息: 模式字、控制字、同步字符 数据,96,2)读写控制电路,接收CPU输出的控制信号,并进行译码形成内部控制信号,以实现读写控制功能。,97,3)调制/解调控制电路,控制8251A与Modem之间的信息传送,使得8251A依据RS-232C标准直接与Modem连接。 在进行远距离通信时,发送方要通过调制解调器将输出的串行数字信号变为模拟信号,再发送出去。接收方也必须将模拟信号经过调制解调器变为数字信号,才能由串行接口接收。,98,99,100,4)发送器,发送移位寄存器、发送控制电路 把CPU送来的并行数据加上相应的控制信息并转换为串行数
33、据通过TxD发送出去。 异步方式 发送控制电路组成一帧数据,从起始位开始以发送时钟频率的1/16或1/64的速率在下降沿作用下经移位寄存器从TxD端逐位串行输出。,101,同步方式 发送器按初始化规定发送一个或两个同步字符之后开始发送数据块,且可按编程规定插入奇偶校验位,各数据位以发送时钟频率相同的速率在下降沿的作用下经移位寄存器从数据线TxD逐位串行输出。,102,发送过程:,发送缓冲器为空 TxRDY有效,CPU响应TxRDY请求或查询状态字D0有效便执行写数据操作,8251A接受数据后,TxRDY和TxE皆清0,经转换为串行数位的数据,在下降沿发送,当发送缓冲器为空,则TxRDY置1,,
34、当数据发送完毕TxE置1,103,5)接收器,接收移位寄存器、接收控制电路 鉴别和接收信号,并将接收的串行数据按约定的格式转换为并行数据存放在接收数据缓冲器中,以便CPU读取。 异步方式 接收控制电路监视RxD线,确认起始位到来; 常规采样:每隔n个时钟,在上升沿采样一次RxD,并移入移位寄存器; 接收的一帧数据经奇偶校验无错,去掉停止位得到并行数据。该数据被装配到接收缓冲器中,RxRDY有效通知CPU读数。,104,同步方式 内同步:接收器搜索比较同步字符,以确定同步。8251A使SYNDET引脚输出一个高电平。 外同步:8251A从SYNDET引脚接收到一个能维持一个接收时钟周期的高电平,
35、就可脱离对同步字符的搜索过程,在下一个上升沿开始同步接收数据。 接收器采样和移位RxD线上的数据位,并根据预先规定的数位装配送接收数据缓冲器,于是,RxRDY信号有效通知CPU取数。 RxRDY有效可作为中断请求信号;在查询方式时,RxRDY可作为一个“联络”信号,CPU读状态字查询D1位可获知接收器是否准备就绪。,105,2.8251A的对外引脚信号,106,1)与CPU接口信号,D7D0:三态双向数据线。 CLK:时钟输入信号。 RESET:复位信号,高电平有效。 CS、RD、WR C/D:控制/数据信号。 TxRDY:发送器准备好信号,输出,高电平有效。 CTS=0、TxEN=1、发送数
36、据缓冲器为空时,该信号有效 当CPU向8251A写入一个字符后,TxRDY复位。,107,TxE:发送器空信号,高电平有效。 当发送移位寄存器为空时,TxE有效 当8251A从CPU接收到待发送的字符后,TxE复位。 RxRDY:接收器准备好信号,输出,高电平有效。 若8251A控制字中的D2位RxE置“1”,则当8251A已经从它的串行输入端接收了一个字符可以传送给CPU时,RxRDY有效。 当CPU读取一个数据后,此信号复位。,108,SYNDET:同步检测信号。 用于同步方式 内同步:SYNDET作为输出信号,8251A在已经检测完所设定的同步字符时,从该引脚输出高电平,以表明已达到同步
37、。 外同步:SYNDET作为输入信号,从SYNDET输入一正信号时,说明从RxD引脚进入的已是同步好的数据。,109,2)与外设或Modem的接口信号,DTR:数据终端准备好信号,输出,低电平有效。 8251A提供Modem的信号。 CPU通过写8251A的控制字,使D1位置“1”,引脚便输出有效电平。 DSR:数据装置准备好信号,输入,低电平有效。 Modem提供给8251A的,表示Modem已准备就绪。 CPU通过读状态字D7位,检测该信号是否有效。,110,RTS:请求发送信号,输出,低电平有效。 8251A提供给Modem的信号,8251A以此信号通知Modem要求发送数据。 CPU通
38、过写控制字使D5置“1”,使得引脚输出有效电平。 CTS:允许发送信号,输入,低电平的效。 Modem提供给8251A的信号,作为对8251A发出的信号的响应。当有效后,8251A才能够发送数据至Modem。 不使用Modem时,8251A的可自接或直接接地。,111,3)发送、接收及时钟信号,TxD:串行数据发送引脚。 将CPU送来的并行数据在该引脚上串行发送出去。 RxD:串行数据接收引脚。 8251A通过该引脚接收来自外设或Modem的串行数据。,112,TxC:发送时钟信号,输入。 控制8251A发送数据的传送速度。下降沿数据经由TxD端发送出去。 RxC:接收时钟信号,输入。 控制8
39、251A接收数据的传送速度。上沿从RxD端采样数据。 同步方式,时钟频率与波特率相同。 异步方式,时钟频率可为波特率的1/16/64倍。,113,3.8251A的编程 1)模式字、控制字和状态字,(1)模式字,114,(2)控制字,115,(3)状态字,116,2)初始化编程流程,8251A 模式字和控制字以及同步工作模式下的同步字符都是写入奇地址端口,输出控制字,117,异步模式下初始化程序举例 (设8251A的地址为42H和40H),MOV AL,0FAH OUT 42H,AL;送模式字 MOV AL,37H OUT 42H,AL;送控制字,3)8251A的编程举例,118,MOV AL,
40、38H OUT 42H,AL;送模式字 MOV AL,16H OUT 42H,AL OUT 42H ,AL MOV AL,97H OUT 42H,AL;送控制字,同步模式下初始化程序举例 (设8251A的地址为42H和40H),119,利用状态字进行编程的举例,MOV AL,0FAHOUT 42H,AL;送模式字MOV AL,37HOUT 42H,AL;送控制字MOV DI,0MOV CX,80 BEGIN: IN AL,42H;读取状态字TEST AL,02HJZ BEGININ AL,40HMOV BX,OFFSET BUFFERMOV BX+DI,AL,120,INC DIIN AL,4
41、2H ;读取状态字TEST AL,38HJNZ ERRORLOOP BEGINJMP EXIT ERROR: CALL ERR_OUTEXIT: ,121,4.8251A应用举例,用8251A实现16位微机与CRT的串行通信。,122,1)8251A的初始化程序段 INIT: XOR AX,AXMOV CX,3MOV DX,00DAH OUT1: CALL KKKLOOP OUT1 MOV AL,40HCALL KKK MOV AL,4EHCALL KKK ;送模式字MOV AL,27HCALL KKK ;送控制字,KKK: OUT DX,ALPUSH CXMOV CX,2 ABC: LOOP
42、 ABCPOP CXRET,123,CHAROUT: MOV DX,0DAH STATE: IN AL,DX ;读状态字TEST AL,01HJZ STATEMOV DX,0D8HPOP AXOUT DX,AL,2)向CRT输出一个字符的程序段,124,小结,8255A的内部结构、引脚信号及控制字 8255A的工作方式 8255A的典型应用 串行通信与并行通信的区别与特点,同步、异步通信的特点及数据帧的格式与波特率,理解单工、半双工、全双工通信和调制解调的含义。 8251A的基本工作原理、引脚信号及与外部的连接关系 8251A的编程:模式字、控制字和状态字;初始化编程流程;编程举例 8251的应用举例,