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

正文內(nèi)容

基于單片機(jī)與gsm通信家用安防系統(tǒng)的論文-資料下載頁

2025-06-27 19:14本頁面
  

【正文】 str)。 str++。 }} //// 24C02 等待延時函數(shù)//void Delay1(uchar x){ uint i。 while(x) for(i=125。i0。i)。 }//// Nops 延時4ums//void Nops(){ uchar u=4。 while(u)。}/*void I2C_Init() { SCK=1。 Nops()。 SDA=1。 Nops()。} *///// I2C 啟動條件//void I2C_Start() { SDA=1。 // I2C 協(xié)議規(guī)定,在時鐘為高的前提下 Nops()。 // 數(shù)據(jù)線的下降沿為開始信號 SCK=1。 Nops()。 SDA=0。 Nops()。 SCK=0。 Nops()。}//// I2C 停止條件//void I2C_Stop() { SDA=0。 // 時鐘為高的前提下,數(shù)據(jù)線上升沿為結(jié)束信號 Nops()。 SCK=1。 Nops()。 SDA=1。 Nops()。}//// 循環(huán)寫8 bit //void Writex(uchar j) { uchar i,temp。 temp=j。 for (i=0。i8。i++) { temp=temp1。 // 在I2C 傳送數(shù)據(jù)時,MSB 先傳送 SCK=0。 Nops()。 SDA=CY。 Nops()。 SCK=1。 Nops()。 } SCK=0。 Nops()。 SDA=1。 Nops()。}//// 循環(huán)讀8 bit//uchar Readx() { uchar i,j,k=0。 SCK=0。 Nops()。 SDA=1。 for (i=0。i8。i++) { Nops()。 SCK=1。 Nops()。 if (SDA==1) j=1。 else j=0。 k=(k1)|j。 SCK=0。 } Nops()。 return(k)。}//// 24c02 內(nèi)部應(yīng)答函數(shù)//void ACK(){ uchar i=0。 SCK=1。 Nops()。 while ((SDA==1)amp。amp。(i255))i++。 SCK=0。 Nops()。}//// 從eeprom中讀住N個字節(jié)到寄存器 buf 中//void I2C_ReadNByte(uchar addr,uchar address,uchar *buf,uchar num){ uchar i。 I2C_Start()。 Writex(addr1)。 ACK()。 Writex(address)。 ACK()。 I2C_Start()。 Writex(addr)。 ACK()。 *buf=Readx()。 buf++。 I2C_Stop()。 for(i=1。inum。i++) { I2C_Start()。 Writex(addr)。 ACK()。 *buf=Readx()。 buf++。 I2C_Stop()。 } Delay1(10)。}//// 向ROM 中寫入N個字節(jié)//void I2C_WriteNByte(uchar addr,uchar address,uchar *buf,uchar num) { uchar i。 EA=0。 I2C_Start()。 Writex(addr)。 ACK()。 Writex(address)。 ACK()。 for(i=0。inum。i++) { Writex(*buf)。 buf++。 ACK()。 } I2C_Stop()。 EA=1。 Delay1(50)。}/******************溫度傳感器18B20 相關(guān)程序***********************///// DS18B20 讀寫延時//void delay_18B20(unsigned int i){ while(i)。}//// DS18B20 初始化//void Init_DS18B20(void) { uchar x=0。 DQ = 1。 // DQ復(fù)位 delay_18B20(8)。 DQ = 0。 // 單片機(jī)將DQ拉低 delay_18B20(80)。 // 保持低電平至少 480us DQ = 1。 delay_18B20(14)。 x=DQ。 // 從器件響應(yīng)時鐘 delay_18B20(20)。} //// 從DS18B20 中讀出一個字節(jié)//uchar ReadOneChar(void){ uchar i=0。 uchar dat = 0。 for (i=8。i0。i) { DQ = 0。 dat=1。 // 值得注意的是 DS18B20 在交換數(shù)據(jù)是先發(fā)送低位 DQ = 1。 if(DQ) dat|=0x80。 delay_18B20(4)。 } return(dat)。}//// 向18B20 中寫入一個字節(jié)// void WriteOneChar(uchar dat){ uchar i=0。 for (i=8。 i0。 i) { DQ = 0。 DQ = datamp。0x01。 delay_18B20(5)。 DQ = 1。 dat=1。 }}//// 讀取DS18B20 的即時溫度//void ReadTemp(void){ uchar a=0。 uchar b=0。 uchar t=0。 Init_DS18B20()。 WriteOneChar(0xCC)。 // 跳過讀序號列號的操作 WriteOneChar(0x44)。 // 啟動溫度轉(zhuǎn)換 delay_18B20(100)。 // 延時等待 Init_DS18B20()。 WriteOneChar(0xCC)。 // 跳過讀序號列號的操作 WriteOneChar(0xBE)。 // 讀取溫度寄存器等(共可讀9個寄存器) 前兩個就是溫度 delay_18B20(100)。 a=ReadOneChar()。 //讀取溫度值低位 b=ReadOneChar()。 //讀取溫度值高位 temp_value=b4。 temp_value+=(aamp。0xf0)4。 }//// 將的到的數(shù)據(jù)轉(zhuǎn)換成ASCII 字符//void Temp_to_str() { TempBuffer[0] = temp_value/10+39。039。 // 轉(zhuǎn)換十位 TempBuffer[1] = temp_value%10+39。039。 // 轉(zhuǎn)換個位 TempBuffer[2] = 0xdf。 // 溫度符號176。 TempBuffer[3] = 39。C39。 TempBuffer[4] = 39。\039。
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1