新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機 EEPROM 24c02 讀取存儲多字節

        51單片機 EEPROM 24c02 讀取存儲多字節

        作者: 時間:2016-11-19 來源:網絡 收藏
        先將數據存進去,然后再讀出來顯示在數碼管上。

        除了代碼里定義的連線外還要把p0連接到8位數碼管的8針上。

        本文引用地址:http://www.104case.com/article/201611/318337.htm
        1 /*--2 名稱:IIC協議 EEPROM24c023 內容:此程序用于檢測EEPROM性能,測試方法如下:寫入24c02一些數據,然后在內存中清除這些數據,4 掉電后主內存將失去這些信息,然后從24c02中調入這些數據。看是否與寫入的相同。5 函數是采用軟件延時的方法產生SCL脈沖,固對高晶振頻率要作 一定的修改....(本例是1us機器6 周期,即晶振頻率要小于12MHZ)7 */  8 #include           //頭文件的包含9 #include 10 11 #define  _Nop()  _nop_()        //定義空指令12 13 // 常,變量定義區14 unsigned char code dofly_DuanMa[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,15 0x77,0x7c,0x39,0x5e,0x79,0x71};// 顯示段碼值0~F16 unsigned char code dofly_WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//分別對應相應的數碼管點亮,即位碼17 18 sbit LATCH1=P2^2;19 sbit LATCH2=P2^3;20 21 sbit SDA=P2^1;            //模擬I2C數據傳送位22 sbit SCL=P2^0;            //模擬I2C時鐘控制位23 24 bit ack;                  //應答標志位25 26 void DelayUs2x(unsigned char t);//函數聲明 27 void DelayMs(unsigned char t);28 /*29 uS延時函數,含有輸入參數 unsigned char t,無返回值30 unsigned char 是定義無符號字符變量,其值的范圍是31 0~255 這里使用晶振12M,精確延時請使用匯編,大致延時32 長度如下 T=tx2+5 uS 33 */34 void DelayUs2x(unsigned char t)35 {   36     while(--t);37 }38 /*39 mS延時函數,含有輸入參數 unsigned char t,無返回值40 unsigned char 是定義無符號字符變量,其值的范圍是41 0~255 這里使用晶振12M,精確延時請使用匯編42 */43 void DelayMs(unsigned char t)44 {45     46     while(t--)47     {48         //大致延時1mS49         DelayUs2x(245);50         DelayUs2x(245);51     }52 }53 /*54 啟動總線55 */56 void Start_I2c()57 {58     SDA=1;   //發送起始條件的數據信號59     _Nop();60     SCL=1;61     _Nop();    //起始條件建立時間大于4.7us,延時62     _Nop();63     _Nop();64     _Nop();65     _Nop();    66     SDA=0;     //發送起始信號67     _Nop();    //起始條件鎖定時間大于4μ68     _Nop();69     _Nop();70     _Nop();71     _Nop();       72     SCL=0;    //鉗住I2C總線,準備發送或接收數據73     _Nop();74     _Nop();75 }76 /*77 結束總線78 */79 void Stop_I2c()80 {81     SDA=0;    //發送結束條件的數據信號82     _Nop();   //發送結束條件的時鐘信號83     SCL=1;    //結束條件建立時間大于4μ84     _Nop();85     _Nop();86     _Nop();87     _Nop();88     _Nop();89     SDA=1;    //發送I2C總線結束信號90     _Nop();91     _Nop();92     _Nop();93     _Nop();94 }95 /*-96 字節數據傳送函數               97 函數原型: void  SendByte(unsigned char c);98 功能:  將數據c發送出去,可以是地址,也可以是數據,發完后等待應答,并對99 此狀態位進行操作.(不應答或非應答都使ack=0 假)     100 發送數據正常,ack=1; ack=0表示被控器無應答或損壞。101 */102 void  SendByte(unsigned char c)103 {104     unsigned char BitCnt;105     106     for(BitCnt=0;BitCnt<8;BitCnt++)  //要傳送的數據長度為8位107     {108         if((c<



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 龙游县| 垫江县| 遂川县| 金沙县| 锡林浩特市| 太康县| 福贡县| 梅河口市| 巩留县| 于都县| 剑河县| 象山县| 江川县| 噶尔县| 阜康市| 清徐县| 延庆县| 库伦旗| 漠河县| 朝阳县| 林口县| 五台县| 江华| 延川县| 江津市| 襄城县| 修武县| 彰武县| 肥西县| 且末县| 衡东县| 连南| 凤凰县| 车险| 东方市| 开原市| 芦溪县| 仙桃市| 陕西省| 西藏| 长治市|