单片机基础课程串行通讯接口ppt课件

上传人:bin****86 文档编号:55946336 上传时间:2018-10-08 格式:PPT 页数:37 大小:1.06MB
返回 下载 相关 举报
单片机基础课程串行通讯接口ppt课件_第1页
第1页 / 共37页
单片机基础课程串行通讯接口ppt课件_第2页
第2页 / 共37页
单片机基础课程串行通讯接口ppt课件_第3页
第3页 / 共37页
单片机基础课程串行通讯接口ppt课件_第4页
第4页 / 共37页
单片机基础课程串行通讯接口ppt课件_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《单片机基础课程串行通讯接口ppt课件》由会员分享,可在线阅读,更多相关《单片机基础课程串行通讯接口ppt课件(37页珍藏版)》请在金锄头文库上搜索。

1、单片机原理及接口技术,第7章 串行通讯接口,本章学习要求:,1.掌握串行通讯的基本概念; 2.掌握串行通讯接口的电路结构; 3.掌握四种工作方式及波特率的计算方法; 4.掌握串行通讯接口的SFR和编程方法。,共需要两根线,一根数据线DATA和一根时钟线CLK; 按照时钟信号,从低到高逐个传送数据位.,7.1 串行通讯的概念,一、 同步串行通讯, 7.1 串行通讯的概念,7.1 串行通讯的概念,二、 异步串行通讯,接收端是如何区分起始位与D0、D1、D2、D3、D4的?,只需要一根数据线; 字节按照固定的帧格式传送.,位时间(每位宽)T = 波特率的倒数; 例:波特率为9600时, 位宽T=1/

2、9600Baud=0.10417ms 在异步通讯中,接收设备和发送设备必须保持相同的波特率。,波特率与定时器关系密切,大小是通过定时器T1定时实现的!,7.1 串行通讯的概念,三 波特率,是指每秒传送数据位的位数,是衡量传输速度的一个指标。 单位是位/秒,bit per second,简写bps。,7.2 AT89C51单片机的串行通讯接口,7.2 AT89C51单片机的串行通讯接口,AT89C51单片机内部有一个全双工串行接口; 使用两个IO口,发送端口TXD与接收端口RXD.,7.2.1 AT89C51单片机串行接口电路结构,7.2 MCS-51单片机的串行通讯接口,SBUF = 0x-;

3、,发送完毕标志位,数据输出引脚,时钟输出引脚,波特率,一 同步串行接口,思考题:若单片机晶体频率为12MHz,问单片机启动一字节的同步串行接口发送命令需要多长时间?同步串行接口电路接收到CPU的发送指令后,完成该字节的发送需要多长时间?,1us 8us,二 异步串行接口,7.2 MCS-51单片机的串行通讯接口,SBUF = 0x-,发送完毕标志位,输出引脚,输入引脚,接收完毕标志位,temp = SBUF;,波特率,需要设置接收允许标志位REN,思考题: 1.若单片机晶体频率为12MHz,问单片机启动一字节的异步串行接口发送命令需要多长时间? 2.若异步串行接口的波特率设置为1200bps,

4、问电路接收到CPU的发送指令后,完成该字节的发送需要多长时间?,7.2 MCS-51单片机的串行通讯接口,1. 1个机器周期,1us. 2. (1/1200)*11s=0.0092s=9.2ms,7.2.2 串行接口控制寄存器,7.2 MCS-51单片机的串行通讯接口,SFR:SCON串行接口控制器(98H),SM2:允许方式2和方式3进行多机通讯控制位。在方式0、1中必须为0。 REN:允许串行口接收控制位。写1允许接收,写0禁止接收。 TB8:工作方式2和方式3下,发送的第9位数据,由软件写1或0。 RB8:工作方式2和方式3下,接收到的第9位数据。 TI:发送完毕中断标志位,发送SBUF

5、内的数据发送出去后,硬件自动置位TI。TI必须由软件清0。 RI:接收完毕中断标志位,接收SBUF中接收到一个数据后,硬件自动置位RI。RI必须由软件清0。,7.2 MCS-51单片机的串行通讯接口,SFR:SCON串行接口控制器(98H),7.2 MCS-51单片机的串行通讯接口,D7,D0,SMOD:波特率加倍位。在计算方式1、2、3的波特率时, 为1波特 率加倍,为0波特率不加倍。,SFR:PCON(87H),7.2 MCS-51单片机的串行通讯接口,7.2.3 串行接口的四种工作方式,一 工作方式0(同步串行通讯接口),串口发送时间T1,CPU启动发送命令时间T2 SBUF = 0x-

6、;,7.2 MCS-51单片机的串行通讯接口,方式0发送 当一个数据写入发送缓冲器SBUF(SBUF = 0x-;)时,串行口即将8位数据以fosc/12的波特率从RXD引脚输出(从低位到高位), 同步时钟脉冲从TXD引脚输出,发送完毕中断标志TI置1,波形如下图。 再次发送数据前,必须用软件将TI清0(TI = 0;)。,工作方式0发送数据时,一般外接移位寄存器(如74HC164)实现串并转换,用于扩展键盘和显示接口。,7.2 MCS-51单片机的串行通讯接口,74HC164 8-bit serial-in, parallel-out shift register,RXD,TXD,P1.0,

7、D0,实际应用中,工作方式0很少用于接收数据。此节只讨论方式0发送数据。,7.2 MCS-51单片机的串行通讯接口,ORG 0000HLJMP MAIN ;跳转主程序ORG 0030H MAIIN: MOV SCON, #00H ; 定义串口工作方式0,禁止接收数据MOV R0,#10H ;定义传送数据字节数MOV DPTR,#3000H ;定义外部数据存储器指针 LOOP: MOVX A,DPTR ;读取数据MOV SBUF,A ;发送数据JNB TI,$ ;查询当前字节发送是否完毕CLR TI ;软件清标志位INC DPTR ;指针加1,准备读取下一单元数据DJNZ R0,LOOP ;判断

8、发送是否完毕SJMP $ ;自循环,例7.1 编写程序,使用串口工作方式,依次发送外部数据存储器3000H-300FH单元内的数据。,分析:初始化串口控制寄存器SCON,定义工作方式的状态字为00H。发送采用查询方式,当查询到发送完毕标志位TI为后,发送下一个字节。,7.2 MCS-51单片机的串行通讯接口,二 工作方式1(异步串行通讯接口),波特率计算公式: 定时器T1溢出率是指定时器T1一秒钟内溢出的次数。 发送或接收完一个字节后,必须软件将TI、RI清0。,方式1数据格式,7.2 MCS-51单片机的串行通讯接口,方式1发送时序,方式1接收时序 注意设置接收允许控制位REN为1,7.2

9、MCS-51单片机的串行通讯接口,三 工作方式2、3(异步串行通讯接口),发送或接收完一个字节后,必须软件将TI、RI清0。,方式2、方式3的区别在于波特率的计算方法方式2: 方式3: 数据格式,7.2 MCS-51单片机的串行通讯接口,方式2、3发送时序,方式2、3接收时序(不做要求) 注意设置接收允许控制位REN为1; 注意SM2的作用。,T1工作方式2,初值自动重新装入的8位定时器,7.3 波特率的计算和设置,7.3 波特率的计算和设置,7.3 波特率的计算和设置,例7.2 已知单片机晶体频率为12MHz,SMOD为0,串口工作方式1,波特率为2400bps,试求定时器T1的初值。,波特

10、率误差 为了保证通讯的可靠性,通讯双方波特率相对误差不应大于2.5%。,初始化程序(定时器和串口) SCON = 0x50; /串口方式1 ,允许接收 PCON = 0x00; /SMOD=0 TMOD = 0x20; /T1工作方式2 TH1 = 0xF3; /写时间常数 TL1 = 0xF3; /T1首次定时初值 TR1 = 1; /启动T1,T1产生的常用波特率,7.3 波特率的计算和设置,7.4 串行接口的应用与编程举例,1 串行接口初始化编程格式,SCON = 0x50; /串口方式,且TI RI清零,是否允许接收 PCON = 0x00; /SMOD=0/1, TMOD = 0x2

11、0; /T1工作方式2 TH1 = 0x-; /写时间常数 (TL1 = 0x-;) /T1首次定时初值 TR1 = 1; /启动T1 ( EA = 1; ) /允许中断 ( ES = 1; ) /允许串口中断,2 发送函数,7.4 串行接口的应用与编程举例,void fasong(uchar temp)SBUF = temp; /启动发送命令while(TI); /等待发送完毕TI = 0; /清发送完毕标志位,3 接收函数,REN=1、RI=0等待接收,当RI=1,从SBUF读取数据。,uchar jieshou( void )while(RI); /等待数据RI = 0; /清标志位re

12、turn SBUF; /将接受到的数据返回,例7.3设有甲、乙两台单片机,编出两台单片机间实现如下串行通讯功能的程序,要求串口工作方式1,波特率为9600bps,单片机外接晶振为11.0592MHz。甲方发送:将首址为2000H的32个字节的外部数据存储器数据块顺序向乙方发送;乙方接收:将接收的32个字节的数据,保存到内部数据存储器中 。程序编制的要点: 1、选定串口工作方式1,发送方控制字SCON为0100_0000B,接收方控制字SCON也是0101_0000B; 2、定时器T1工作工作方式2,初值为FDH,SMOD为0; 3、在程序中必须用软件清除标志位RI和TI。,7.4 串行接口的应

13、用与编程举例,发送单片机程序 main( )uint data xaddr= 0x2000; /定义外部数据存储器地址指针uchar data num; /定义发送字节个数变量SCON = 0x40; /发送方串口方式1,禁止接收PCON = 0x00; /SMOD=0, 能否用CLR SMODTMOD = 0x20; /定时器T1工作方式2TH1 = 0xFD; /产生9600波特率的定时器初值TR1 = 1; /启动定时器T1for(num=0;num32;num+)fasong(XBYTExaddr+num); /取数据并发送while(1); ,7.4 串行接口的应用与编程举例,voi

14、d fasong(uchar temp)SBUF = temp; /启动发送命令while(TI); /等待发送完毕TI = 0; /清发送完毕标志位,7.4 串行接口的应用与编程举例,接收单片机程序 main( )uchar data shuzu32; /定义32字节的数组uchar data num; /定义接收字节个数变量SCON = 0x50; /发送方串口方式1,允许接收PCON = 0x00; /SMOD=0, 能否用CLR SMODTMOD = 0x20; /定时器T1工作方式2TH1 = 0xFD; /产生9600波特率的定时器初值TR1 = 1; /启动定时器T1for(num=0;num32;num+)shuzunum = jieshou( ); /取接收数据并保存while(1); ,uchar jieshou( void )while(RI); /等待数据RI = 0; /清标志位return SBUF; /将接受到的数据返回,

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

当前位置:首页 > 办公文档 > PPT模板库 > 其它

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