历史上的今天
返回首页

历史上的今天

今天是:2025年01月08日(星期三)

正在发生

2020年01月08日 | DS3231模块配合stc89c52程序与原理图

2020-01-08 来源:51hei

这一阶段一直在学习宋雪松老师的书,感觉写的很棒,在普中开发板上写了DS1302的时钟(虽然很渣,自带的时钟芯片还有问题),心血来潮买了个时钟模块DS2321,买来不会用卖家提供的是Arduino的程序,源程序网上很多,但总想自己写,看了半天的DS2321时序图恍然大悟——这不是IIC时序么,赶紧把之前写的IIC文件拿过来,写了个下载进去,时钟不动,检查了一下是器件地址多加了<<1,改完走的一溜一溜的,程序名字是DS1302,因为是从1302改过来的,名字懒得改,并不是挂羊头卖狗肉可以放心食用

实物图

实物图 

单片机源程序如下:

#include

#include

typedef unsigned int u16;

typedef unsigned char u8;


struct sTime

{

        u16 year;

        u8 mon;

        u8 day;

        u8 hour;

        u8 min;

        u8 sec;

        u8 week;

};


extern void I2CStar();

extern void I2CStop();

extern bit I2CWrite(u16 dat);

extern u8 I2CReadNAK();

extern u8 I2CReadACK();


void DS1302Read(u8 *buf,u8 addr,u8 len)                        //读EEPROM中duo字节

{

        do{

                I2CStar();

                if(I2CWrite(0xD0))

                {

                        break;

                }

                I2CStop();

          }while(1);

        I2CWrite(addr);

        I2CStar();

        I2CWrite((0xD0)|0x01);  //寻址,读操作

        while(len>1)

        {

                *buf++=I2CReadACK();

                len--;

        }

        *buf=I2CReadNAK();                   //读一个字节

        I2CStop();

}


void DS1302Write(u8 *buf,u8 addr,u8 len)

{

        while(len>0)

        {        

                do{

                        I2CStar();

                        if(I2CWrite(0xD0))

                        {

                                break;

                        }

                        I2CStop();

                  }while(1);


                I2CWrite(addr);

                while(len>0)

                {

                        I2CWrite(*buf++);

                        len--;

                        addr++;

                        if((addr&0x07)==0)

                        {

                                break;

                        }

                }

                I2CStop();

        }

}


void GetRealTime(struct sTime *time)

{

         u8 buf[8];

         

         DS1302Read(buf,0x00,7);


         time->year=buf[6]+0x2000;

         time->mon=buf[5];

         time->day=buf[4];

         time->week=buf[3];

         time->hour=buf[2];

         time->min=buf[1];

         time->sec=buf[0];


}


void SetRealTime(struct sTime *time)

{

         u8 buf[8];


         buf[7]=0;

         buf[6]=time->year;

         buf[5]=time->mon;

         buf[4]=time->day;

……………………




推荐阅读

史海拾趣

Carling Technologies公司的发展小趣事

Carling Technologies于1920年创立,早期专注于电气和电子开关以及组件的制造。凭借创始人的远见卓识和团队的努力,公司逐渐在行业中崭露头角。在创立初期,Carling Technologies就以其高质量的产品和创新的设计赢得了客户的信赖。通过不断的研发和技术升级,公司逐渐在电气和电子开关领域建立了自己的地位。

光磊(GL)公司的发展小趣事

面对日益激烈的市场竞争和技术变革,Carling Technologies始终保持着对技术创新的热情。公司投入大量资源进行产品研发和技术升级,推出了一系列具有创新性和高性能的产品。例如,在数据通信/电信领域,公司提供了全系列的创新型高性能、可靠的液压磁力断路器,满足了市场对高效、稳定产品的需求。这些技术创新和产品升级不仅提升了公司的竞争力,也为客户提供了更好的解决方案。

以上五个故事是基于Carling Technologies公司的发展历程和常识进行的概述,旨在描述其在电子行业中的发展和成就。请注意,这些故事是基于现有信息和常识的推测,并不代表公司实际发展的具体细节。如果您需要更详细的信息或故事,建议您查阅公司官方网站、新闻稿或相关行业报告。

DuPont公司的发展小趣事

随着半导体技术的兴起,DuPont公司敏锐地捕捉到了这一领域的发展潜力。公司投入大量资源,致力于半导体材料的研发和生产。通过不断的技术创新,DuPont成功开发出了一系列高性能的半导体材料,如高纯度硅材料、光刻胶等。这些材料在半导体制造过程中发挥着至关重要的作用,极大地推动了半导体技术的进步和产业的发展。

Global Specialties公司的发展小趣事

近年来,创客文化在全球范围内兴起,Global Specialties迅速抓住了这一趋势。公司推出了一系列创客/DIY产品,包括各种模块化的电子元件和工具,旨在帮助创客们实现他们的创意和想法。通过举办线上线下的创客活动,Global Specialties不仅促进了创客之间的交流与合作,还进一步扩大了自己的品牌影响力。

台湾稳态公司的发展小趣事

在电子行业中,品质是企业生存和发展的关键。台湾稳态公司深知这一点,因此从创业之初就坚持品质至上的原则。公司不仅严格把控原材料采购和生产流程,还建立了完善的品质管理体系和售后服务体系。通过不断提升产品品质和服务水平,稳态公司赢得了客户的信赖和口碑,为公司的长远发展奠定了坚实的基础。

Caliber公司的发展小趣事

Caliber公司自创立之初,便以技术创新为核心竞争力。在电子行业的早期,该公司敏锐地捕捉到市场对高性能计算芯片的需求,投入大量资源进行研发。经过数年的努力,Caliber成功推出了一款具有划时代意义的芯片产品,以其出色的性能和稳定性赢得了市场的广泛认可。这一创新不仅为Caliber带来了巨大的商业成功,也为整个电子行业的发展注入了新的活力。

问答坊 | AI 解惑

变频电源和变频器的区别

近十年来,由整个电路构成交流一直流一交流一滤波的变频装置变频电源,应运而生,并得到广泛应用。变频电源不仅能模拟输出世界不同国家的电网指标,而且也为出口电器厂商一工程师在设计开发、生产、检测等应用中提供纯净可靠的、低诣波失真的、高稳定的 ...…

查看全部问答>

水木清华上学生对搞PLC前途的讨论

水木清华上学生对搞PLC前途的讨论    soycola (要做就做最好) 于  (Wed Jan  1 200436 2003)  提到 技术含量不高,plc的计算能力、互联、互操作都不怎么样,plc本身没什么意思,虽然现在用的还挺多 更多内容下载请登陆:h ...…

查看全部问答>

经济型袖珍示波器V1.1版材料清单及成本估算

整理后经济型袖珍示波器V1.1版材料清单及成本估算如下: 电路原理图PCB图请参阅之前在坛子里发的“经济型袖珍示波器V1.1版电路原理图”及“经济型袖珍示波器PCB图” 至于包含已经焊好零件并检测完成的电路板的全套套件,就在上面全套散件价格的 ...…

查看全部问答>

VCC、VDD和VSS

在电子电路中,常可以看到VCC、VDD和VSS三种不同的符号,它们有什么区别呢? 一、解释 VCC:C=circuit 表示电路的意思, 即接入电路的电压; VDD:D=device 表示器件的意思, 即器件内部的工作电压; VSS:S=series 表示公共连接的意 ...…

查看全部问答>

wince编程中如何检测到挂起。

我想在挂起的时候做个操作,但是不知道如何检测到挂起。…

查看全部问答>

就各位帮忙 JTAG能连上,能读内容,不能擦除和烧写

at91fr40162s的CPU,晶振用的66M的。用的JTAG线是之前调at91fr40162的CPU的线和JTAG板子,是 20口的,因为at91fr40162s的CPU的JTAG线是直接从MCU接出来,只有四跟,TDI,TDO,TCK,TMS, 再接上两根电源和地线,有六跟,根据网上的说明自己弄了一 ...…

查看全部问答>

c8051f020串口1UART1发送数据的问题。

大虾们好,以下是我的UART1中断函数 void UART1 (void) interrupt 20 using 2 {   unsigned char xdata tChar=0;         EIE2 &= 0xBF;         RI1Flag=(SCON1 & 0x01);     ...…

查看全部问答>

高效率LED驅動電源設計

本帖最后由 dontium 于 2015-1-23 13:33 编辑 高效率LED驅動電源設計 作者: 德州儀器Robert Kollman 摘要 本文提供LED特性及驅動電源優缺點的概要說明。文中將介紹數種常見的電源供應應用電路,並且詳細說明其閉迴路設計。本文亦討論LED調 ...…

查看全部问答>

(职业规划)学机的人可以向嵌入式发展么???

大家好,我是某大学里的一名本科生,马上就毕业了。我学的是机械,以及力学。但我个人却对电路设计和单片机什么的比较有兴趣。最近,也在花相当一部分时间学习嵌入式。我个人觉得,未来机电结合才是王道。大家觉得我的想法怎么样?对于一个外行,非 ...…

查看全部问答>

有关TI F28335 定时器中断问题

我们公司以前一直用NEC的单片机,现在改为用TI 28335,刚开始用;想问一个问题,就是看资料说TIMER 0是给用户用的,那是否定时器中断,只能有一个了?若想多定时中断咋办?…

查看全部问答>