歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOCX文檔下載  

AT24C02 連讀連寫 流水燈測試 存儲設(shè)備C51 原創(chuàng)的已通過

  • 資源ID:58289181       資源大?。?span id="13hm7mi" class="font-tahoma">9.57KB        全文頁數(shù):9頁
  • 資源格式: DOCX        下載積分:0積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要0積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付說明:
本站最低充值0.01積分,下載本資源后余額將會存入您的賬戶,您可在我的個人中心查看。
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認(rèn)打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。

AT24C02 連讀連寫 流水燈測試 存儲設(shè)備C51 原創(chuàng)的已通過

/* 時序,還是時序 在模擬時序時不能出錯* 寫一個字節(jié)數(shù)據(jù)是AT24C02自動才生一個應(yīng)答,我們只要檢測到就行。然后發(fā)送下一字節(jié)* 讀一個字節(jié)后我們要寫另一個應(yīng)答 通知AT24C02,。它接收我們的信號才會發(fā)下一個字節(jié),不然我們不能進(jìn)行連讀*/#include<C51.H>#include<INTRINS.H>#include<CLIB.H> / P1為流水燈。實驗用來顯示 數(shù)據(jù)是否能夠正常讀寫/實驗板上A0 A1 A2 全部接地 而且SDA SCL沒有接上拉電阻#define SDA P2_0#define SCL P2_1#define W_slave 0XA0#define R_slave 0xa1 typedef unsigned char uchar ;typedef unsigned int uint ;bit ack=0;uchar code str_1=0x01,0x02,0x03,0x30,0x35,0x36,0x37,0x38,0x39,0x30;uchar get_str_18;/*AT24C02初始化*/void AT24C02_Init(void);/* AT24C02 起動*/static void AT24C02_Start();/* AT24C02 停止* _nop_()為一個單指令周期 *11.0592MHZ一個單指令周期為1.08us*/static void AT24C02_End() ; /* 寫應(yīng)答*/static void AT24C02_Write_ACK() ;/* 讀應(yīng)答*/static void AT24C02_Read_ACK();/*發(fā)送一個字節(jié)*/static void AT24C02_Send_Char(uchar ch);/*接送一個字節(jié)*/static uchar AT24C02_Get_Char();/*AT24C02延時*/static void flash(void) ;/* 發(fā)關(guān)一個字節(jié)*/static void AT24C02_Write_One(uchar address,uchar dat);/*接收一個字節(jié)*/static uchar AT24C02_Read_One(uchar address);/*連續(xù)寫N個字節(jié)*/void AT24C02_Write_Str(uchar address,uchar * str,uchar num);/* 連讀N個字節(jié)*/void AT24C02_Read_Str(uchar address,uchar *str,uchar num);/*MAIN()*/void main(void) / uchar tample=0x00; uchar x=0;/ uchar *_str; AT24C02_Init();/ AT24C02_Write_One(0x20,0xa0); /test . 寫后立即讀寫需要時間延時,我這里用最小的1ms可以,比/ delay1ms(1); /這更小的還沒有進(jìn)行測試,但是沒有延時讀取失敗。/ while(1) AT24C02_Write_Str(0x00,str_1,8); delay1ms(100); AT24C02_Read_Str(0x00,get_str_1,8); while(x+<8) P1=get_str_1x; delay1ms(600); P1=0X55; while(1);/* AT24C02 起動* _nop_()為一個單指令周期 *11.0592MHZ一個單指令周期為1.08us*/static void AT24C02_Start() SDA=1; flash(); SCL=1; flash(); SDA=0; flash(); SCL=0; flash();/* AT24C02 停止* _nop_()為一個單指令周期 *11.0592MHZ一個單指令周期為1.08us*/static void AT24C02_End() SDA=0; flash(); SCL=1; flash(); flash(); SDA=1; flash(); flash(); SCL=0; /* 寫應(yīng)答*/static void AT24C02_Write_ACK() uchar i=0; SDA=1; flash(); SCL=1; flash(); / _nop_(); / _nop_(); while(SDA=1)&&i<255) i+; if(i=255) P1=0X7f; ack=0;/無應(yīng)答 else P1=0xfe; ack=1;/有應(yīng)答 SCL=0; flash();/* 讀應(yīng)答*/static void AT24C02_Read_ACK() SDA=0; flash(); SCL=1; flash(); SCL=0; flash(); SDA=1; flash(); /*發(fā)送一個字節(jié) 先發(fā)送高位然后才是低字節(jié)*/static void AT24C02_Send_Char(uchar ch) uchar x; uchar tample=ch; SCL=0; flash(); for(x=8;x>0;x-) tample<<=1; SDA=CY; flash(); SCL=1; flash(); SCL=0; flash(); /*接 收一個字節(jié)*/static uchar AT24C02_Get_Char() uchar tample=0X00; uchar x; SCL=0; flash(); SDA=1; flash(); for(x=0;x<8;x+) tample<<=1; SCL=1; flash(); if(SDA=1) tample|=1; else tample &=0xfe; SCL=0; flash(); return tample;/*AT24C02初始化*/void AT24C02_Init(void) SDA=1; flash(); SCL=1; flash();/*AT24C02延時*/static void flash(void) _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();/* 發(fā)關(guān)一個字節(jié) address為寫入字節(jié)的地址* dat 為要寫入的字節(jié)*/void AT24C02_Write_One(uchar address,uchar dat) AT24C02_Start(); AT24C02_Send_Char(W_slave);/電路圖上的AT24C02 AT24C02_Write_ACK(); AT24C02_Send_Char(address);/存儲內(nèi)容起始地此 AT24C02_Write_ACK(); AT24C02_Send_Char(dat);/寫一個數(shù)據(jù) / AT24C02_Write_ACK(); AT24C02_End(); / AT24C02_End(); /*接收一個字節(jié) address為要讀取數(shù)據(jù)的地址*/uchar AT24C02_Read_One(uchar address) uchar _data; AT24C02_Start(); AT24C02_Send_Char(W_slave);/電路圖上的AT24C02 AT24C02_Write_ACK(); AT24C02_Send_Char(address);/存儲內(nèi)容起始地此 AT24C02_Write_ACK(); AT24C02_Start(); AT24C02_Send_Char(R_slave);/電路圖上的AT24C02 AT24C02_Write_ACK(); _data=AT24C02_Get_Char(); /只讀一個字節(jié)。不用應(yīng)答 表示結(jié)束 AT24C02_End() ; return _data; /* *連續(xù)寫N個字節(jié)* address為要寫入的地址* str為要連續(xù)寫入的數(shù)據(jù)的首地址* num 為正數(shù)X,表示我們這字符串寫入前X位。后X位不寫入*/void AT24C02_Write_Str(uchar address,uchar * str,uchar num) AT24C02_Start(); AT24C02_Send_Char(W_slave);/電路圖上的AT24C02 AT24C02_Write_ACK(); AT24C02_Send_Char(address);/存儲內(nèi)容起始地此 AT24C02_Write_ACK(); while(num-) AT24C02_Send_Char(*str);/寫一個數(shù)據(jù) / str+; AT24C02_Write_ACK(); AT24C02_End() ; /* 連讀N個字節(jié)* address為讀取數(shù)據(jù)的首地址* num 第一次連讀的話只能讀寫一頁也就是八個字節(jié) 所以要寫入多個字節(jié)吧,address要怎樣呢?* 若為正常X,則讀取包括該地址在內(nèi)的之后X個數(shù)據(jù)*/本來我在子程序中定義了兩個指針 使兩指針 地址相同,一個用來保存接收字節(jié)的首地址。 另個用來接收數(shù)年然后地址+/ 但是行不通/采用以下寫法。程序中數(shù)據(jù)才被檢測到。真的無語了void AT24C02_Read_Str(uchar address,uchar *str,uchar num) /uchar *_data_flag=str; num=num; /如果要使程序不產(chǎn)報錯,加這句,即使沒有傳NUM也沒關(guān)系。 AT24C02_Start(); AT24C02_Send_Char(W_slave);/電路圖上的AT24C02 AT24C02_Write_ACK(); AT24C02_Send_Char(address);/存儲內(nèi)容起始地此 AT24C02_Write_ACK(); AT24C02_Start(); AT24C02_Send_Char(R_slave);/電路圖上的AT24C02 AT24C02_Write_ACK(); / *_data+=AT24C02_Get_Char(); while(num-) /AT24C02_Read_ACK() ; *str=AT24C02_Get_Char(); str+; /delay1ms(500); AT24C02_Read_ACK() ; flash(); AT24C02_End() ; / return _data_flag;

注意事項

本文(AT24C02 連讀連寫 流水燈測試 存儲設(shè)備C51 原創(chuàng)的已通過)為本站會員(xins****2008)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!