



全文預(yù)覽已結(jié)束
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
精品文檔/=頭文件加載=#include /加載52系列單片機(jī)頭文件/=端口聲明=sbit CLK=P36; /74hc574時鐘信號線sbit G=P24; /74hc574使能sbit IIC_SDA=P26; /聲明IIC總線的數(shù)據(jù)線接在單片機(jī)的P2.5端口。sbit IIC_SCL=P25; /聲明IIC總線的時鐘線接在單片機(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(unsigned 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 Waddr);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總線。 /P1=0x7f;/LED8先亮。 while(1) /死循環(huán) IIC_single_byte_write(0xa0,0x02,Data);/保存LED的狀態(tài) delay(50000);/延時約0.5S Data=IIC_single_byte_read(0xa0,0x02);/讀出LED的狀態(tài)if(Data10)Data+;elseData=0;display(Data);delay(50000);/延時約0.5S /=功能子函數(shù)=void delay(unsigned int t)/延時函數(shù) while(t)t-; /延時循環(huán)計數(shù)/-void delay_IIC(void) /IIC總線限速延時函數(shù)。/該函數(shù)是空函數(shù),延時4個機(jī)器周期。;/-void IIC_Init(void)/IIC總線初始化函數(shù) IIC_SDA=1;/釋放IIC總線的數(shù)據(jù)線。 IIC_SCL=1;/釋放IIC總線的時鐘線。/-void IIC_start(void)/IIC總線產(chǎn)生起始信號函數(shù) IIC_SDA=1;/拉高數(shù)據(jù)線 IIC_SCL=1;/拉高時鐘線 delay_IIC(); IIC_SDA=0;/在時鐘線為高電平時,拉低數(shù)據(jù)線,產(chǎn)生起始信號。 delay_IIC(); IIC_SCL=0;/拉低時鐘線/-void IIC_stop(void) /IIC總線產(chǎn)生停止信號函數(shù) IIC_SDA=0;/拉低數(shù)據(jù)線 delay_IIC(); IIC_SCL=1;/拉高時鐘線。 delay_IIC(); IIC_SDA=1;/時鐘時線為高電平時,拉高數(shù)據(jù)線,產(chǎn)生停止信號。 delay_IIC();/-bit IIC_Tack(void)/接收應(yīng)答信號函數(shù) bit ack;/定義一個位變量,來暫存應(yīng)答狀態(tài)。 IIC_SDA=1;/釋放數(shù)據(jù)總線,準(zhǔn)備接收應(yīng)答信號。 delay_IIC(); IIC_SCL=1;/拉高時鐘線。 delay_IIC(); ack=IIC_SDA;/讀取應(yīng)答信號的狀態(tài)。 delay_IIC(); IIC_SCL=0;/拉低時鐘線。 delay_IIC(); return ack;/返回應(yīng)答信號的狀態(tài),0表示應(yīng)答,1表示非應(yīng)答。/-void IIC_write_byte(unsigned char Data)/向IIC總線寫入一個字節(jié)的數(shù)據(jù)函數(shù) unsigned char i; for(i=0;i8;i+)/有8位數(shù)據(jù) IIC_SDA=Data&0x80;/寫最高位的數(shù)據(jù) delay_IIC(); IIC_SCL=1; /拉高時鐘線,將數(shù)寫入到設(shè)備中。 delay_IIC(); IIC_SCL=0;/拉低時鐘線,允許改變數(shù)據(jù)線的狀態(tài) delay_IIC(); Data=Data1;/數(shù)據(jù)左移一位,把次高位放在最高位,為寫入次高位做準(zhǔn)備 /-unsigned char IIC_read_byte()/從IIC總線讀取一個字節(jié)的數(shù)據(jù)函數(shù) unsigned char i; unsigned char Data; /定義一個緩沖寄存器。 for(i=0;i8;i+)/有8位數(shù)據(jù) IIC_SCL=1;/拉高時鐘線,為讀取下一位數(shù)據(jù)做準(zhǔn)備。 delay_IIC(); Data=Data1;/將緩沖字節(jié)的數(shù)據(jù)左移一位,準(zhǔn)備讀取數(shù)據(jù)。 delay_IIC(); if(IIC_SDA)/如果數(shù)據(jù)線為高平電平。 Data=Data|0x1;/則給緩沖字節(jié)的最低位寫1。 IIC_SCL=0;/拉低時鐘線,為讀取下一位數(shù)據(jù)做準(zhǔn)備。 delay_IIC(); return Data;/返回讀取的一個字節(jié)數(shù)據(jù)。/-void IIC_single_byte_write(unsigned char Daddr,unsigned char Waddr,unsigned char Data)/向任意地址寫入一個字節(jié)數(shù)據(jù)函數(shù) IIC_start();/產(chǎn)生起始信號 IIC_write_byte(Daddr);/寫入設(shè)備地址(寫) IIC_Tack();/等待設(shè)備的應(yīng)答 IIC_write_byte(Waddr);/寫入要操作的單元地址。 IIC_Tack();/等待設(shè)備的應(yīng)答。 IIC_write_byte(Data);/寫入數(shù)據(jù)。 IIC_Tack();/等待設(shè)備的應(yīng)答。 IIC_stop();/產(chǎn)生停止符號。/-unsigned char IIC_single_byte_read(unsigned char Daddr,unsigned char Waddr)/從任意地址讀取一個字節(jié)數(shù)據(jù)函數(shù) unsigned char Data;/定義一個緩沖寄存器。 IIC_start();/產(chǎn)生起始信號 IIC_write_byte(Daddr);/寫入設(shè)備地址(寫) IIC_Tack();/等待設(shè)備的應(yīng)答 IIC_write_byte(Waddr);/寫入要操作的單元地址。 IIC_Tack();/等待設(shè)備的應(yīng)答。 IIC_start();/產(chǎn)生起始信號 IIC_write_byte(Daddr+1);/寫入設(shè)備地址(讀)。 IIC_Tack();/等待設(shè)備的應(yīng)答。 Data=IIC_read_byte();/寫入數(shù)據(jù)。 IIC_stop
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 膝部半月板損傷的護(hù)理
- 計算機(jī)上機(jī)課程實驗報告
- 小學(xué)美術(shù)創(chuàng)意扇子課件
- 安全過寒假 快樂迎新年-安全教育最后一課
- 鼻膽管引流護(hù)理
- 財務(wù)共享服務(wù)中心規(guī)劃與設(shè)計
- 幼兒家長會安全教育
- 護(hù)理站平面圖教程
- 魚場承包合同協(xié)議
- 醫(yī)院救助協(xié)議書范本
- 定額〔2025〕1號文-關(guān)于發(fā)布2018版電力建設(shè)工程概預(yù)算定額2024年度價格水平調(diào)整的通知
- 【MOOC】機(jī)械原理-西北工業(yè)大學(xué) 中國大學(xué)慕課MOOC答案
- 一種基于STM32的智能門鎖系統(tǒng)的設(shè)計-畢業(yè)論文
- 中型水力發(fā)電廠電氣部分初步設(shè)計
- 2023山西焦煤集團(tuán)有限責(zé)任公司井下操作工招聘2000人筆試模擬試題及答案解析
- 分紅險、萬能險銷售資質(zhì)考試真題模擬匯編(共763題)
- 魚臺工程運(yùn)河杯匯報材料
- GB/T 16895.25-2022低壓電氣裝置第7-711部分:特殊裝置或場所的要求展覽、展示及展區(qū)
- 《運(yùn)營管理》案例庫
- 煤礦安全監(jiān)控系統(tǒng)設(shè)備管理報廢制度
- 機(jī)關(guān)事業(yè)單位退休人員養(yǎng)老金領(lǐng)取資格確認(rèn)表
評論
0/150
提交評論