历史上的今天
今天是: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; ……………………
史海拾趣
|
近十年来,由整个电路构成交流一直流一交流一滤波的变频装置变频电源,应运而生,并得到广泛应用。变频电源不仅能模拟输出世界不同国家的电网指标,而且也为出口电器厂商一工程师在设计开发、生产、检测等应用中提供纯净可靠的、低诣波失真的、高稳定的 ...… 查看全部问答> |
|
水木清华上学生对搞PLC前途的讨论 soycola (要做就做最好) 于 (Wed Jan 1 200436 2003) 提到 技术含量不高,plc的计算能力、互联、互操作都不怎么样,plc本身没什么意思,虽然现在用的还挺多 更多内容下载请登陆:h ...… 查看全部问答> |
|
整理后经济型袖珍示波器V1.1版材料清单及成本估算如下: 电路原理图PCB图请参阅之前在坛子里发的“经济型袖珍示波器V1.1版电路原理图”及“经济型袖珍示波器PCB图” 至于包含已经焊好零件并检测完成的电路板的全套套件,就在上面全套散件价格的 ...… 查看全部问答> |
|
在电子电路中,常可以看到VCC、VDD和VSS三种不同的符号,它们有什么区别呢? 一、解释 VCC:C=circuit 表示电路的意思, 即接入电路的电压; VDD:D=device 表示器件的意思, 即器件内部的工作电压; VSS:S=series 表示公共连接的意 ...… 查看全部问答> |
|
at91fr40162s的CPU,晶振用的66M的。用的JTAG线是之前调at91fr40162的CPU的线和JTAG板子,是 20口的,因为at91fr40162s的CPU的JTAG线是直接从MCU接出来,只有四跟,TDI,TDO,TCK,TMS, 再接上两根电源和地线,有六跟,根据网上的说明自己弄了一 ...… 查看全部问答> |
|
大虾们好,以下是我的UART1中断函数 void UART1 (void) interrupt 20 using 2 { unsigned char xdata tChar=0; EIE2 &= 0xBF; RI1Flag=(SCON1 & 0x01); ...… 查看全部问答> |
|
本帖最后由 dontium 于 2015-1-23 13:33 编辑 高效率LED驅動電源設計 作者: 德州儀器Robert Kollman 摘要 本文提供LED特性及驅動電源優缺點的概要說明。文中將介紹數種常見的電源供應應用電路,並且詳細說明其閉迴路設計。本文亦討論LED調 ...… 查看全部问答> |
|
大家好,我是某大学里的一名本科生,马上就毕业了。我学的是机械,以及力学。但我个人却对电路设计和单片机什么的比较有兴趣。最近,也在花相当一部分时间学习嵌入式。我个人觉得,未来机电结合才是王道。大家觉得我的想法怎么样?对于一个外行,非 ...… 查看全部问答> |
|
我们公司以前一直用NEC的单片机,现在改为用TI 28335,刚开始用;想问一个问题,就是看资料说TIMER 0是给用户用的,那是否定时器中断,只能有一个了?若想多定时中断咋办?… 查看全部问答> |




