8251复习资料.doc_第1页
8251复习资料.doc_第2页
8251复习资料.doc_第3页
8251复习资料.doc_第4页
8251复习资料.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

8251A 是通用同步异步接收发送器,具有独立的发送器和接收器,能以单工、半双工和全双工三种方式通信,可用同步和异步方式传输信息。通过初始化编程设置串行通信接口芯片的工作方式、波特因子、数据帧格式及8251A的工作状态。1)与CPU连接信号D0D7(数据线):接至系统的D7D0,用于传数据、控制和状态信息。RD、WR(读写控制):接至IOR、IOW,控制 CPU与 I/O端口间的数据、命令和状态信息的写入与读出。CS:(片选信号):可接至系统的片选译码器 CS=0,CPU可读写8251.C/D(地址线):可接系统的A0。 =1:CPU 访问命令寄存器或状态寄存器 =0:CPU访问数据寄存器(2)状态信号:供CPU查询或向CPU申请。TxRDY:发送器准备好。=1表示发送器已准备好,通知CPU可以向8251发送数据。CPU写入一个发送字符后, TxRDY=0TxRDY可用于查询的条件,CPU可从状态字的D0位读出,判断后可决定是否向8251写入发送字符。TxRDY也可以用作中断请求信号,=1表示请求CPU向8251写入发送的数据。RxRDY:接收器准备好,=1表示 8251A已从它的串行输入端接受了一个字符,通知CPU取走。CPU取走接收的字符后RxRDY=0。RxRDY可用于查询的条件,CPU可从状态字的D1位读出,判断后可决定是否读8251接收的字符。RxRDY也可以用作中断请求信号,=1表示请求CPU读出8251接收的数据。TxE:发送器空,=1指示发生器中的数据已经发送,在半双工方式时可用于数据传送方向的切换控制,SYNDET:同步字符检出/间断信号检出BD。同步方式设为内同步:输出,表示8251检出了同步字符。同步方式设为外同步:输入,表示外部检出同步字符后通知8251。异步方式时当8251检出间断信号BD后,输出为1.3)时钟信号TxC:发送器时钟,由外部波特率时钟发生器提供。RxC:接收时钟,由外部波特率时钟发生器提供。 TxC、RxC用于控制8251的异步通信过程。 收发时钟的频率=K波特率CLK:工作时钟,由外部提供。 在同步方式下,CLKTxC、RxC 30倍 异步下为45倍。(4)面向调制解调器信号DTR:数据终端准备好输出,CPU写8251命令寄存器D1=1,反向后DTR=0DCE,表示8251A准备好。DSR:数据装置准备好,DCE就绪后置DSR=0,反向后8251状态寄存器D7=1.CPU读取后可知DCE(调制解调器)已准备好RTS:请求发送,CPU需要发送时,可设置工作命令寄存器的D5=1,反向后RTS=0 DCE(MODEM),表示8251A需要发送。 CTS:允许传送,是DCE(MODEM)对8251A RTS信号的响应 , CTS=0表示8251A可以发送数据。TxD:发送数据线RxD:接收数据线(1)数据总线缓冲器:负责与系统总线D7D0连接,可以传送CPU写8251的方式字和命令字,也可以传送8251的状态到CPU。(2)发送器:将待发送的并行数据转换成所要求的帧格式并加上校验位,然后在TxC的作用下,由TxD引脚一位一位地串行发送出去。发送一帧后,TxRDY=1,通知CPU发下一个数据。(3)接收器:在接收时钟RxC作用下接收RxD引脚上的帧格式化串行数据并把转换为并行数据。同时将检错信息存于状态寄存器,供CPU处理。若无错时,将并行数据存入数据缓冲器,RxRDY=1,通知CPU取数。D1D0:设置8251的同步方式。 =00 8251为同步方式。 00 8251为异步方式,在异步方式时:D1D0=01设置K=1 D1D0=10 设置K=16 D1D0=11设置K=64D3D2:设定字符中的数据位数。D3D2=00 数据为5位, D3D2=01 数据为6位D3D2=10 数据为7位, D3D2=11 数据为8位D4:设置是否要用奇偶校验位。D5:设置要用奇或偶校验。D4=0 不用奇偶校验位(此时D5无效)D4=1 要用奇偶校验位,D5=0 为奇校验 D5=1 为偶校验D7D6:在同步方式时用于同步字符方式的设置。D7D6=0 8251设为内同步D7D6=1 8251设为外同步D7D6=0 8251设为双同步字符方式D7D6=1 8251设为单同步字符方式在异步方式时用于停止位方式的设置。D7D6=00 无效D7D6=01 设为1位停止位D7D6=10 设为1.5位停止位D7D6=11 设为2位停止位例:在某异步通信中,数据格式采用8位数据位,1位起始位,2位停止位,偶校验,波特因子为 64,端口地址为 210H和211H,将方式命令字写入端口中。程序为:MOV AL , 11111111B MOV DX , 211H OUT DX , AL例:允许8251A的发送器和接收器工作,并实现差错复位的功能。 写出8251A的工作命令字D0:设置允许发送TXEN。 D0=1 允许8251做发送操作。 D0=0 禁止8251做发送操作。相当于发送中断的屏蔽。D1:数据终端准备就绪DTR. CPU设8251的D1=1反向=0 引脚DTR=0 MODEM,表示DTE就绪。D2:设置允许接收RXE。 D2=1 允许8251做接收操作。 D2=0 禁止8251做接收操作。相当于接收中断的屏蔽D3:设置是否发送中止字符SBRK.D3=1要发送中止字符,强迫TXD为低电平,输出连续的空号(0)。D3=0不发送中止字符,出现空闲时TXD输出连续的传号(1)。D4:设置错误标志复位ER。D4=1设置错误标志复位ER有效,清除出错标志(PE/OE/FE)复位,在每次接收之前需要设置为清除,以便识别新的出错情况。D5:设置请求发送RTS.CPU设8251的D5=1反向=0 引脚RTS=0 MODEM,表示请求发送。D6:设置内部复位命令IR。CPU设8251的D6=1,8251进入内部复位状态,清除原先设置的通信方式,等待CPU重新初始化,D6=1后必须对8251重新做初始化。D6=0,该字为正常通信的命令字。D7:在同步方式时启动搜索同步字符。例:设置对8251做内部复位,设端口地址为308H(数据口)、309H(控制口)程序为:MOV DX , 309H MOV AL ,01000000B ; D6=1 OUT DX , AL例:检查8251A是否接收到一个字符,若接收到,存于BL寄存器。 写出完成上述功能的程序段(210H、211H)D0(TXRDY):发送器准备好状态。当发送器空的时候,D0=1,CPU在查询方式时可以通过查询D0的状态决定是否可以发送数据。D0与引脚TXRDY功能相同,但产生的条件稍微有点不同。引脚TXRDY可用作中断请求信号,=1表示请求CPU向8251写入需要发送的数据。D1(RXRDY):接收器准备好,=1表示 8251A已从它的串行输入端接受了一个字符,RxRDY可用于查询的条件,CPU可从状态字的D1位读出,判断后可决定是否读8251接收的字符。D1与引脚RxRDY功能相同,但引脚用作中断请求信号,=1表示请求CPU读出8251接收的数据。D2(TXE):发送器空状态,与引脚功能相同。D3(PE):奇偶校验错状态。 当8251接收的通信字符出现丢1时,D3=1.D4(OE):溢出错状态。 当8251接收了通信字符而上一次接收的数据CPU还没有取走,出现覆盖错时出现D4=1。D5(FE):帧错状态。 当8251接收的通信字符出现无停止位1时,D5=1。 D5D4D3的出错状态在8251接收前必须用命令字D4=1清除,在8251接收后CPU可读取D5D4D3的出错状态,发现有错时需要做相应的处理。D6(SYNDET):8251工作在同步方式时,当检出同步字符后,D6=1,可供CPU检测。D7(DSR):DCE就绪状态。DCE就绪后置8051引脚DSR=0,反向后8251状态寄存器D7=1.CPU读取后可知DCE(调制解调器)已准备好。例:检查8251A是否接收到一个字符,若接收到, 存于BL寄存器。写出完成上述功能的程序段SCAN: IN AL ,211H TEST AL ,02H JZ SCAN IN AL , 210H MOV BL ,AL例:CPU检测TXRDY是否为1. L: MOV DX , 309H ; 指向状态口 IN AL , DX ;读状态字 TEST AL , 00000001B ;测D0 JZ L ; D0=0,转L继续测 .; D0=1,发送器准备好例:在接收程序中检查出错信息。 L: MOV DX , 309H ; 指向状态口 IN AL , DX ;读状态字 TEST AL , 00111000B ;测D5 D4 D3 JNZ ERROR ; D5D4D3 0,转出错处理 .; D5 D4 D3 =0,无错8251A初始化编程步骤:1)向控制口写入40H,使芯片内部复位;(2)向控制口写入方式命令字,设工作方式、波特因子和帧数据结构;(3)向控制口写入工作命令字。(4)读取8251状态,与命令字结合控制数据收发。(查询方式上图所示电路利用8251实现CPU与 I/O 的操作,下面程序完成的功能是:连续地从RS-232C接口读取串行字符,将接收的字符取反,然后将其送回RS-232C接口。接收和发送的每个字符的长度为8位,使用2个停止位,无奇偶校验。INT8251: MOV AL , 01000000 ;写工作命令字 MOV DX, 211H OUT DX , AL;复位 MOV AL , 11001110 ;写方式命令字 OUT DX, AL; 2个停止位,8数据,K=16 MOV AL,00010101 ;写工作命令字 OUT DX,AL; CHRRX: IN AL , DX ;检查是否接收到一个字符 ROR AL , 1 ROR AL , 1;RXRDYCF JNC CHKRX; RXRDY=0 未收到,转CHKRXMOV DX,210H ;RXRDY=1 已收到,数据口 IN AL , DX ;读接收的数据 NOT AL ;把接收到的字符求反 MOV BL , AL ;暂存CHKTX: MOV DX,211H ;指向控制口 IN AL , DX ;检查是否能发送字符 ROR AL , 1 ; TXRDYCF JNC CHKTX ; TXRDY=0,不能发送返回 MOV AL , BL ; TXRDY=1发送已求反的字符 MOV DX,210H OUT DX, AL ;发送的字符送数据口 JMP CHKRX1)要求甲发乙收,2DH个字节,异步方式,8位数据位,2位停止位,无校验,波特因子64,查询方式,零MODEM连接,甲机首址SRC,乙机首址DST,8251A地址308H、309H(2)硬件连接(3)软件编程甲、乙机方式命令:0CFH =11001111 2个停止位,不校验,8个数据位,K=64甲机发送工作命令:23H=00100011RTS=1(请求发送)DTR=1(DTE就绪)TXEN=1(发送允许)乙机接收工作命令:16H=00010110ER=1(复位出错标志)RXE=1(允许接收) DTR=1(DTE就绪)(甲机发送程序段)MOV DX,309H MOV AL,01H ;空操作OUT DX,AL MOV AL,40H 内部复位OUT DX,AL MOV AL,0CFH ;方式命令OUT DX,AL MOV AL,23H 工作命令OUT DX,AL LEA SI,SRC ;指向发送缓冲区 MOV CX,2DH ;数据个数L:MOV DX,309H ;指向控制口 IN AL,DX ;读状态字 AND AL,01H ;测TxRDY JZ L ; TxRDY=0,返回等待 MOV DX,308H ;TxRDY=1,发送,指向数据口 MOV AL,SI;取发送数据 OUT DX,AL;送数据口输出 INC SI ;指向下一单元 LOOP L ;循环 ;发送完毕;以下为乙机接收程序段 MOV DX,309H ;指向控制口 MOV AL,01H ;空操作 OUT DX,AL MOV AL,40H ;内部复位 OUT DX,AL MOV AL,0CFH ;写入方式命令 OUT DX,AL MOV AL,16H;写入工作命令字 OUT DX,AL LEA DI,DST ;指向接收缓冲区 MOV CX,2DH ;数据个数 L:MOV DX,309H ;控制口 IN AL,DX ;读状态字 TEST AL,38H;测出错标志 JNZ ERR ;出错,转错误处理 AND AL,02H ;测RxRDY JNZ L ;RxRDY=0,未收到字符,等待 MOV DX,308H ; RxRDY=1指向数据口 IN AL,DX ;接收 MOV DI,AL ;存入输入缓冲区 INC DI ;指向下一单元 LOOP L ;循环;接收完毕START: MOV AX,DATA MOV DS,AX MOV DX,20BH ; MOV AL,96H OUT DX,AL ( 设置8253计数器2工作方式,计数器0工作在方式3, 只写计数初始值低8位,二进制计数。MOV DX , 20AH ;( MOV AL , 52 ;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论