单片机基础课程串行通讯接口_第1页
单片机基础课程串行通讯接口_第2页
单片机基础课程串行通讯接口_第3页
单片机基础课程串行通讯接口_第4页
单片机基础课程串行通讯接口_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机基础课程串行通讯接口第1页,共37页,2022年,5月20日,2点43分,星期二共需要两根线,一根数据线DATA和一根时钟线CLK;按照时钟信号,从低到高逐个传送数据位.7.1 串行通讯的概念一、 同步串行通讯 7.1 串行通讯的概念第2页,共37页,2022年,5月20日,2点43分,星期二7.1 串行通讯的概念二、 异步串行通讯接收端是如何区分起始位与D0、D1、D2、D3、D4的?只需要一根数据线;字节按照固定的帧格式传送.第3页,共37页,2022年,5月20日,2点43分,星期二位时间(每位宽)T = 波特率的倒数; 例:波特率为9600时, 位宽T=1/9600Baud=0.

2、10417ms在异步通讯中,接收设备和发送设备必须保持相同的波特率。波特率与定时器关系密切,大小是通过定时器T1定时实现的!7.1 串行通讯的概念三 波特率是指每秒传送数据位的位数,是衡量传输速度的一个指标。单位是位/秒,bit per second,简写bps。第4页,共37页,2022年,5月20日,2点43分,星期二7.2 AT89C51单片机的串行通讯接口7.2 AT89C51单片机的串行通讯接口AT89C51单片机内部有一个 全双工串行接口;使用两个IO口, 发送端口TXD与接收端口RXD.第5页,共37页,2022年,5月20日,2点43分,星期二7.2.1 AT89C51单片机串

3、行接口电路结构7.2 MCS-51单片机的串行通讯接口SBUF = 0 x-;发送完毕标志位数据输出引脚时钟输出引脚波特率一 同步串行接口思考题:若单片机晶体频率为12MHz,问单片机启动一字节的同步串行接口发送命令需要多长时间?同步串行接口电路接收到CPU的发送指令后,完成该字节的发送需要多长时间?1us8us第6页,共37页,2022年,5月20日,2点43分,星期二二 异步串行接口7.2 MCS-51单片机的串行通讯接口SBUF = 0 x-发送完毕标志位输出引脚输入引脚接收完毕标志位temp = SBUF;波特率需要设置接收允许标志位REN第7页,共37页,2022年,5月20日,2点

4、43分,星期二思考题:1.若单片机晶体频率为12MHz,问单片机启动一字节的异步串行接口发送命令需要多长时间?2.若异步串行接口的波特率设置为1200bps,问电路接收到CPU的发送指令后,完成该字节的发送需要多长时间?7.2 MCS-51单片机的串行通讯接口1. 1个机器周期,1us.2. (1/1200)*11s=0.0092s=9.2ms第8页,共37页,2022年,5月20日,2点43分,星期二7.2.2 串行接口控制寄存器7.2 MCS-51单片机的串行通讯接口9FH9EH9DH9CH9BH9AH99H98HSM0SM1SM2RENTB8RB8TIRISM0SM1方式波特率功能说明0

5、01101010123Fosc/12可变(T1)Fosc/32,64可变(T1)同步移位寄存器8位异步通讯9位异步通讯9位异步通讯SFR:SCON串行接口控制器(98H)第9页,共37页,2022年,5月20日,2点43分,星期二9FH9EH9DH9CH9BH9AH99H98HSM0SM1SM2RENTB8RB8TIRISM2:允许方式2和方式3进行多机通讯控制位。在方式0、1中必须为0。REN:允许串行口接收控制位。写1允许接收,写0禁止接收。TB8:工作方式2和方式3下,发送的第9位数据,由软件写1或0。RB8:工作方式2和方式3下,接收到的第9位数据。TI:发送完毕中断标志位,发送SBU

6、F内的数据发送出去后,硬件自动置位TI。TI必须由软件清0。RI:接收完毕中断标志位,接收SBUF中接收到一个数据后,硬件自动置位RI。RI必须由软件清0。7.2 MCS-51单片机的串行通讯接口SFR:SCON串行接口控制器(98H)第10页,共37页,2022年,5月20日,2点43分,星期二7.2 MCS-51单片机的串行通讯接口SMODD7D0SMOD:波特率加倍位。在计算方式1、2、3的波特率时, 为1波特 率加倍,为0波特率不加倍。SFR:PCON(87H)第11页,共37页,2022年,5月20日,2点43分,星期二7.2 MCS-51单片机的串行通讯接口7.2.3 串行接口的四

7、种工作方式一 工作方式0(同步串行通讯接口)SM0SM1方式波特率功能说明001101010123Fosc/12可变(T1)Fosc/32,64可变(T1)同步移位寄存器8位异步通讯9位异步通讯9位异步通讯串口发送时间T1CPU启动发送命令时间T2SBUF = 0 x-;第12页,共37页,2022年,5月20日,2点43分,星期二7.2 MCS-51单片机的串行通讯接口方式0发送当一个数据写入发送缓冲器SBUF(SBUF = 0 x-;)时,串行口即将8位数据以fosc/12的波特率从RXD引脚输出(从低位到高位), 同步时钟脉冲从TXD引脚输出,发送完毕中断标志TI置1,波形如下图。再次发

8、送数据前,必须用软件将TI清0(TI = 0;)。第13页,共37页,2022年,5月20日,2点43分,星期二工作方式0发送数据时,一般外接移位寄存器(如74HC164)实现串并转换,用于扩展键盘和显示接口。7.2 MCS-51单片机的串行通讯接口74HC1648-bit serial-in, parallel-out shift registerRXDTXDP1.0D0D1D0D2D1D0D0D3D2D1D0D1D4D3D2D0D1D2D5D4D3D0D1D2D3D6D5D4D0D1D2D3D4D7D6D5实际应用中,工作方式0很少用于接收数据。此节只讨论方式0发送数据。第14页,共37页

9、,2022年,5月20日,2点43分,星期二7.2 MCS-51单片机的串行通讯接口ORG 0000H LJMP MAIN ;跳转主程序ORG 0030HMAIIN: MOV SCON, #00H ; 定义串口工作方式0,禁止接收数据MOV R0,#10H ;定义传送数据字节数 MOV DPTR,#3000H ;定义外部数据存储器指针LOOP: MOVX A,DPTR ;读取数据 MOVSBUF,A ;发送数据 JNB TI,$ ;查询当前字节发送是否完毕 CLR TI;软件清标志位 INC DPTR;指针加1,准备读取下一单元数据 DJNZ R0,LOOP ;判断发送是否完毕 SJMP $

10、;自循环例7.1 编写程序,使用串口工作方式,依次发送外部数据存储器3000H-300FH单元内的数据。分析:初始化串口控制寄存器SCON,定义工作方式的状态字为00H。发送采用查询方式,当查询到发送完毕标志位TI为后,发送下一个字节。第15页,共37页,2022年,5月20日,2点43分,星期二7.2 MCS-51单片机的串行通讯接口二 工作方式1(异步串行通讯接口)SM0SM1方式波特率功能说明001101010123Fosc/12可变(T1)Fosc/32,64可变(T1)同步移位寄存器8位异步通讯9位异步通讯9位异步通讯波特率计算公式: 定时器T1溢出率是指定时器T1一秒钟内溢出的次数

11、。发送或接收完一个字节后,必须软件将TI、RI清0。方式1数据格式第16页,共37页,2022年,5月20日,2点43分,星期二7.2 MCS-51单片机的串行通讯接口方式1发送时序方式1接收时序注意设置接收允许控制位REN为1第17页,共37页,2022年,5月20日,2点43分,星期二7.2 MCS-51单片机的串行通讯接口三 工作方式2、3(异步串行通讯接口)SM0SM1方式波特率功能说明001101010123Fosc/12可变(T1)Fosc/32,64可变(T1)同步移位寄存器(用于扩展I/O接口)8位异步通讯9位异步通讯9位异步通讯发送或接收完一个字节后,必须软件将TI、RI清0

12、。方式2、方式3的区别在于波特率的计算方法 方式2: 方式3:数据格式第18页,共37页,2022年,5月20日,2点43分,星期二7.2 MCS-51单片机的串行通讯接口方式2、3发送时序方式2、3接收时序(不做要求)注意设置接收允许控制位REN为1;注意SM2的作用。SM2RB8描述0 x允许RI置110不允许RI置111允许RI置1第19页,共37页,2022年,5月20日,2点43分,星期二SM0SM1方式波特率用途001101010123fosc/12扩充并口双机通讯多机通讯多机通讯T1工作方式2,初值自动重新装入的8位定时器7.3 波特率的计算和设置7.3 波特率的计算和设置第20

13、页,共37页,2022年,5月20日,2点43分,星期二7.3 波特率的计算和设置例7.2 已知单片机晶体频率为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年,5月20日,2点43分

14、,星期二T1产生的常用波特率波特率bpsFoscSMODT1模式T1初值1920011.0592MHz12FDH960011.0592MHz02FDH480011.0592MHz02FAH240011.0592MHz02F4H120011.0592MHz02E8H7.3 波特率的计算和设置第22页,共37页,2022年,5月20日,2点43分,星期二7.4 串行接口的应用与编程举例1 串行接口初始化编程格式 SCON = 0 x50; /串口方式,且TI RI清零,是否允许接收PCON = 0 x00; /SMOD=0/1,TMOD = 0 x20; /T1工作方式2TH1 = 0 x-; /

15、写时间常数(TL1 = 0 x-;) /T1首次定时初值TR1 = 1; /启动T1( EA = 1; ) /允许中断( ES = 1; ) /允许串口中断第23页,共37页,2022年,5月20日,2点43分,星期二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; /清标

16、志位 return SBUF; /将接受到的数据返回第24页,共37页,2022年,5月20日,2点43分,星期二例7.3设有甲、乙两台单片机,编出两台单片机间实现如下串行通讯功能的程序,要求串口工作方式1,波特率为9600bps,单片机外接晶振为11.0592MHz。 甲方发送:将首址为2000H的32个字节的外部数据存储器数据块顺序向乙方发送; 乙方接收:将接收的32个字节的数据,保存到内部数据存储器中 。程序编制的要点:1、选定串口工作方式1,发送方控制字SCON为0100_0000B,接收方控制字SCON也是0101_0000B;2、定时器T1工作工作方式2,初值为FDH,SMOD为0

17、;3、在程序中必须用软件清除标志位RI和TI。7.4 串行接口的应用与编程举例第25页,共37页,2022年,5月20日,2点43分,星期二发送单片机程序main( ) uint data xaddr= 0 x2000; /定义外部数据存储器地址指针 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=

18、0;num32;num+) fasong(XBYTExaddr+num); /取数据并发送 while(1); 7.4 串行接口的应用与编程举例 void fasong(uchar temp) SBUF = temp; /启动发送命令 while(TI); /等待发送完毕 TI = 0; /清发送完毕标志位第26页,共37页,2022年,5月20日,2点43分,星期二7.4 串行接口的应用与编程举例接收单片机程序main( ) uchar data shuzu32; /定义32字节的数组 uchar data num; /定义接收字节个数变量 SCON = 0 x50; /发送方串口方式1,允

19、许接收 PCON = 0 x00; /SMOD=0, 能否用CLR SMOD TMOD = 0 x20; /定时器T1工作方式2 TH1 = 0 xFD; /产生9600波特率的定时器初值 TR1 = 1; /启动定时器T1 for(num=0;num32;num+) shuzunum = jieshou( ); /取接收数据并保存 while(1); uchar jieshou( void ) while(RI); /等待数据 RI = 0; /清标志位 return SBUF; /将接受到的数据返回第27页,共37页,2022年,5月20日,2点43分,星期二7.5 PC机与MCS-51单

20、片机的串口连接7.5 PC机与MCS-51单片机的串口连接因线电阻的存在使得信号在线路传输中存在电压衰减,而因电磁干扰的存在使得信号在线路传输中存在电压变化,所以常采用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年,5月20日,2点43分,星期二2 PC机的串行接口介绍9针RS-232C接口有用信号:2、RXD3、TXD5、GND电气特性负逻辑1、逻辑1为-5V到-15V2、逻辑0为+5V到+15V7.5 PC机与MCS-51单片机的串行接口连接第29页,共37页,2022年,5月20日,2点43分,星期二7.5 PC机与MCS-51单片机的串行接口连接3 PC机与MCS-51单片机的串行接口连接RS-232C与TTL电平转换芯片第30页,共37页,2022年,5月20日,2点43分,星期二7.5 PC机与MCS-51单片机的串行接口连接PC机与MCS-51单片机的串行接口连接RXDTXD电缆第31页,共37页,2022年,5月20日,2点43分,星期二两

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论