freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機的無線溫度采集系統(tǒng)的設(shè)計-資料下載頁

2025-06-27 19:33本頁面
  

【正文】 turn nRF24L01 status byte}// 讀出bytes字節(jié)的數(shù)據(jù)uchar SPI_Read_Buf(BYTE reg, BYTE *pBuf, BYTE bytes){uchar status,byte_ctr。CSN = 0。 // Set CSN low, init SPI tranactionstatus = SPI_RW(reg)。 // Select register to write to and read status bytefor(byte_ctr=0。byte_ctrbytes。byte_ctr++)pBuf[byte_ctr] = SPI_RW(0)。 //CSN = 1。return(status)。 // return nRF24L01 status byte}// 寫入bytes字節(jié)的數(shù)據(jù)uchar SPI_Write_Buf(BYTE reg, BYTE *pBuf, BYTE bytes){uchar status,byte_ctr。CSN = 0。status = SPI_RW(reg)。for(byte_ctr=0。 byte_ctrbytes。 byte_ctr++) //SPI_RW(*pBuf++)。CSN = 1。 // Set CSN high againreturn(status)。 //}// 接收函數(shù),返回1表示有數(shù)據(jù)收到,否則沒有數(shù)據(jù)接受到unsigned char nRF24L01_RxPacket(unsigned char* rx_buf){unsigned char revale=0。// set in RX modeSPI_RW_Reg(WRITE_REG + CONFIG, 0x0f)。 // Set PWR_UP bit, enable CRC(2 bytes) amp。Prim:RX. RX_DR enabled..CE = 1。 // Set CE pin high to enable RX devicedalay130us()。sta=SPI_Read(STATUS)。 // read register STATUS39。s valueif(RX_DR) // if receive data ready (RX_DR) interrupt{CE = 0。 // stand by modeSPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH)。// read receive payload fromRX_FIFO bufferrevale =1。}SPI_RW_Reg(WRITE_REG+STATUS,sta)。// clear RX_DR or TX_DS or MAX_RT interruptflagreturn revale。}// 發(fā)送函數(shù)void nRF24L01_TxPacket(unsigned char * tx_buf){CE=0。//SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH)。 // WritesTX_Address to nRF24L01//SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH)。 //RX_Addr0 same as TX_Adr for SPI_Write_Buf(WR_TX_PLOAD, tx_buf, TX_PLOAD_WIDTH)。 // Writes data to TX payloadSPI_RW_Reg(WRITE_REG + CONFIG, 0x0e)。 // Set PWR_UP bit, enable CRC(2 bytes) amp。Prim:TX. MAX_RT amp。 TX_DS enabled..CE=1。dalay10us()。CE=0。}// 配置函數(shù)void nRF24L01_Config(void){//initial ioCE=0。 // chip enableCSN=1。 // Spi disableSCK=0。 // Spi clock line init highCE=0。SPI_RW_Reg(WRITE_REG + CONFIG, 0x0f)。 // Set PWR_UP bit, enable CRC(2 bytes) amp。Prim:RX. RX_DR enabled..SPI_RW_Reg(WRITE_REG + EN_AA, 0x01)。SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01)。 // Enable Pipe0SPI_RW_Reg(WRITE_REG + SETUP_AW, 0x02)。 // Setup address width=5 bytesSPI_RW_Reg(WRITE_REG + SETUP_RETR, 0x1a)。 // 500us + 86us, 10 retrans...SPI_RW_Reg(WRITE_REG + RF_CH, 0)。SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07)。 // TX_PWR:0dBm, Datarate:1Mbps,LNA:HCURRSPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH)。SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH)。SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH)。 CE=1。 //} 系統(tǒng)軟件設(shè)計 DS18B20 程序的設(shè)計(1)DS18B20 初始化程序設(shè)計主機總線to時刻發(fā)送一復(fù)位脈沖(最短為480us的低電平信號)接著在 tl 時刻釋放總線并進(jìn)入接收狀態(tài)DSl820 在檢測到總線的上升沿之后 等待 1560接著 DS1820 在 t2 時刻發(fā)出存在脈沖(低電平持續(xù)60240us)如圖中虛線所示,時序見圖212。圖212 DS18B20初始化時序圖程序:Init_DS18B20(void)//初始化ds1820{ DQ = 1。 //DQ復(fù)位 _nop_()。 _nop_()。 //稍做延時2ms DQ = 0。 //單片機將DQ拉低,發(fā)出復(fù)位脈沖(要求480us~960us) Delay(70)。 //精確延時566us DQ = 1。 //拉高總線(要求16~60us) Delay(5)。 //延時46us presence = DQ。 //如果=0則初始化成功 =1則初始化失敗 Delay(25)。 DQ = 1。 return(presence)。 //返回信號,0=presence,1= no presence}(2)DS18B20 讀程序設(shè)計主機總線to時刻從高拉至低電平時總線只須保持低電平l7ts之后15us也就是說tz時刻前主機必須完成讀位并在to后的60us一120us內(nèi)釋放總線讀位子程序,見圖213。圖213 讀時序程序:ReadOneChar(void){unsigned char i=0。unsigned char dat = 0。for (i=8。i0。i){ DQ = 0。 // 給脈沖信號 dat=1。 DQ = 1。 // 給脈沖信號 if(DQ) dat|=0x80。 delay(4)。}return(dat)。}(3)DS18B20 的寫程序設(shè)計當(dāng)主機總線to時刻從高拉至低電平時就產(chǎn)生寫時間隙從to時刻開始15us之內(nèi)應(yīng)將所需寫的位送到總線DSl820在t1為1560us間對總線采樣 若低電平寫入的位是0見若高電平寫入的位是連續(xù)寫2位間的間隙應(yīng)大于1us,見圖214。圖214 寫時序 數(shù)碼管顯示程序的設(shè)計系統(tǒng)上電送個位段選信號個位位選打開延時顯示十位延時顯示百位延時程序流程代碼:void display(int num1){ unsigned int qianwei,baiwei,shiwei,gewei。 //if(num11000) 重啟 if(num1=100) { P0=table[(~num1+1)%10]。//補碼取反加1 p2_3=0。 delay(1)。 p2_3=1。 P0=table1[((~num1+1)%100)/10]。 p2_2=0。 delay(1)。 p2_2=1。 P0=table[(~num1+1)/100]。 p2_1=0。 delay(1)。 p2_1=1。 P0=0x40。//負(fù)號 p2_0=0。 delay(1)。 p2_0=1。 } else if(num1=10) { P0=table[(~num1+1)%10]。 p2_3=0。 delay(1)。 p2_3=1。 P0=table1[(~num1+1)/10]。 p2_2=0。 delay(1)。 p2_2=1。 P0=0x40。//負(fù)號 p2_1=0。 delay(1)。 p2_1=1。 } else if(num1=0) { P0=table[(~num1+1)]。 p2_3=0。 delay(1)。 p2_3=1。 P0=table1[0]。 p2_2=0。 delay(1)。 p2_2=1。 if(num1==0)。 //如果為零去除號 else { P0=0x40。//負(fù)號 p2_1=0。 delay(1)。 p2_1=1。 } } else if(num110) { P0=table1[0]。 p2_2=0。 delay(1)。 p2_2=1。 P0=table[num1]。 p2_3=0。 delay(1)。 p2_3=1。 } else if(num1100) { P0=table[num1%10]。 p2_3=0。 delay(1)。 p2_3=1。 P0=table1[num1/10]。 p2_2=0。 delay(1)。 p2_2=1。 } else if(num11000) { P0=table[num1%10]。 p2_3=0。 delay(1)。 p2_3=1。 P0=table1[(num1%100)/10]。 p2_2=0。 delay(1)。 p2_2=1。 P0=table[num1/100]。 p2_1=0。 delay(1)。 p2_1=1。 } else { gewei=num1%10。 shiwei=num1%100/10。 baiwei=num1/100%10。 qianwei=num1/100/10。 P0=table[gewei]。 p2_3=0。 delay(1)。 p2_3=1。 P0=table1[shiwei]。 p2_2=0。 delay(1)。 p2_2=1。 P0=table[baiwei]。 p2_1=0。 delay(1)。 p2_1=1。 P0=table[qianwei]。 p2_0=0。 delay(1)。 p2_0=1。} 3 串口通信 通信簡介計算機與外界所進(jìn)行的信息交換經(jīng)常被人們稱為通信,其基本方式可以分為并行通信和串行通信兩種。并行通信是指一次就可以同時傳送一個數(shù)據(jù)字的傳輸方式(其中包含8 位、16 位,甚至更多位的數(shù)據(jù))。其優(yōu)點是傳輸速度快;缺點是需要同時連接的線數(shù)多,尤其是在通信距離較長時,傳輸線的成本會急劇增加。對于單片機而言,還需要占用多條寶貴的引腳資源。串行通信是指把一個數(shù)據(jù)字逐位、順序、分時進(jìn)行的傳輸方式。其缺點是傳送速度較慢,假設(shè)并行傳送n 位數(shù)據(jù)所得要的時間是T,那么,串行傳送同樣數(shù)據(jù)的時間至少為nT,實際工程中往往總是大于nT,原因是時間上還會需要額外的開銷。串行通信突出的優(yōu)點就是需要數(shù)量很少的傳輸線。此外,對于單片機而言,串行通信的另一個重要優(yōu)點就是,需要占用的引腳資源較少。串行通信又存在著異步通信和同步通信兩種基本方式:①異步方式。其特點是通信雙方以一個字符(包括特定附加位)作為數(shù)據(jù)傳輸單位,且發(fā)送方傳送字符的間隔時間是不定的,在傳送一個字符時總是以起始位開始,以停止位結(jié)束。異步通信傳輸格
點擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1