9第九章CS-51串行通信

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第9章串行接口与应用一、基本要求1了解计算机通信的基本知识。2熟悉80C51串行口工作原理及应用方法。3能读懂双机通信发送、接收程序。退出9.1串行通信的基本知识在MCS-51单片机内部,有一个通用异步接收/发送器(UART)。这是一个全双工串行接口,能同时进行发送和接收数据。利用这个串行接口,可以实现单片机之间的单机通信、多机通信,以及与PC机之间的通信。9.1.1数据通信的基本概念1、数据通信2、通信方式有两种通信方式:一种是并行通信,一种是串行通信。9.1.2串行通信方式串行通信有三种方式:单工通信、半双工通信和全双工通信。9.1.3数据同步技术1、异步通信889.2MCS-51单片机串行口的结构与工作方式9.2.1串行口的结构MCS-51有一个可编程的全双工串行通信接口,可作为通用异步接收/发送器UART,也可作为同步移位寄存器。它的帧格式有8位、10位和11位,可以设置为固定波特率和可变波特率,给使用者带来很大的灵活性。9.2.2串行口控制寄存器SCON和电源控制寄存器PCON1、串行口控制寄存器SCON串行口控制寄存器SCON决定串行口通信工作方式,控制数据的接收和发送,并标示串行口的工作状态等。其位格式为:SM0、SM1:串行口工作方式控制位,两位对应四种工作方式,如表8-1所示(fosc是晶振频率)。2、电源控制寄存器PCON电源控制寄存器PCON中只有一位SMOD与串行口工作有关,它的位格式为:SMOD:波特率倍增位。串行口工作在方式1、方式2、方式3时,若SMOD=1,则波特率提高一倍;若SMOD=0,则波特率不提高一倍。单片机复位时,SMOD=0。9.2.3波特率设计1、方式0的波特率工作方式0时,移位脉冲由机器周期的第6个状态周期S6给出,每个机器周期产生一个移位脉冲,发送或接收一位数据。因此,波特率是固定的,为振荡频率的1/12,不受PCON寄存器中SMOD的影响。用公式表示为:工作方式0的波特率=fosc/122、方式2的波特率工作方式2时,移位脉冲由振荡频率fosc的第二节拍P2时钟(即fosc/2)给出,所以,方式2波特率取决于PCON中的SMOD位的值,当SMOD=0时,波特率为fosc的1/64;当SMOD=1时,波特率为fosc的1/32,用公式表示为;工作方式2波特率=(2SMOD/64)×fosc3、工作方式1和方式3的波特率【例9-1】8051单片机时钟振荡频率为11.0592MHZ,选用定时器T1(工作在方式2)作波特率发生器,波特率为4800bps,求定时器T1的初值X。解设波特率控制位SMOD=0,则:X=256−(11.0592×106×(0+1)/(384×4800)=250=FAH所以,(TH1)=(TL1)=FAH系统晶振频率选用11.0592MHZ,是为了使初值为整数,从而产生精确的波特率。9.2.4串行口的四种工作方式串行口的四种工作方式中,串行通信只使用方式1、方式2、方式3,方式0主要用于扩展并行输入输出口。1、串行口工作方式0999999999.3主从式多机通信9.3.1主从式多机通信原理9.3.2多机通信协议9.3.3串行通信实例【例9-1】有两台8051单片机相距很近,直接将它们的串行口相连,1#机的TXD接2#机的RXD,2#机的TXD接1#机的RXD,二机的GND相连。二机的晶振频率均为11.0592MHz,通信的波特率为4800bps。现将第一台8051单片机片内RAM40H~5FH单元内的数据,串行发送到第二台8051单片机片内RAM60H~7FH单元中。发送与接收的参考程序如下:1#单片机发送程序:ORG1000HTX:MOVTMOD,#20HMOVTH1,#0FAHMOVTL1,#0FAHMOVSCON,#11000000H;设定工作方式3MOVPCON,#00HSETBTR0MOVR0,#40H;设发送数据的地址指针MOVR2,#20H;设发送数据长度LOOP:MOVA,@R0;取发送数据送AMOVC,PSW.0MOVTB8,C;奇偶位送TB8MOVSBUF,A;启动发送WAIT:JBCTI,LL1;判发送中断标志SJMPWAITLL1:INCR0DJNZR2,LOOPRET2#单片机接收程序:ORG1000HRX:MOVTMOD,#20HMOVTH1,#0FAHMOVTL1,#0FAHMOVSCON,#11010000H;设定工作方式3,并允许接收MOVPCON,#00HSETBTR0MOVR0,#60HMOVR2,#20HLOOP:JBCRI,MM1;等待接收数据SJMPLOOPMM1:MOVA,SBUF;读入一帧数据JBPSW.0,PP1;判接收端奇偶JBRB8,ERROR;判发送端奇偶SJMPRIGHTPP1:JNBRB8,ERROR;接收出错RIGHT:MOV@R0,A;接收正确INCR0DJNZR2,LOOPRETERROR:SETBPSW.5;置出错标志RET【例9-2】甲乙两机进行串行通信,将甲机片外RAM中1000H单元开始的32个数据发送到乙机的片外RAM1000H开始的单元中。二机的晶振频率均为11.0592MHZ,通信的波特率为1200bps。设甲、乙机串行口均工作在方式1,根据发送和接收的波特率,设置定时器T1工作在方式2,当SMOD=0,则计数初值为E8H。甲机发送子程序流程图如图9-7(a)所示,乙机接收子程序流程图如图9-7(b)所示。参考程序如下:(1)甲机发送子程序:ORG1000HTTTT:MOVTMOD,#20HMOVTH1,#0E8HMOVTL1,#0E8HSETBTR1MOVSCON,#50HMOV87H,#00HENTER:MOVDPH,#10HMOVDPL,#00HMOVR4,#20HMOVR5,#00HTX1:MOVA,#04HMOVSBUF,AWAIT1:JBCTI,RX1SJMPWAIT1RX1:JBCRI,NEXT1SJMPRX1NEXT1:MOVA,SBUFCJNEA,#00H,TX1TX2:MOVA,R4MOVSBUF,AADDA,R5MOVR5,AWAIT2:JBCTI,TX3SJMPWAIT2TX3:MOVXA,@DPTRMOVSBUF,AADDA,R5MOVR5,AINCDPTRWAIT3:JBCTI,NEXT2SJMPWAIT3NEXT2:DJNZR4,TX3MOVA,R5MOVSBUF,AWAIT4:JBCTI,RX_11HSJMPWAIT4RX_11H:JBCRI,IF_11HSJMPRX_11HIF_11H:MOVA,SBUFCJNEA,#11H,ENTERRET(2)乙机接收子程序:ORG1000HRRRR:MOVTMOD,#20HMOVTH1,#0E8HMOVTL1,#0E8HSETBTR1MOVSCON,#50HMOV87H,#00HENTER:MOVDPH,#10HMOVDPL,#00HMOVR5,#00HRX1:JBCRI,IF_04HSJMPRX1IF_04H:MOVA,SBUFCJNEA,#04H,TX_FFHMOVA,#00HMOVSBUF,AWAIT1:JBCTI,RX2SJMPWAIT1LJMPRX2TX_FFH:MOVA,#0FFHMOVSBUF,AWAIT2:JBCTI,LL1SJMPWAIT2LL1:LJMPENTERRX2:JBCRI,LL2SJMPRX2LL2:MOVA,SBUFMOVR4,AMOVR5,ARX3:JBCRI,LL3SJMPRX3LL3:MOVA,SBUFMOVX@DPTR,AINCDPTRADDA,R5MOVR5,ADJNZR4,RX3RX4:JBCRI,LL4SJMPRX4LL4:MOVA,SBUFMOV30H,R5CJNEA,30H,T_ERRT_RIGHT:MOVA,#11HMOVSBUF,AWAIT3:JBCTI,ENSJMPWAIT3T_ERR:MOVA,#0F0HMOVSBUF,AWAIT4:JBCTI,AGAINSJMPWAIT4AGAIN:LJMPENTEREN:RET小结串行通信的基本知识MCS-51单片机串行口的结构与工作方式主从式多机通信习题与思考题1.串行通信有哪几种数据通路形式,试举例说明。2.串行通信的总线标准是什麽?有哪些内容?3.MCS-51单片机的串行口有几种工作方式?各有什麽特点和功能?4.MCS-51单片机的各种工作方式的波特率是如何确定的?5.简述单片机多机通信原理。6.以8051的串行口按方式1进行串行通信。假定波特率为1200,以中断方式传送数据,试编写发送和接收程序。

1 / 37
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功