新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > PIC16F877A單片機 I2C模塊 24CXXX存儲器實現(xiàn)路徑記憶

        PIC16F877A單片機 I2C模塊 24CXXX存儲器實現(xiàn)路徑記憶

        作者: 時間:2016-11-24 來源:網(wǎng)絡(luò) 收藏
        利用24CXXX系列E2PRAM存儲器實現(xiàn)機器人的路徑記憶。

        首先,利用PIC16F877A單片機將機器人的路徑采集轉(zhuǎn)換成數(shù)據(jù),單片機進(jìn)行處理。但是,由于單片機RAM太小不能夠存儲大量的數(shù)據(jù)。因此,這里用24CXXX系列的存儲器存儲大量的數(shù)據(jù),單片機實現(xiàn)的是對數(shù)據(jù)的采集和處理。

        本文引用地址:http://www.104case.com/article/201611/321068.htm

        此過程用的是PIC16F877A單片機的I2C協(xié)議。

        具體I2C使用如下:

        1.寫過程

        (1)上電后等待一個延時(1ms)。

        (2)器件尋址,給一個起始信號(SCL為高電平時SDA給一個下降沿)。發(fā)送從器件地址,高5位為10110,然后根據(jù)A1/A0(如果和器件的地址相同則那個器件會應(yīng)答)進(jìn)行讀/寫控制(O為讀)。

        (3)應(yīng)答,器件在SCL的第9個周期時SDA給出一個低電平,作為應(yīng)答信號。

        (4)開始寫有兩種模式:字節(jié)寫模式和頁寫模式。

        ·字節(jié)模式:給出A15~A8應(yīng)答,給出A7~A0應(yīng)答;然后給出DATA和停止信號 (SCL為高電平時,SDA給出一個上升沿),接著要等待一個擦寫時間。

        ·頁寫模式:給出地址以后連續(xù)給出64個數(shù)據(jù)。如果多于64個數(shù)據(jù),則地址計數(shù)器自動翻轉(zhuǎn)。(如果少于64昵,估計是沒有問題的,但是需要實驗驗證。)

        (5)判斷擦寫操作是否完畢的一個方法(應(yīng)答查詢),如果器件還處于擦寫狀態(tài),則不會應(yīng)答器件尋址;如果有應(yīng)答,則說明擦寫完畢。

        2.讀過程

        (1)上電以后等待一個延時(lms)。

        (2)器件尋址。

        (3)應(yīng)答。

        (4)開始讀有三種模式:立即當(dāng)前地址讀、選擇/隨機讀、連續(xù)讀。

        ·立即當(dāng)前地址讀:如果上次讀/寫的操作地址為N,則現(xiàn)在是N+1。不需要ACK,但是需要Stop信號。

        ·選擇/隨機讀:先偽寫(用于給出一個地址),然后再次啟動,讀取數(shù)據(jù)。

        ·連續(xù)讀:讀取一個以后給一個應(yīng)答,這樣器件會再給出下一個地址的數(shù)據(jù)內(nèi)容。

        (5)開始數(shù)據(jù)傳輸Start后、停止數(shù)據(jù)傳輸Stop前,SCL高電平期間,SDA上為有效數(shù)據(jù)。

        最終實現(xiàn)的效果





        I2C模式7位尋址數(shù)據(jù)接收過程時序圖


        上一頁 1 2 下一頁

        評論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 无锡市| 乌兰察布市| 额敏县| 独山县| 博野县| 梁山县| 伊宁市| 龙门县| 如东县| 深圳市| 新营市| 桐乡市| 信阳市| 兴安县| 孝感市| 盐边县| 桂东县| 冕宁县| 潜江市| 洛阳市| 常宁市| 岱山县| 恭城| 三穗县| 张家界市| 漳州市| 常熟市| 中超| 竹溪县| 玛曲县| 灵宝市| 乌兰浩特市| 青海省| 孙吴县| 南岸区| 海晏县| 阳泉市| 云梦县| 西昌市| 彰化市| 平乡县|