登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

问个IIC总线的菜问题??

作者:XUMAX 栏目:技术交流
问个IIC总线的菜问题??
  刚接触c51,有些东西不太明白
  
  看了个C51的子程序,IIC总线读数据时,怎么在发完器件地址、字节地址、读数据的间歇不判断应答信号,每完一个字节,只是SCL=1,然后开始下一个。
应答信号不用单片机判断吗,只等一SCL脉冲就行啦,能可靠吗


//24c01-24c16读写驱动程序,
sbit a0=ACC^0;            //定义ACC的位,利用ACC操作速度最快
sbit a1=ACC^1;
sbit a2=ACC^2;
sbit a3=ACC^3;
sbit a4=ACC^4;
sbit a5=ACC^5;
sbit a6=ACC^6;
sbit a7=ACC^7;

void s24(void) {
    _nop_();scl=0;sda=1;scl=1;_nop_();sda=0;_nop_();scl=0;
}
void S240(void) {
    _nop_();scl0=0;sda0=1;scl0=1;_nop_();sda0=0;_nop_();scl0=0;
}
void p24(void) {
    sda=0;scl=1;_nop_();sda=1;
}
void P240(void) {
    sda0=0;scl0=1;_nop_();sda0=1;
}
unsigned CHAR rd24(void) {
    sda=1;
    scl=1;a7=sda;scl=0;
    scl=1;a6=sda;scl=0;
    scl=1;a5=sda;scl=0;
    scl=1;a4=sda;scl=0;
    scl=1;a3=sda;scl=0;
    scl=1;a2=sda;scl=0;
    scl=1;a1=sda;scl=0;
    scl=1;a0=sda;scl=0;
    sda=1;scl=1;scl=0;
    return(ACC);
}

void wd24(unsigned CHAR dd) {
    ACC=dd;
    sda=a7;scl=1;scl=0;
    sda=a6;scl=1;scl=0;
    sda=a5;scl=1;scl=0;
    sda=a4;scl=1;scl=0;
    sda=a3;scl=1;scl=0;
    sda=a2;scl=1;scl=0;
    sda=a1;scl=1;scl=0;
    sda=a0;scl=1;scl=0;
    sda=1;scl=1;
}

unsigned CHAR read(unsigned int address){
    unsigned CHAR dd;
    dd=((address&0x7ff)/256)<<1;
    s24();wd24(0xa0|dd);scl=0;wd24(address);scl=0;  // 怎么不
//判断应答呀***************************************************//
    s24();wd24(0xa1|dd);scl=0;dd=rd24();p24();return(dd);
}

void write(unsigned int address,unsigned CHAR dd){
    unsigned CHAR ddd;
    ddd=((address&0x7ff)/256)<<1;
    s24();wd24(0xa0|ddd);scl=0;wd24(address);scl=0;wd24(dd);scl=0;p24();
    time=0;                    //time为定时器时间参考,time增加1代表1ms,如果没有用定时器,取消该行
    while (1) {
        s24();
        wd24(0xa0|ddd);
        sda=1;
        if (sda==0) break;
        if (time>10) break;    //此行防止由于EEPROM器件损坏后的死循环
        scl=0;
    }
}


参与讨论
昵称:
讨论内容:
 
 
相关帖子
网络接口电磁辐射超标?
请大家看看这是什么元件
请教赤铸兄 有没有能够直接转换出36VAC的电源模块
继电器耐压问题?请大家帮帮我
关于定时电路的设计问题
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号