串口通信协议TI不清0也可以吗

专业文档是百度文库认证用户/机构上传的专业性文档,文库VIP用户或购买专业文档下载特权礼包的其他会员用户可用专业文档下载特权免费下载专业文档。只要带有以下“专业文档”标识的文档便是该类文档。

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取,非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档。

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取,非会员用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档。

付费文档是百度文库认证用户/机构上传的专业性文档,需要文库用户支付人民币获取,具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档。

共享文档是百度文库用户免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定。只要带有以下“共享文档”标识的文档便是该类文档。

}

摘要: 本文讲的是 51单片机 (手把手教你)串口通信-基础篇__串口通信, 通信方式 并行 适合短距离通信,并行通信控制简单、相对传输速度快(8位一起传输)。 串行 只能一位一位的传送。 同步(了解)

适合短距离通信,并行通信控制简单、相对传输速度快(8位一起传输)。



建立发送方时钟对接收方时钟的直接控制,使双方达到完全同步。此时,传输数据的位之间的距离均为“位间隔”的整数倍,同时传送的字符间不留间隙。

发送方对接收方的同步可以通过外同步和自同步

以字符(构成的帧)为单位进行传输。数据位从低到高传送。


这里的空闲时间是任意的。

串行通信的制式(传输方向)
单工(仅能沿一个方向)


半双工(可进行双向,但需分时)



串行通信的错误校验 奇偶校验

在发送数据时,数据位尾随的1位为奇偶校验位(1/0)。奇校验时,数据中1的个数与检验位1的个数之和应为奇数;偶校验时,数据中1的个数与校验位1的个数之和应为偶数。接收字符时,对1的个数进行校验,若字符不一致,则说明传输数据过程中出现错误。

发送方将所发数据块求和(或各字节异或),产生一个字节的校验字符(校验和)附加到数据块末尾。接收方接收数据时,同时对数据块(除校验字节外)求和(或各字节异或),将所得的结果与发送方的“校验和”进行比较,一致则无差。

通过某种数学预算实现有效信息与校验位之间的循环校验,常用语对磁盘信息的传输、存储区的完整性校验。


SBUF:51单片机中的特殊寄存器,串行数据缓冲器(一个接收一个发送),两个其实是共用的一个地址99H,但是两个在物理上面是分开的。 当发送使用时,就采用SBUF=XXX;  (XXX为需要传送的数据) 当接收使用时,采用XXX=SBUF; 记得因为是串行的所以传输都是一位一位进行的。 T1溢出率:T1计时器的溢出频率(就是计时器每次低位计满向高位进位时间的倒数) 用处:用于波特率(每秒传输二进制代码的位数)
实现单片机与电脑之间的互相传送字符串通信 工具:STC-ISP

TMOD=0x20; //定时器工作方式,选择了定时器1,工作方式2 八位初值自动重装的8位定时器。 SM1=1; //10位异步接收,(8位数据)波特率可变 { //2.flag为0和j不为0时,保证是第二次及以后,传输字符串(控制输出格式) if(s[j]=='#'||j==49) //以'#'作为传送字符串的结尾符,我定义的字符数组最长为50所以49也应该结束。



代码解读:基本上就是几个模块:计时器、中断以及串口通信 中断 寄存器介绍 IE(interrupt enable):(可位寻址)设定各个中断源的打开和关闭 IP(interrupt prior)中断优先级寄存器:(可位寻址)用来设定各个中断源属于两级中断中的哪一级

中断响应条件: 1.中断源有中断请求 2.此中断源的中断允许位为1 3.CPU开中断(EA=1) 代码书写: 1.先开总中断EA 2 .然后再开特定的中断去控制 3.如果有特殊需要优先级问题再设置IP 4.中断函数书写 格式 void 函数名() interrupt 中断号(上面图示的序号) //中断函数返回值一定是void   //函数名随便写 //中断号用来判断是哪个中断源

计时器 寄存器介绍 TCON 支持位寻址 :控制寄存器,控制T1、T0的启动和停止及设置溢出标志

TMOD,不支持位寻址:定时/计数器的工作方式寄存器,确定工作方式和功能


用来管理单片机的电源部分,包括上电复位检测、掉电模式


SCON:(可位寻址)用以设定串行口的工作方式、接收/发送控制以及设置状态标志

SMOD就是PCON中的第一位,默认为0 fosc为晶振频率,所以自己设定不同波特率时,也要考虑晶振不同的问题。

//因为TI在中断中进行,(1)没有if(TI)的判断,那么就会和RI的处理混淆(2)如果有TI判断 //那么有可能永远进行不了传输数据,因为最开始TI是为0的,无法进入TI条件,就无传 //输数据(SBUF=XX)。而且在传输数据的时候会又一次进入中断,就是还没处理中 //断就又进入了另外一个中断,导致通信出现异常。
相信有了这些模块的讲解之后加上代码的注释应该都懂了~ 如果有任何问题和不懂的都可以提出~


以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索单片机 , 串口通信 |--51单片机 ,以便于您获取更多的相关知识。

}

专业文档是百度文库认证用户/机构上传的专业性文档,文库VIP用户或购买专业文档下载特权礼包的其他会员用户可用专业文档下载特权免费下载专业文档。只要带有以下“专业文档”标识的文档便是该类文档。

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取,非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档。

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取,非会员用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档。

付费文档是百度文库认证用户/机构上传的专业性文档,需要文库用户支付人民币获取,具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档。

共享文档是百度文库用户免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定。只要带有以下“共享文档”标识的文档便是该类文档。

}

我要回帖

更多关于 串口通信 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信