新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > C語言編寫的 24C02程序

        C語言編寫的 24C02程序

        作者: 時間:2011-01-27 來源:網絡 收藏
        #define uchar unsigned char
        #define uint unsigned int
        #include reg52.h>
        #include stdio.h>
        #include absacc.h>
        sbit scl=P3^5; //24c02 SCL
        sbit sda=P3^4; //24c02 SDA
        sbit DOG=P1^7; //看門狗
        uchar x24c02_read(uchar address); //從24c02的地址address中讀取一個字節數據
        void x24c02_write(uchar address,uchar info); //向24c02的address地址中寫入一字節數據info
        void x24c02_init(); //24c02初始化子程序
        void delay1(uchar x);
        void flash();
        void x24c01_init();
        void start();
        void stop();
        void writex(uchar j);
        uchar readx();
        void clock();
        void delay1(uchar x)
        {
        uint i;
        for(i=0;ix;i++);
        DOG=~DOG;
        }
        void flash()
        {
        uchar u;
        DOG=~DOG;
        }
        void x24c02_init()
        {
        scl=1; flash(); sda=1; flash();
        }
        void start()
        {
        sda=1; flash(); scl=1; flash(); sda=0; flash(); scl=0; flash();
        }
        void stop()
        {
        sda=0; flash(); scl=1; flash(); sda=1; flash();
        }
        void writex(uchar j)
        {
        uchar i,temp;
        temp=j;
        for (i=0;i8;i++){
        temp=temp1; scl=0; flash(); sda=CY; flash(); scl=1; flash();
        }
        scl=0; flash(); sda=1; flash();
        }
        uchar readx()
        {
        uchar i,j,k=0;
        scl=0; flash(); sda=1;
        for (i=0;i8;i++){
        flash(); scl=1; flash();
        if (sda==1) j=1;
        else j=0;
        k=(k1)|j; scl=0;
        }
        flash(); return(k);
        }
        void clock()
        {
        uchar i=0;
        scl=1; flash();
        while ((sda==1)(i255))i++;
        scl=0; flash();
        }
        uchar x24c02_read(uchar address)
        {
        uchar i;
        start(); writex(0xa0);
        clock(); writex(address);
        clock(); start();
        writex(0xa1); clock();
        i=readx(); stop();
        delay1(10);
        return(i);
        }
        void x24c02_write(uchar address,uchar info)
        {
        EA=0;
        start(); writex(0xa0);
        clock(); writex(address);
        clock(); writex(info);
        clock(); stop();
        EA=1;
        delay1(50);
        }
        燃氣報警器相關文章:燃氣報警器原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 精河县| 郸城县| 互助| 昆明市| 宜兰市| 丹凤县| 长兴县| 西丰县| 定南县| 合肥市| 监利县| 张家口市| 潞城市| 丰县| 安国市| 宁陕县| 普安县| 青州市| 巴里| 永清县| 广南县| 广汉市| 额济纳旗| 曲水县| 阿尔山市| 林周县| 巴林右旗| 茶陵县| 三江| 通榆县| 邻水| 嘉峪关市| 兴化市| 绵竹市| 佛学| 台东县| 河西区| 金坛市| 彰武县| 黑河市| 长丰县|