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

正文內(nèi)容

第四章c51程序設(shè)計-2實例-文庫吧資料

2025-08-07 13:32本頁面
  

【正文】 * *向有子地址器件發(fā)送一個字節(jié)數(shù)據(jù)函數(shù) ***********************************************/ bit ISendbyte_1(uchar sla,uchar suba,uchar c) { GetBus()。 I2CON=0XC4。 /*STA=1,申請成為主機(jī)起動總線 */ while(SI==0)。 //bits data rate=fosc/(I2CLL+I2CLH) I2CLH=50。 /******************************************************************* 申請總線 功能:進(jìn)行 I2C 總線的初始化包括時鐘速率 I2C 使能發(fā)送起始信號等 *******************************************************************/ void GetBus() { I2CON=0xc4。 return Temp_Data。 Stop()。 Temp_Data += Read()。 Send(0xa1)。 Ack()。 Ack()。 Start()。 Stop()。 Temp_Data=(Read())*256。 Send(0xa1)。 Ack()。 Ack()。 Start()。 delay1ms(5)。 Ack()。 0xff。 Ack()。 Ack()。 Start()。 Stop()。 //先寫高 8位 Send(Temp_Data)。 Temp_Data=(Data_Write8) amp。 Send(Address)。 Send(0xa0)。 } void WrToROM(unsigned int Data_Write,unsigned char Address) //Data_Write:要寫的整數(shù), Address:寫入的起始地址 { unsigned char xdata Temp_Data。 }while(BitCounter)。 temp=temp1。0xfe。 if(Sda) temp=temp|0x01。 Scl=1。 do{ Scl=0。 unsigned char xdata BitCounter=8。 } unsigned char Read(void) //讀取字節(jié) { unsigned char xdata temp=0。 }while(BitCounter)。 //左移 1位 Data=temp。 delay1us()。 delay1us()。0x80)==0x80) Sda=1。 delay1us()。 do { temp=Data。 } void Send(unsigned char Data) //發(fā)送字節(jié) { unsigned char xdata BitCounter=8。 delay1us()。 delay1us()。 Scl=0。 Scl=1。 } void Ack(void) //應(yīng)答 { Sda=0。 Sda=1。 Scl=1。 delay1us()。 delay1us()。 ? 硬件電路 I2C通過 IO口模擬 void Start(void) //起始信號 { Sda=1。如果主機(jī)在向從機(jī)發(fā)送數(shù)據(jù)(甚至包括從機(jī)地址在內(nèi))時檢測到從機(jī)非應(yīng)答,則應(yīng)當(dāng)及時停止傳輸。 ? I2C總線上第 9個脈沖對應(yīng)應(yīng)答位, SDA為 0 表示接收器應(yīng)答( ACK), A;為 1 則表示非應(yīng)答( NACK), /A。應(yīng)答位的時鐘脈沖由主機(jī)產(chǎn)生,而應(yīng)答位的數(shù)據(jù)狀態(tài)則遵循“誰接收誰產(chǎn)生”的原則,即總是由接收器產(chǎn)生應(yīng)答位。 ? 應(yīng)答( Acknowledge) ? 每傳輸一個字節(jié),要跟一個應(yīng)答狀態(tài)位。首先傳輸?shù)氖菙?shù)據(jù)的最高位( MSB,第 7 位),最后傳輸?shù)氖亲畹臀唬?LSB,第 0 位)。從機(jī)地址的可編程部分使最大數(shù)量的相同器件可以連接到 I2C 總線上,器件可編程地址位的數(shù)量由管腳決定,如果器件 3 個可編程的地址管腳,那么 I2C總線上共可以連接 8 個相同的器件。讀寫位是 0,表示主機(jī)將要向從機(jī)寫入數(shù)據(jù);讀寫位是 1,則表示主機(jī)將要從從機(jī)讀取數(shù)據(jù)。必須保證同一條 I2C 總線上所有從機(jī)的地址都是唯一。多個具有 I2C 總線接口的器件都可以連接到同一條 I2C 總線上,它們之間通過器件地址來區(qū)分。但是在 I2C 總線的起始和結(jié)束時例外。 ? I2C 總線上數(shù)據(jù)的有效性( Data validity) ? 數(shù)據(jù)線 SDA 的電平狀態(tài)必須在時鐘線 SCL 處于高電平期間保持穩(wěn)定不變??偩€在停止條件產(chǎn)生后處于空閑狀態(tài)。起始條件常常簡記為 S。 ? I2C總線時序定義: ? 起始條件和停止條件( START and STOP conditions) ? 起始條件:當(dāng) SCL 處于高電平期間時, SDA 從高電平向低電平跳變時產(chǎn)生起始條件。 ? 帶 I2C總線的外圍設(shè)備模塊有由 LED驅(qū)動控制器構(gòu)成的LED顯示器,由各種 LCD驅(qū)動控制器構(gòu)成的段式、字符點(diǎn)陣、圖形點(diǎn)陣液晶顯示器等。 ? I2C總線是同步串行數(shù)據(jù)傳輸總線 。 } ? 雙向二線制串行通信總線,時鐘線 SCL, 數(shù)據(jù)線 SDA。 t=t|a。 //先讀低位 b=Read_byte()。 //skip ROM Write_byte(0xBE)。 //延時 600us 等待轉(zhuǎn)換完成 ,一般轉(zhuǎn)換時間為 500us Init_DS18B20()。 //只接一個 18b20芯片, skip ROM Write_byte(0x44)。 Init_DS18B20()。 uchar b=0。 //結(jié)束拉高 delay(4)。 //75us 至少需保持 60us寫時間隙 dat=1。0x01。_nop_()。_nop_()。_nop_()。_nop_()。 DQ = 0。_nop_()。 //稍作延時 _nop_()。 _nop_()。 i0。 } void Write_byte(uchar dat) //寫一個字節(jié)
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1