访问手机版页面
你的位置:老古开发网 > 51单片机 > 51单片机串口 > 正文  
通常用法的 51单片机 UART 0 初始化程序
内容导读:
#define MHz     1000000U        // 定义 MHz
#define gCLK    (22.1184*MHz)   // 系统时钟频率

#define UART_BAUD   9600        // 定义所用的波特率

// 串行通讯初始化函数,在程序开始时调用
void serial_init(void)
{
    SCON  = 0x50;               // Mode 1: 8-bit UART, 允许接收
    TMOD = 0x20;               // 定时器1 Mode 2: 8-Bit reload
    PCON  = 0x80;               // SMOD = 1
    TH1   = 256 - (uchar)(gCLK/192.0F/UART_BAUD);
    TR1   = 1;                  // 定时器 1 启动
    ES    = 1;                  // 串行中断允许
}
此为最常用的模式:方式1,8位数据位,以定时器1作波特率发生器,SMOD置1。
当然,也可以将波特率的值以参数形式传入,如:
void serial_init(unsigned long lBaud){...}
但那样的话,TH1的赋值就要通过计算来得到,效率较低。
另外,使用不同波特率时要计算一下误差,防止误码率太高。
标签:
来源: 作者: 时间:2002/1/18 0:00:00
相关阅读
推荐阅读
阅读排行
最近更新
商品推荐