本帖最后由 贺信 于 2009-10-14 21:37 编辑
UART.C文件
#include <reg51.h>
//#include "main.h"
#define uchar unsigned char
#define uint unsigned int
/***********************串口初始化***********************************/
#define RELOAD_COUNT 0xF3 //12MHz,12T,SMOD=0,2400bps
sfr AUXR = 0x8e;
void Uart_initial()
{
SCON = 0x50; //0101,0000 方式1:8位可变波特率
PCON = 0X00; //设置SMOD=0 波特率不加倍
TMOD = 0x21; //0011,0001 设置定时器1为8位自动重装计数器
TH1 = RELOAD_COUNT; //设置定时器1自动重装数
TL1 = RELOAD_COUNT;
TR1 = 1; //开定时器1
AUXR = 0X00; //不允许独立波特率发生器运行,用定时器1做波特率发生器
ES = 1; //允许串口中断
EA = 1; //开总中断
}
/****************************串口发送**********************************/
void Uart_send (unsigned char uData)
{
ES = 0; //关串口中断
TI = 0; //清零串口发送完成中断请求标志
SBUF = uData; //发送值
while(TI==0) //等待发送
{
;
}
TI = 0; //清零串口发送完成中断请求标志
ES = 1; //允许串口中断
//EA = 1;
}
/**************************************************************/
UART.h文件
#include <reg51.h>
extern void Uart_initial();
extern void Uart_send (unsigned char uData); |