这是我的程序,好使,先用着,对比对比!
void UART_Init(void)
{
SCON = 0x50 ; //SCON: serail mode 1, 8-bit UART, enable ucvr
TMOD |= 0x20 ; //TMOD: timer 1, mode 2, 8-bit reload
PCON |= 0x80 ; //SMOD=1;
TH1 = 0xF3 ; //Baud:9600 fosc=24MHz
ES=0;
TR1 = 1 ; // timer 1 run
}
//--------------------------------------------------------------------------
//函数名称: Uart_SendData()
//函数功能: 串口发送一个字节的数据
//其他说明: 此程序供中断调用
//--------------------------------------------------------------------------
void Uart_SendData(uchar dat)
{
SBUF=dat; //写SBUF,开始发送
while(TI==0); //等待发送
TI=0; //清发送标志位
}
//--------------------------------------------------------------------------
//函数名称: Uart_RcvData()
//函数功能: 串口接收函数
//其他说明: 无
//--------------------------------------------------------------------------
uchar Uart_RcvData(void)
{
uchar Rcv=0;
while(!RI)Key_ScanStop();
Rcv = SBUF;
RI = 0;
return Rcv;
} |