41 lines
878 B
C
41 lines
878 B
C
#include "uart.h"
|
||
|
||
__bit busy = 0;
|
||
/*******************************************************************************
|
||
* 函 数 名 : uart_init
|
||
* 函数功能 : 串口通信中断配置函数,通过设置TH和TL即可确定定时时间
|
||
* 输 入 : baud:波特率对应的TH、TL装载值
|
||
* 输 出 : 无
|
||
*******************************************************************************/
|
||
void uart_init(u8 baud)
|
||
{
|
||
TMOD|=0X20; //设置计数器工作方式2
|
||
SCON=0X50; //设置为工作方式1
|
||
PCON=0X80; //波特率加倍
|
||
TH1=baud; //计数器初始值设置
|
||
TL1=baud;
|
||
ES=1; //打开接收中断
|
||
EA=1; //打开总中断
|
||
TR1=1; //打开计数器
|
||
}
|
||
|
||
void send_string(char *s)
|
||
{
|
||
while(*s)
|
||
{
|
||
send_data(*s++);
|
||
}
|
||
}
|
||
|
||
void send_data(u8 dat)
|
||
{
|
||
while(busy);
|
||
busy = 1;
|
||
SBUF = dat;
|
||
}
|
||
|
||
int putchar(char c)//重定向
|
||
{
|
||
send_data(c);
|
||
return c;
|
||
} |