• <tbody id="w8jhq"><dfn id="w8jhq"><pre id="w8jhq"></pre></dfn></tbody>
  • <fieldset id="w8jhq"><pre id="w8jhq"></pre></fieldset>

    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频|成人a站免费|日本黄色片|久久久久无码AV

    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频|成人a站免费|日本黄色片|久久久久无码AV

    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频|成人a站免费|日本黄色片|久久久久无码AV

    技術(shù)熱線: 4007-888-234

    專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命

    提供開發(fā)工具、應(yīng)用測(cè)試 完善的開發(fā)代碼案例庫(kù)分享

    從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無(wú)限潛能!

    技術(shù)支持

    用c語(yǔ)言實(shí)現(xiàn)24LC256讀寫

    更新時(shí)間: 2019-03-23

    用c語(yǔ)言實(shí)現(xiàn)24LC256讀寫

    #i nclude
    unsigned char i=0;
    unsigned char receive=0x00;

    void i2c_start()
    {
        SEN=1;   //啟動(dòng)
        do{
        }while(SSPIF==0);
        SSPIF=0;
    }

    void i2c_stop()
    {
        PEN=1;       //產(chǎn)生停止條件
        do{
        ;
        }while(SSPIF==0);
        SSPIF=0;
    }

    void i2c_restart()
    {
        RSEN=1;  //啟動(dòng),反復(fù)啟動(dòng)
        do{
        ;
        }while(SSPIF==0);
        SSPIF=0;
    }

    void i2c_dataout()   //數(shù)據(jù)發(fā)送等待過(guò)程
    {
        do{
        ;
        }while(SSPIF==0);
        SSPIF=0;
    }

    void i2c_datain()   //讀取24LC256時(shí),不是讀的最后一個(gè)字節(jié)時(shí)使用
    {
        RCEN=1;
        do{
        ;
        }while(SSPIF==0);
        SSPIF=0;
        receive=SSPBUF;
        ACKDT=0;
        ACKEN=1;
        do{
        ;
        }while(SSPIF==0);
        SSPIF=0;
    }

    void i2c_datainlast()   //讀取最后一個(gè)字節(jié),或只讀取24lc256中一個(gè)字節(jié)
    {
        SSPIF=0;
        RCEN=1;
        do{
        ;
        }while(SSPIF==0);
        SSPIF=0;
        receive=SSPBUF;
        ACKDT=1 ;
        ACKEN=1;
        do{
        ;
        }while(SSPIF==0);
        SSPIF=0;
        
    }

    void i2c_error()
    {
        i2c_stop();
        return;
    }

    void write(unsigned int addr,unsigned char data,unsigned int n)  //向iic寫入一字節(jié)數(shù)據(jù) 地址,數(shù)據(jù),字節(jié)個(gè)數(shù)
    {
        i2c_start();
        SSPBUF=0xA0;//EEPROM尋址碼和寫操作命令碼
        i2c_dataout(); //發(fā)送
        
        if(ACKSTAT)
        i2c_error();   //無(wú)應(yīng)答,錯(cuò)誤!
        else if(!ACKSTAT)
        SSPBUF=addr/256;
            //高eeaddr/256  ,取eeprom數(shù)據(jù)地址高字節(jié)
        i2c_dataout(); //發(fā)送
        
        if(ACKSTAT)
        i2c_error();   //無(wú)應(yīng)答,錯(cuò)誤!
        else if(!ACKSTAT)
        SSPBUF=addr%256;//低eeaddr%256 ,取eeprom數(shù)據(jù)地址低字節(jié)
        i2c_dataout(); //發(fā)送
        
        for(i=0;i    {
            if(ACKSTAT)//應(yīng)答
            i2c_error();  //無(wú)應(yīng)答,錯(cuò)誤!
            else if(!ACKSTAT)
            SSPBUF=data;//eedata      入eeprom的數(shù)據(jù)
            i2c_dataout();//發(fā)送
        }
        
        if(ACKSTAT)//應(yīng)答
        i2c_error();
        
        i2c_stop();   //產(chǎn)生停止位,啟動(dòng)eeprom內(nèi)部些過(guò)程
        
        do{
        i2c_start();
        SSPBUF=0xA0;
        i2c_dataout();
        i2c_stop();
        if(!ACKSTAT)break;
        }while(ACKSTAT);
    }

    unsigned int current_read(void)//current address read ok!
    {
        i2c_start();
        SSPBUF=0xA1;//尋址命令碼0xA0 和 讀命令
        i2c_dataout();
        if(ACKSTAT)//應(yīng)答
        i2c_error();
        else if(!ACKSTAT)
        i2c_datainlast();
        i2c_stop();

        return ((unsigned int)receive);
    }

    unsigned int random_read(unsigned int eepromaddress)
    {
        i2c_start();
        SSPBUF=0xA0;//EEPROM尋址碼和寫操作命令碼
        i2c_dataout(); //發(fā)送
        
        if(ACKSTAT)
        i2c_error();   //無(wú)應(yīng)答,錯(cuò)誤!
        else if(!ACKSTAT)
        SSPBUF=eepromaddress/256;
            //高eeaddr/256  ,取eeprom數(shù)據(jù)地址高字節(jié)
        i2c_dataout(); //發(fā)送
        
        if(ACKSTAT)
        i2c_error();   //無(wú)應(yīng)答,錯(cuò)誤!
        else if(!ACKSTAT)
        SSPBUF=eepromaddress%256;//低eeaddr%256 ,取eeprom數(shù)據(jù)地址低字節(jié)
        i2c_dataout(); //發(fā)送
        
        if(ACKSTAT)
        i2c_error();   //無(wú)應(yīng)答,錯(cuò)誤!
        else if(!ACKSTAT)
            
        i2c_restart();
        SSPBUF=0xA1;//尋址命令碼0xA0 和 讀命令
        i2c_dataout();
        
        if(ACKSTAT)//應(yīng)答
        i2c_error();
        else if(!ACKSTAT)
        i2c_datainlast();
        i2c_stop();
         return ((unsigned int)receive);
        
    }

    void i2c_init()
    {
        SSPSTAT=0x00;
        TRISC=0xD8;
        SSPADD=19;
        SSPIE=0;
        SSPCON=0x28;    
    }


    //在主程序中,先i2c_init();然后開始讀/寫24LC256中數(shù)據(jù),經(jīng)多次運(yùn)行
      no bug
    //程序中的寄存器必須芯片內(nèi)部包含,否則無(wú)法實(shí)現(xiàn)硬件iic讀寫。

    404
    返回首頁(yè) |  返回上一頁(yè)
    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频
  • <tbody id="w8jhq"><dfn id="w8jhq"><pre id="w8jhq"></pre></dfn></tbody>
  • <fieldset id="w8jhq"><pre id="w8jhq"></pre></fieldset>
    无遮挡无码| 免費久久精品視頻| AV一级一级| 免费日本a级黄色电影| 在线视频99| 超黄软件| 又黄又刺激又爽的视频| 91三级无码黄色| 成人超碰资源| 岛国AV在线播放| www色| 国产性爱AV在线| 97色情电影| 亚洲AV电影网| 97AV666AV| 成人精品三级AV在线看| 勉费A片| 日韩无码一本A| av超碰久久| 成人久久一线区| 国产成人AAA性爱片| 大香蕉久久在线视频| 黄色网一二三四| 婷婷丁香亚洲无码| AV瑟瑟| 超碰人人91| 日韩无码AA| 亚洲福利A片| 董色毛片| 久久资源Av| 黄亚洲AV成人电影| 三级片综合福利导航| 人人操人人97| 欧美黄色A级片网站| 亚洲一级影片| A级久久久| 超碰91超碰在线| 无码AAAAA直播| 欧洲二级毛片内射。| 在线免费观看91AV| 免费看三级毛片|