一般情况下,编写串口通信程序的基本步骤如下:
配置串口为模式 1 ( SCON = 0x50)// 0101 0000
配置定时器 T1 为模式 2,即自动重装模式 (配置T1为 8位重装载 模式 -> 产生波特率用 )(TMOD = 0x20) //0010 0000
根据波特率计算 TH1 和 TL1 的初值,如果有需要可以使用 PCON 进行波特率加倍(因为有些晶振选用的波特率偏差太大,得加倍Baud才能缩小偏差)
打开定时器控制寄存器 TR1,让定时器跑起来产生Baud 。 // TR = 1;
Step 1.
Step 2.
Step 3.
定时器的重载值计算公式为:
一 12T模式时
TH1 = TL1 = 256 - 晶振值/12 /2/16 /波特率
比如
TMOD &= 0x0F; //复位定时器1控制信息0f=0000 1111
TMOD |= 0x20; //设定定时器1为模式2,8位自动重装方模式20=0010 0000
TL1 = 0xFD; //设定定时器1初值
TH1 = 0xFD; //设定定时器1重装值
TL1,TH1值0xFD的计算如下:
TH1 = TL1 = 256 - 晶振值/12 /2/16 /波特率
=256-11059200/12/2/16/9