串口通信(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条)