1、串行通信与并行通信
并行通信控制简单、传输相对较快,但是需要的传输线较多,长距离传送成本高,收发双方同时接收存在困难。
串行通信将数据字节分成多个位进行传输,只需要一根数据线,外加一条公共信号底线和若干控制线。对于一个字节的数据,需要分8位传输。
串行通信包含两种方式:串行同步和串行异步。
串行同步需要建立发送方时钟对接收方时钟的直接控制,控制收发双方保持完全同步。
异步通信则不需要严格时钟要求,双方各有各的时钟,尽可能保持一致即可,也就是波特率的由来。异步通信以字符为单位传输,包括起始位、数据位、奇偶检验位和停止位。
在单片机与单片机,单片机与上位机之间通信时,采用最多的方式就是异步串行通信方式。
串口通信在硬件电路设计时最常用的是ch340系列的芯片
51单片机的p3.1和p3.0具有串行通信的第二功能,因此设计这两个io口与ch340相连,注意ch340的txd要接单片机的rxdp3.0,如上图所示。
2、寄存器讲解
只讲解最常用的四个,scon控制寄存器,数据缓冲寄存器sbuf、波特率选择控制寄存器pcon,中断ie控制寄存器。
pcon的smod0位复位时清零(也就是通常情况下),此时scon的sm0和sm1一起指定串行通信的工作方式。
四种方式中最常用的是方式1,因此多了解此方式即可,并可以看到后面提示的是定时器1的溢出率。scon中ren是串行接收控制位,接收数据则需要开启置1,ti是发送中断请求标志位,硬件自动置1,需要软件清0。ri为接收中断标志位,用法同ti。
波特率:每秒传输二进制代码的位数,1波特=1位/s,单位bps。计算与定时器1的初始值确定,定时器1工作在8位重装载方式,不需要溢出后重新赋值。
3、代码展示
#includereg52.hsbit key6=p3^2;unsigned char num=0;unsigned char index=0;unsigned char table[]=happy new year!;void delay(unsigned char time){ unsigned char i,j; for(i=0;i< time;i++) for(j=0;j< 120;j++);}void init_serial(){ tmod=0x21; tl1 = 0xfd; th1 = 0xfd;//模式介绍,tl1溢出直接使用th1中的值,往复使用(自动装载) tr1=1; //定时器1开启 9600bps sm0=0; sm1=1; ren=0; //关掉接收 es=1; ea=1;}int main(){ unsigned char index = 0; init_serial(); while(1) { delay_ms(1000); es=0;//防止中断再次进入 sbuf=table[index]; while(!ti); ti=0; es=1; index+=1; }}
2020年型号Apple Watch将更换组装工厂,或将于2020年9月发布
中国移动将重点加强5G与垂直行业的融合发展推动5G商用不断走向成熟
设计高性能城域边缘网路由器需要考虑哪些因素
雷诺汽车使用深度学习网络估计 NOx 排放量
射频识别(rfid)概念股有哪些_射频识别(rfid)概念股一览
51单片机串口通信讲解
与铠侠合并未果,西部数据宣布将分拆闪存业务
高压铁塔倾斜该如何处理?电杆处理的安全方案
什么是微带线?微带线的历史和构成
蚁利AR全息智慧建多媒体数字沙盘
士兰微电子荣获“2023半导体国产卓越品牌”奖
LCD屏要被智能手机行业放弃?
IGBT的关断瞬态分析—电荷存储初始值
销售额超1158亿美元 2018年Q1全球半导体火爆市场热度不减
交错并联低压大电流DC/DC变换器原理图
OPPO宣布了他们最新的迭代中Reno系列
大零币以将如何与比特币共存
380电源滤波器的作用是什么
联网SoPhy“智能袜子”可治疗下肢,你见过吗?
各类变换器电路图及其工作原理