




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C51A T 24 C 02 讀 寫 程 序/*voidstart()/開(kāi)始信號(hào)voidstop()/停止信號(hào)sbit P2_3=P2A3;/74HC138-/EIvoidAck()/發(fā)確認(rèn)信號(hào)voidNoAck()/ 發(fā)無(wú)確認(rèn)信號(hào)void in it()/初始化信號(hào),拉高SDA和SCL兩條總線bitwrite_byte(uchardate)/寫一字節(jié),將date寫入AT24C02中ucharread_byte()/讀一字節(jié),從 AT24C02中讀一字節(jié)bitbusy()/應(yīng)答查詢,stop()后,啟動(dòng)AT24C02內(nèi)部寫周期,啟動(dòng)查詢 初始化EEPR0子程序內(nèi)容為 0XFF,nPage(03
2、1)向AT24C02中寫數(shù)據(jù)voidInit_Flash(ucharnPage)/8bytes/1pageinit0xFF voidwrite_add(ucharaddress,uchardate)/ /從AT24C02中給定的地址nAddr起,將存放在以指針 nContent幵頭的存儲(chǔ)空間中的 nLen 個(gè)字節(jié)數(shù)據(jù),連續(xù)寫入 AT24C02 voidwrite_flash(uchar*nContent,ucharnAddr,ucharnLen)ucharread_add(ucharaddress)/從 AT24C02中讀出數(shù)據(jù) /從AT24C02中給定的地址nAddr起,讀取nLen個(gè)字節(jié)數(shù)
3、據(jù)存放在以指針 nContent開(kāi)頭的存儲(chǔ)空間。voidread_flash(uchar*nContent,ucharnAddr,ucharnLen) */ /*單片機(jī) P2 口接 74HC138(三八譯碼器)P2.3-74HC138:/EI 、P2.2-74HC138:A2、P2.1-74HC138:A1 、 P2.0-74HC138:A0譯碼器輸出YO, Y1、Y2、Y3、Y4 Y5、Y6、Y7均低電平有效,分別選通 18個(gè)數(shù)碼管。包括2個(gè)四位一體數(shù)碼管LG3641BH共2x4=8個(gè)數(shù)碼管。數(shù)碼管數(shù)據(jù)口為P0 口。數(shù)碼管為共陽(yáng)4位一體數(shù)碼管。功能:譯碼器輸出為 18個(gè)數(shù)碼管的段選信號(hào),輪流
4、選擇 18數(shù)碼管。voiddisplay(uchar*nContent,ucharnLen)功能:在8段數(shù)碼管上顯示nLen個(gè)字符,這些字符存儲(chǔ)在指針 nContent 開(kāi)頭的往下的內(nèi)容中。顯示原理:1 、送出要顯示的段數(shù)2、P2譯碼,選擇要顯示的位3、延時(shí) 1 2ms,時(shí)間不能太長(zhǎng),否則會(huì)閃爍,也不能太短,否則會(huì)很暗。4、取消段選,消隱!若要顯示多段,重復(fù)以上4 步!*/ #include<reg51.h> #include<intrins.h> #defineucharunsignedchar #defineuintunsignedint sbitL8二 P1A7;
5、sbit P2_2=P 2八2;/74HC138-A2_nop_();sbit P2_1=P 2"/74HC138-A1sbit P2_0=PO;/74HC138-A0ucharcodetable=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e;/ 共陽(yáng)數(shù)碼管 0 Fsbitsda=卩1八2;sbitscl 二P19uchara;voiddelay()/延時(shí)函數(shù); voidstart()/ 開(kāi)始信號(hào)sda=1;_nop_();scl=1;sda=0;_nop_();void
6、stop()/ 停止信號(hào)sda=0;_nop_();scl=1;_nop_();sda=1;_nop_();voidAck()/ 發(fā)確認(rèn)信號(hào)scl=0;_nop_();sda=0;_nop_();scl=1;_nop_();scl=0;_nop_();voidNoAck()/ 發(fā)無(wú)確認(rèn)信號(hào)scl=0;_nop_();sda=1;_nop_();scl=1;_nop_();scl=0;_nop_();/voidrespons()/ 應(yīng)答,在數(shù)據(jù)傳輸 8 位后,等待或者發(fā)送一個(gè)應(yīng)答信號(hào)/ /uchari;/scl=0;/_nop_();/sda=1;/_nop_();/scl=1;/scl 拉高,
7、準(zhǔn)備讀數(shù)據(jù)讀數(shù)據(jù)/delay();/while(sda=1)&&(i<250)i+;/ /scl=0;/scl 拉低,數(shù)據(jù)讀完畢 , (必須)/ /delay();void in it()/初始化信號(hào),拉高SDA和SCL兩條總線sda=1;scl=1;bitwrite_byte(uchardate)/寫一字節(jié),將date寫入AT24C02中_nop_();uchari;scl=0;for(i=0;i<8;i+) date=date<<1;sda=CY;/ 將要寫入的數(shù)據(jù)送入 SDAscl=1;/scl拉高,準(zhǔn)備寫數(shù)據(jù)_nop_();scl=0;/scl拉
8、低,寫數(shù)據(jù)完畢_nop_();sda=1;/ 應(yīng)答時(shí)序中,該線必須為高_(dá)nop_();scl=1;/scl 拉高,準(zhǔn)備讀數(shù)據(jù)CY=sda;/ 將 sda 中的數(shù)據(jù)讀出scl=0;/scl 拉低,數(shù)據(jù)讀完畢(必須)return(CY);ucharread_byte()/讀一字節(jié),從 AT24C02中讀一字節(jié) uchari,k;for(i=0;i<8;i+) sda=1;_nop_();scl=1;/scl 拉高,準(zhǔn)備讀數(shù)據(jù)_nop_();k=(k<<1)|sda;/ 將 sda 中的數(shù)據(jù)讀出scl=0;/scl 拉低,數(shù)據(jù)讀完畢(必須)_nop_();returnk;/void
9、delay2(ucharx)/ 延時(shí),放在寫入與讀出之間/ /uchara,b;/for(a=x;a>0;a-) /for(b=100;b>0;b-);/bitbusy()/應(yīng)答查詢,stop()后,啟動(dòng)AT24C02內(nèi)部寫周期,啟動(dòng)查詢start();CY=write_byte(0xa0);return(CY);/初始化EEPRO子程序內(nèi)容為 0XFF,nPage(031) voidInit_Flash(ucharnPage)/8bytes/1pageinit0xFFucharnLen;ucharAddr;nLen=8;Addr=8*nPage;start();write_byt
10、e(0xa0);write_byte(Addr);for(;nLen!=0;nLen-)向AT24C02中寫數(shù)據(jù)write_byte(0xff);voidwrite_add(ucharaddress,uchardate)/start();write_byte(0xa0);/respons();write_byte(address);/respons();write_byte(date);/respons();stop();/從AT24C02中給定的地址nAddr起,將存放在以指針 nContent幵頭的存儲(chǔ)空間中的 nLen 個(gè)字節(jié)數(shù)據(jù),連續(xù)寫入 AT24C02 voidwrite_flash
11、(uchar*nContent,ucharnAddr,ucharnLen)uchari,temp;ucharAddr;Addr=nAddr;start();write_byte(0xa0);write_byte(Addr);for(i=0;i<nLen;i+)if(Addr%8=0)stop();while(busy();start();write_byte(0xa0);write_byte(Addr);temp=*nContent;write_byte(temp);nContent+;Addr+;stop();ucharread_add(ucharaddress)/從 AT24C02中
12、讀出數(shù)據(jù) uchardate;start();write_byte(0xa0);write_byte(address);/respons();start();/respons();write_byte(0xa1);/respons();date=read_byte();NoAck();stop();returndate;/從AT24C02中給定的地址nAddr起,讀取nLen個(gè)字節(jié)數(shù)據(jù)存放在以指針 nContent開(kāi)頭的存儲(chǔ)空間。voidread_flash(uchar*nContent,ucharnAddr,ucharnLen)ucharAddr;Addr=nAddr;start();wri
13、te_byte(0xa0);write_byte(Addr);start();write_byte(0xa1);while(-nLen)nContent+;Ack();/ 發(fā)確認(rèn)信號(hào)*nContent=read_byte();*nContent=read_byte();NoAck(); / 無(wú)確認(rèn)信號(hào)stop();/ 發(fā)停止信號(hào)/*功能:延時(shí) x*0.14ms*/voiddelay1(unsignedcharx)/x*0.14MS unsignedchari;while(x-) for(i=0;i<13;i+)/*/ /*功能:在 8 段數(shù)碼管上顯示 nLen 個(gè)字符 , 這些字符存儲(chǔ)在
14、指針 nContent開(kāi)頭的往下的內(nèi)容中。*/voiddisplay(uchar*nContent,ucharnLen)uchartemp;uchari;if(nLen>8)/ 最多顯示 8 段nLen=8;for(i=0;i<nLen;i+)temp=*nContent;nContent+;P0=tabletemp;P2=P2&0xf0|i;/ 譯中 74HC138: Yi(i=0,1,.7),選中第 i+1 個(gè)數(shù)碼管delay1(10); / 延時(shí)P2=P2|0x0f;/ 取消位選,消隱/*主程序 功能:實(shí)現(xiàn)存儲(chǔ)器EE PROMAT24C02數(shù)據(jù)讀寫操作*/voidmain() uchardat16=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,i;ucharout116=0;ucharout2;P0=0xff;P1=0xff;P2=0xff;P3=0xff;init();/ 初始化 AT24C02Init_Flash(0);/ 將第 31 頁(yè)初始化為 0xFFwhile(busy();/write_add(23,0x5);/在 23 地址處寫入數(shù)據(jù) 0x5;write_flas
溫馨提示
- 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智慧社區(qū)建設(shè)銀行房產(chǎn)抵押貸款合同
- 2025年度自愿離婚協(xié)議書及子女撫養(yǎng)費(fèi)調(diào)整及支付協(xié)議
- 新媒體平臺(tái)內(nèi)容合作與IP開(kāi)發(fā)協(xié)議(2025年度)
- 二零二五年度裝飾裝修工程索賠處理合同
- 2025年度智能家居裝修材料研發(fā)生產(chǎn)與售后服務(wù)合同
- 年度考核協(xié)議樣本
- 合作品牌保護(hù)協(xié)議
- 小區(qū)公共設(shè)施防水協(xié)議
- 彈射救生系統(tǒng)項(xiàng)目風(fēng)險(xiǎn)識(shí)別與評(píng)估綜合報(bào)告
- 關(guān)于2025年學(xué)校國(guó)際交流活動(dòng)的工作報(bào)告范文
- 核心素養(yǎng)導(dǎo)向下的高中歷史大單元教學(xué)設(shè)計(jì)研究課題設(shè)計(jì)論證
- 員工入職登記表
- 2024年新疆維吾爾自治區(qū)招聘事業(yè)單位工作人員考試真題
- 科技創(chuàng)新在環(huán)境保護(hù)中的重要作用研究報(bào)告
- 2025年濟(jì)源職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)學(xué)生專用
- 《金融市場(chǎng)分析方法》課件
- 卵巢癌的篩查:如何進(jìn)行卵巢癌的早期篩查
- 2025年南網(wǎng)數(shù)字集團(tuán)公開(kāi)選聘高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 5G基站建設(shè)的審批流程與標(biāo)準(zhǔn)
- 西門子S7-1200 PLC應(yīng)用技術(shù)項(xiàng)目教程(第3版) 考試復(fù)習(xí)題
- 人工智能在招聘行業(yè)的應(yīng)用
評(píng)論
0/150
提交評(píng)論