片机串行通讯及串行口扩展应用.ppt

上传人:小飞机 文档编号:6588927 上传时间:2023-11-15 格式:PPT 页数:33 大小:279KB
返回 下载 相关 举报
片机串行通讯及串行口扩展应用.ppt_第1页
第1页 / 共33页
片机串行通讯及串行口扩展应用.ppt_第2页
第2页 / 共33页
片机串行通讯及串行口扩展应用.ppt_第3页
第3页 / 共33页
片机串行通讯及串行口扩展应用.ppt_第4页
第4页 / 共33页
片机串行通讯及串行口扩展应用.ppt_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《片机串行通讯及串行口扩展应用.ppt》由会员分享,可在线阅读,更多相关《片机串行通讯及串行口扩展应用.ppt(33页珍藏版)》请在三一办公上搜索。

1、第14讲 单片机串行通信及串口扩展应用,14.1单片机串行通信接口的功能与结构14.2串行口的工作方式14.3两个单片机串行通信14.4单片机串行口扩展应用,14.1 单片机串行通信接口的功能与结构,MCS-51单片机内部有一个功能很强的全双工串行口:RXD/P3.0,TXD/P3.5,可同时发送和接收数据。发送和接收数据均可工作在查询方式和中断方式,使用十分灵活,可很方便地与其它计算机或串行传送信息的设备实现双机、多机通信。,返回本节,14.1 单片机串行通信接口的功能与结构,串行口主要由发送数据缓冲器、发送控制器、接收控制器、输入移位控制器等组成。发送数据缓冲器只能写入,不能读出;接收数据

2、缓冲器只能读出,不能写入,故两个寄存器共用一个符号(特殊功能寄存器SBUF),共用一个地址(99H)。串行口中还有两个特殊功能寄存器SCON、PCON:SCON:串行口控制寄存器,控制串行口的工作方式;PCON:电源控制寄存器,只有一位SMOD控制波特率。波特率发生器可用定时器/计数器0或和定时器/计数器1构成。,返回本节,工作方式控制寄存器TMOD(波特率发生器),返回本节,下面以高4位控制定时器/计数器T1为例来说明各位的具体功能:GATE:门控位,用来控制计数器的启动是否受外部中断请求信号的影响。GATE=1,计数器的启动受芯片引脚(P3.3)的控制,即除了需要将寄存器TCON的TR1位

3、置“1”外,还要使 引脚为高电平;GATE=0,只要寄存器TCON的TR1位置“1”,就可以启动T1开始工作。:定时、计数功能设置位。=0,将定时器/计数器设置为定时器工作方式;=1,将定时器/计数器设置为计数器工作方式。M1、M0位:定时器/计数器工作方式选择位。M1、M0位取不同值得组合,可以将定时器/计数器设置位不同的工作方式。M1、M0位不同取值与定时器/计数器工作方式的关系见下表:,定时器/计数器的控制,返回本节,14.1 单片机串行通信接口的功能与结构,返回本节,串行通信控制寄存器 SCON寄存器SCON的功能主要是接收串行通信口送到的中断请求信号。其字节地址为98H,它有8位,每

4、位均可进行位寻址,各位的地址和名称如下:SCON 9FH 9EH 9DH 9CH 9BH 9AH 99H 98HSM0、SM1:选择串行口四种工作方式,由软件置位或清零;SM2:多机控制位;REN:允许串行接收位;TB8:发送数据第8位;RB8:接收数据第8位;TI:发送中断标志位;RI:接收中断标志位。,13.2 单片机串行通信接口的功能与结构,返回本节,电源控制寄存器 PCONPCON的最高位SMOD是波特率控制位,其余各位与串行口无关。其字节地址为97H,它有8位,各位的地址和名称如下:SCON D7 D6 D5 D4 D3 D2 D1 D0SMOD=1:波特率增大一倍。,14.2串行口

5、的工作方式,返回本节,14.2串行口的工作方式,返回本节,串行通信控制寄存器 SCON方式0(SM0=0、SM1=0)方式0为移位寄存器方式,数据从RXD引脚上接收或发送。一帧信息由8位数据组成,低位在前,波特率固定,为fosc/12。同步脉冲从TXD引脚上输出。SM2:多机控制位必须为0;REN:允许串行接收位:REN=0,禁止接收;REN=1,允许接收;TB8、RB8:在方式0中无用;TI:发送中断标志位;RI:接收中断标志位 方式0发送或接收完8位数据TI/RI由硬件置1,CPU响应中断后,TI或RI标志位必须由程序清0。,14.2串行口的工作方式,返回本节,串行通信控制寄存器 SCON

6、方式1(SM0=0、SM1=1)为8位异步通信接口方式,RXD为接收端,TXD为发送端。一帧信息由10位组成:起始位:1,数据位:8,停止位:1 方式1的波特率可变,由由定时器/计数器T1及SMOD决定,且发送波特率和接收波特率可以不同。TI=1:置发送中断标志;REN=1,允许接收;操作如下:1、若RI=0、SM2=0,将8位数据装入SBUF,停止位装入RB8,并置RI=1,申请中断。2、若RI=0、SM2=1,那么只有停止位为1才发生上述操作;3、若RI=0、SM2=1且停止位为0,则所接收的数据不装入SBUF,即数据丢失;4、若RI=1,则所接收的数据在任何情况下都不装入SBUF,即数据

7、丢失。,14.2串行口的工作方式,返回本节,串行通信控制寄存器 SCON方式2:(SM0=1、SM1=0)和方式3(SM0=1、SM1=1)、均为9位异步通信接口,发送或接收一帧信息由11位组成:起始位:1,数据位:9,停止位:1、方式2、3仅波特率不同:方式2波特率:fosc/32(SMOD=1)或fosc/64(SMOD=0)方式3波特率:由定时器/计数器T1及SMOD决定.3、方式2和方式3发送、接收数据的过程与方式1基本相同,所不同的仅在于对第9位数据的处理上。发送时,第9位数据由SCON中的TB8提供;接收时,当第9位数据移入移位寄存器后,将8位数据装入SBUF,第9位数据装入SCO

8、N中的RB8。,波特率的设置,返回本节,串行口的4种工作方式对应3种波特率模式:对于方式0:波特率是固定的,为fosc/12;对于方式2:波特率由振荡频率fosc和SMOD(PCON.7)所决定,波特率=fosc/64对于方式1和3,波特率由定时器/计数器T1及SMOD决定,波特率=定时器/计数器T1溢出率/32,多机通信,返回本节,主从式多机通信:主机发送信息为两类:一类地址:串行传送的第九位为1(TB8=1)一类数据:串行传送的第九位为0(TB8=0),多机通信,返回本节,在实际应用中,需要多个单片机之间协调工作,即多机通信,利用单片机串口即可实现。串口用于多机通信,必须使用方式2或方式3

9、(9位URAT)。主从式多机通信:应用最广,也最简单。主机发出的信息只能传送到所有从机或指定从机;从机发出的信息只能被主机接收;从机之间不能直接通信,必须通过主机.,多机通信,返回本节,主机发出的信息有两类:一类为地址,用来确定和主机通信的从机,特征是串行传送的第9位数据为1;另一类为数据,特征是串行传送的第9位数据为0.对从机来说,要利用SCON寄存器中的SM2的控制功能:在接收时,若RI=0,则只要SM2=1,接收总能实现,若SM2=0,发送的第9位TB8必须0接收才能进行,因此,对于从机来说,在接收地址时,应使SM2=1,以便接收主机发来的地址,从而确定主机是否打算和自己通信;一经确认后

10、,从机应使SM2=0,以便接收TB8=0的数据.,多机通信,返回本节,主从多机通信的过程:(1)使所有的从机的SM2位置1,以便接收主机发来的地址;(2)主机发出一帧地址信息,其中包括8位需要与之通信的从机地址,第9位为1;(3)所有从机接收到地址帧后,各自将所接收到的地址与本机地址相比较:对于地址相同的从机,使SM2位清零,以接收主机随后发来的所有信息;对于地址不符合的从机,仍保持SM2=1的状态,对主机随后发来的数据不予理睬,直至发送新的地址帧;(4)主机给已被寻址的从机发送控制指令和数据(数据帧的第9位为0).,14.3两个单片机串行通信,返回本节,在控制系统中有甲、乙两个单片机首先将P

11、1口指拨开关数据载入SBUF,然后经由TXD将数据传送给乙单片机,乙单片机将接收数据存入SUBF,在经由SBUF载入累加器,并输出至P1,点亮相应端口的LED.,14.3两个单片机串行通信,返回本节,14.3两个单片机串行通信,返回本节,键值是否与前次相同?,是否发送完毕,是否发送完毕,是否发送完毕,N,Y,N,Y,14.3两个单片机串行通信,返回本节,1)单片机1的汇编源程序 ORG 00H AJMP STARTSTART:MOV SP,#60H MOV SCON,#50H;SCON(SM0,SM1,SM2,REN,TB8,RB8,TI,RI)MOV TMOD,#20H;TMOD(GATE,

12、C/T,M1,M0,GATE,C/T,M1,M0,)MOV TH1,#0F9H;溢出时间(256-250)/fosc,波特率fosc/6/32 SETB TR1;T1启动 MOV 30H,#0FFH;缓存(30H7FH)READ:MOV A,P1 CJNE A,30H,SAVE;与缓存比较,看拨码开关是否有变化 JMP READSAVE:MOV 30H,A;写缓存 MOV SBUF,A;写入SBUF,发送WAIT:JBC TI,READ;发完,继续读,否则等待 AJMP WAIT END,14.3两个单片机串行通信,返回本节,2)单片机2的汇编源程序 ORG 00H AJMP STARTSTA

13、RT:MOV SP,#60H MOV SCON,#50H;SCON(SM0,SM1,SM2,REN,TB8,RB8,TI,RI)MOV TMOD,#20H;TMOD(GATE,C/T,M1,M0,GATE,C/T,M1,M0,)MOV TH1,#0F9H SETB TR1READ:JB RI,UART;读完,转处理,否则继续读 AJMP READUART:MOV A,SBUF MOV P1,A CLR RI AJMP READ END,14.3两个单片机串行通信,返回本节,1)单片机1的C语言源程序#include”reg51.h”#define unit unsigned int#defin

14、e uchar unsigned charviod main(viod)uchar i=0;TMOD=0X20;TH1=0XFA;TL1=0XFA;/假设晶振频率为11.0592MHz,波特率设置为57600bps SCON=0X40;/设置方式1,只能发送,不能接收 PCON=0X80;TR1=1;P1=0XFF;while(1)while(P1=0XFF);i=P1;SBUF=I;while(TI=0);TI=0;while(P1!=0 xff);,14.3两个单片机串行通信,返回本节,/*单片机2通信程序*/#include”reg51.h”#define uint unsigned i

15、nt#define uchar unsigned charVoid main(void)uchar i=0;TMOD=0 x20;TH1=0XFA;TL1=0XFA;SCON=0X50;PCON=0X80;TR1=1;while(1)while(RI=0);/查询是否接收完毕串行数据 RI=0;i=SBUF;P2=I;,14.3两个单片机串行通信,返回本节,14.4单片机串行口扩展应用,返回本节,使用串行口控制8个LED,要求每按一次INT0,LED进行移位显示。,14.4单片机串行口扩展应用,返回本节,使用串行口控制8个LED,要求每按一次INT0,LED进行移位显示。硬件设计 单片机串行口

16、在方式0下发送数据时,是把串行端口设置成“串入并出”的输出口。将它设置为“串入并出输入口时,需外接一片8位串行输入和并行输出的同步移位芯片74LS164或CD4094,本例中采用74LS164,14.4单片机串行口扩展应用,返回本节,图4-42 串行口扩展电路图,14.4单片机串行口扩展应用,返回本节,。,14.4单片机串行口扩展应用,返回本节,汇编源程序 ORG 00H AJMP START ORG 0003H AJMP INTSTART:MOV SCON,#00H;选择方式0:移位寄存器方式,用于并行I/O扩展 SETB IT0;跳变触发 SETB EA;中断总开关 SETB EX0;外部

17、中断0允许 MOV SBUF,#0FEH;11111110(亮一位)MOV DPTR,#TABLELP:CLR TI AJMP LP,14.4单片机串行口扩展应用,返回本节,INT:INC DPTR MOV A,#00H MOVC A,A+DPTR CJNE A,#1BH,LP1 AJMP LP2LP1:MOV SBUF,A JBC TI,LP1 AJMP LP3LP2:MOV DPTR,#TABLELP3:NOP RETITABLE:DB 0FEH,0FEH,0FDH,0FBH,0F7H DB 0EFH,0DFH,0BFH,7FH,1BH END,14.4单片机串行口扩展应用,返回本节,#i

18、ncludereg51.h#define uint unsigned int#define uchar unsigned charconst uchar tab=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f;uchar i;void main(void)SCON=0X00;IT0=1;EA=1;EX0=1;SBUF=0XFE;while(TI=0);TI=0;while(1);,14.4单片机串行口扩展应用,返回本节,void it0(void)interrupt 0 using 1 i+;if(i=8)i=0;SBUF=tabi;while(TI=0);TI=0;,14.4单片机串行口扩展应用,返回本节,串行口扩展的运行结果,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号