



下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、/=頭文件加載=#include /加載52系列單片機(jī)頭文件/=端口聲明=sbit CLK=P36; /74hc574時(shí)鐘信號(hào)線(xiàn)sbit G=P24; /74hc574使能sbit IIC_SDA=P26; /聲明IIC總線(xiàn)的數(shù)據(jù)線(xiàn)接在單片機(jī)的P2.5端口。sbit IIC_SCL=P25; /聲明IIC總線(xiàn)的時(shí)鐘線(xiàn)接在單片機(jī)的P2.7端口。unsigned char tabl=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x0BF,0x8C;/0,1,2,3,4,5,6,7,8,9,-,P/=函數(shù)聲明=void display(unsi
2、gned char aa);void delay(unsigned int t);void delay_IIC(void);void IIC_Init(void);void IIC_start(void);void IIC_stop(void);bit IIC_Tack(void);void IIC_single_byte_write(unsigned char Daddr,unsigned char Waddr,unsigned char Data);unsigned char IIC_single_byte_read(unsigned char Daddr,unsigned char Wa
3、ddr);void IIC_write_byte(unsigned char Data);unsigned char IIC_read_byte(void);/=主函數(shù)=void main() /主函數(shù)unsigned char Data=2,addr=0x01; /-系統(tǒng)初始化- IIC_Init();/初始化IIC總線(xiàn)。 /P1=0x7f;/LED8先亮。 while(1) /死循環(huán) IIC_single_byte_write(0xa0,0x02,Data);/保存LED的狀態(tài) delay(50000);/延時(shí)約0.5S Data=IIC_single_byte_read(0xa0,0x0
4、2);/讀出LED的狀態(tài)if(Data10)Data+;elseData=0;display(Data);delay(50000);/延時(shí)約0.5S /=功能子函數(shù)=void delay(unsigned int t)/延時(shí)函數(shù) while(t)t-; /延時(shí)循環(huán)計(jì)數(shù)/-void delay_IIC(void) /IIC總線(xiàn)限速延時(shí)函數(shù)。/該函數(shù)是空函數(shù),延時(shí)4個(gè)機(jī)器周期。;/-void IIC_Init(void)/IIC總線(xiàn)初始化函數(shù) IIC_SDA=1;/釋放IIC總線(xiàn)的數(shù)據(jù)線(xiàn)。 IIC_SCL=1;/釋放IIC總線(xiàn)的時(shí)鐘線(xiàn)。/-void IIC_start(void)/IIC總線(xiàn)產(chǎn)生起
5、始信號(hào)函數(shù) IIC_SDA=1;/拉高數(shù)據(jù)線(xiàn) IIC_SCL=1;/拉高時(shí)鐘線(xiàn) delay_IIC(); IIC_SDA=0;/在時(shí)鐘線(xiàn)為高電平時(shí),拉低數(shù)據(jù)線(xiàn),產(chǎn)生起始信號(hào)。 delay_IIC(); IIC_SCL=0;/拉低時(shí)鐘線(xiàn)/-void IIC_stop(void) /IIC總線(xiàn)產(chǎn)生停止信號(hào)函數(shù) IIC_SDA=0;/拉低數(shù)據(jù)線(xiàn) delay_IIC(); IIC_SCL=1;/拉高時(shí)鐘線(xiàn)。 delay_IIC(); IIC_SDA=1;/時(shí)鐘時(shí)線(xiàn)為高電平時(shí),拉高數(shù)據(jù)線(xiàn),產(chǎn)生停止信號(hào)。 delay_IIC();/-bit IIC_Tack(void)/接收應(yīng)答信號(hào)函數(shù) bit ack;
6、/定義一個(gè)位變量,來(lái)暫存應(yīng)答狀態(tài)。 IIC_SDA=1;/釋放數(shù)據(jù)總線(xiàn),準(zhǔn)備接收應(yīng)答信號(hào)。 delay_IIC(); IIC_SCL=1;/拉高時(shí)鐘線(xiàn)。 delay_IIC(); ack=IIC_SDA;/讀取應(yīng)答信號(hào)的狀態(tài)。 delay_IIC(); IIC_SCL=0;/拉低時(shí)鐘線(xiàn)。 delay_IIC(); return ack;/返回應(yīng)答信號(hào)的狀態(tài),0表示應(yīng)答,1表示非應(yīng)答。/-void IIC_write_byte(unsigned char Data)/向IIC總線(xiàn)寫(xiě)入一個(gè)字節(jié)的數(shù)據(jù)函數(shù) unsigned char i; for(i=0;i8;i+)/有8位數(shù)據(jù) IIC_SDA=D
7、ata&0x80;/寫(xiě)最高位的數(shù)據(jù) delay_IIC(); IIC_SCL=1; /拉高時(shí)鐘線(xiàn),將數(shù)寫(xiě)入到設(shè)備中。 delay_IIC(); IIC_SCL=0;/拉低時(shí)鐘線(xiàn),允許改變數(shù)據(jù)線(xiàn)的狀態(tài) delay_IIC(); Data=Data1;/數(shù)據(jù)左移一位,把次高位放在最高位,為寫(xiě)入次高位做準(zhǔn)備 /-unsigned char IIC_read_byte()/從IIC總線(xiàn)讀取一個(gè)字節(jié)的數(shù)據(jù)函數(shù) unsigned char i; unsigned char Data; /定義一個(gè)緩沖寄存器。 for(i=0;i8;i+)/有8位數(shù)據(jù) IIC_SCL=1;/拉高時(shí)鐘線(xiàn),為讀取下一位數(shù)據(jù)做準(zhǔn)備
8、。 delay_IIC(); Data=Data1;/將緩沖字節(jié)的數(shù)據(jù)左移一位,準(zhǔn)備讀取數(shù)據(jù)。 delay_IIC(); if(IIC_SDA)/如果數(shù)據(jù)線(xiàn)為高平電平。 Data=Data|0x1;/則給緩沖字節(jié)的最低位寫(xiě)1。 IIC_SCL=0;/拉低時(shí)鐘線(xiàn),為讀取下一位數(shù)據(jù)做準(zhǔn)備。 delay_IIC(); return Data;/返回讀取的一個(gè)字節(jié)數(shù)據(jù)。/-void IIC_single_byte_write(unsigned char Daddr,unsigned char Waddr,unsigned char Data)/向任意地址寫(xiě)入一個(gè)字節(jié)數(shù)據(jù)函數(shù) IIC_start();/
9、產(chǎn)生起始信號(hào) IIC_write_byte(Daddr);/寫(xiě)入設(shè)備地址(寫(xiě)) IIC_Tack();/等待設(shè)備的應(yīng)答 IIC_write_byte(Waddr);/寫(xiě)入要操作的單元地址。 IIC_Tack();/等待設(shè)備的應(yīng)答。 IIC_write_byte(Data);/寫(xiě)入數(shù)據(jù)。 IIC_Tack();/等待設(shè)備的應(yīng)答。 IIC_stop();/產(chǎn)生停止符號(hào)。/-unsigned char IIC_single_byte_read(unsigned char Daddr,unsigned char Waddr)/從任意地址讀取一個(gè)字節(jié)數(shù)據(jù)函數(shù) unsigned char Data;/定義一個(gè)緩沖寄存器。 IIC_start();/產(chǎn)生起始信號(hào) IIC_write_byte(Daddr);/寫(xiě)入設(shè)備地址(寫(xiě)) IIC_Tack();/等待設(shè)備的應(yīng)答 IIC_write_byte(Waddr);/寫(xiě)入要操作的單元地址。 IIC_Tack();/等待設(shè)備的應(yīng)答。 IIC_start();/產(chǎn)生起始信號(hào) IIC_write_byte(Daddr+1);/寫(xiě)入設(shè)備地址(讀)。 IIC_Tack();/等待設(shè)備的應(yīng)答。 Data=IIC_read_byte();/寫(xiě)入數(shù)據(jù)。 IIC_sto
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 易錯(cuò)點(diǎn)08 違法犯罪-備戰(zhàn)2021年中考道德與法治一輪復(fù)習(xí)易錯(cuò)題
- 春節(jié)果干蜜餞活動(dòng)方案
- 映山紅景區(qū)活動(dòng)方案
- 新零售公司營(yíng)銷(xiāo)策劃方案
- 新沂咖啡充值活動(dòng)方案
- 昆明家裝公司活動(dòng)方案
- 新高一自我介紹活動(dòng)方案
- 新意促銷(xiāo)活動(dòng)方案
- 春季產(chǎn)品活動(dòng)方案
- 旅游電臺(tái)活動(dòng)方案
- 2025年北京市第一次普通高中學(xué)業(yè)水平合格性考試歷史試題(原卷版+解析版)
- 部隊(duì)移交地方協(xié)議書(shū)
- 某建筑工程公司安全生產(chǎn)責(zé)任制度匯編
- DB11 1027-2013 防火玻璃框架系統(tǒng)設(shè)計(jì)、施工及驗(yàn)收規(guī)范
- 2025中國(guó)汽車(chē)出海潛在市場(chǎng)研究:澳大利亞篇-2025-03-市場(chǎng)解讀
- 財(cái)稅大數(shù)據(jù)在企業(yè)稅收風(fēng)險(xiǎn)管理中的應(yīng)用
- 湖北省2024年本科普通批錄取院校(首選物理)平行志愿投檔線(xiàn)
- 大學(xué)生全國(guó)創(chuàng)業(yè)服務(wù)網(wǎng)項(xiàng)目
- 跌倒的應(yīng)急處理課件
- 基于結(jié)構(gòu)化主題的單元整體教學(xué)-小學(xué)數(shù)學(xué)實(shí)踐探索
- GB/T 1346-2024水泥標(biāo)準(zhǔn)稠度用水量、凝結(jié)時(shí)間與安定性檢驗(yàn)方法
評(píng)論
0/150
提交評(píng)論