久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2836|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

關(guān)于I2C總線 兩個小時 一個凡人還是沒調(diào)試成功

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:170144 發(fā)表于 2017-4-22 18:29 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
兩個小時 我沒調(diào)好這個程序  幫忙看一下大哥們 謝謝這是IIC總線程序  我相讓LED燈亮  但是他從AT24C02讀出來的不是我給他的數(shù)據(jù)  幫忙一下
這是程序代碼
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
bit write=0;
sbit sda=P2^0;
sbit scl=P2^1;
uchar x,y,a,b,date;
void delay1(uchar z)
{
       
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}
void delay()
{;;}
void init()
{
        scl=1;
        sda=1;
}
void respons()
{       
        scl=1;
        delay();
        while((sda=1)&&(b<250))
        b++;
        delay();
        scl=0;
       
}
void start()
{
        sda=1;
        delay();
        scl=1;
        delay();
        sda=0;
        delay();
}
void stop()
{
        sda=0;
        delay();
        scl=1;
        delay();
        sda=1;
        delay();
}
void write_byte(uchar date)
{
        uchar a,temp;
        temp=date;
        for(a=0;a<8;a++)
        {
                temp=temp<<1;
                scl=0;
                delay();
                sda=CY;
                delay();
                scl=1;
                delay();
        }
        scl=0;
        delay();
       
}
uchar read_byte(uchar date)
{
        uchar k;
        scl=0;
        delay();
        sda=1;
        for(k=0;k<8;k++)
        {
                scl=1;
                delay();
                k=(k<<1)|sda;
                delay();
                scl=0;
        }
        delay();
        return k;
}

void main()
{
        init();
        start();
        write_byte(0xa0);
        respons();
        write_byte(5);
        respons();
        write_byte(0xaa);
        respons();
        stop();
        delay1(10);
        start();
        write_byte(0xa0);
        respons();
        write_byte(5);
        respons();
        start();
        write_byte(0xa1);
        respons();
        P1=read_byte();
        respons();
        stop();
        while(1);       
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:170144 發(fā)表于 2017-4-22 18:38 | 只看該作者
來人阿 謝謝
回復(fù)

使用道具 舉報

板凳
ID:146949 發(fā)表于 2017-4-22 21:39 | 只看該作者
建議樓主做一個I2C讀寫工具,方便自已調(diào)試AT24C02.
http://www.zg4o1577.cn/bbs/dpj-79714-1.html
試試我的看看
#include "reg51.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int

//---------I2C讀寫EEPROM 24c02-----------
sbit   IIC_SDA  =  P0^2;  //
sbit   IIC_SCL  =  P0^3;  //


void Delayms(uint ms) //1mS@12.000MHz
{
   unsigned char i, j;
   while(ms--)
   {       
        i = 12;
        j = 169;
        do
        {
                while (--j);
        } while (--i);
   }
}

//--------------------------------------------------------------------------//讀寫24c02
void Start()//開始總線
{
        IIC_SDA=1;_nop_();
        IIC_SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();
        IIC_SDA=0;_nop_();_nop_();_nop_();_nop_();_nop_();
        IIC_SCL=0;_nop_();_nop_();
}
void Stop()//結(jié)束總線
{
        IIC_SCL=0;_nop_();
        IIC_SDA=0;_nop_();_nop_();_nop_();_nop_();_nop_();
        IIC_SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();
        IIC_SDA=1;_nop_();_nop_();
}
void NoAck()//發(fā)ACK0
{
        IIC_SDA=1;
        IIC_SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();
        IIC_SCL=0;_nop_();_nop_();_nop_();_nop_();_nop_();
}
bit TestAck()//測試ACK
{
        bit ErrorBit;
        IIC_SDA=1;_nop_();_nop_();_nop_();_nop_();_nop_();
        IIC_SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();
        ErrorBit=IIC_SDA;
        IIC_SCL=0;_nop_();_nop_();_nop_();_nop_();_nop_();
        return(ErrorBit);
}
void Write8Bit(uchar input)//寫入8 個bit
{
        uchar temp;
         for(temp=8;temp!=0;temp--)
                {
                        IIC_SDA=(bit)(input&0x80);
                        IIC_SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();
                        IIC_SCL=0;_nop_();_nop_();_nop_();_nop_();_nop_();
                        input=input<<1;
                }
}
void WriteIIC(uchar address,uchar Data)//寫入一個字節(jié)到24c02 中
{
        Start();
        Write8Bit(0xA0);
        TestAck();
        Write8Bit(address);
        TestAck();
        Write8Bit(Data);
        TestAck();
        Stop();
        Delayms(10);
}
uchar Read8Bit()//從24c02中讀出8個bit
{
        unsigned char temp,rbyte=0;
        for(temp=8;temp!=0;temp--)
                {
                        IIC_SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();
                        rbyte=rbyte<<1;
                        rbyte=rbyte|((unsigned char)(IIC_SDA));
                        IIC_SCL=0;_nop_();_nop_();_nop_();_nop_();_nop_();
                }
         return(rbyte);
}
uchar ReadIIC(uchar address)//從24c02中讀出1個字節(jié)
{
        uchar ch;
        Start();
        Write8Bit(0xA0);//讀地址
        TestAck();
        Write8Bit(address);//寫位置
        TestAck();
        Start();
        Write8Bit(0xA1);//寫地址
        TestAck();
        ch=Read8Bit();
        NoAck();
        Stop();
        return(ch);
}
main()
{
WriteIIC(5,0xAA);
P1=ReadIIC(5);
while(1);
}       

回復(fù)

使用道具 舉報

地板
ID:111634 發(fā)表于 2017-4-22 22:13 | 只看該作者

回帖獎勵 +1

本帖最后由 zl2168 于 2017-4-22 22:16 編輯

首先要解決讀寫24c02問題
實例49 讀寫AT24C02
實例50 非零地址讀寫AT24C02



先Proteus仿真一下,確認有效。
實例49 讀寫IIC AT24C02.rar (38.96 KB, 下載次數(shù): 6)
實例50 非零地址讀寫AT24C02.rar (39.09 KB, 下載次數(shù): 4)
以上摘自張志良編著《單片機實驗實訓(xùn)100例》 ISBN 978-7-5124-1603-1,北航社出版.。書中電路和程序設(shè)計有詳細說明,程序語句條條有注解。




回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品国产不卡一区二区三区 | av福利网站 | 日韩中文在线视频 | 成人a视频片观看免费 | av一级| 国产精品欧美一区二区三区 | 在线播放日韩 | 国产精品美女久久久 | 人人玩人人干 | 国产乱码精品1区2区3区 | 日韩在线一区二区三区 | 国产精品国产精品国产专区不片 | 一区二区三区四区国产 | 国产美女一区二区三区 | 激情一区二区三区 | 91免费观看 | 午夜精品久久久久久久久久久久 | 好姑娘影视在线观看高清 | 国产久| 国产精品成人一区二区 | 免费视频二区 | 日韩午夜影院 | 粉嫩粉嫩芽的虎白女18在线视频 | eeuss国产一区二区三区四区 | 久久久九九九九 | 91福利电影在线观看 | 久久国内精品 | 欧美日韩在线观看视频网站 | 亚洲成人精选 | 91在线精品一区二区 | 81精品国产乱码久久久久久 | 日韩成人一区 | 男女视频在线看 | 成人在线视频网址 | 国产精品久久久久久久久免费软件 | 国产精品视频久久久久久 | 国产乱码精品1区2区3区 | 免费在线观看av网站 | 中文字幕电影在线观看 | 欧美精品一区二区三区四区 | 青青久在线视频 |