无线WIFI模块ESP8266和51单片机组合,实现手机无线控制
名称:波特率发生器函数
作用:波特率发生器可以是T1定时器实现,也可以是MCU内部独立的波特率发生器,
各自不同的载入值计算式,具体根据寄存器相关设置来参考计算,以实现
异步串行通讯。(经测试,两种设置方式均可用,可任选一种。)
********************************************************************/ void Uart_Init()//使用定时器1作为波特率发生器(STC89C52、STC89C51、AT89C51或者STC12C560S2等均可)
{
SCON=0x50; //设置为串行口以方式1工作,8位异步通讯,允许接收中断。
//一帧信息为10位,1位起始位,8位数据位(低位在先),1位停止位。 PCON=0x80; //SMOD波特率选择位为1,SMOD=1. TMOD=0x21; //设置定时器1为波特率发生器,工作在模式2,8位自动装载 TH1=RELOAD_COUNT;//波特率9600 ,TH1=256-FOSC/16/12/波特率 TL1=TH1; EA=1; //总中断打开 ES=0; //关闭串口中断
TR1=1; //启动定时器1
} /*
void Uart_Init()//使用独立的波特率发生器(STC12C560S2或带有独立波特率发生器//、//的单片机均可)
{
SCON=0x50; //设置为串行口以方式1工作,8位异步通讯,允许接收中断。
PCON=0x80; //SMOD波特率选择位为1,SMOD=1. BRT=RELOAD_COUNT; //波特率9600 256-晶振频率/波特率x16=BRT AUXR=0xD5; //T0、T1不12分频,速度是89C51的12倍,启动独立波特率//发生器,每个时钟计数一次
//设置串口1的波特率发生器为独立波特率发生器,
} */ AUXR1=0x80; //切换到P1口 ES=1; EA=1; //开启串口中断 //开启总中断