




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第6章 UART串行接口,教学目的:了解80C51系列单片机UART串行接口的结构、原理及应用;能够采用查询方式进行串行通信。 教学重点:1. UART串行接口的工作原理; 2. UART串行接口的4种工作方式的编程、应用。 教学难点:1 .多机通信方式 2. 波特率值的设置,61 串行通信概述,并行通信与串行通信 并行通信:所传送数据的各位同时发送或接收 。 串行通信:所传送数据的各位按顺序一位一位地发送或接收。,6.1.1 同步通信和异步通信方式 1 . 异步通信ASYNC 数据或字符是以固定的帧格式一帧(Frame)一帧地传送 ,从起始位、数据位到停止位就构成 完整的一帧,不同的 系统定
2、义有不同的帧格式。,图6-2 一种11位异步通信的帧格式,2 . 同步通信SYNC 用一同步字符来指示通信的开始(常约定12个),以实现发送端和接收端的同步 。 图6-3 一种同步通信的帧格式 6.1.2 串行通信的数据传送速率 在串行通信中数据传送速率的单位用波特率(Baud rate)表示,其意义是每秒钟传送多少位二进制数。,6.1.3 串行通信的方式 单工:只允许单方向传送,只需一条数据线。 半双工 :接收和发送分时双向进行,只需一条数据线。 全双工 :甲、乙两机之间数据的发送和接收可以同时 进行,通信必须使用二根数据线 。 图6-4 通信方式示意图 6.1.4 通信协议 计算机之间进行
3、数据传输时的一些约定,包括通信方式、帧格式、波特率、命令码的约定等 。,62 80C51串行口简介,6.2.1 串行口结构与工作原理 80C51的串行口是一个可编程的全双工串行通信接口,通过软件编程它可以做通用异步接收和发送器UART(Universal Asynchronous ReceiverTransmitter),也可做同步移位寄存器用。其帧格式可设置8位、10位或11位,并能设置不同的波特率 。,图 65 串行口结构框图,串行口组成:两个数据缓冲寄存器SBUF、一个输入移位寄存器、波特率发生器以及串行控制寄存器SCON等组成 。 串行口的接收发送操作:首先对串行口初始化。发送时CPU
4、写SBUF ,一方面修改发送寄存器,同时启动数据串行发送到TXD端,发送完毕后置标志位TI;接受时置允许接收位才开始接受操作,接受完毕置位RI,这时CPU可以读SBUF,即读接收到的数据。,发送操作:数据写入发送缓冲寄存器SBUF(99H),串行口即把数据以设定的波特率从TXD端送出(低位在前), 发送完后置中断标志TI=1。 MOV TMOD, #data MOV SBUF, #data JNB TI, $ CLR TI RET,接收操作:REN是串行口接收器允许接收控制位。当RI=0,软件置REN为1时,即开始从RXD端以设定的波特率输入数据(低位在前), 当接收到数据时,置中断标志RI=
5、1。,RECV: MOV TMOD,# data CLRRI SETBREN JNB RI, $ MOVA,SBUF CLR RI RET,6.2.2 串行口寄存器,1)串行口的接收发送缓冲区SBUF:是两个独立的物理空间,只能字节寻址。 2)串行口控制寄存器SCON :串行口工作方式的设置和数据传输的控制,可位寻址。,SM0、SM1:串行方式选择位,SM2:在方式2和方式3中主要用于多机通信控制。当串行口以方式2或方式3 接收时,若SM21,且接收到第9位RB8为0时,则RI不置“1”,不接收主机发来的数据;若SM21,且RB8为1时,RI置“1”,并将接收到的8位数据送SBUF。若SM20
6、时,则不论RB8为0还是为1,都将收到的8位数据送入SBUF中,并置RI为“1” 。,在方式1中,当处于接收时,若SM21,则只有收到有效的停止位时,RI才置1。 在方式0中,SM2应置0。 REN:允许串行接收位。由软件置位或清除。REN1时,允许接收;REN0时,禁止接收。 TB8:发送数据的第9位。在方式2或方式3中,根据需要由软件置位或复位。在多机通信中可作为区别地址帧或数据帧的标识位,一般约定地址帧时TB8为1,数据帧时TB8为0。双机通信时它可作奇偶校验位。 RB8:接收数据的第9位。在方式2或方式3中,双机通信是奇偶位,多机通信是地址数据标识位。 TI:发送中断标志位。发送完一帧
7、数据后由硬件置位,必须由软件来清除 。 RI:接收中断标志位。接受完一帧数据后由硬件置位,必须由软件来清除 。,3) 电源控制寄存器PCON PCON的最高位SMOD是串行口波特率倍增位。当SMOD1时,波特率加倍,复位时,SMOD0 。直接地址为87 H,不可位寻址。,6.2.3 80C51的帧格式,80C51串行口通过编程可设置4种工作方式,三种帧格式。 方式0以8位数据为一帧,不设起始位和停止位,先发送或接收最低位。 方式1以10位为一帧传输,设有一个起始位“0”,8个数据位和一个停止位“1”。 方式2和3以11位为一帧传输,设有1个起始位“0”,8个数据位,1个可编程位(第九数据位)D
8、8和1个停止位“1”。,6.2.4 波特率的设置,1)方式0和方式2的波特率 在方式0时,每个机器周期发送或接收一位数据,因此波特率固定为时钟频率的112 。 方式2的波特率,2) 方式1和方式3的波特率,方式l和方式3的波特率由定时器T1的溢出率与SMOD值决定 方式1和方式3的波特率 T1溢出率,定时器T1作波特率发生器使用时,通常是选用自动重装载方式,即方式2。在方式2中,TL1作计数用,而自动重装载的值放在TH1内,设计数初值为X,那么每过256-X个机器周期,定时器1就会产生一次溢出。为了避免因溢出而产生不必要的中断,此时应禁止T1中断。,波特率为溢出周期之倒数,所以,(2),(1)
9、,溢出周期为:,63 串行通信工作方式,6.3.1 方式0 用作同步移位寄存器,以8位数据为一帧,发送/接收低位在先,数据由RXD(P3.0)端输入或输出,同步移位脉冲由TXD(P3.l)端送出,波特率固定为 fosc12。这种方式常用于扩展IO 口。,6.3.2 方式1 串行口为10位通用异步接口。数据帧格式为l位起始位“0”,8位数据位和1位停止位“1” 。波特率由指令设置,T1溢出率决定。 发送操作:当数据写入发送缓冲器SBUF时,就启动发送器发送数据从引脚TXD端输出。当发送完一帧数据后,TI标志=1,并申请中断,通知CPU可以发送下一个数据。 接收操作:当RI=0,软件置REN为1时
10、,串行口采样RXD,确认串行数据的起始位后开始接收一帧数据,直到停止位的到来。若SM2初始清零,则接收到停止位后硬件置RI=1,可以从SBUF中读取接收数据;若SM2初始置1,则只有接收到有效停止位后硬件置RI=1。,6.3.3 方式2和方式3 11位异步通信接口。发送或接收一帧信息包括l位起始位“0” 、8位数据位、1位可编程位TB8/RB8和1位停止位“1”。 方式2波特率与SMOD有关,方式3波特率取决于T1溢出率。 发送操作:发送前,先根据通信协议由软件设置TB8(如作奇偶校验位或地址数据标识位),然后执行任何一条以SBUF作为目的寄存器的写指令即启动发送器,同时TB8自动装到发送移位
11、寄存器的第9位位置上 ,从TXD端输出一帧数据 ,发送完毕,TI标志=1。 多机通信中,TB8=1为地址帧; TB8=0为数据帧。,接收操作:先置位REN为1,使串行口处于允许接收状态,同时还要将RI清0。在满足这个条件的前提下,再根据SM2的状态和所接收到的RB8的状态决定是否会使RI置1,并申请中断,接收数据。 当SM20时,不管RB8为0还是为1,RI都置1,此串行口将接收发来的信息。 当SM21,且RB8为l时,表示在多机通信情况下,接收的信息为地址帧,此时RI置1。串行口将接收发来的地址。 当SM21,且RB8为0时,表示接收的信息为数据帧,但不是发给本从机的,此时RI不置1,因而S
12、BUF中所接收的数据帧将丢失。,6.3.4 多机通信,64 串行口应用举例 例1、用并行输入8位移位寄存器74HC165扩展8位并行输入口。编程实现从8位扩展口读入10个字节数据,并把它们转存到内部RAM的60H69H中。 解:在此采用74HC165与单片机相接实现I/O口扩展,单片机与74HC165的具体接线图见图6-7。,图6-7 利用串行口扩展输入接口,按题意编程如下: MOV R7,10 ;设置读入字节数 MOV R0,60H ;设片内RAM指针 RCV0: CLR P10 ;允许并行置入数据 SETB P10 ;允许串行移位 MOV SCON,10H ;设串行口方式0 并启动接收 J
13、NB RI, ;等待接收一帧数据 CLR RI ;清接收中断标志 MOV A,SBUF ;取缓冲器数据 MOV R0,A ;保存数据 INC R0 DJNZ R7,RCV0 ;判是否已读入预定的字节数 ;对读入数据进行处理,例2用两片8位串入并出移位寄存器74HC164扩展16位输出接口。图6-8是利用74HC164(也可选用其他同样功能的CMOS器件)扩展的16位发光二极管接口电路。编程使这16个发光二极管交替为间隔点亮状态,循环交替时间为2秒钟。,图6-8 利用串行口扩展输出接口,按题意编程如下: ST: MOV SCON,00H ;设串行口方式0 MOV A,55H;二极管间隔点亮初值
14、LP2:MOV R0,2 ;输出口字节数 CLR P1.0 ;对74HC164清零,熄灭发光二极管 SETB P1.0 ;允许数据串行移位 LP1: MOV SBUF,A ;启动串行口发送 JNB TI, ;等待一帧发送结束 CLR TI ;清串行口发送中断标志 DJNZ R0,LP1;判预定字节数发送完否 LCALL DEL2s;调延时2s子程序(略) CPL A ;交替点亮二极管 SJMP LP2;循环显示,例3、由AT89S51作为甲机和乙机的双机异步通信的连接线路见图6-9。已知fOSC 11.0592MHz,采用定时器1方式2作波特率发生器,波特率要求为2400,则定时器初始预置值T
15、H1TL10F4H 。 编程把甲机片内RAM 40H4FH单元中的数据块从串行口输出到乙机,并存入乙机片外300H30FH单元。接收过程中要求判奇偶校验标志RB8。若出错置F0标志为1;若正确置F0标志为0,然后返回,要求采用工作方式3发送和接收。,解:根据波特率计算T1的时间常数,T1工作在方式2。 设SMOD=0,已知波特率2400,由(2)式计算出T1的时间常数 X=F4H,甲机发送子程序 SENT: MOV TMOD,20H ;设置定时器1为方式2 MOV TL1,0E8H ;设预置值 MOV TH1,0E8H SETB TR1 ;启动定时器1 MOV SCON,0C0H ;设置串行口
16、为方式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 ;返回,乙机接收子程序 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,$ ;判一帧
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度互联网项目居间服务协议
- 2025版综合性代理注销公司协议范本
- 2025版房屋质押房地产经纪代理合同样本
- 2025版绿色循环利用粉煤灰炉渣采购销售合同
- 二零二五年度房地产项目二手房交易合同范本
- 2025版白酒行业品牌保护与侵权纠纷处理合同
- 2025版高标准农田承包土地种植项目合同
- 二零二五年公寓购房合同贷款政策与还款方案
- 2025版文化创意产业博览会现场搭建及咨询服务合同
- 二零二五年度木材销售代理合同模板
- 2025公务员行政测试题及答案
- 信息安全知识培训课件
- 电池UL1642安全标准解读
- 2025年四川省投资集团有限责任公司招聘笔试备考题库含答案详解
- 2025奢侈品皮具买卖合同
- 变电站防恐课件
- 2025室内设计私人定制合同全面详细版
- 与欧美网红合作合同范本
- 2025年广东省中考数学试卷(含解析)
- 2025湖南非全日制用工劳动合同范本2
- 互操作性标准-第1篇-洞察及研究
评论
0/150
提交评论