单片机原理-串行通信.ppt

上传人:wuy****n92 文档编号:90650880 上传时间:2023-05-17 格式:PPT 页数:33 大小:494.50KB
返回 下载 相关 举报
单片机原理-串行通信.ppt_第1页
第1页 / 共33页
单片机原理-串行通信.ppt_第2页
第2页 / 共33页
点击查看更多>>
资源描述

《单片机原理-串行通信.ppt》由会员分享,可在线阅读,更多相关《单片机原理-串行通信.ppt(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、l l#include reg51.h#include reg51.hl lsbitsbit P1_0=P10;P1_0=P10;l lvoid main()void main()l l unsigned char tmp;unsigned char tmp;l lP1=0 xff;P1=0 xff;/关闭关闭P1P1口接的所有灯口接的所有灯l lTMOD=0 x05;TMOD=0 x05;/确定计数工作模式确定计数工作模式l lTR0=1;TR0=1;/定时器定时器T0T0开始运行开始运行l lfor(;)for(;)l l tmp=TL0;tmp=TL0;l lP1=tmp;P1=tmp;

2、l l l l l l#include reg51.h#include reg51.hl lsbitsbitP1_0=P10;P1_0=P10;l lvoid Timer0()interrupt 1void Timer0()interrupt 1l l TH0=0 xff;TH0=0 xff;l lTL0=0 xfa;TL0=0 xfa;/重置初值重置初值l lP1_0=P1_0;P1_0=P1_0;/执行灯亮或灭的动作执行灯亮或灭的动作l l l lvoid main()void main()l l P1=0 xff;P1=0 xff;/关闭关闭P1P1口接的所有灯口接的所有灯l lTMOD

3、=0 x05;TMOD=0 x05;/确定计数工作模式确定计数工作模式l lTH0=0 xff;TH0=0 xff;l lTL0=0 xfa;TL0=0 xfa;/定时实值为定时实值为6553065530l lEA=1;EA=1;l lET0=1;ET0=1;l lTR0=1;TR0=1;/定时器定时器T0T0开始运行开始运行l lfor(;)for(;)l l;l l 串行通信单片机原理及设计教学课件单片机原理及设计教学课件串行口与串行通信单片机原理及设计教学课件单片机原理及设计教学课件重点:串行寄存器波特率的概念 随着多微机系统的广泛应用和计算机网络随着多微机系统的广泛应用和计算机网络技术

4、的普及,计算机的通信功能愈来愈显得技术的普及,计算机的通信功能愈来愈显得重要。重要。计算机通信计算机通信是指计算机与外部设备或是指计算机与外部设备或计算机与计算机之间的信息交换计算机与计算机之间的信息交换。通信有通信有并行通信并行通信和和串行通信串行通信两种方式。在多两种方式。在多微机系统以及现代测控系统中信息的交换多微机系统以及现代测控系统中信息的交换多采用串行通信方式。采用串行通信方式。并行通信并行通信通常是将数据字节的各位用多条数通常是将数据字节的各位用多条数据线同时进行传送据线同时进行传送。并行通信并行通信并行通信并行通信控制简单、传输速度快;由于传输线较多,长距离控制简单、传输速度快

5、;由于传输线较多,长距离控制简单、传输速度快;由于传输线较多,长距离控制简单、传输速度快;由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难。传送时成本高且接收方的各位同时接收存在困难。传送时成本高且接收方的各位同时接收存在困难。传送时成本高且接收方的各位同时接收存在困难。串行通信串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传送。串行通信的特点串行通信的特点:传输线少,长距离传送时:传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂。但数据的传送控制比并行通信复杂。串行通信的基本概念串行通

6、信的基本概念 一、异步通信与同步通信一、异步通信与同步通信一、异步通信与同步通信一、异步通信与同步通信1 1、异步通信、异步通信、异步通信、异步通信 异步通信异步通信异步通信异步通信是指通信的是指通信的是指通信的是指通信的发发发发送与接收送与接收送与接收送与接收设备设备设备设备使用各自的使用各自的使用各自的使用各自的时钟时钟时钟时钟控控控控制数据的制数据的制数据的制数据的发发发发送和接收送和接收送和接收送和接收过过过过程。程。程。程。为为为为使双方的收使双方的收使双方的收使双方的收发协调发协调发协调发协调,要求,要求,要求,要求发发发发送和接收送和接收送和接收送和接收设备设备设备设备的的的的时

7、钟时钟时钟时钟尽可能一致。尽可能一致。尽可能一致。尽可能一致。异步通信是异步通信是以字符(构成的帧)为以字符(构成的帧)为单位进行传输单位进行传输,字符与字符之间的间,字符与字符之间的间隙(时间间隔)是任意的,但每个字隙(时间间隔)是任意的,但每个字符中的各位是以固定的时间传送的,符中的各位是以固定的时间传送的,即字符之间不一定有即字符之间不一定有“位间隔位间隔”的整的整数倍的关系,但数倍的关系,但同一字符内的同一字符内的各位之各位之间的距离均为间的距离均为“位间隔位间隔”的整数倍。的整数倍。异步通信中异步通信中,接收与发送之间必须有两项规定接收与发送之间必须有两项规定:1 1 帧格式的设定帧

8、格式的设定;2 2 波特率波特率 (bps.)(bps.):单位时间传送的位数单位时间传送的位数单片机原理及设计教学课件单片机原理及设计教学课件异步通信的数据格式异步通信的数据格式:异步通信的特点异步通信的特点:不要求收发双方时钟的:不要求收发双方时钟的严格一致,实现容易,设备开销较小,但严格一致,实现容易,设备开销较小,但每个字符要附加每个字符要附加23位用于起止位,各帧位用于起止位,各帧之间还有间隔,因此传输效率不高。之间还有间隔,因此传输效率不高。同步串行通信同步串行通信:以以数据块数据块为单位进行传送为单位进行传送,80C5180C51单片机没有同步串行通信的方式单片机没有同步串行通信

9、的方式,不作不作介绍介绍!波特率波特率 (bps.)(bps.):单位时间传送的位数单位时间传送的位数单片机原理及设计教学课件单片机原理及设计教学课件二、串行通信的传输方向二、串行通信的传输方向二、串行通信的传输方向二、串行通信的传输方向1 1、单工、单工、单工、单工单工单工单工单工是指数据传输仅能沿是指数据传输仅能沿是指数据传输仅能沿是指数据传输仅能沿一个方向一个方向一个方向一个方向,不能实现反向传输。,不能实现反向传输。,不能实现反向传输。,不能实现反向传输。2 2、半双工、半双工、半双工、半双工半双工半双工半双工半双工是指数据传输可以沿是指数据传输可以沿是指数据传输可以沿是指数据传输可以

10、沿两个方向两个方向两个方向两个方向,但需要分时进行。,但需要分时进行。,但需要分时进行。,但需要分时进行。3 3、全双工、全双工、全双工、全双工全双工全双工全双工全双工是指数据可以是指数据可以是指数据可以是指数据可以同时进行双向同时进行双向同时进行双向同时进行双向传输。传输。传输。传输。单工 半双工半双工半双工半双工 全双工全双工全双工全双工51单片机的串行接口 SBUF(发)(发)SBUF(收)(收)发送控制器发送控制器 TI接收控制器接收控制器 RI移位寄存器移位寄存器波波特特率率发发生生器器T1 1A累累加加器器(门门)移位寄存器移位寄存器RxDTxD去申请中断去申请中断引脚引脚引脚引脚

11、CPU内内部部单片机原理及设计教学课件单片机原理及设计教学课件 有两个物理上独立的接收、发送缓冲器有两个物理上独立的接收、发送缓冲器有两个物理上独立的接收、发送缓冲器有两个物理上独立的接收、发送缓冲器SBUFSBUF,它们占用,它们占用,它们占用,它们占用同一地址同一地址同一地址同一地址99H 99H;接收器是双缓冲结构;接收器是双缓冲结构;接收器是双缓冲结构;接收器是双缓冲结构 ;发送缓冲器,因为;发送缓冲器,因为;发送缓冲器,因为;发送缓冲器,因为发送时发送时发送时发送时CPUCPU是主动的,不会产生重叠错误。是主动的,不会产生重叠错误。是主动的,不会产生重叠错误。是主动的,不会产生重叠错

12、误。80C51串行口的结构串行口的结构 SCON SCON 是一个特殊功能寄存器,用以设定串行口的工是一个特殊功能寄存器,用以设定串行口的工是一个特殊功能寄存器,用以设定串行口的工是一个特殊功能寄存器,用以设定串行口的工作方式、接收作方式、接收作方式、接收作方式、接收/发送控制以及设置状态标志:发送控制以及设置状态标志:发送控制以及设置状态标志:发送控制以及设置状态标志:80C51串行口的控制寄存器串行口的控制寄存器 SM0SM0和和和和SM1SM1为工作方式选择位,可选择四种工作方式:为工作方式选择位,可选择四种工作方式:为工作方式选择位,可选择四种工作方式:为工作方式选择位,可选择四种工作

13、方式:SM0 SM1 SM2 REN TB8 RB8 TI R1SCONSCONSM0SM0,SM1SM1:串行口串行口4 4种工作方式的选择位。种工作方式的选择位。0 0 0 0 方式方式0 0:8 8位移位寄存器位移位寄存器I/O,I/O,波特率波特率固定固定为为 f foscosc/12/12 0 1 0 1 方式方式1 1:8 8位位UARTUART(1 1+8+8+1 1位)位),波特率波特率可变可变,按公式计算按公式计算 1 0 1 0 方式方式2 2:9 9位位UARTUART(1 1+8+1+8+1+1 1位)位),波特率波特率固定固定=f fosc osc x1/32x1/3

14、2或或1/641/64 1 1 1 1 方式方式3 3:9 9位位UARTUART(1 1+8+1+8+1+1 1位)位),波特率波特率可变可变,按公式计算,按公式计算 SM2SM2:串行口串行口多机通信多机通信控制位控制位 (作为方式(作为方式2 2、方式、方式3 3的的附加控制位附加控制位)串行口控制寄存器SCON(98H)单片机原理及设计教学课件单片机原理及设计教学课件 RI,TIRI,TI:串行口收串行口收/发数据申请中断标志位发数据申请中断标志位 1 1 申请中断;申请中断;0 0 不申请中断不申请中断 TB8TB8:方式方式2 2、3 3中,是要发送的第中,是要发送的第9 9位数据

15、。位数据。多机通信中多机通信中,TB8=0,TB8=0 表示发送的是数据;表示发送的是数据;TB8=1 TB8=1 表示发送的是地址。表示发送的是地址。RB8RB8:在方式在方式2 2、3 3中,是收到的第中,是收到的第9 9位数据。位数据。SM0 SM1 SM2 REN TB8 RB8 TI R1 RENREN:串行口接收允许控制位串行口接收允许控制位 =1=1 表示允许接收;表示允许接收;=0=0 禁止接收。禁止接收。SCONSCON单片机原理及设计教学课件单片机原理及设计教学课件SMOD GF1 GF0 PD 1DL电源控制寄存器 PCONPCON(97H97H)特殊功能寄存器特殊功能寄

16、存器PCONPCON不能按位寻址不能按位寻址 SMODSMOD:在串行口工作方式在串行口工作方式 1 1、2 2、3 3 中,中,是是波特率加倍位波特率加倍位 =1=1 时,波特率加倍时,波特率加倍 =0=0 时,波特率不加倍。时,波特率不加倍。(在在PCONPCON中只有这一个位与串口有关中只有这一个位与串口有关)PCONPCON单片机原理及设计教学课件单片机原理及设计教学课件波特率:单片机或者计算机在串口通信时的速率用波特率表示;单位是bps;位/秒;如每秒钟传送240个字符,而每个字符格式包含10位,这时的波特率为10*240位/秒=2400bps;波特率的计算波特率的计算波特率的计算波

17、特率的计算 在串行通信中,收发双方对发送或接收数据的速在串行通信中,收发双方对发送或接收数据的速在串行通信中,收发双方对发送或接收数据的速在串行通信中,收发双方对发送或接收数据的速率要有约定。通过软件可对单片机串行口编程为四率要有约定。通过软件可对单片机串行口编程为四率要有约定。通过软件可对单片机串行口编程为四率要有约定。通过软件可对单片机串行口编程为四种工作方式,其中方式种工作方式,其中方式种工作方式,其中方式种工作方式,其中方式0 0和方式和方式和方式和方式2 2的波特率是固定的,的波特率是固定的,的波特率是固定的,的波特率是固定的,而方式而方式而方式而方式1 1和方式和方式和方式和方式3

18、 3的波特率是可变的,由定时器的波特率是可变的,由定时器的波特率是可变的,由定时器的波特率是可变的,由定时器T1T1的溢出率来决定。的溢出率来决定。的溢出率来决定。的溢出率来决定。串行口的四种工作方式对应串行口的四种工作方式对应串行口的四种工作方式对应串行口的四种工作方式对应三种波特率三种波特率三种波特率三种波特率。由于输。由于输。由于输。由于输入的移位时钟的来源不同,所以,各种方式的波特入的移位时钟的来源不同,所以,各种方式的波特入的移位时钟的来源不同,所以,各种方式的波特入的移位时钟的来源不同,所以,各种方式的波特率计算公式也不相同。率计算公式也不相同。率计算公式也不相同。率计算公式也不相

19、同。方式方式方式方式0 0的波特率的波特率的波特率的波特率 =fosc/12=fosc/12方式方式方式方式2 2的波特率的波特率的波特率的波特率 =(2 2SMODSMOD/64/64)fosc fosc 方式方式方式方式1 1的波特率的波特率的波特率的波特率 =(2 2SMODSMOD/32/32)(T1T1溢出率)溢出率)溢出率)溢出率)方式方式方式方式3 3的波特率的波特率的波特率的波特率 =(2 2SMODSMOD/32/32)(T1T1溢出率)溢出率)溢出率)溢出率)当当当当T1T1作为波特率发生器时,最典型的用法是使作为波特率发生器时,最典型的用法是使作为波特率发生器时,最典型的

20、用法是使作为波特率发生器时,最典型的用法是使T1T1工作在自动再装入工作在自动再装入工作在自动再装入工作在自动再装入的的的的8 8位定时器方式(即方式位定时器方式(即方式位定时器方式(即方式位定时器方式(即方式2 2,且,且,且,且TCONTCON的的的的TR1=1TR1=1,以启动定时器)。这,以启动定时器)。这,以启动定时器)。这,以启动定时器)。这时溢出率取决于时溢出率取决于时溢出率取决于时溢出率取决于TH1TH1中的计数值。中的计数值。中的计数值。中的计数值。T1 T1 溢出率溢出率溢出率溢出率 =fosc/12256=fosc/12256(TH1TH1)在单片机的应用中,常用的晶振频

21、率为:在单片机的应用中,常用的晶振频率为:在单片机的应用中,常用的晶振频率为:在单片机的应用中,常用的晶振频率为:12MHz12MHz和和和和11.0592MHz11.0592MHz。所。所。所。所以,选用的波特率也相对固定。常用的串行口波特率以及各参数的关系以,选用的波特率也相对固定。常用的串行口波特率以及各参数的关系以,选用的波特率也相对固定。常用的串行口波特率以及各参数的关系以,选用的波特率也相对固定。常用的串行口波特率以及各参数的关系如表所示。如表所示。如表所示。如表所示。工作方式工作方式2 2:8 8 位自动重装的定时位自动重装的定时/计数器计数器振荡器振荡器 12TLx(8位位)T

22、Fx申请申请中断中断TxTx端端TRxTRx位位GATEGATE位位INTxINTx端端1 1&C/T=0C/T=1控制控制=1开关接通开关接通或门或门与门与门THx(8位位)溢溢出出位位门开门开单片机原理及设计教学课件单片机原理及设计教学课件波特率波特率=(2(2SMODSMOD/32)/32)T1T1的溢出率的溢出率 溢出率:溢出率:T1T1溢出的频繁程度溢出的频繁程度 即:即:T1T1溢出一次所需时间的倒数。溢出一次所需时间的倒数。初值初值 X=2 2n n-2 2SMODSMOD fosc fosc3232 波特率波特率 1212 波特率波特率 =2 2SMODSMOD fosc fo

23、sc3232 12(2 12(2n n-X X)其中:其中:X X 是定时器初值是定时器初值单片机原理及设计教学课件单片机原理及设计教学课件 初值初值 X=2 2n n-2 2SMODSMOD fosc fosc32 32 波特率波特率 1212 计算波特率计算波特率的部分:的部分:要求用要求用T1T1工作于工作于方式方式2 2来产生波特率来产生波特率12001200,已知晶振频率已知晶振频率=6MHz6MHz。要求出。要求出T1T1的的初值初值:初值初值 X=2 28 8 -2 20 0 6 6 10106 63232 1200 1200 1212=256-=256-13.026 6 101

24、06 6460800460800 243=0F3H 结果后面要用到结果后面要用到单片机原理及设计教学课件单片机原理及设计教学课件 串行口工作之前,应对其进行初始化,主串行口工作之前,应对其进行初始化,主要是设置产生波特率的定时器要是设置产生波特率的定时器1、串行口控、串行口控制和中断控制。具体步骤如下:制和中断控制。具体步骤如下:l l确定确定确定确定T1T1的工作方式的工作方式的工作方式的工作方式(编程(编程(编程(编程TMODTMOD寄存器);寄存器);寄存器);寄存器);l l计算计算计算计算T1T1的初值的初值的初值的初值,装载,装载,装载,装载TH1TH1、TL1TL1;l l启动启

25、动启动启动T1T1(编程(编程(编程(编程TCONTCON中的中的中的中的TR1TR1位);位);位);位);l l确定确定确定确定串行口控制串行口控制串行口控制串行口控制(编程(编程(编程(编程SCONSCON寄存器);寄存器);寄存器);寄存器);串行口在中断方式工作时,要进行中断设置串行口在中断方式工作时,要进行中断设置(编程(编程IE、IP寄存器)。寄存器)。l l#include#include l l#define uchar unsigned char#define uchar unsigned charl l#define uint unsigned int#define ui

26、nt unsigned intl lunsigned char flag,a,i;unsigned char flag,a,i;l luchar code table=I get;uchar code table=I get;l l/uchar code table=I,g,e,t,;/uchar code table=I,g,e,t,;l lvoid init()void init()l l l lTMOD=0 x20;TMOD=0 x20;l lTH1=0 xfd;TH1=0 xfd;l lTL1=0 xfd;TL1=0 xfd;l lTR1=1;TR1=1;l lREN=1;REN=1;

27、l lSM0=0;SM0=0;l lSM1=1;SM1=1;l lEA=1;EA=1;l lES=1;ES=1;l l l lvoid main()void main()l l l linit();init();l lwhile(1)while(1)l l l lif(flag=1)if(flag=1)l l l lES=0;ES=0;l lfor(i=0;i6;i+)for(i=0;i0;DelayTime-)for(;DelayTime0;DelayTime-)l l for(j=0;j125;j+)for(j=0;j125;j+)l l;l l l l l luchar Key()uch

28、ar Key()l l uchar KValue;uchar KValue;l lP3|=0 x3e;P3|=0 x3e;/中间中间4 4位置高电平位置高电平l lif(KValue=P3|0 xe3)!=0 xff)if(KValue=P3|0 xe3)!=0 xff)l l mDelay(10);mDelay(10);l lif(KValue=P3|0 xe3)!=0 xff)if(KValue=P3|0 xe3)!=0 xff)l l for(;)for(;)l lif(P3|0 xe3)=0 xff)if(P3|0 xe3)=0 xff)l lreturn(KValue);return

29、(KValue);l l l l l lreturn(0);return(0);l l l lvoid main()void main()l l uchar KeyValue;uchar KeyValue;l luchar c;uchar c;l lP1=0 xff;P1=0 xff;/关闭关闭P1P1口接的所有灯口接的所有灯l lTMOD=0 x20;TMOD=0 x20;/确定定时器工作模式确定定时器工作模式l lTH1=0 xFD;TH1=0 xFD;l lTL0=0 xFD;TL0=0 xFD;/定时初值定时初值l lPCON&=0 x80;PCON&=0 x80;/SMOD=1/SM

30、OD=1l lTR1=1;TR1=1;/开启定时器开启定时器1 1l lSCON=0 x40;SCON=0 x40;/串口工作方式串口工作方式1 1l lREN=1;REN=1;/允许接收允许接收l lfor(;)for(;)l l if(KeyValue=Key()if(KeyValue=Key()l l if(KeyValue|0 xfb)!=0 xff)if(KeyValue|0 xfb)!=0 xff)/K1/K1按下按下l lSendData(0 x55);SendData(0 x55);l lif(KeyValue|0 xf7)!=0 xff)if(KeyValue|0 xf7)!=0 xff)l lSendData(0 xaa);SendData(0 xaa);l l l lif(RI)if(RI)l l c=SBUF;c=SBUF;l lP1=c;P1=c;l lRI=0;RI=0;l l l l l l OVER!单片机原理及设计教学课件单片机原理及设计教学课件

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

当前位置:首页 > 教育专区 > 大学资料

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁