|
某傳感器通過串口傳輸數(shù)據(jù)給單片機(jī)
單片機(jī)通過串口接收數(shù)據(jù),并將數(shù)據(jù)付給變量data[]
初始化:
void init() //系統(tǒng)初始化
{
TMOD=0X20;//選擇定時器T1,方式2,波特率由PCON寄存器的SMOD決定
TH1=0xfa;//設(shè)置波特率為4800
TL1=0xfa;
TR1=1;//定時器1中斷開啟
SCON=0x50;// 方式1 SCON是串行口1的串行控制寄存器
PCON=0x00;//各工作方式波特率加倍
IP=0X10;
EA=1;
ES=1;
}
//定時器1中斷程序:
void UART_1() interrupt 4
{
int i=0;
//接收完緩沖數(shù)據(jù)后RI置1
if(RI) //如果RI為1
{
RI=0; //RI置0
data[i++]=SBUF; //SBUF里得到的數(shù)據(jù)存入data[i++]中
}
}
請大家?guī)兔纯催@兩個初始化程序和中斷程序?qū)�?謝謝大家
|
|