• / 26
  • 下载费用:16 金币  

LESSON13串口通信

关 键 词:
lesson13
资源描述:
第六章 串口通信 6-1 串口基本知识 § 1.1 串口概述 § 单片机与外界进行信息交换称之为通讯。 8051单片机 的通讯方式有两种:并行通讯和串行通信。 § 并行通讯——数据的各位同时发送或接收,如图所示: 6-1 串口基本知识 § 串行通讯——数据一位一位顺序发送或接收,如图所示: 6-1 串口基本知识 § 1.2 串行通信方式 § 在串行通信中,又有两种通信方式:异步通讯和同步通 信。 § 1.2.1 异步通讯 § 异步通讯是用一个起始位表示字符的开始,用停止位表 示字符的结束。其每帧的格式如下: § 在一帧格式中,先是一个起始位0,然后是8个 数据位,规定低位在前,高位在后,接下来是奇偶 校验位(可以省略),最后是停止位1。用这种格 式表示字符,则字符可以一个接一个地传送。 § 在异步通讯中,CPU与外设之间必须有两项规 定,即字符格式和波特率。字符格式的规定是双方 能够在对同一种0和1的串理解成同一种意义。原则 上字符格式可以由通讯的双方自由制定,但从通用 、方便的角度出发,一般还是使用一些标准为好, 如采用ASCII标准。 § 波特率即数据传送的速率,其定义是每秒钟传 送的二进制数的位数。例如,数据传送的速率是 120字符/s,而每个字符如上述规定包含10数位, 则传送波特率为1200波特。 § 波特率是指每秒钟传送信号的数量,单位为波特( Baud)。而每秒钟传送二进制数的信号数(即二进 制数的位数)定义为比特率,单位是bps(bit per second)或写成b/s(位/秒)。 § 在单片机串行通信中,传送的信号是二进制信 号,波特率与比特率数值上相等。单位采用bps。 § 例如,异步串行通信的数据传送的速率是120字符/ 秒,而每个字符规定包含10位数字,则传输波特率 为: § 120字符/秒× 10位/字符=1200位/秒= 1200bps § 异步方式:以字符为单位进行数据传送,每一个字 符均按固定的字符格式传送,又被称为帧。优点是 不需要传送同步脉冲,可靠性高,所需设备简单; 缺点是字符帧中因包含有起始位和停止位而降低了 有效数据的传输速率。 § 数据格式如下图所示: § 1.1.2 同步通讯 同步方式:以数据块为单位进行数据传送,包括同步字符、 数据块和校验字符CRC。优点是数据传输速率较高,缺点是 要求发送时钟和接收时钟保持严格同步。数据格式如下图所 示。 § 1.3 串行通信方向 § 在串行通信中,其通信方向有三种:单工传送 、双工传送。 § 单工传送——在串行通讯中,把通讯接口只能 发送或接收的单向传送方法叫单工传送。 § 双工传送——把数据在甲乙两机之间的双向传 递,称之为双工传送。 § 在双工传送方式中又分为半双工传送和全双工 传送。半双工传送是两机之间不能同时进行发送和 接收,任一时刻,只能发或者只能收信息。 § 1.4 51串口结构 § 8051串行接口是一个可编程的全双工串 行通讯接口。它可用作异步通讯方式( UART),与串行传送信息的外部设备相连 接,或用于通过标准异步通讯协议进行全双 工的8051多机系统,也可以通过同步方式, 使用TTL或CMOS移位寄存器来扩充I/O口。 § 8051单片机通过引脚RXD(P3.0,串行 数据接收端)和引脚TXD(P3.1,串行数据 发送端)与外界通讯。 § SBUF是串行口缓冲寄存器,包括发 送寄存器和接收寄存器。它们有相同名 字和地址空间,但不会出现冲突,因为 它们两个一个只能被CPU读出数据,一个 只能被CPU写入数据。 § 其结构如下图所示: SBUF (发) SBUF (收) 发送控制器 TI 接收控制器 RI 移位寄存器 波 特 率 发 生 器 T1 1 A 累 加 器 (门)移位寄存器 RxD (P3.0) TxD (P3.1) 去申请中断 引脚 引脚 CPU内部 2. 串行通信控制寄存器SCON (98H) SM0 SM1 SM2 REN TB8 RB8 TI RI SM0,SM1:串行口4种工作方式控制位。 =00:方式0,8位同步移位寄存器,其波特率为fosc/12; =01:方式1,10位UART,其波特率为可变,由定时器控制; =10:方式2,11位UART,其波特率为fosc/64或fosc/32; =11:方式3,11位UART,其波特率为可变,由定时器控制。 其中:fosc为系统晶振频率。 RI,TI:串行口收/发数据申请中断标志位 =1 申请中断; =0 不申请中断。 3. 中断允许寄存器IE(0A8H) 中断允许寄存器IE在以前已介绍。其中对串行口有影响的 位ES。ES为串行中断允许控制位。 ES=1:允许串行中断; ES=0:禁止串行中断。 4. 电源管理寄存器PCON(87H) 不可位寻址。 PCON主要用于实现电源控制而设置的专用 寄存器。其格式如下图所示。 SMOD GF1 GF0 PD IDL SMOD:串行口波特率倍增位 =1:串行口波特率加倍。 =0:串行口波特率不变,系统复位时默认为SMOD=0 。 6.2 串行口的工作方式 1. 工作方式0( 8位移位寄存器I/O方式) 发送/接收过程:SBUF中的串行数据由RxD逐位移出/移入( 低位在先,高位在后);TxD输出移位时钟,频率=fosc1/12; 每送出/接收8位数据 TI/ RI自动置1;需要用软件清零 TI/ RI 。 注意:串行口在方式0下的工作并非是一种同步通信方式,经 常配合“串入并出”“并入串出”移位寄存器一起使用,以达 到扩展一个并行口的目的。 扩展电路如下图所示。 2. 方式1 (波特率可变的10位异步通信方式 ) 发送/接收数据的格式:一帧信息包括1个起始位0,8 个数据位和1个停止位1。 发送/接收过程:SBUF中的串行数据由RXD逐位移出/ 移入;TXD输出移位时钟,频率= (2SMOD/32)T1的 溢出率,波特率可变。每送出/接收8位数据 TI/ RI自动 置1;需要用软件清零 TI/ RI 。工作时,发送端自动添 加一个起始位和一个停止位;接收端自动去掉一个起 始位和一个停止位。 发送/接收条件:同方式0。 3. 方式2(固定波特率的11位异步接收/发送方式) 发送/接收过程:方式2的接收/发送过程类似于方式1,所不同 的是它比方式1增加了一位“第9位”数据(TB8/RB8),用于“奇偶 校验”。方式2常用于单片机间通信。波特率 = fosc  2SMOD/64 。 发送/接收条件:同方式0。 3. 方式3(可变波特率的11位异步接收/发送方式) 方式3和方式2唯一的区别是波特率机制不同,方式3的波 特率=(2SMOD/32)T1的溢出率。 3.4.4 串行口的通信波特率 串行口的通信波特率恰到好处地反映了串行传输数据的速率。在MCS-51 串行口的四种工作方式中,方式0和2的波特率是固定的,而方式1和3的波特率 是可变的,由定时器T1的溢出率(T1溢出信号的频率)控制。各种方式的通 信波特率如下: 方式0:波特率固定为fosc/12。 其中:fosc——系统主机晶振频率 方式2:波特率由PCON中的选择位SMOD来决定,可由下式表示: 波特率=(2SMOD/64)×fosc 方式1和方式3:波特率是可变的,由定时器T1的溢出率控制。波特率为: 波特率=(2SMOD/32)×定时器T1溢出率 T1溢出率=T1计数率/产生溢出所需的周期 = (fosc/12)/(2KTC) 其中:K——定时器T1的位数,定时器T1用作波特率发生器时,通常工 作在方式2, 所以T1的溢出所需的周期数= 28TC。 TC——定时器T1的预置初值。 下表列出了定时器T1工作于方式2的常用波特率及初值。 6-3 串口通信实例 例: 在某控制系统中有甲、乙两个单片机, 甲单片机首先将P1口指拨开关数据载入 SBUF,然后经由TXD将数据传送给乙单片机 ,乙单片机将接收数据存入SBUF,再由 SBUF载人累加器,并输出至P1,点亮相应 端口的LED。原理图如下. 源程序: § /*单片机1通信程序 实现功能是U1按下的拨动开关按钮,U2 用LED显示对应的按钮*/ § #include § #define uint unsigned int § #define uchar unsigned char § void main(void) § { §uchar i=0; §TMOD=0x20;//定时/计数器T1,工作方式2 §TH1=0xfd; §TL1=0xfd; //假设晶振频率为11.0592,波特率设置 为9600bps §SCON=0x40; //设置方式1,只能发送,不能接收 PCON=0x00; //SMOD=0; §TR1=1; §P1=0xff; §while(1) §{ §while(P1==0xff);//判断是否拨动了开关按钮 §i=P1; //读取键值 §SBUF=i; §while(TI==0); §TI=0; §while(P1!=0xff); §} § } § /* 单片2通信程序 */ § #include § #define uint unsigned int § #define uchar unsigned char § void main(void) § { §uchar i=0; §TMOD=0x20; §TH1=0xfd; §TL1=0xfd; //假设晶振频率为11.0592,波 特率设置为9600bps §SCON=0x50; SCON=0x50; §PCON=0x00; §TR1=1; //启动T1 §while(1) §{ §while(RI==0);//采用查询的方法判断时接收 到数据 § RI=0; §i=SBUF; §P1=i; §} § }
展开阅读全文
  麦档网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
0条评论

还可以输入200字符

暂无评论,赶快抢占沙发吧。

关于本文
本文标题:LESSON13串口通信
链接地址:https://www.maidoc.com/p-15676355.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

[email protected] 2018-2020 maidoc.com版权所有  文库上传用户QQ群:3303921 

麦档网为“文档C2C模式”,即用户上传的文档所得金币直接给(下载)用户,本站只是中间服务平台,本站所有文档下载所得的金币归上传人(含作者)所有。
备案号:蜀ICP备17040478号-3  
川公网安备:51019002001290号 


收起
展开