第9章 串口通信.doc

上传人:hs****ma 文档编号:554878876 上传时间:2023-08-19 格式:DOC 页数:22 大小:1.67MB
返回 下载 相关 举报
第9章 串口通信.doc_第1页
第1页 / 共22页
第9章 串口通信.doc_第2页
第2页 / 共22页
第9章 串口通信.doc_第3页
第3页 / 共22页
第9章 串口通信.doc_第4页
第4页 / 共22页
第9章 串口通信.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《第9章 串口通信.doc》由会员分享,可在线阅读,更多相关《第9章 串口通信.doc(22页珍藏版)》请在金锄头文库上搜索。

1、第9章 串口通信9.1概述单片机与外界进行信息交换,称为通信。通信有并行通信和串行通信两种基本方式。并行通信是多位数据同时被发送或接收,如图9-1(a)所示;串行通信则是数据逐位依次被发送或接收,如图9-1(b)所示。并行通信和串行通信各有其优缺点,具体如表9-1所列。 (a)并行通信 (b)串行通信图9-1 通信方式表9-1 并行通信和串行通信的特点通信方式优点缺点并行通信多位数据同时传输,传送速度快线路位数多,不便长距离传送串行通信适合长距离通信,节省传输线路,有一定的纠错能力多位数据逐位依次传输,传送速度较慢9.1.1串行通信串行通信适合长距离、节省传输线、有纠错能力的突出优点,使其逐渐

2、成为单片机与其它系统通信的主要方式。串行通信又细分为异步通信和同步通信,单片机主要采用异步通信方式。1、异步通信异步通信数据按帧传输,一帧数据包含起始位、数据位、校验位和停止位。异步通信凭借传输信息中设置的起始位、停止位来保持通信同步。异步通信对硬件要求不高,容易实现且灵活,适用于数据的随机发送/接收,但因传送一个字节的数据就要建立一次同步,加上起始位、校验位和停止位,使得工作速度相对较低。2、同步通信同步通信传输的信息,是由12个同步字符和多字节数据位组成。同步字符用于保持通信同步并作为起始位,用以触发同步时钟开始发送或接收数据;多字节数据之间不能有空隙,每位占用的时间相等。同步通信传输速度

3、快,但需要准确的时钟来实现收发双方的严格同步,硬件要求高,多用于批量数据传送。9.1.2串行通信的制式串行通信按照数据传送方向的不同,有三种传输方式:1、单工制式单工传输,是指通信双方传输信息时,只能从发送方单方向传送数据给接收方,如图9-2所示。 图9-2 单工通信2、半双工制式半双工传输,是指通信双方都有接收器和发送器,都能够进行数据的发送和接收,但不能在同一时刻接收和发送数据,即发送时不能接收,接收时不能发送。如图9-3所示。图9-3 半双工通信3、全双工制式全双工传输,是指通信双方均设有发送器和接收器,通信信道相互独立,既有发送信道又有接收信道。因此,全双工传输可实现通信双方数据的同时

4、发送和接收,即发送时可以接收,接收时也可以发送。如图9-4所示。图9-4 全双工通信51单片机内部的串行接口是全双工的,即它能同时发送和接收数据。发送缓冲器只能写入而不能读出,接收缓冲器只能读出而不能写入。串行口还具有接收缓冲功能,即从接收缓冲器中读出前一个已收到的字节数据之前,就可以开始接收第二字节数据了。串行口的内部结构如图9-5所示。图9-5 串行口结构示意图单片机知识:串口缓冲器SBUF串口缓冲器SBUF,是在物理上彼此独立的两个缓冲器:一个是接收缓冲器,用于存放接收到的数据;另一个是发送缓冲器,用于存放待发送的数据。所以,数据的发送和接收可以同时进行。两个缓冲器共用一个地址99H,通

5、过对SBUF的读、写语句,可以区分当前进行的操作是针对接收缓冲器还是发送缓冲器:如果CPU在写SBUF,操作的对象就是发送缓冲器;而CPU在读SBUF时,操作的对象就是接收缓冲器了。例如:SBUF=sendi; / 发送第i个数据bufferi=SBUF; /接收数据9.2 单片机间的串口通信功能说明:单片机a与单片机b,通过串行口进行通信。a机发送数据,b机接收a机发送的数据,并进行相应处理。按键K1每按下一次,连接在b机P2.0引脚的蜂鸣器就报警鸣响一次,同时,连接在b机P2.7引脚的发光二极管D1闪烁一次。按键K2按下一次,连接在b机P2.0引脚的蜂鸣器报警鸣响两次,同时,连接在b机P2

6、.7引脚的发光二极管D1闪烁两次。硬件说明:1、 硬件电路连接如图9-6所示,单片机a的P3.1引脚(TXD),连接到单片机b的P3.0引脚(RXD)。2、按键K1和K2分别连接到单片机a的P1.0和P1.1引脚; 图9-6 双机串口通信硬件连接图程序清单如下:/双机串口通信,a机发送数据程序#include #define uchar unsigned charsbit k1=P10;sbit k2=P11;uchar i=0;/*void delay(uchar i)/延时子函数 uchar j,k; for(k=0;ki;k+) for(j=0;j110;j+);/*main()/主函数

7、 TMOD=0x20;/定时器1工作于方式2 TL1=0xf4;/波特率为2400b/s TH1=0xf4; TR1=1; SCON=0x50;/设置串行口工作在方式1,允许接收 while(1) if(k1=0) delay(5); if(k1=0) i=1;if(k2=0) delay(5); if(k2=0) i=2; if(i!=0) SBUF=i;/ 发送数据 i while(TI=0);/ 查询等待发送是否完成 TI=0;/ 发送完成,TI由软件清0 i=0; /双机串口通信,b接收数据程序#include#define uchar unsigned char sbit beep=

8、P20;sbit D1=P27;uchar x,y;/*void delay(uchar i)/延时子函数 uchar j,k; for(k=0;ki;k+) for(j=0;j0;y-) beep=0; D1=0; delay(100); beep=1; D1=1; /*void serial(void) interrupt 4/串口中断类型号为4 EA=0;/关中断 RI=0; /软件清除中断标志位 x=SBUF;/接收数据 EA=1;/开中断允许位单片机知识:串行口1、串行口的工作寄存器51串行口工作时,需要进行相关寄存器的设置。只有设置正确,串行口才能正常工作。需要进行设置的寄存器,有

9、串行口控制寄存器SCON、电源控制器PCON、中断允许寄存器IE和中断优先级寄存器IP。其中IE和IP寄存器已在第4章有过详细介绍,此处重点介绍SCON和PCON。(1)串行口控制寄存器SCON串行口控制寄存器SCON是一个8位的寄存器,如表9-2所列。系统复位时,SCON中的所有位都被清0。其各位功能及含义如下: 表9-2 SCON寄存器位7位6位5位4位3位2位1位0SM0SM1SM2RENTB8RB8TIRI位7、位6SM0、SM1:串行口操作方式选择位。SM0和SM1这两个选择位组合后,对应串行口的四种工作方式,具体如表9-3所示。表9-3 串行口方式选择SM0 SM1方 式功 能 说

10、 明波 特 率0 00同步移位寄存器方式,8位全部是数据,无起始停止位fosc/120 1110位UART(其中1位起始位,8位数据位,1位停止位)可变1 0211位UART(其中1位起始位,9位数据位,1位停止位)fosc/64或 fosc/321 13同方式2可变位5SM2:方式2和3的多机通信使能位。在方式2或方式3中,若SM2为0,则不论接收到的第9位数据RB8是0还是1,均可使接收到的数据进入SBUF,并激活接受中断标志位RI;若SM2为1,且接收到的第9位数据RB8为1,则接收到的数据进入SBUF,并激活接受中断标志位RI;若SM2为1,且接收到的第9位数据RB8为0,则接收到的数

11、据被丢弃,接收中断标志RI不会被激活。在方式1中,若SM2=1,则只有在收到有效的停止位时,才会激活RI。在方式0中,SM2必须置为0。位4REN:串行数据接收允许位。REN=1,允许串行口接受数据;REN=0,禁止串行口接受数据。该位由软件置位或清零。 位3TB8:方式0和方式1中不使用该位。在方式2和方式3中,TB8中的值(1位二进制数)是发送数据的第9位,可按需要由软件指定其功能(数据的奇偶校验位或多机通信中的地址帧/数据帧的标志,一般1是地址帧,0是数据帧)。位2RB8:是方式2和3中已接收到的第9位数据。在方式1中,若SM2=0,RB8是接收到的停止位。在方式0中,不使用RB8位。位

12、1TI:发送中断标志位。在方式0中,当串行发送完8位数据时,由硬件置1,表明发送中断有请求;在其他方式中,在发送停止位时,由内部硬件置1。需要特别注意的是,无论在何种方式,该位都必须由软件来清0。 位0RI:接收中断标志位。在方式0中,当串行接收到8位数据结束时,由硬件置1。无论在何种方式,该位都必须由软件来清0。(2) 电源控制器PCONPCON是一个特殊功能寄存器,它是一个8位寄存器。在串口通信中,只用到8位中SMOD这一位(位7)。 该位是波特率选择位,在串行口工作在方式为1、2或3时,若SMOD=1,则波特率提高一倍。复位时,SMOD值为0。(3)中断允许寄存器IE中断允许寄存器IE的位4

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号