




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、51單片機讀寫AT24C02源代碼(詳細注釋)在 P1 口上接八個 led 燈,結果就顯示在這八個燈上面。AT24C02的接線方式見程序的頂部的定義。以下是 源代碼 : #include ;/ 包含頭文件typedef unsigned char uchar;typedef unsigned int uint;#define write_c02 0xa0 #define read_c02 0xa1 sbit sda = P 2八0;sbit scl = P 2八1;void delay() /delay:5us/i2c:init void i2c_init() sda = 1;delay();
2、scl = 1;delay();/delayms: void delayms(uint xms) uchar x, y;for(x = xms; x ; 0; x-)for(y = 110; y ; 0; y-);/start: sda = 1;void start() /啟動 i2cscl = 1;delay();/ 延時必須大于 4.7us ,此約為五微秒sda = 0; / 在 scl 為高電平時, sda 一個下降沿為啟動 信號delay();/stop:void stop() /停止 i2csda = 0;scl = 1;delay();sda = 1; / 在 scl 為高電平時,
3、 sdasda 一個上升沿為停 止信號delay();/ack:void ack() /應答信號 0uchar i = 0; /等待變量scl = 1;/ 在 scl 為高電平期間等待應答若為應答 0 即退出,從delay();while(sda = 1) & i 250)/機向主機發(fā)送應答信號i+;/ 等待一段時間scl = 0; /應答之后將 scl 拉低delay();/nack:void nack() /非應答scl = 1;/ 在 scl 為高電平期間,由主機向從機發(fā)送一個1,非應答信 delay();sda = 1;scl = 0; / 應答之后將 scl 拉低delay();寫一
4、個字節(jié)/send byte: void send_byte(uchar date)/sda 上uchar i, temp;temp = date; / 存入要寫入的數(shù)據(jù),即要發(fā)送到 的數(shù)據(jù)for(i = 0; i 8; i+) / 發(fā)送 8 位temp = 1; /to CY將數(shù)據(jù)的最高位移入到 PSW中的CY位中scl = 0;/只有在 scl 為低電平時,才允許 sda 上的數(shù)據(jù)變化delay();sda = CY; /將CY里的數(shù)據(jù)發(fā)送到sda數(shù)據(jù)線上delay(); /可以延時scl = 1; / 在 scl 為高電平時,不允許 sda 上的數(shù)據(jù)變 化,使數(shù)據(jù)穩(wěn)定delay();scl
5、 = 0;/允許 sda 數(shù)據(jù)線的數(shù)據(jù)變化,等待下一個數(shù) 據(jù)的傳輸delay();/wait ack: 發(fā)送完一個字節(jié)數(shù)據(jù)后要主機要等待從機的 應答,第九位scl = 0;/ 允許 sda 變化delay();sda = 1;/wait:ack, sda 拉高等待應答,當 sda=0 時, 表示從機的應答delay();/read: byte uchar read_byte() / 讀一個字節(jié)數(shù)據(jù)uchar i, j, k;scl = 0; / 讀之前先允許 sda 變化delay(); /等待數(shù)據(jù)for(i = 0; i 8; i+)scl = 1; /不允許 sda 變化delay();
6、/使 sda 數(shù)據(jù)穩(wěn)定后開始讀數(shù)據(jù)j = sda; /讀出 sda 上的數(shù)據(jù)k = (k 1)| j; /將數(shù)據(jù)通過 | 運算存入 k 中scl = 0;/允許 sda 變化等待下一位數(shù)據(jù)的到來delay();/delay();/可不用延時return k;/返回讀出的數(shù)據(jù)/write:at24c02 在 at24c02中的指定地址寫入數(shù)據(jù)void write_at24c02(uchar address, uchar date)start(); /啟動 i2csend_byte(write_c02);/寫入期間地址和寫操作ack(); / 從機應答 0send_byte(address); /
7、寫入寫數(shù)據(jù)的單元地址ack(); /ack0 send_byte(date); / 在指定地址中寫入數(shù)據(jù)stop();ack(); / 從機應答 0/ 停止 i2c/read: at24c02在 at24c02 的指定地址中讀出寫入的數(shù)據(jù)uchar read_at24c02(address)uchar dat;/ 用來存儲讀出的數(shù)據(jù)start(); /啟動 i2csend_byte(write_c02);/ 寫入 at24c02 器件地址和寫操stop(); / 停止 i2cack(); / 從機應答send_byte(address);/寫入要讀取AT24C02的數(shù)據(jù)的單元地址ack(); / 從機應答start(); /再次啟動i2csend_byte(read_c02); / 寫入 AT24C02器件地址和讀操 ack();/ 從機應答 ‘0’dat = read_byte();/ 讀出指定地址中的數(shù)據(jù)nack(); / 主機發(fā)出非應答 ‘1’return dat;/ 返回讀出的數(shù)據(jù)/main: void main() uchar i;i2c_init();start
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國非開挖工程行業(yè)需求狀況規(guī)劃研究報告
- 2025-2030年中國超級電容器行業(yè)運行態(tài)勢及發(fā)展趨勢預測報告
- 2025-2030年中國茶堿緩釋片市場發(fā)展狀況及營銷戰(zhàn)略研究報告
- 2025-2030年中國纖維素醚市場十三五規(guī)劃及發(fā)展建議分析報告
- 云南輕紡職業(yè)學院《商務談判與銷售管理》2023-2024學年第二學期期末試卷
- 廊坊師范學院《數(shù)字邏輯與數(shù)字系統(tǒng)A》2023-2024學年第二學期期末試卷
- 海南衛(wèi)生健康職業(yè)學院《圖案原理》2023-2024學年第二學期期末試卷
- 2025年陜西省安全員B證(項目經理)考試題庫
- 大連財經學院《微機原理及接口技術B》2023-2024學年第二學期期末試卷
- 湖北財稅職業(yè)學院《生物醫(yī)學檢驗儀器》2023-2024學年第二學期期末試卷
- 真需求-打開商業(yè)世界的萬能鑰匙
- 《礦山隱蔽致災因素普查規(guī)范》解讀培訓
- 第1課 立足時代 志存高遠 (課件+視頻)- 【中職專用】高一思想政治《心理健康與職業(yè)生涯》(高教版2023·基礎模塊)
- 房產1%份額買賣合同范本
- 三、QHLY系列——露頂式弧形門閘門液壓啟閉機
- 工商企業(yè)管理專業(yè)??飘厴I(yè)論文
- 皮帶機提升機鏈運機功率計算
- 法恩莎衛(wèi)浴潔具價格表
- 干部職工《出國境管理辦法》政策解讀及工作要求PPT課件
- 泄露檢測負壓波檢漏
- MATLAB程序設計與應用第三版劉衛(wèi)國PPT課件
評論
0/150
提交評論