
串口通信(Serial Communications)的概念非常简单,串口按位(bit)发送和接收字节的通信方式。1.串口通信相关概念 2. 相关寄存器 1) TMOD:
上一节我们就使用到过TMOD,用于设置定时器的方式,而在串口通信中,保证通信顺利的波特率也就是由定时器产生的。
在串口通信当中,我们要在TMOD中赋值,选择8位自动重装载模式。
在8位重装载模式下,当TL1溢出(最大255),TH1会自动将自己的值赋给TL1,这也就是重装载名子的来源,也是很多初学者疑惑为什么TL1和TH1值相等(有问题多看数据手册)
TMOD = 0x20; TH1 = 0xfd; TL1 = x0fd; AUXR = 0x00;//12分频
其中AUXR是一个辅助寄存器
# include "reg52.h"
sfr AUXR = 0x8e;
unsigned char temrever;
void init_uart(){
TMOD = 0x20;
TL1 = 0xfd;
TH1 = 0xfd;
AUXR = 0x00;
TR1 = 1;
SCON = 0x50;
ES = 1;
EA = 1;
}
void sendbyte(unsigned char dat){
SBUF = dat;
while(TI == 0);
TI = 0;
}
void Sever_Uart() interrupt 4
{
if(RI == 1){
RI =0;
sendbyte(0x02);
}
}
void main (){
init_uart();
sendbyte(0x01);
sendbyte("ok");
while(1);
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)