AT24C02 連讀連寫 流水燈測(cè)試 存儲(chǔ)設(shè)備C51 原創(chuàng)的已通過(guò)
《AT24C02 連讀連寫 流水燈測(cè)試 存儲(chǔ)設(shè)備C51 原創(chuàng)的已通過(guò)》由會(huì)員分享,可在線閱讀,更多相關(guān)《AT24C02 連讀連寫 流水燈測(cè)試 存儲(chǔ)設(shè)備C51 原創(chuàng)的已通過(guò)(16頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 /************************************************************************************** * 時(shí)時(shí)序,還還是時(shí)序序 在模模擬時(shí)序序時(shí)不能能出錯(cuò) * 寫寫一個(gè)字字節(jié)數(shù)據(jù)據(jù)是ATT24CC02自自動(dòng)才生生一個(gè)應(yīng)應(yīng)答,我我們只要要檢測(cè)到到就行。。然然后發(fā)送送下一字字節(jié) * 讀讀一個(gè)字字節(jié)后我我們要寫寫另一個(gè)個(gè)應(yīng)答 通通知ATT24CC02,。它它接收我我們的信信號(hào)才會(huì)會(huì)發(fā)下一一個(gè)字節(jié)節(jié),不然然我們不不能進(jìn)行
2、行連讀
***************************************************************************************//
#inccludde
3、e SSCL PP2_11 #deffinee WW_sllavee 0XXA0 #deffinee RR_sllavee 0xxa1 typeedeff uunsiigneed ccharr uuchaar ;; typeedeff uunsiigneed iint uuintt ; bit ackk=0;; uchaar ccodee sstr__1[]]={00x011,0xx02,,0x003,00x300,0xx35,,0x336,00x37
4、7,0xx38,,0x339,00x300}; uchaar gget__strr_1[[8];; /******************************************************** *AT224C002初始始化 *********************************************************/ voidd ATT24CC02__Iniit(vvoidd); /********************************************************* * AAT244C022
5、 起起動(dòng) * **********************************************************/ stattic voiid AAT244C022_Sttartt();; /********************************************************* * AAT244C022 停止止 * __nnop__()為為一個(gè)單單指令周周期 *11..05992MHHZ一個(gè)個(gè)單指令令周期為為1.008uss ********************************
6、**************************/ stattic voiid AT224C002_EEnd(() ;; /******************************************************* * 寫寫應(yīng)答 *******************************************************// stattic voiid AAT244C022_Wrritee_ACCK()) ; /****************************************************
7、 * 讀讀應(yīng)答 *****************************************************/ stattic voiid AAT244C022_Reead__ACKK();; /**************************************************** *發(fā)送一一個(gè)字節(jié)節(jié) *****************************************************/ stattic voiid AAT244C022_Seend__Chaar(uuchaar cch);; /********
8、******************************************** *接送一一個(gè)字節(jié)節(jié) *****************************************************/ stattic uchhar AT224C002_GGet__Chaar()); /**************************************************** *AT224C002延時(shí)時(shí) *****************************************************/ stattic voiid ff
9、lassh(vvoidd) ;; /**************************************************** * 發(fā)關(guān)關(guān)一個(gè)字字節(jié) ******************************************************/ stattic voiid AT224C002_WWritte_OOne((uchhar adddresss,uuchaar ddat)); /***************************************************** *接收一一個(gè)字節(jié)節(jié) ***************
10、***************************************/ stattic uchhar ATT24CC02__Reaad_OOne((uchhar adddresss);; /***************************************************** *連續(xù)寫寫N個(gè)字字節(jié) ******************************************************/ voidd AAT244C022_Wrritee_Sttr(uuchaar aaddrresss,uccharr * strr,ucch
11、arr nuum);; /********************************************************************* ** 連連讀N個(gè)個(gè)字節(jié) **********************************************************************/ voidd AAT244C022_Reead__Strr(uccharr adddreess,,uchhar *sttr,uuchaar nnum)); /************************************************
12、*****MAAIN(()*************************************************************// voidd mmainn(vooid)) { // uchhar tammplee=0xx00;; uuchaar xx=0;; // uccharr *__strr; AAT244C022_Innit((); // ATT24CC02__Wriite__Onee(0xx20,,0xaa0);; //ttestt ..... 寫寫后立即即讀
13、寫需需要時(shí)間間延時(shí),我我這里用用最小的的1mss可以,比比 // deelayy1mss(1)); ///這更小小的還沒(méi)沒(méi)有進(jìn)行行測(cè)試,但但是沒(méi)有有延時(shí)讀讀取失敗敗。 // whhilee(1)) ATT24CC02__Wriite__Strr(0xx00,,strr_1,,8);; deelayy1mss(1000);; AAT244C022_Reead__Strr(
14、0xx00,,gett_sttr_11,8)); wwhille(xx++<<8) {{ P1==gett_sttr_11[x]]; dellay11ms((6000); } P1==0X555; wwhille(11); } /********************************************************* * AAT244C022 起起動(dòng) * __nno
15、p__()為為一個(gè)單單指令周周期 *11..05992MHHZ一個(gè)個(gè)單指令令周期為為1.008uss **********************************************************/ stattic voiid AT224C002_SStarrt()) { SSDA==1; fflassh()); SSCL==1; fflassh()); SSDA==0; fflassh()); SSCL==0; fflass
16、h()); } /********************************************************* * AAT244C022 停止止 * __nnop__()為為一個(gè)單單指令周周期 *11..05992MHHZ一個(gè)個(gè)單指令令周期為為1.008uss **********************************************************/ stattic voiid AT224C002_EEnd(() { SSDA==0; fflass
17、h()); SSCL==1; fflassh()); fflassh()); SDDA=11; fflassh()); fflassh()); SSCL==0; } /******************************************************* * 寫寫應(yīng)答 *******************************************************// stattic voiid AAT244C022_W
18、rritee_ACCK()) { uuchaar ii=0;; SSDA==1; fflassh()); SSCL==1; fflassh()); // _nnop__();; /// _nnop__();; wwhille(((SDAA==11)&&&i<2255)) ii++;; iif(ii==2255)) {{ PP1=00X7ff;
19、 aack==0;///無(wú)應(yīng)應(yīng)答 } eelsee {{ PP1=00xfee; aack==1;///有應(yīng)應(yīng)答 }} SSCL==0; flaash((); } /**************************************************** * 讀讀應(yīng)答 *****************************************************/ stattic voiid
20、 AAT244C022_Reead__ACKK() { SDDA=00; fllashh();; SCCL=11; fllashh();; SCCL=00; fllashh();; SDDA=11; fllashh();; } /****************************************************
21、*發(fā)送一一個(gè)字節(jié)節(jié) 先發(fā)發(fā)送高位位然后才才是低字字節(jié) *****************************************************/ stattic voiid AAT244C022_Seend__Chaar(uuchaar cch) { uuchaar xx; uuchaar ttampple==ch;; SSCL==0; fflassh()); ffor((x=88;x>>0;xx--)) {{ ttamppl
22、e<<<=11; SSDA==CY;; fflassh()); SSCL==1; fflassh()); SSCL==0; fflassh()); }} } /**************************************************** *接 收收一個(gè)字字節(jié) ********************************************
23、*********/ stattic uchhar AT224C002_GGet__Chaar()) { uuchaar ttampple==0X000; uuchaar xx; SSCL==0; fflassh()); SSDA==1; fflassh()); ffor((x=00;x<<8;xx++)) {{ ttampple<<<=11; SSCL==1; f
24、flassh()); iif(SSDA===1)) ttampple||=1;; eelsee ttampple &=00xfee; SSCL==0; fflassh()); }} rretuurn tammplee; } /***********************************************
25、********* *AT224C002初始始化 *********************************************************/ voidd ATT24CC02__Iniit(vvoidd) { SSDA==1; fflassh()); SSCL==1; fflassh()); } /**************************************************** *AT224C002延時(shí)時(shí) *****************************
26、************************/ stattic voiid fflassh(vvoidd) { __nopp_()); __nopp_()); __nopp_()); __nopp_()); __nopp_()); __nopp_()); } /**************************************************** * 發(fā)關(guān)關(guān)一個(gè)字字節(jié) aaddrresss為寫入入字節(jié)的的地址 *
27、ddat 為要寫寫入的字字節(jié) ******************************************************/ voidd AAT244C022_Wrritee_Onne(uuchaar aaddrresss,uccharr daat) { AAT244C022_Sttartt();; AAT244C022_Seend__Chaar(WW_sllavee);///電路路圖上的的AT224C002 AAT244C022_Wrritee_ACCK())
28、; AAT244C022_Seend__Chaar(aaddrresss);///存儲(chǔ)儲(chǔ)內(nèi)容起起始地此此 AAT244C022_Wrritee_ACCK()); AAT244C022_Seend__Chaar(ddat));///寫一個(gè)個(gè)數(shù)據(jù) / AAT244C022_Wrritee_ACCK()); AAT244C022_Ennd()); /
29、// AAT244C022_Ennd()); } /***************************************************** *接收一一個(gè)字節(jié)節(jié) adddreess為為要讀取取數(shù)據(jù)的的地址 ******************************************************/ uchaar AT224C002_RReadd_Onne(uuchaar aaddrresss) { uuchaar __datta; A
30、AT244C022_Sttartt();; AAT244C022_Seend__Chaar(WW_sllavee);///電路路圖上的的AT224C002 AAT244C022_Wrritee_ACCK()); AAT244C022_Seend__Chaar(aaddrresss);///存儲(chǔ)儲(chǔ)內(nèi)容起起始地此此 AAT244C022_Wrritee_ACCK()); A
31、AT244C022_Sttartt();; AAT244C022_Seend__Chaar(RR_sllavee);///電路路圖上的的AT224C002 AAT244C022_Wrritee_ACCK()); __datta=AAT244C022_Geet_CCharr();; ///只讀讀一個(gè)字字節(jié)。。不不用應(yīng)答答 表表示結(jié)束束 AAT244C022_Ennd()) ; rretuurn _daata;; } /***
32、************************************************** ***************************** *連續(xù)寫寫N個(gè)字字節(jié) * aaddrresss為要寫寫入的地地址 * sstr為為要連續(xù)續(xù)寫入的的數(shù)據(jù)的的首地址址 * nnum 為正數(shù)數(shù)X,表表示我們們這字符符串寫入入前X位位。后XX位不寫寫入 ****************************************************************************************
33、******/ voidd AAT244C022_Wrritee_Sttr(uuchaar aaddrresss,uccharr * strr,uccharr nuum) { AAT244C022_Sttartt();; AAT244C022_Seend__Chaar(WW_sllavee);///電路路圖上的的AT224C002 AAT244C022_Wrritee_ACCK()); AAT244C022_Seend__Chaar(aaddrresss);/
34、//存儲(chǔ)儲(chǔ)內(nèi)容起起始地此此 AAT244C022_Wrritee_ACCK()); wwhille(nnum---) {{ AAT244C022_Seend__Chaar(**strr);///寫一一個(gè)數(shù)據(jù)據(jù) / sstr+++; AAT244C022_Wrritee_ACCK())
35、; } AT224C002_EEnd(() ;; } /********************************************************************* * 連讀讀N個(gè)字字節(jié) * aaddrresss為讀取取數(shù)據(jù)的的首地址址 * nnum 第一一次連讀讀的話只只能讀寫寫一頁(yè)也也就是八八個(gè)字節(jié)節(jié) 所以以要寫入入多個(gè)字字節(jié)吧,,aaddrresss要怎樣樣呢??? *
36、 若若為正常常X,則則讀取包包括該地地址在內(nèi)內(nèi)的之后后X個(gè)數(shù)數(shù)據(jù) **********************************************************************/ //本來(lái)來(lái)我在子子程序中中定義了了兩個(gè)指指針 使兩兩指針 地址址相同,一一個(gè)用來(lái)來(lái)保存接接收字節(jié)節(jié)的首地地址。 另個(gè)用用來(lái)接收收數(shù)年然然后地址址++ // 但但是行不不通 //采用用以下寫寫法。。程程序中數(shù)數(shù)據(jù)才被被檢測(cè)到到。。。。。真真的無(wú)語(yǔ)語(yǔ)了 voidd AAT244C022_Reead__Strr(
37、uccharr adddreess,,uchhar *sttr,uuchaar nnum)) { ///uccharr *__datta_fflagg=sttr; nnum==numm; ///如果果要使程程序不產(chǎn)產(chǎn)報(bào)錯(cuò),加加這句,即即使沒(méi)有有傳NUUM也沒(méi)沒(méi)關(guān)系。。。 AAT244C022_Sttartt();; AAT244C022_Seend__Chaar(WW_sllavee);///電路路圖上的的A
38、T224C002 AAT244C022_Wrritee_ACCK()); AAT244C022_Seend__Chaar(aaddrresss);///存儲(chǔ)儲(chǔ)內(nèi)容起起始地此此 AAT244C022_Wrritee_ACCK()); AAT244C022_Sttartt();; AAT244C022_Seend__Chaar(RR_sllavee);///電路路圖上的的A
39、T224C002 AAT244C022_Wrritee_ACCK()); /// *__datta+++=ATT24CC02__Gett_Chhar((); wwhille(nnum---) { //AAT244C022_Reead__ACKK() ; **strr=ATT24CC02__Gett_Chhar((); sstr+++; ///deelayy1mss(5000);; AT224C002_RReadd_ACCK()) ; } fllashh();; ATT24CC02__Endd() ; //// reeturrn __datta_fflagg; }
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 市教育局冬季運(yùn)動(dòng)會(huì)安全工作預(yù)案
- 2024年秋季《思想道德與法治》大作業(yè)及答案3套試卷
- 2024年教師年度考核表個(gè)人工作總結(jié)(可編輯)
- 2024年xx村兩委涉案資金退還保證書
- 2024年憲法宣傳周活動(dòng)總結(jié)+在機(jī)關(guān)“弘揚(yáng)憲法精神推動(dòng)發(fā)改工作高質(zhì)量發(fā)展”專題宣講報(bào)告會(huì)上的講話
- 2024年XX村合作社年報(bào)總結(jié)
- 2024-2025年秋季第一學(xué)期初中歷史上冊(cè)教研組工作總結(jié)
- 2024年小學(xué)高級(jí)教師年終工作總結(jié)匯報(bào)
- 2024-2025年秋季第一學(xué)期初中物理上冊(cè)教研組工作總結(jié)
- 2024年xx鎮(zhèn)交通年度總結(jié)
- 2024-2025年秋季第一學(xué)期小學(xué)語(yǔ)文教師工作總結(jié)
- 2024年XX村陳規(guī)陋習(xí)整治報(bào)告
- 2025年學(xué)校元旦迎新盛典活動(dòng)策劃方案
- 2024年學(xué)校周邊安全隱患自查報(bào)告
- 2024年XX鎮(zhèn)農(nóng)村規(guī)劃管控述職報(bào)告