您的位置 首页 IOT

STC89C52单片机的UART串行通讯规划

STC89C52单片机的UART串行通信设计-通信过程:在UART 通信的时候,一个字节是 8 位,规定当没有通信信号发生时,通信线路保持高电平,当要发送数据之前,先发一位 0 表示起始位,然后发送 8 位数据位,数据位是先低后高的顺序,数据位发完后再发一位 1 表示停止位。

关于单片机来说,通讯则与传感器、存储芯片、外围操控芯片等技能紧密结合,成为整个单片机体系的“神经中枢”。

1、开始知道

一位一位的发送出去的,要发送 8 次才干发送完一个字节。

STC89C52有两个引脚是专门用来做 UART串行通讯的,一个是 P3.0一个是 P3.1,它们还别离有别的的姓名叫做 RXD和TXD,由它们组成的通讯接口就叫做串行接口,简称串口。

波特率:发送二进制数据位的速率,习惯上用 baud 表明;即咱们发送一位二进制数据的持续时间=1/baud。

通讯进程:在UART 通讯的时分,一个字节是 8 位,规定当没有通讯信号产生时,通讯线路坚持高电平,当要发送数据之前,先发一位 0 表明开始位,然后发送 8 位数据位,数据位是先低后高的次序,数据位发完后再发一位 1 表明中止位。

STC89C52单片机的UART串行通讯规划

2、RS232通讯接口与USB转串口通讯

RS232 接口一共有 9 个引脚,别离界说是: 1、载波检测 DCD; 2、接纳数据 RXD; 3、发送数据 TXD; 4、数据终端准备好 DTR; 5、信号地线 SG; 6、数据准备好 DSR; 7、恳求发送 RTS; 8、铲除发送 CTS; 9、振铃提示 RI。咱们要让这个串口和咱们单片机进行通讯,咱们只需求关怀其间的 2 脚 RXD、 3 脚 TXD 和 5 脚 GND 即可。

负逻辑:低电平代表的是 1,而高电平代表的是 0,因而需求电平转化芯片 MAX232。 RS232 串口和 UART 串口,它们的协议类型是相同的,仅仅电平规范不同罢了,而 MAX232 这个芯片起到的便是中间人的效果,它把 UART 电平转化成 RS232 电平,也把 RS232 电平转化成 UART 电平。

USB 转串口芯CH340T:完成 USB通讯协议和规范UART 串行通讯协议的转化。

3、通讯的三种根本类型

单工通讯便是指只允许一方向别的一方传送信息,而另一方不能回传信息;

半双工通讯是指数据能够在两边之间彼此传达,可是同一时间只能其间一方发给别的一方;

全双工通讯就发送数据的一起也能够接纳数据,两者同步进行。

4、串口通讯

1、装备串口为形式 1。

2、装备定时器 T1 为形式 2,即主动重装形式。

3、依据波特率核算 TH1 和 TL1 的初值,如果有需求能够运用 PCON 进行波特率加倍。

4、翻开定时器操控寄存器 TR1,让定时器跑起来。

定时器的重载值核算公式为:TH1= TL1 = 256 – 晶振值/12 /2/16 /波特率

STC89C52单片机的UART串行通讯规划

#include

voidConfigUART(unsignedintbaud);

intmain(void)

{

EA=1;//使能总中止

ConfigUART(9600);//装备波特率为9600

while(1);

return0;

}

/*串口装备函数,baud-通讯波特率*/

voidConfigUART(unsignedintbaud)

{

SCON=0x50;//装备串口为形式1

TMOD&=0x0F;//清零T1的操控位

TMOD|=0x20;//装备T1为形式2

TH1=256-(11059200/12/32)/baud;//核算T1重载值

TL1=TH1;//初值等于重载值

ET1=0;//制止T1中止

ES=1;//使能串口中止

TR1=1;//发动T1

}

/*UART中止服务函数*/

voidInterruptUART()interrupt4

{

if(RI)//接纳到字节

{

RI=0;//手动清零接纳中止标志位

SBUF=SBUF+1;//接纳的数据+1后发回,左面是发送SBUF,右边是接纳SBUF

}

if(TI)//字节发送结束

{

TI=0;//手动清零发送中止标志位

}

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/iot/346621.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部