访问电脑版页面

导航:老古开发网手机版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
栏目: [ 51单片机串口]

相关阅读

在VB下PC机与MCS-51单片机的串行通信

51单片机串口通讯编程的方式解析

AT89S51单片机串行口的内部结构及功能介绍

如何计算8051单片机的波特率

51单片机IO口模拟串口的实现

51单片机IO口模拟串口通讯的设计

51单片机的串口通信协议

C51单片机串口的使用方法解析

MCS-51单片机多机通信的工作原理解析

AT89S51单片机串行口的结构

如何设置51单片机的串行口来实现与PC机通信

51单片机三种模拟串口的设计方案解析

51单片机与PC机的串口通讯设计

AT89S51单片机串行口的内部结构解析

8051单片机实现高速串行通信的设计

8051单片机的UART0串口初始化

C51单片机串口通讯的硬件电路图

51单片机实现串口接收和发送数据的两种方法解析

AT89S51单片机串行口的内部结构及工作原理介绍

MCS-51单片机串行口IP核的实现