第7章串行0608.ppt

上传人:hyn****60 文档编号:70969687 上传时间:2023-01-31 格式:PPT 页数:30 大小:344.50KB
返回 下载 相关 举报
第7章串行0608.ppt_第1页
第1页 / 共30页
第7章串行0608.ppt_第2页
第2页 / 共30页
点击查看更多>>
资源描述

《第7章串行0608.ppt》由会员分享,可在线阅读,更多相关《第7章串行0608.ppt(30页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第第7 7章章 UARTUART串行接口串行接口 教学目的:了解80C51系列单片机UART串行接口的结构、原理及应用;能够采用查询方式进行串行通信。教学重点:1.UART串行接口的工作原理;2.UART串行接口的4种工作方式的编程、应用。教学难点:1.多机通信方式2.波特率值的设置71 串行通信概述图7-1基本通信方式图示并行通信与串行通信并行通信:所传送数据的各位同时发送或接收。串行通信:所传送数据的各位按顺序一位一位地发送或接收。7.1.1 同步通信和异步通信方式 1.异步通信ASYNC l 数据或字符是以固定的帧格式一帧(Frame)一帧地传送,从起始位、数据位到停止位就构成 完整的一

2、帧,不同的 系统定义有不同的帧格式。2.同步通信SYNC 用一同步字符来指示通信的开始(常约定12个),以实现发送端和接收端的同步。7.1.2 串行通信的数据传送速率 在串行通信中数据传送速率的单位用波特率(Baud rate)表示,其意义是每秒钟传送多少位二进制数。7.1.3 7.1.3 串行通信的方式串行通信的方式单单工:只允许单方向传送,只需一条数据线。半双工:接收和发送分时双向进行,只需一条数据线。l全双工:甲、乙两机之间数据的发送和接收可以同时 进行,通信必须使用二根数据线。l 图7-2 通信方式示意图 7.1.4 通信协议计算机之间进行数据传输时的一些约定,包括通信方式、帧格式、波

3、特率、命令码的约定等。72 80C51串行口简介 7.2.1 7.2.1 串行口结构与工作原理串行口结构与工作原理80C51的串行口是一个可编程的全双工串行通信接口,通过软件编程它可以做通用异步接收和发送器UART(Universal Asynchronous ReceiverTransmitter),也可做同步移位寄存器用。其帧格式可设置8位、10位或11位,并能设置不同的波特率。图 73 串行口结构框图 串行口组成:两个数据缓冲寄存器SBUF、一个输入移位寄存器、波特率发生器以及串行控制寄存器SCON等组成。l串行口的接收发送操作:首先对串行口初始化。发送时CPU写SBUF,一方面修改发送

4、寄存器,同时启动数据串行发送到TXD端,发送完毕后置标志位TI;接受时置允许接收位才开始接受操作,接受完毕置位RI,这时CPU可以读SBUF,即读接收到的数据。l发送操作:数据写入发送缓冲寄存器SBUF(99H),串行口即把8位数据以fosc 12 波特率从RXD端送出(低位在前),TXD端送出同步移位脉冲,发送完后置中断标志TI=1。l MOV TMOD,#00Hl MOV SBUF,#datal JNB TI,$l CLR TIl RETl接收操作:REN是串行口接收器允许接收控制位。当RI=0,软件置REN为1时,即开始从RXD端以lfosc 12波特率输入数据(低位在前),TXD端送出

5、同步移位脉冲,当接收到8位数据时,置中断标志RI=1。RECV:MOV TMOD,#00H CLRRI SETBREN JNB RI,$MOVA,SBUF CLR RI RET7.2.2 7.2.2 串行口寄存器串行口寄存器1.串行口的接收发送缓冲区SBUF:是两个独立的物理空间,只能字节寻址。2.串行口控制寄存器SCON:串行口工作方式的设置和数据传输的控制,可位寻址。lSM0、SM1:串行方式选择位 SM0 SM1 工作方式 功能 波特率 0 0 0 1 1 0 1 1 方式0方式1方式2方式3 8位同步移位寄存器10位UART11位UART11位UART fosc/12可设置fosc/6

6、4和fosc/32可设置lSM2:在方式2和方式3中主要用于多机通信控制。当串行口以方式2或方式3 接收时,若SM21,且接收到第9位RB8为0时,则RI不置“1”,不接受主机发来的数据;若SM21,且RB8为1时,RI置“1”,并将接受到的8位数据送SBUF。若SM20时,则不论RB8为0还是为1,都将收到的8位数据送入SBUF中,并置RI为“1”。SM0SM1SM2RENTB8RB8TIRI在方式1中,当处于接收时,若SM21,则只有收到有效的停止位时,RI才置1。在方式0中,SM2应置0。lREN:允许串行接收位。由软件置位或清除。REN1时,允许接收;REN0时,禁止接收。lTB8:发

7、送数据的第9位。在方式2或方式3中,根据需要由软件置位或复位。在多机通信中可作为区别地址帧或数据帧的标识位,一般约定地址帧时TB8为1,数据帧时TB8为0。双机通信时它可作奇偶校验位。lRB8:接收数据的第9位。在方式2或方式3中,双机通信是奇偶位,多机通信是地址数据标识位。lTI:发送中断标志位。发送完一帧数据后由硬件置位,必须由软件来清除。lRI:接收中断标志位。接受完一帧数据后由硬件置位,必须由软件来清除。3.电源控制寄存器PCON PCON的最高位SMOD是串行口波特率倍增位。当SMOD1时,波特率加倍,复位时,SMOD0。直接地址为87 H,不可位寻址。SMOD7.2.3 80C51

8、7.2.3 80C517.2.3 80C517.2.3 80C51的帧格式的帧格式的帧格式的帧格式l80C51串行口通过编程可设置4种工作方式,三种帧格式。方式0以8位数据为一帧,不设起始位和停止位,先发送或接收最低位。l 方式1以10位为一帧传输,设有一个起始位“0”,8个数据位和一个停止位“1”。l 方式2和3以11位为一帧传输,设有1个起始位“0”,8个数据位,1个可编程位(第九数据位)D8和1个停止位“1”。7 72 24 4 波特率的设置波特率的设置 l1方式0和方式2的波特率l 在方式0时,每个机器周期发送或接收一位数据,因此波特率固定为时钟频率的 112。l方式2的波特率 2.2

9、.方式方式1 1和方式和方式3 3的波特率的波特率l方式l和方式3的波特率由定时器T1的溢出率与SMOD值决定 l 方式1和方式3的波特率 T1溢出率 定时器T1作波特率发生器使用时,通常是选用自动重装载方式,即方式2。在方式2中,TL1作计数用,而自动重装载的值放在TH1内,设计数初值为X,那么每过256-X个机器周期,定时器1就会产生一次溢出。为了避免因溢出而产生不必要的中断,此时应禁止T1中断。波特率为溢出周期之倒数,所以 (2)(1)溢出周期为:73 串行通信工作方式 l7.3.1 方式0l用作同步移位寄存器,以8位数据为一帧,发送/接收低位在先,数据由RXD(P3.0)端输入或输出,

10、同步移位脉冲由TXD(P3.l)端送出,波特率固定为 fosc12。这种方式常用于扩展IO 口。2.方式1l串行口为10位通用异步接口。数据帧格式为l位起始位“0”,8位数据位和1位停止位“1”。波特率由指令设置,T1溢出率决定。l发送操作:当数据写入发送缓冲器SBUF时,就启动发送器发送数据从引脚TXD端输出。当发送完一帧数据后,TI标志=1,并申请中断,通知CPU可以发送下一个数据。l接收操作:当RI=0,软件置REN为1时,串行口采样RXD,确认串行数据的起始位后开始接收一帧数据,直到停止位的到来。若SM2初始清零,则接收到停止位后硬件置RI=1,可以从SBUF中读取接收数据;若SM2初

11、始置1,则只有接收到有效停止位后硬件置RI=1。l 3.方式2和方式3 11位异步通信接口。发送或接收一帧信息包括l位起始位“0”、8位数据位、1位可编程位TB8/RB8和1位停止位“1”。方式2波特率与SMOD有关,方式3波特率取决于T1溢出率。l发送操作:发送前,先根据通信协议由软件设置TB8(如作奇偶校验位或地址数据标识位),然后执行任何一条以SBUF作为目的寄存器的写指令即启动发送器,同时TB8自动装到发送移位寄存器的第9位位置上,从TXD端输出一帧数据,发送完毕,TI标志=1。多机通信中,TB8=1为地址帧;TB8=0为数据帧。l接收操作:先置位REN为1,使串行口处于允许接收状态,

12、同时还要将RI清0。在满足这个条件的前提下,再根据SM2的状态和所接收到的RB8的状态决定是否会使RI置1,并申请中断,接收数据。当SM20时,不管RB8为0还是为1,RI都置1,此串行口将接收发来的信息。当SM21,且RB8为l时,表示在多机通信情况下,接收的信息为地址帧,此时RI置1。串行口将接收发来的地址。当SM21,且RB8为0时,表示接收的信息为数据帧,但不是发给本从机的,此时RI不置1,因而SBUF中所接收的数据帧将丢失。7.3.4 7.3.4 多机通信多机通信 图7-4多机通信连接图74 串行口应用举例 l例1、用两片8位串入并出移位寄存器74HC164扩展16位输出接口。l图7

13、-6是利用74HC164扩展的16位发光二极管接口电路。编程使这16个发光二极管交替为间隔点亮状态,循环交替时间为2秒钟。解:图7-6 利用串行口扩展输出接口l按题意编程如下:lST:MOV SCON,00H ;设串行口方式0 l MOV A,55H ;二极管间隔点亮初值lLP2:MOV R0,2 ;输出口字节数l CLR P1.0 ;对74HC164清零,熄灭所有发光 二极管l SETB P1.0 ;允许数据串行移位lLP1:MOV SBUF,A ;启动串行口发送 l JNB TI,;等待一帧发送结束l CLR TI ;清串行口发送中断标志l DJNZ R0,LP1;判预定字节数送完否l L

14、CALL DEL2s;调延时2s子程序(略)l CPL A ;交替点亮二极管 SJMP LP2;循环显示例2、双机异步通信。编程把甲机片内RAM 50H5FH单元中的数据块通过串行口送到乙机片外扩展RAM 3000H300FH单元。异步通信协议:采用工作方式3收发,TB8/RB8作奇偶校验位,波特率1200,双机时钟fosc 11.0592MHz,若乙机接收错误,置标志位F0=1。解:根据波特率计算T1的时间常数,T1工作在方式2。设SMOD=0,已知波特率1200,由(2)式计算出T1的时常数 X=232=E8H 甲机发送子程序SENT:MOV TMOD,20H ;设置定时器1为方式2 MO

15、V TL1,0E8H ;设预置值 MOV TH1,0E8H SETB TR1 ;启动定时器1 MOV SCON,0C0H ;设置串行口为方式3 MOV PCON,00H ;SMOD0 MOV R0,50H ;设数据块指针 MOV R7,l0H ;设数据长度10H TRS:MOV A,R0 ;取数据送A MOV C,P MOV TB8,C ;奇偶位P送TB8 MOV SBUF,A ;数据送SBUF,启动 发送WAIT:JNB TI,$;判 一 帧 是 否 发 送 完 CLR TI INC R0 ;更 新 数 据 单 元 DJNZ R7,TRS ;循 环 发 送 至 结 束 RET ;返回乙机接收

16、子程序RECV:MOV TMOD,20H ;设置定时器 1为方式2 MOV TL1,0E8H ;设预置值 MOV TH1,0E8H SETB TR1 ;启动定时器1 MOV SCON,0C0H ;设置串行口为方式3 MOV PCON,00H ;SMOD0 MOV DPTR,3000H ;设置数据块指针 MOV R7,10H ;设数据块长度 SETB REN ;允许接受 WAIT:JNB RI,$;判一帧是否接受完 CLR RI MOV A,SBUF ;读入一帧数据 JNB PSW.0,PZ ;奇偶位P为0则转 JNB RB8,ERR ;P1,RB80则出错 SJMP YES ;二者全为1则正确 PZ:JB RB8,ERR ;P0,RB81则出错YES:MOVX DPTR,A ;正确,存放数据 INC DPTR ;修改地址指针 DJNZ R7,WAIT ;判数据块接收完否 CLR PSW.5 ;接收正确,且接收完清F0标志 RET ;返回ERR:SETB PSW.5 ;出错置F0标志为1 RET ;返回CLR RIMOV A,#74HCJNE A,70H,DA2SETB B.0DA2:POP AMOV R0,APOP APOP DPHPOP DPLRETI

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com