历史上的今天
返回首页

历史上的今天

今天是:2024年11月14日(星期四)

正在发生

2019年11月14日 | AVR I2C通信程序

2019-11-14 来源:51hei

uchar SDA_Return(void)//0-low level  1-hign level
{
          uchar flag;
          uchar oldSREG=SREG;
          SREG&=~(_BV(7));    
   DDRC&=0xfd;
   PORTC|=_BV(PC1);
   if((PINC&_BV(PC1)) !=0)//0000 0010
        flag=1;
    else
        flag=0;
                SREG=oldSREG;
                return flag;
}

void delay(void)
{
                ;
                ;
}

void start(void)
{
        SDA_1;
        delay();
        SCL_1;
        delay();
        SDA_0;
        delay();
        
}

void stop(void)
{
         
        SDA_0;
        delay();
    SCL_1;
        delay();
    SDA_1;
        delay();
}

void respons(void) 
{
        uchar i=0;
        SCL_1;
        delay();
        while((SDA_Return())&&(i<250))i++;
        SCL_0;
        delay();
}

void I2C_init(void)
{
        SDA_1;
        delay();
        SCL_1;
        delay();
}

void write_byte(unsigned char i)
{
    unsigned char temp,num=0;
    for(temp=0;temp<8;temp++)
    {
            num=i&0x80;
        SCL_0;
        delay();
        if(num==0)
            {SDA_0; }
        else
            {SDA_1; }
                 
                        
        delay();
                SCL_1;
                delay();
                i=i<<1;
                delay();
                
    }
        SCL_0;
    delay();
        SDA_0;
    delay();
}


uchar read_byte(void)
{
        uchar i,j,value=0;
                SCL_0;
        for(i=0;i<8;i++)
        {
                value<<=1;
                value|=SDA_Return();
                SCL_1;
                delay();
                //delay();
                SCL_0;
                delay();
                
        }
        return value;
}



void Ack_I2c(void)
{
        SDA_0;              
        delay();     
        SCL_1;
        delay(); 
        SCL_0;                    
        delay();
        SDA_1;
}

void NAck_I2c(void)
{

        SDA_1;              
        delay();     
        SCL_1;
        delay(); 
        SCL_0;                    
        delay();

}

推荐阅读

史海拾趣

Daburn公司的发展小趣事

在追求企业发展的同时,Daburn公司也积极履行社会责任。公司注重环保和可持续发展,通过采用环保材料和节能设备、优化生产流程等方式降低对环境的影响。此外,Daburn还积极参与公益事业和社会活动,为社会做出积极贡献。这种社会责任感让Daburn在行业中树立了良好的形象。

Benchmarq Microelectronics Inc公司的发展小趣事

随着半导体技术的不断进步,Benchmarq Microelectronics Inc始终保持着对技术创新的追求。公司加大研发投入,引进先进的生产设备和技术人才,不断推出具有创新性的半导体产品。其中,一款具有高性能、低功耗特点的芯片是公司技术创新的代表作。这款芯片采用了先进的工艺和材料,实现了更高的集成度和更低的功耗,满足了客户对高性能、长续航的需求。同时,公司还不断优化产品设计和生产流程,提高产品质量和生产效率,为客户提供了更加优质、可靠的产品。

HAHN - Elektrobau GmbH & Co KG公司的发展小趣事

进入21世纪后,高通在推动5G技术发展方面发挥了关键作用。作为真正的5G领军企业,高通在基础研发方面持续投入,拥有引领和参与标准制定的长期历史。高通的5G技术涵盖了从系统构建到多样化应用的各个方面,包括毫米波频谱的利用、大规模MIMO技术的演进等。这些突破性发明为现代蜂窝通信提供了强有力的支撑,使得高通在5G标准制定和技术实施方面占据了核心地位。高通已签订超过150份5G许可协议,为全球超过180亿台终端提供了技术支持。

安国国际(ALCOR)公司的发展小趣事

安国国际在创立初期便展现出强大的研发实力。1997年,公司成功推出了世界第一颗单一整合的USB键盘集线器控制IC,这一创新成果奠定了安国在IC专业设计领域的领导地位。随后,在1998年,安国将总部迁往台湾,以便为全球客户提供更及时的技术支持和服务,同时与晶圆代工厂紧密配合,确保产品质量和技术水平。

AMI Semiconductor公司的发展小趣事

进入21世纪,安国继续深耕集线器控制芯片领域。2000年,公司发布了首款USB键盘集线器控制芯片——AU9432,这款芯片凭借其卓越的性能和稳定性,成功被Apple的iMAC键盘所采用。这一里程碑事件不仅证明了安国在集线器控制芯片领域的领先地位,也为其后续的产品研发和市场拓展奠定了坚实基础。

Circuit Assembly公司的发展小趣事

随着公司规模的扩大和业绩的增长,安国国际的产品线逐渐从计算机外设产品拓展至消费型电子产品和手持便携装置。为满足市场需求,公司不断推出创新产品,如输出入装置暨多媒体图像处理装置应用控制芯片、网桥控制芯片、网络安全保护装置等。同时,为提升运营效率和灵活性,安国在2015年进行了组织调整和专业分工,将不同业务线分割为多家子公司,使得各业务领域能够更加专注和高效地发展。

问答坊 | AI 解惑

PROTEL99SE电子设计软件使用手册

PROTEL9SE电子设计软件使用手册(英文版)…

查看全部问答>

【将模电进行到底】ADC与DAC学习周

天气越来越冷了,但学习的热情不能消退。 还好我们有EEWORLD,可以“猫”在家里、宿舍、办公室,只要能上网,照样能够将学习与讨论进行到底。 为此EEWORLD模拟版块在寒冷冬季献上一道大餐:ADC与DAC学习周(本学习计划预计持续两周) 大家可 ...…

查看全部问答>

ns中文手册精美版

ns手册中文精美版…

查看全部问答>

蒙特卡罗分析实现方法

蒙特卡罗(Monte Carlo)方法,或称计算机随机模拟方法,是一种基于“随机数”的计算方法。 蒙特卡洛模拟是用来解决工程和经济中的非确定性问题,通过成千上万次的模拟,涵盖相应的可能概率分布空间,从而获得一定概率下的不同数据和频度分布,通过 ...…

查看全部问答>

关于血液透析装置的安全防护设计

血液透析疗法是针对肾衰竭患者进行的新疗法。目前,血液透析疗法也是国内外应用最广的治疗肾衰竭的方法,但因其治疗对象多为危重患者,而且治疗过程风险高,出现任何一个小故障都有可能引起严重的医疗事故,所以血液透析装置的安全防护要求极高。本 ...…

查看全部问答>

eboot.bin的烧录地址问题(MLC nandflash)

之前一直是在开发板上用nor 启动的方式来烧nand。可生产的话肯定是需要用烧录器烧的。我需要烧入的文件是:block0img.nb0,eboot.bin。在NBL2中可以看到:#define VFL_EBOOT_START_BLOCK    (3)。所以我烧到了第三块。可是没有反应。需要 ...…

查看全部问答>

HidP_GetCaps能在Kernel-Mode Driver中使用吗

想在自己的驱动里通过设备接口读其他设备的usage和usagepage,一系列操作之后获得了Preparese Data,想通过HidP_GetCaps函数获取Capabilities,可是加上这个函数后编译出的sys不能正常加载,设备管理器中显示我的设备无法正常加载驱动。 只要把这个 ...…

查看全部问答>

这个直流电机的电路图完整吗?请高手指点!

做了个机械手,想用直流电极来控制大臂运动,设计的这个电路图总确得有点问题,想请高手指点下,如何画个完整的驱动直流电机的电路图!本人感谢了.现急等答复.原图附后. …

查看全部问答>

msp430f247上电重启问题

单片机下载完程序后,仿真能跑。断掉仿真。目标板重新上电。有时候能启动,有时候不能启动。这是怎么回事?…

查看全部问答>