|
发表于 2013-5-13 23:01:44
|
显示全部楼层
我的晶振是12MHz的,波特率为9600程序贴在如下:
/******************************************************************
本程序只供学习使用,未经作者许可,不得用于其它任何用途
/*******************************************************************/
#include "STC12C5A.h"
#include "string.h"
//#include "datacomm.h"
/************************************************************
uart1初始化
*************************************************************/
void InitUart1()
{
RI = 0;
TI = 0;
PCON |= 0x80; //使能波特率倍速位SMOD
SCON = 0x50; //8位数据,可变波特率
BRT = 0xB2; //设定独立波特率发生器重装值 12MHZ 相当于普通51的 144MHZ
AUXR |= 0x04; //独立波特率发生器时钟为Fosc,即1T
AUXR |= 0x01; //串口1选择独立波特率发生器为波特率发生器
AUXR |= 0x10; //启动独立波特率发生器
ES = 1;
EA = 1;
}
/************************************************************
向串口uart1发送一个字符
*************************************************************/
void send_char_com(unsigned char ch)
{
SBUF=ch;
while(TI==0);
TI=0;
}
/************************************************************
向串口uart1发送一个字符串,strlen为该字符串长度
*************************************************************/
void send_string_com(unsigned char *str)
{
unsigned int k=0;
do
{
send_char_com(*(str + k));
k++;
} while(k < strlen(str));
}
|
|