4系統(tǒng)實(shí)現(xiàn)
4.1 STC12C5A60S2控制溫度傳感器DS18B20
從DS18B20讀1字節(jié)數(shù)據(jù)圖2節(jié)點(diǎn)電路原理圖
{uchar i=0,dat;
for(i=0;i《8;i++)
{DQ=1;//先拉高
delay_1us();//稍作延時(shí)
DQ=0;//啟動(dòng)讀時(shí)序
delay_1us();//稍作延時(shí)
DQ=1;//釋放總線
delay_us(6);//延時(shí)約7μs,主機(jī)采樣
dat》》=1;//先右移一位,使最高位為0
if(DQ==1)
dat|=0x80;//與10000000或,dat=10000000
else
dat|=0x00;//取值為0
delay_us(50);
}
eturn(dat);}
向DS18B20寫1字節(jié)數(shù)據(jù)
void DS18B20_WriteByte(uchar x)
{uchar i;
for(i=0;i《8;i++)
{DQ=1;
delay_1us();//稍作延時(shí)
DQ=0;//啟動(dòng)寫時(shí)序
DQ=x&0x01;//向數(shù)據(jù)線傳送最低位
delay_us(40);//延時(shí)約50μs,供18b20采樣數(shù)據(jù)
DQ=1;//釋放總線
delay_1us()
;x》》=1;//右移一位
}
delay_us(2);//寫完一個(gè)指令稍作延時(shí)}
4.2 STC12C5A60S2控制無線模塊nRF24L01
函數(shù):SPI_RW()。描述:根據(jù)SPI協(xié)議,寫一字節(jié)數(shù)據(jù)到nRF24L01,同時(shí)從nRF24L01讀出一字節(jié)
uchar SPI_RW(uchar byte)
{uchar i;
for(i=0;i《8;i++)//循環(huán)8次
{MOSI=(byte&0x80);//byte最高位輸出到MOSI
byte《《=1;//低一位移位到最高位
SCK=1;//拉高SCK,nRF24L01從MOSI讀入1位數(shù)據(jù),同時(shí)從MISO輸出1位數(shù)據(jù)
byte|=MISO;//讀MISO到byte最低位
SCK=0;//SCK置低}return(byte);//返回讀出的一字節(jié)
}
函數(shù):SPI_Read_Buf()。描述:從reg寄存器讀出bytes個(gè)字節(jié),通常用來讀取接收通道數(shù)據(jù)或接收/發(fā)送地址
uchar SPI_Read_Buf(uchar reg,uchar*pBuf,uchar bytes)
{uchar status,i;
CSN=0;//CSN置低,開始傳輸數(shù)據(jù)
status=SPI_RW(reg);//選擇寄存器,同時(shí)返回狀態(tài)字
for(=0;i《bytes;i++)
pBuf [i] = SPI_RW 0);//逐個(gè)字節(jié)從nRF24101讀出
CSN = 1; //CSN拉高,結(jié)束數(shù)據(jù)傳輸
return ftatus); /1返回狀態(tài)寄存器
函數(shù):SPI_W rite_Buf 0.描述:把pBuf 緩存中的數(shù)據(jù)寫入到nRF24101,通常用來寫入發(fā)射通道數(shù)據(jù)或接收1發(fā)送地址
SPI_ W rite_ Buf Guchar reg.uchar ucharpBuf.w har bytes )
{uchar status.i ;
CSN = 0; 11CSN 置低。開始傳輸數(shù)據(jù)
status = SPI_RW feg); 11選擇寄存器,同時(shí)返回狀態(tài)字
for i=0;i《bytes;i++)
SPI_ RW (pBuf [i]);//逐個(gè)字節(jié)寫入nRF24L01
CSN = 1; //CSN拉高,結(jié)束數(shù)據(jù)傳輸
return Status); 11返回狀態(tài)寄存器
4.3上位機(jī)接受數(shù)據(jù)的實(shí)驗(yàn)結(jié)果
上位機(jī)實(shí)時(shí)顯示溫度變化如圖5所示。
5.結(jié)語
單片機(jī)采用新一代增強(qiáng)型8051STC12C5A60S2 與高度集成的nRF24L01器件結(jié)合,大大簡化了系統(tǒng)硬件和軟件設(shè)計(jì),減小了體積,提高了系統(tǒng)工作的可靠性,且系統(tǒng)的運(yùn)行速度得到很大提高。實(shí)踐證明該系統(tǒng)設(shè)計(jì)簡單成本低廉,運(yùn)行速度快。通信可靠。運(yùn)行穩(wěn)定。具有較高的實(shí)用價(jià)值。由于STCI2C5A60S2 的程序存儲(chǔ)器空間比傳統(tǒng)的51單片機(jī)大了10倍之多,且運(yùn)行速度也提高了8-12倍,這有利于以后進(jìn)行節(jié)點(diǎn)路由功能的擴(kuò)展.
評論
查看更多