《单片机基础课程串行通讯接口PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《单片机基础课程串行通讯接口PPT讲稿.ppt(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、单片机基础课程串行通讯接口第1页,共37页,编辑于2022年,星期五共需要两根线,一根数据线共需要两根线,一根数据线DATA和一根时钟线和一根时钟线CLK;按照时钟信号,从低到高逐个传送数据位按照时钟信号,从低到高逐个传送数据位.7.1 串行通讯的概念串行通讯的概念一、一、同步串行通讯同步串行通讯 7.1 串行通讯的概念串行通讯的概念第2页,共37页,编辑于2022年,星期五7.1 串行通讯的概念串行通讯的概念二、二、异步串行通讯异步串行通讯接收端是如何区分起始位与接收端是如何区分起始位与D0、D1、D2、D3、D4的?的?只需要一根数据线只需要一根数据线;字节按照固定的帧格式传送字节按照固定
2、的帧格式传送.第3页,共37页,编辑于2022年,星期五位时间(每位宽)位时间(每位宽)T =波特率的倒数;波特率的倒数;例:波特率为例:波特率为9600时,时,位宽位宽T=1/9600Baud=0.10417ms在异步通讯中,接收设备和发送设备必须保持相同的波特率。在异步通讯中,接收设备和发送设备必须保持相同的波特率。波特率与定时器关系密切,大小是通过定时器波特率与定时器关系密切,大小是通过定时器T1定时实现的定时实现的!7.1 串行通讯的概念串行通讯的概念三三 波特率波特率是指每秒传送数据位的位数,是衡量传输速度的一个指标。是指每秒传送数据位的位数,是衡量传输速度的一个指标。单位是位单位是
3、位/秒,秒,bit per second,简写,简写bps。第4页,共37页,编辑于2022年,星期五7.2 AT89C51单片机的串行通讯接口单片机的串行通讯接口7.2 AT89C51单片机的串行通讯接口单片机的串行通讯接口AT89C51单片机内部有一个单片机内部有一个 全双工串行接口;全双工串行接口;使用两个使用两个IO口,口,发送端口发送端口TXD与接收端口与接收端口RXD.第5页,共37页,编辑于2022年,星期五7.2.1 AT89C51单片机串行接口电路结构单片机串行接口电路结构7.2 MCS-51单片机的串行通讯接口单片机的串行通讯接口SBUF=0 x-;发送完毕标志位数据输出引
4、脚时钟输出引脚波特率一一 同步串行接口同步串行接口思考题思考题:若单片机晶体频率为若单片机晶体频率为12MHz,问单片机启动一字节的同步串行,问单片机启动一字节的同步串行接口发送命令需要多长时间?同步串行接口电路接收到接口发送命令需要多长时间?同步串行接口电路接收到CPU的发送指令的发送指令后,完成该字节的发送需要多长时间?后,完成该字节的发送需要多长时间?1us8us第6页,共37页,编辑于2022年,星期五二二 异步串行接口异步串行接口7.2 MCS-51单片机的串行通讯接口单片机的串行通讯接口SBUF=0 x-发送完毕标志位输出引脚输入引脚接收完毕标志位temp=SBUF;波特率需要设置
5、接收允许标志位REN第7页,共37页,编辑于2022年,星期五思考题思考题:1.若单片机晶体频率为若单片机晶体频率为12MHz,问单片机启动一字节的异步串行接,问单片机启动一字节的异步串行接口发送命令需要多长时间?口发送命令需要多长时间?2.若异步串行接口的波特率设置为若异步串行接口的波特率设置为1200bps,问电路接收到,问电路接收到CPU的发的发送指令后,完成该字节的发送需要多长时间?送指令后,完成该字节的发送需要多长时间?7.2 MCS-51单片机的串行通讯接口单片机的串行通讯接口1.1个机器周期,个机器周期,1us.2.(1/1200)*11s=0.0092s=9.2ms第8页,共3
6、7页,编辑于2022年,星期五7.2.2 串行接口控制寄存器串行接口控制寄存器7.2 MCS-51单片机的串行通讯接口单片机的串行通讯接口9FH9EH9DH9CH9BH9AH99H98HSM0SM1SM2REN TB8RB8TIRISM0SM1方式波特率功能说明001101010123Fosc/12可变(可变(T1)Fosc/32,64可变(可变(T1)同步移位寄存器同步移位寄存器8位异步通讯位异步通讯9位异步通讯位异步通讯9位异步通讯位异步通讯SFR:SCON串行接口控制器(串行接口控制器(98H)第9页,共37页,编辑于2022年,星期五9FH9EH9DH 9CH 9BH9AH99H98H
7、SM0 SM1 SM2 REN TB8RB8 TIRISM2:允许方式2和方式3进行多机通讯控制位。在方式0、1中必须为0。REN:允许串行口接收控制位。写允许串行口接收控制位。写1允许接收,写允许接收,写0禁止接收。禁止接收。TB8:工作方式2和方式3下,发送的第9位数据,由软件写1或0。RB8:工作方式2和方式3下,接收到的第9位数据。TI:发送完毕中断标志位,发送发送完毕中断标志位,发送SBUF内的数据发送出去后,硬件自动置内的数据发送出去后,硬件自动置位位TI。TI必须由软件清必须由软件清0。RI:接收完毕中断标志位,接收接收完毕中断标志位,接收SBUF中接收到一个数据后,硬件自动置位
8、中接收到一个数据后,硬件自动置位RI。RI必须由软件清必须由软件清0。7.2 MCS-51单片机的串行通讯接口单片机的串行通讯接口SFR:SCON串行接口控制器(串行接口控制器(98H)第10页,共37页,编辑于2022年,星期五7.2 MCS-51单片机的串行通讯接口单片机的串行通讯接口SMODD7D0SMOD:波特率加倍位。在计算方式:波特率加倍位。在计算方式1、2、3的波特率时,的波特率时,为为1波特波特 率加倍,为率加倍,为0波特率不加倍。波特率不加倍。SFR:PCON(87H)第11页,共37页,编辑于2022年,星期五7.2 MCS-51单片机的串行通讯接口单片机的串行通讯接口7.
9、2.3 串行接口的四种工作方式串行接口的四种工作方式一一 工作方式工作方式0(同步串行通讯接口同步串行通讯接口)SM0 SM1 方式波特率功能说明001101010123Fosc/12可变(T1)Fosc/32,64可变(T1)同步移位寄存器同步移位寄存器8位异步通讯9位异步通讯9位异步通讯串口发送时间T1CPU启动发送命令时间T2SBUF=0 x-;第12页,共37页,编辑于2022年,星期五7.2 MCS-51单片机的串行通讯接口单片机的串行通讯接口方式方式0发送发送当一个数据写入发送缓冲器当一个数据写入发送缓冲器SBUF(SBUF=0 x-;)时,串行口即将)时,串行口即将8位位数据以数
10、据以fosc/12的波特率从的波特率从RXD引脚输出(从低位到高位),引脚输出(从低位到高位),同步时钟脉冲同步时钟脉冲从从TXD引脚输出,发送完毕中断标志引脚输出,发送完毕中断标志TI置置1,波形如下图。,波形如下图。再次发送数据前,必须用软件将再次发送数据前,必须用软件将TI清清0(TI=0;)。)。第13页,共37页,编辑于2022年,星期五工作方式工作方式0发送数据时,一般外接移位寄存器发送数据时,一般外接移位寄存器(如如74HC164)实现串实现串并转换并转换,用于扩展键盘和显示接口。用于扩展键盘和显示接口。7.2 MCS-51单片机的串行通讯接口单片机的串行通讯接口74HC1648
11、-bit serial-in,parallel-out shift registerRXDTXDP1.0D0D1D0D2D1D0D0D3D2D1D0D1D4D3D2D0D1D2D5D4D3D0D1D2D3D6D5D4D0D1D2D3D4D7D6D5实际应用中,工作方式实际应用中,工作方式0很少用于接收数据。此节只讨论方式很少用于接收数据。此节只讨论方式0发送数发送数据。据。第14页,共37页,编辑于2022年,星期五7.2 MCS-51单片机的串行通讯接口单片机的串行通讯接口ORG 0000H LJMP MAIN ;跳转主程序;跳转主程序ORG 0030HMAIIN:MOV SCON,#00H
12、 ;定义串口工作方式定义串口工作方式0,禁止接收数据,禁止接收数据MOV R0,#10H ;定义传送数据字节数;定义传送数据字节数 MOV DPTR,#3000H ;定义外部数据存储器指针;定义外部数据存储器指针LOOP:MOVX A,DPTR ;读取数据;读取数据 MOVSBUF,A ;发送数据;发送数据 JNB TI,$;查询当前字节发送是否完毕;查询当前字节发送是否完毕 CLR TI;软件清标志位;软件清标志位 INC DPTR;指针加;指针加1,准备读取下一单元数据,准备读取下一单元数据 DJNZ R0,LOOP ;判断发送是否完毕;判断发送是否完毕 SJMP$;自循环;自循环例7.1
13、 编写程序,使用串口工作方式,依次发送外部数据存储器3000H-300FH单元内的数据。分析:初始化串口控制寄存器SCON,定义工作方式的状态字为00H。发送采用查询方式,当查询到发送完毕标志位TI为后,发送下一个字节。第15页,共37页,编辑于2022年,星期五7.2 MCS-51单片机的串行通讯接口单片机的串行通讯接口二二 工作方式工作方式1(异步串行通讯接口异步串行通讯接口)SM0 SM1 方式波特率功能说明001101010123Fosc/12可变(可变(T1)Fosc/32,64可变(T1)同步移位寄存器8位异步通讯位异步通讯9位异步通讯9位异步通讯波特率计算公式:波特率计算公式:定
14、时器定时器T1溢出率是指定时器溢出率是指定时器T1一秒钟内溢出的次数。一秒钟内溢出的次数。发送或接收完一个字节后,必须软件将发送或接收完一个字节后,必须软件将TI、RI清清0。方式方式1数据格式数据格式第16页,共37页,编辑于2022年,星期五7.2 MCS-51单片机的串行通讯接口单片机的串行通讯接口方式方式1发送时序发送时序方式方式1接收时序接收时序注意设置接收允许控制位注意设置接收允许控制位REN为为1第17页,共37页,编辑于2022年,星期五7.2 MCS-51单片机的串行通讯接口单片机的串行通讯接口三三 工作方式工作方式2、3(异步串行通讯接口异步串行通讯接口)SM0SM1方式波
15、特率功能说明001101010123Fosc/12可变(T1)Fosc/32,64可变(可变(T1)同步移位寄存器(用于扩展I/O接口)8位异步通讯9位异步通讯位异步通讯9位异步通讯位异步通讯发送或接收完一个字节后,必须软件将发送或接收完一个字节后,必须软件将TI、RI清清0。方式方式2、方式、方式3的区别在于波特率的计算方法的区别在于波特率的计算方法 方式方式2:方式方式3:数据格式数据格式第18页,共37页,编辑于2022年,星期五7.2 MCS-51单片机的串行通讯接口单片机的串行通讯接口方式方式2、3发送时序发送时序方式方式2、3接收时序接收时序(不做要求不做要求)注意设置接收允许控制
16、位注意设置接收允许控制位REN为为1;注意注意SM2的作用。的作用。SM2RB8描述描述0 x允许允许RI置置110不允许不允许RI置置111允许允许RI置置1第19页,共37页,编辑于2022年,星期五SM0SM1方式波特率用途001101010123fosc/12扩充并口双机通讯多机通讯多机通讯T1工作方式工作方式2,初值自动重新装入的,初值自动重新装入的8位定时器位定时器7.3 波特率的计算和设置波特率的计算和设置7.3 波特率的计算和设置波特率的计算和设置第20页,共37页,编辑于2022年,星期五7.3 波特率的计算和设置波特率的计算和设置例例7.2 已知单片机晶体频率为已知单片机晶
17、体频率为12MHz,SMOD为为0,串口工作方式,串口工作方式1,波特率为,波特率为2400bps,试求定时器,试求定时器T1的初值。的初值。波特率误差波特率误差为了保证通讯的可靠性,通讯双方波特率相对误差不应大于为了保证通讯的可靠性,通讯双方波特率相对误差不应大于2.5%。初始化程序(定时器和串口)初始化程序(定时器和串口)SCON=0 x50;/串口方式1,允许接收PCON=0 x00;/SMOD=0TMOD=0 x20;/T1工作方式2TH1=0 xF3;/写时间常数TL1=0 xF3;/T1首次定时初值TR1=1;/启动T1第21页,共37页,编辑于2022年,星期五T1产生的常用波特
18、率产生的常用波特率波特率波特率bpsFoscSMODT1模式模式 T1初值初值1920011.0592MHz12FDH960011.0592MHz02FDH480011.0592MHz02FAH240011.0592MHz02F4H120011.0592MHz02E8H7.3 波特率的计算和设置波特率的计算和设置第22页,共37页,编辑于2022年,星期五7.4 串行接口的应用与编程举例串行接口的应用与编程举例1 串行接口初始化编程格式串行接口初始化编程格式 SCON=0 x50;/串口方式,且TI RI清零,是否允许接收PCON=0 x00;/SMOD=0/1,TMOD=0 x20;/T1工
19、作方式2TH1=0 x-;/写时间常数(TL1=0 x-;)/T1首次定时初值TR1=1;/启动T1(EA=1;)/允许中断(ES=1;)/允许串口中断第23页,共37页,编辑于2022年,星期五2 发送函数发送函数7.4 串行接口的应用与编程举例串行接口的应用与编程举例 void fasong(uchar temp)SBUF=temp;/启动发送命令 while(TI);/等待发送完毕 TI=0;/清发送完毕标志位3 接收函数接收函数REN=1REN=1、RI=0RI=0等待接收,当等待接收,当RI=1RI=1,从,从SBUFSBUF读取数据。读取数据。uchar jieshou(void)
20、while(RI);/等待数据 RI=0;/清标志位 return SBUF;/将接受到的数据返回第24页,共37页,编辑于2022年,星期五例例7.3设有甲、乙两台单片机,编出两台单片机间实现如下串行通讯设有甲、乙两台单片机,编出两台单片机间实现如下串行通讯功能的程序功能的程序,要求串口工作方式要求串口工作方式1,波特率为波特率为9600bps,单片机外接,单片机外接晶振为晶振为11.0592MHz。甲甲方方发发送送:将将首首址址为为2000H的的32个个字字节节的的外外部部数数据据存存储储器器数数据据块块顺序向乙方发送;顺序向乙方发送;乙方接收:将接收的乙方接收:将接收的32个字节的数据,
21、保存到内部数据存储器中个字节的数据,保存到内部数据存储器中。程序编制的要点:程序编制的要点:1、选选定定串串口口工工作作方方式式1,发发送送方方控控制制字字SCON为为0100_0000B,接接收收方方控控制字制字SCON也是也是0101_0000B;2、定时器、定时器T1工作工作方式工作工作方式2,初值为,初值为FDH,SMOD为为0;3、在程序中必须用软件清除标志位、在程序中必须用软件清除标志位RI和和TI。7.4 串行接口的应用与编程举例串行接口的应用与编程举例第25页,共37页,编辑于2022年,星期五发送单片机程序发送单片机程序main()uint data xaddr=0 x200
22、0;/定义外部数据存储器地址指针 uchar data num;/定义发送字节个数变量 SCON=0 x40;/发送方串口方式1,禁止接收 PCON=0 x00;/SMOD=0,能否用CLR SMOD TMOD=0 x20;/定时器T1工作方式2 TH1=0 xFD;/产生9600波特率的定时器初值 TR1=1;/启动定时器T1 for(num=0;num32;num+)fasong(XBYTExaddr+num);/取数据并发送 while(1);7.4 串行接口的应用与编程举例串行接口的应用与编程举例 void fasong(uchar temp)SBUF=temp;/启动发送命令 whi
23、le(TI);/等待发送完毕 TI=0;/清发送完毕标志位第26页,共37页,编辑于2022年,星期五7.4 串行接口的应用与编程举例串行接口的应用与编程举例接收单片机程序接收单片机程序main()uchar data shuzu32;/定义32字节的数组 uchar data num;/定义接收字节个数变量 SCON=0 x50;/发送方串口方式1,允许接收 PCON=0 x00;/SMOD=0,能否用CLR SMOD TMOD=0 x20;/定时器T1工作方式2 TH1=0 xFD;/产生9600波特率的定时器初值 TR1=1;/启动定时器T1 for(num=0;num32;num+)s
24、huzunum=jieshou();/取接收数据并保存 while(1);uchar jieshou(void)while(RI);/等待数据 RI=0;/清标志位 return SBUF;/将接受到的数据返回第27页,共37页,编辑于2022年,星期五7.5 PC机与机与MCS-51单片机的串口连接单片机的串口连接7.5 PC机与机与MCS-51单片机的串口连接单片机的串口连接因线电阻的存在使得信号在线路传输中存在电压衰减,因线电阻的存在使得信号在线路传输中存在电压衰减,而因电磁干扰的存在使得信号在线路传输中存在电压变化,而因电磁干扰的存在使得信号在线路传输中存在电压变化,所以常采用所以常采
25、用RS-232C电平负逻辑,拉开电平负逻辑,拉开“0”和和“1”的电压档次,的电压档次,提高信号的传输距离和通讯线路的抗干扰能力。提高信号的传输距离和通讯线路的抗干扰能力。TTL正逻辑:正逻辑:“0”:0+0.8V;“1”:2.0V+5V;传输距离一般不超过传输距离一般不超过1.5米。米。RS-232C负逻辑:负逻辑:“0”:+5V+15V;“1”:-5V-15V;典型传输信息的长度为典型传输信息的长度为15米。米。1 RS-232C电平标准电平标准第28页,共37页,编辑于2022年,星期五2 PC机的串行接口介绍机的串行接口介绍u9针针RS-232C接口接口u有用信号:有用信号:2、RXD
26、3、TXD5、GNDu电气特性电气特性负逻辑负逻辑1、逻辑、逻辑1为为-5V到到-15V2、逻辑、逻辑0为为+5V到到+15V7.5 PC机与机与MCS-51单片机的串行接口连接单片机的串行接口连接第29页,共37页,编辑于2022年,星期五7.5 PC机与机与MCS-51单片机的串行接口连接单片机的串行接口连接3 PC机与机与MCS-51单片机的串行接口连接单片机的串行接口连接RS-232C与与TTL电平转换芯片电平转换芯片第30页,共37页,编辑于2022年,星期五7.5 PC机与机与MCS-51单片机的串行接口连接单片机的串行接口连接PC机与机与MCS-51单片机的串行接口连接单片机的串
27、行接口连接RXDTXD电电缆缆第31页,共37页,编辑于2022年,星期五两台单片机间远距离串行通讯接口连接两台单片机间远距离串行通讯接口连接7.5 PC机与机与MCS-51单片机的串行接口连接单片机的串行接口连接RXDTXD电电缆缆R1in13T1out1412RXDTXD11MAX232MAX232MAX232GND第32页,共37页,编辑于2022年,星期五1、串行通信的基本原理和基本方式(同步和异步)。、串行通信的基本原理和基本方式(同步和异步)。2、串行口控制、串行口控制/状态控制字状态控制字SCON和和 节电控制字节电控制字PCON。3、串行通信的、串行通信的4种工作方式及其对应的
28、波特率、传送位数种工作方式及其对应的波特率、传送位数(8位、位、10位、位、11位、位、11位位)、时序和应用。、时序和应用。4、串行通信的应用:、串行通信的应用:发送和接收程序(查询方式、中断方式)。发送和接收程序(查询方式、中断方式)。本章小结本章小结本章小结本章小结第33页,共37页,编辑于2022年,星期五本章小结本章小结第34页,共37页,编辑于2022年,星期五本章小结本章小结TH0TH1第35页,共37页,编辑于2022年,星期五本章小结本章小结第36页,共37页,编辑于2022年,星期五1.已知单片机晶体频率为已知单片机晶体频率为12MHz,SMOD为为0,串口工作方式,串口工
29、作方式1,波,波特率为特率为1200bps。(1)试求定时器试求定时器T1的初值;(的初值;(2)求实际波特率的误)求实际波特率的误差率。差率。2.假设假设AT89C51单片机的晶振频率为单片机的晶振频率为6MHz,SMOD=0,定时器,定时器T1初值初值为为#0FDH,试计算串行工作方式,试计算串行工作方式1的波特率。的波特率。3.甲乙两台单片机拟采用串口方式甲乙两台单片机拟采用串口方式1通讯,已知两台单片机的晶体频通讯,已知两台单片机的晶体频率都是率都是6MHz,约定通讯波特率为,约定通讯波特率为1200bps。编制两个单片机各自。编制两个单片机各自的程序,实现把甲机内部存储器的程序,实现把甲机内部存储器40H-4FH内的数据传送到乙机的外部内的数据传送到乙机的外部数据存储器数据存储器2000H-200FH中。中。串行接口作业串行接口作业串行接口作业串行接口作业第37页,共37页,编辑于2022年,星期五