Fosc=11.0592MHZ,串口方式3,波特率4800,允许中断,允许接收,写出初始化程序

如题所述

void init()
{
     TMOD=0x20;//T1计时器启动关闭仅仅受TR1控制;定时器1工作方式2:M1MO=10 8位初值自动装填
     TH1=0xfa;
     TL1=oxfa;
     /*初值计算:
        !溢出率T1=11059200/((256-初值)*12 )
        !串口方式3:波特率=(2^SMOD/32)*T1 溢出率
         由于电源管理寄存器PCON复位时全部清0  SMOD初始=0
         4800=(2^0/32)*(11059200/(256-初值)*12)
         所以解得 初值= 250=0xfa       
     */   
     TR1=1;//启动T1计时器
     REN=1;//允许串口接收
     SM0=0;//SM0SM1=01  10位异步收发(8位数据),波特率可变(由定时器1的溢出率控制)
     SM1=1;
     EA=1;//打开全局中断
     ES=1;//打开串口中断
}

我备注应该写的够详细了,希望对你有用

温馨提示:答案为网友推荐,仅供参考
相似回答