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

正文內(nèi)容

基于單片機(jī)的雙路信號(hào)檢測(cè)系統(tǒng)綜合設(shè)計(jì)畢業(yè)設(shè)計(jì)-資料下載頁(yè)

2025-06-19 12:52本頁(yè)面
  

【正文】 C_Delay()。}/*函數(shù):I2C_Start()功能:產(chǎn)生I2C總線的起始狀態(tài)說(shuō)明: SCL處于高電平期間,當(dāng)SDA出現(xiàn)下降沿時(shí)啟動(dòng)I2C總線 不論SDA和SCL處于什么電平狀態(tài),本函數(shù)總能正確產(chǎn)生起始狀態(tài) 本函數(shù)也可以用來(lái)產(chǎn)生重復(fù)起始狀態(tài) 本函數(shù)執(zhí)行后,I2C總線處于忙狀態(tài)*/void I2C_Start(){ I2C_SDA = 1。 I2C_Delay()。 I2C_SCL = 1。 I2C_Delay()。 I2C_SDA = 0。 I2C_Delay()。 I2C_SCL = 0。 I2C_Delay()。}/*函數(shù):I2C_Write()功能:向I2C總線寫1個(gè)字節(jié)的數(shù)據(jù)參數(shù): dat:要寫到總線上的數(shù)據(jù)*/void I2C_Write(unsigned char dat){ unsigned char t = 8。 do { I2C_SDA = (bit)(dat amp。 0x80)。 dat = 1。 I2C_SCL = 1。 I2C_Delay()。 I2C_SCL = 0。 I2C_Delay()。 } while ( t != 0 )。}/*函數(shù):I2C_Read()功能:從從機(jī)讀取1個(gè)字節(jié)的數(shù)據(jù)返回:讀取的一個(gè)字節(jié)數(shù)據(jù)*/unsigned char I2C_Read(){ unsigned char dat。 unsigned char t = 8。 I2C_SDA = 1。 //在讀取數(shù)據(jù)之前,要把SDA拉高 do { I2C_SCL = 1。 I2C_Delay()。 dat = 1。 if ( I2C_SDA ) dat |= 0x01。 I2C_SCL = 0。 I2C_Delay()。 } while ( t != 0 )。 return dat。}/*函數(shù):I2C_GetAck()功能:讀取從機(jī)應(yīng)答位返回: 0:從機(jī)應(yīng)答 1:從機(jī)非應(yīng)答說(shuō)明: 從機(jī)在收到每個(gè)字節(jié)的數(shù)據(jù)后,要產(chǎn)生應(yīng)答位 從機(jī)在收到最后1個(gè)字節(jié)的數(shù)據(jù)后,一般要產(chǎn)生非應(yīng)答位*/bit I2C_GetAck(){ bit ack。 I2C_SDA = 1。 I2C_Delay()。 I2C_SCL = 1。 I2C_Delay()。 ack = I2C_SDA。 I2C_SCL = 0。 I2C_Delay()。 return ack。}/*函數(shù):I2C_PutAck()功能:主機(jī)產(chǎn)生應(yīng)答位或非應(yīng)答位參數(shù): ack=0:主機(jī)產(chǎn)生應(yīng)答位 ack=1:主機(jī)產(chǎn)生非應(yīng)答位說(shuō)明: 主機(jī)在接收完每一個(gè)字節(jié)的數(shù)據(jù)后,都應(yīng)當(dāng)產(chǎn)生應(yīng)答位 主機(jī)在接收完最后一個(gè)字節(jié)的數(shù)據(jù)后,應(yīng)當(dāng)產(chǎn)生非應(yīng)答位*/void I2C_PutAck(bit ack){ I2C_SDA = ack。 I2C_Delay()。 I2C_SCL = 1。 I2C_Delay()。 I2C_SCL = 0。 I2C_Delay()。}/*函數(shù):I2C_Stop()功能:產(chǎn)生I2C總線的停止?fàn)顟B(tài)說(shuō)明: SCL處于高電平期間,當(dāng)SDA出現(xiàn)上升沿時(shí)停止I2C總線 不論SDA和SCL處于什么電平狀態(tài),本函數(shù)總能正確產(chǎn)生停止?fàn)顟B(tài) 本函數(shù)執(zhí)行后,I2C總線處于空閑狀態(tài)*/void I2C_Stop(){ unsigned int t = I2C_STOP_WAIT_VALUE。 I2C_SDA = 0。 I2C_Delay()。 I2C_SCL = 1。 I2C_Delay()。 I2C_SDA = 1。 I2C_Delay()。 while ( t != 0 )。 //在下一次產(chǎn)生Start之前,要加一定的延時(shí)}/*函數(shù):I2C_Puts()功能:主機(jī)通過(guò)I2C總線向從機(jī)發(fā)送多個(gè)字節(jié)的數(shù)據(jù)參數(shù): SlaveAddr:從機(jī)地址(高7位是從機(jī)地址,最低位是寫標(biāo)志0) SubAddr:從機(jī)的子地址 Size:數(shù)據(jù)的字節(jié)數(shù) *dat:要發(fā)送的數(shù)據(jù)返回: 0:發(fā)送成功 1:在發(fā)送過(guò)程中出現(xiàn)異常*/bit I2C_Puts(unsigned char SlaveAddr, unsigned char SubAddr, unsigned char Size, char *dat){//檢查長(zhǎng)度 if ( Size == 0 ) return 0。//確保從機(jī)地址最低位是0 SlaveAddr amp。= 0xFE。//啟動(dòng)I2C總線 I2C_Start()。//發(fā)送從機(jī)地址 I2C_Write(SlaveAddr)。 if ( I2C_GetAck() ) { I2C_Stop()。 return 1。 }//發(fā)送子地址 I2C_Write(SubAddr)。 if ( I2C_GetAck() ) { I2C_Stop()。 return 1。 }//發(fā)送數(shù)據(jù) do { I2C_Write(*dat++)。 if ( I2C_GetAck() ) { I2C_Stop()。 return 1。 } } while ( Size != 0 )。//發(fā)送完畢,停止I2C總線,并返回結(jié)果 I2C_Stop()。 return 0。}/*函數(shù):I2C_Put()功能:主機(jī)通過(guò)I2C總線向從機(jī)發(fā)送1個(gè)字節(jié)的數(shù)據(jù)參數(shù): SlaveAddr:從機(jī)地址(高7位是從機(jī)地址,最低位是寫標(biāo)志0) SubAddr:從機(jī)的子地址 dat:要發(fā)送的數(shù)據(jù)返回: 0:發(fā)送成功 1:在發(fā)送過(guò)程中出現(xiàn)異常*/bit I2C_Put(unsigned char SlaveAddr, unsigned char SubAddr, char dat){ return I2C_Puts(SlaveAddr,SubAddr,1,amp。dat)。}/*函數(shù):I2C_Gets()功能:主機(jī)通過(guò)I2C總線從從機(jī)接收多個(gè)字節(jié)的數(shù)據(jù)參數(shù): SlaveAddr:從機(jī)地址(高7位是從機(jī)地址,最低位是讀標(biāo)志1) SubAddr:從機(jī)的子地址 Size:數(shù)據(jù)的字節(jié)數(shù) *dat:保存接收到的數(shù)據(jù)返回: 0:接收成功 1:在接收過(guò)程中出現(xiàn)異常*/bit I2C_Gets(unsigned char SlaveAddr, unsigned char SubAddr, unsigned char Size, char *dat){//檢查長(zhǎng)度 if ( Size == 0 ) return 0。//確保從機(jī)地址最低位是0 SlaveAddr amp。= 0xFE。 //確保最低位是0//啟動(dòng)I2C總線 I2C_Start()。//發(fā)送從機(jī)地址 I2C_Write(SlaveAddr)。 if ( I2C_GetAck() ) { I2C_Stop()。 return 1。 }//發(fā)送子地址 I2C_Write(SubAddr)。 if ( I2C_GetAck() ) { I2C_Stop()。 return 1。 }//發(fā)送重復(fù)起始條件 I2C_Start()。//發(fā)送從機(jī)地址 SlaveAddr |= 0x01。 I2C_Write(SlaveAddr)。 if ( I2C_GetAck() ) { I2C_Stop()。 return 1。 }//接收數(shù)據(jù) for (。) { *dat++ = I2C_Read()。 if ( Size == 0 ) { I2C_PutAck(1)。 break。 } I2C_PutAck(0)。 }//接收完畢,停止I2C總線,并返回結(jié)果 I2C_Stop()。 return 0。}/*函數(shù):I2C_Get()功能:主機(jī)通過(guò)I2C總線從從機(jī)接收1個(gè)字節(jié)的數(shù)據(jù)參數(shù): SlaveAddr:從機(jī)地址(高7位是從機(jī)地址,最低位是讀標(biāo)志1) SubAddr:從機(jī)的子地址 *dat:保存接收到的數(shù)據(jù)返回: 0:接收成功 1:在接收過(guò)程中出現(xiàn)異常*/bit I2C_Get(unsigned char SlaveAddr, unsigned char SubAddr, char *dat){ return I2C_Gets(SlaveAddr,SubAddr,1,dat)。}
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1