资源介绍
am2305测试程序void InitUART(void)
{
unsigned int iTmpBaud;
unsigned long lTmpBaud;
iTmpBaud = 0;
//首先选定定时器2作为波特率发生器,16位定时器,自动装载
SCON = 0x50; //SM0 SM1 SM2 REN TB8 RB8 TI RI //0 1 0 1 0 0 0 0
PCON = 0x00; //PCON的地址是87H,这里SMOD =0
T2CON = 0x30; //TF2 EXF2 RCLK TCLK EXEN2 TR2 C(/T2) CP(/RL2) //0 0 1 1 0 0 0 0
T2MOD = 0x00; // / / / / / / T2OE DCEN //0 0 0 0 0 0 0 0
lTmpBaud = FOSC/BAUD;
lTmpBaud /= 32; //12T-mode
iTmpBaud = lTmpBaud & 0xFFFF;
iTmpBaud = 65536 - iTmpBaud;
RCAP2H = (iTmpBaud>>8) & 0x0FF;
RCAP2L = iTmpBaud & 0x0FF;
RI = 0; //清除接收中断标志
REN = 1; //允许串行接收
ES = 1; //允许串行中断
TR2 = 1; //启动定时器1
EA=1;//开总中断
}
/********************************************\
|* 功能: 串口发送函数 *|
\********************************************/
void UARTSend(char UCHAR)
{
SBUF=UCHAR;
while(TI==0);
TI=0;
}
/********************************************\
|* 功能: 串口中断函数 *|
\********************************************/
void UARTRead(void) interrupt 4
{
char temp;
if(RI)
{
RI=0;
temp = SBUF;
}