新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 關于STC單片機EEPROM的應用總結

        關于STC單片機EEPROM的應用總結

        作者: 時間:2016-12-01 來源:網絡 收藏
        /********595輸出函數函數*******************/
        void out_595(void)
        {
        STORAGE=0;
        _nop_();
        _nop_();
        STORAGE=1;
        _nop_();
        _nop_();
        STORAGE=0;
        }
        /*軟件延時 */
        void delay(uchar t)
        { uchar x;
        while(t--)
        {
        for(x=0;x<250;x++)
        {
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        }
        }
        }
        /******按鍵檢測函數**********************/
        void keycheck(void)
        {
        if(SW==0)//判斷開關按鍵是否按下
        {delay(10);//抗干擾
        if(SW==0)//確實按下
        {kai=~kai;
        }
        while(!SW)//一直按下
        {BEEP=1;}//蜂鳴器響
        BEEP=0;//松開按鍵,蜂鳴器關閉
        }
        if(INC==0&kai==1&MA<9)//如果處于開的狀態并且數字小于9則按下增大鍵執行
        {
        delay(10);
        if(INC==0&kai&MA<9)
        {MA++;}
        while(!INC)
        {BEEP=1;}
        BEEP=0;
        }
        if(DEC==0&kai&MA>1)
        {
        delay(10);
        if(DEC==0&kai&MA>1)
        {MA--;}
        while(!DEC)
        {BEEP=1;}
        BEEP=0;
        }
        if(kai==1) //如果電源打開了,則將電源開的狀態標志置1
        {biaozhi=1;}
        if(biaozhi==1&kai==0)//判斷電源打開后被關閉,目的是只在開關鍵關閉時,寫一次EEPROM,避免不停的擦寫EEPROM
        { biaozhi=0;
        iaperasesector(0x00);
        programbyte(0x00,MA);
        // 執行EEPROM寫程
        }
        }
        //主函數
        Void main(void )
        {
        BEEP=0; //關閉蜂鳴器
        iapreadbyte(0x00);//讀出EEPROM的值
        MA=dat;
        if(MA<1|MA>9)//如果讀出的值不在1-9范圍內則強制為5.
        {MA=5;}
        while(1)
        {
        keycheck();//執行按鍵掃描程序
        write_595(num[MA]);
        write_595(num[MA]);
        out_595();
        }
        }
        這只是一個簡單的讀寫一個字節的簡單測試程序,對于扇區擦除的結果也沒有進行驗證。
        想要驗證需要在加一段代碼。具體請參照STC的數據手冊。
        上一頁 1 2 3 下一頁

        關鍵詞: STC單片機EEPRO

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 隆尧县| 那坡县| 峨边| 临安市| 福州市| 红河县| 盘山县| 泗洪县| 安庆市| 武邑县| 湖南省| 蒲江县| 鹤山市| 长白| 石家庄市| 南安市| 多伦县| 时尚| 南华县| 阳东县| 北海市| 通山县| 土默特左旗| 惠来县| 莱西市| 临泽县| 独山县| 常州市| 扎鲁特旗| 凤冈县| 伊金霍洛旗| 汉源县| 吉林省| 长沙县| 平定县| 安国市| 拜泉县| 徐州市| 满洲里市| 长岛县| 枣庄市|