



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、./=頭文件加載 =#include <reg52.h>/加載 52 系列單片機頭文件/=端口聲明 =sbit CLK=P36;/74hc574 時鐘信號線sbit G=P24;/74hc574 使能sbit IIC_SDA=P26;/聲明 IIC 總線的數(shù)據(jù)線接在單片機的P2.5 端口。sbit IIC_SCL=P25;/ 聲明 IIC 總線的時鐘線接在單片機的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,-
2、,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(unsign
3、ed 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.5SDat
4、a=IIC_single_byte_read(0xa0,0x02);/ 讀出 LED 的狀態(tài)if(Data<10)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 個機器周期。;/-void IIC_Init(void)/IIC總線初始化函數(shù)IIC_SDA=1;/ 釋放 IIC 總線的數(shù)據(jù)線。IIC_SCL=1;/
5、釋放 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()
6、;/-bit IIC_Tack(void)/ 接收應(yīng)答信號函數(shù)bit ack;/ 定義一個位變量,來暫存應(yīng)答狀態(tài)。;.IIC_SDA=1;/ 釋放數(shù)據(jù)總線,準備接收應(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ù)unsi
7、gned char i;for(i=0;i<8;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=Data<<1;/ 數(shù)據(jù)左移一位,把次高位放在最高位,為寫入次高位做準備/-unsigned char IIC_read_byte()/ 從 IIC 總線讀取一個字節(jié)的數(shù)據(jù)函數(shù)unsigned char i;unsigned char Data;/定義一個緩
8、沖寄存器。for(i=0;i<8;i+)/有 8 位數(shù)據(jù)IIC_SCL=1;/ 拉高時鐘線,為讀取下一位數(shù)據(jù)做準備。delay_IIC();Data=Data<<1;/ 將緩沖字節(jié)的數(shù)據(jù)左移一位,準備讀取數(shù)據(jù)。delay_IIC();if(IIC_SDA)/ 如果數(shù)據(jù)線為高平電平。Data=Data|0x1;/ 則給緩沖字節(jié)的最低位寫1。IIC_SCL=0;/ 拉低時鐘線,為讀取下一位數(shù)據(jù)做準備。delay_IIC();return Data;/ 返回讀取的一個字節(jié)數(shù)據(jù)。;./-void IIC_single_byte_write(unsigned char Daddr,un
9、signed 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 ch
10、ar 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_s
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 乳品工藝技術(shù)創(chuàng)新與發(fā)展考核試卷
- 勘察項目項目管理氣候變化與勘察應(yīng)對策略考核試卷
- 批發(fā)市場的產(chǎn)品陳列與促銷技巧考核試卷
- 施工監(jiān)督與試車開車中安全注意事項考核試卷
- 小學生天氣安全教育課件
- 農(nóng)田土壤售賣合同范本
- 個人產(chǎn)品交易合同范本
- 玻璃浴房合同范本
- 委托裝修安全合同范本
- 礦供銷合同范本
- 江蘇省中小學生金鑰匙科技競賽(初中組)考試題及答案
- 駕照體檢表完整版本
- 常暗之廂(7規(guī)則-簡體修正)
- 10kV變電所設(shè)備檢修內(nèi)容與周期表
- 制冷系統(tǒng)方案的設(shè)計pptx課件
- 修心七要原文
- 中國TBHQ行業(yè)市場調(diào)研報告
- 1資產(chǎn)負債表變動情況的分析評價
- 井控系統(tǒng)操作維護與保養(yǎng)規(guī)程
- 教務(wù)處巡課記錄表
- 建筑工程監(jiān)理周報_周報范文
評論
0/150
提交評論