單片機(jī)模擬I2C總線及AT24C01應(yīng)用實例_第1頁
單片機(jī)模擬I2C總線及AT24C01應(yīng)用實例_第2頁
單片機(jī)模擬I2C總線及AT24C01應(yīng)用實例_第3頁
單片機(jī)模擬I2C總線及AT24C01應(yīng)用實例_第4頁
單片機(jī)模擬I2C總線及AT24C01應(yīng)用實例_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、 SETBSCLNOPNOPSETBSDARET;發(fā)送接收確認(rèn)信號I2C_ACk:應(yīng)答信號SETBSDASETBSCLNOPNOPJBSDA,I2C_ACK0CLRCSJMPI2C_ACK_ENDI2C_ACK0:SETBCI2C_ACK_END:CLRSCLRET;送八位數(shù)據(jù)I2C_SEND8BIT:MOVB,#08HI2C_SEND8BIT_A:RLCAMOVSDA,CSETBSCLNOPNOPCLRSCLDJNZB,I2C_SEND8BIT_ARET;接收八位數(shù)據(jù)I2C_RECEIVE8BIT:MOVB,#08HCLRA;SETBSDAI2C_RECEIVE8IT_A:SETBSCLNO

2、PNOPMOVC,SDARLCA;將讀取數(shù)據(jù)通過C逐為移入累加器A中8次移動后就完成一個字節(jié)的接收。CLRSCLCLRSCL;SCL為低電平時才允許SDA數(shù)據(jù)改變數(shù)據(jù)指針自動加1指向下一位數(shù)據(jù)。DJNZB,I2C_RECEIVE8IT_ARET5.C語言寫的24C01單字節(jié)讀寫程序/*=24C01存儲器I2C總線實驗C語言例子ew51仿真編程器配套實驗板學(xué)習(xí)例程中山單片機(jī)學(xué)習(xí)網(wǎng)智佳科技站長:逸風(fēng)E-mail:=*/#include#includesbitSDA=0 x90;sbitSCL=0 x91;/函數(shù)聲明unsignedchari2c_read(unsignedchar);voidi2c

3、_write(unsignedchar,unsignedchar);voidi2c_send8bit(unsignedchar);unsignedchari2c_receive8bit(void);voidi2c_start(void);voidi2c_stop(void);biti2c_ack(void);/=voidmain(void)unsignedchardd;i2c_write(0 x00,0 x55);_nop_();dd=i2c_read(0 x00);for(;)/*=i2c_write(地址,數(shù)據(jù)),寫一個字節(jié)=*/voidi2c_write(unsignedcharAddr

4、ess,unsignedcharData)doi2c_start();i2c_send8bit(0 xA0);while(i2c_ack();i2c_send8bit(Address);i2c_ack();i2c_send8bit(Data);i2c_ack();i2c_stop();return;/*=i2c_read(地址,數(shù)據(jù)),寫一個字節(jié)=*/unsignedchari2c_read(unsignedcharAddress)unsignedcharc;doi2c_start();i2c_send8bit(0 xA0);while(i2c_ack();/=1,表示無確認(rèn),再次發(fā)送i2c_

5、send8bit(Address);i2c_ack();doi2c_start();i2c_send8bit(0 xA1);while(i2c_ack();c=i2c_receive8bit();i2c_ack();i2c_stop();return(c);/=/發(fā)送開始信號voidi2c_start(void)SDA=1;SCL=1;SDA=0;SCL=0;return;/發(fā)送結(jié)束信號voidi2c_stop(void)SDA=0;SCL=1;SDA=1;return;/發(fā)送接收確認(rèn)信號biti2c_ack(void)bitack;SDA=1;SCL=1;if(SDA=1)ack=1;els

6、eack=0;SCL=0;returnack);/送八位數(shù)據(jù)voidi2c_send8bit(unsignedcharb)unsignedchara;for(a=0;a8;a+)if(bA)&0X80)FONTSDA=1;elseSDA=0;SCL=1;SCL=0;return;/接收八位數(shù)據(jù)unsignedchari2c_receive8bit(void)unsignedchara;unsignedcharb=0;for(a=0;a8;a+)SCL=1;b=b1;if(SDA=1)b=b|0 x01;/按位或SCL=0;return(b);6在I2C總線的應(yīng)用中應(yīng)注意的事項總結(jié)為以下幾點:嚴(yán)格按照時序圖的要求進(jìn)行操作若與口線上帶內(nèi)部上拉電阻的單片機(jī)接口連接,可以不外加上拉電阻。程序中為配合相應(yīng)的傳輸速率,在對口線操作的指令后可用NOP指令加一定的延時。4)為了減少意外的干擾信號將EEPROM內(nèi)的數(shù)據(jù)改寫可在EEPROM內(nèi)部沒有用的空間寫入標(biāo)志字

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論