51单片机的串口设有两个控制寄存器:串行口控制寄存器SCON和波特率选择特殊功能寄存器PCON
PCON:他的第8位是SMOD波特率选择位,配置串口通信方式1、2、3的波特率倍数,选择不加倍,即第8位为0,其他部分暂时用不上默认就好所以让PCON直接与上0111 1111
PCON写成:PCON &= 0x7F
SCON:同样是8位的寄存器,他的第8位SM0和第7位SM1用来选择串口工作模式,
工作方式有四种:
一般串行发送接收用方式1和3,这里选方式1,REN为1可以接收数据,不接收可以写成:
SCON = 0x40
然后方式一会涉及到定时器1的溢出率,所以需要配置定时器1的模式。定时器1配置成8位自动重装载,在溢出时把TH1提前设置好的值自动装入TL1,效率高,平时使用定时器时用的是16位定时器,TH1和TL1全用,每一次定时都要软件置位,所以用8位自动重装载,即M1、M0为1、0。定时器0用不上,定时器1模式配置成:
TMOD &= 0x0F
TMOD |= 0x20
定时器1的大小配置:
先求TH1,波特率选9600,系统时钟为11059200,SMOD不加倍为0,按照上面的表格求一元一次方程解TH1的十进制数为253,转化为16进制就是0xFD(波特率初值)
TH1 = 0xFD
TL1 = 0xFD
TR1 = 1 //启动定时器
AUXR = 0X01加上这个降低时钟对外界辐射,让时钟减少干扰
版权声明:本文为weixin_53854803原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。