一、DS1302芯片概述DS1302是DALLAS公司推出的一款低功耗、内置实时时钟和31字节RAM的时钟芯片,通过3线SPI接口与单片机通信。它的核心功能包括实时时间/日历管理,支持12或24小时制,并能自动调整月份和闰年天数。二、操作与通信通过同步串行方式,仅需RST复位、I/O数据线和SCLK时钟,即可控制DS1302。数据读...
程序中 先读取ds1302时钟芯片时间数据及标志,如果时钟芯片在运行 则跳过对ds1302时钟芯片的初始化,就可以了。
你使用这样的电路可以,前提是不掉电的情况下,而且精确度有待商榷,如果使用DS1302,内置时间寄存器,并可对时间进行校正,同时,如果对其加电池,那么时间不会停止,一直走动,否则,按您的电路,你一关电,所有的时间你得重新设置。希望您明白我的意思。
你先试一下直接数码管的显示程序是否正常,就是往数码管直接赋值测试一下。然后你用测试好的数码管看一下读出来的数据是什么,DS1302直接读出来的数据是这样子的。比如读出来的是22,那么应该是16秒。为什么是这样子的呢?十进制的22换算成十六进制是0x16,DS1302就是这么表示的。例如:0x59 就是59...
因为DS1302比较精准,而且价钱又便宜比DS12C887便宜好多,而且又可以接备用电源电池
CE和SCLK是DS1302芯片的信号线,但也是与单片机的PIO口连接的;因此初始化CE和SCLK,也就是初始化单片机的PIO口了;在代码中,你可以去看看 DS1302_CE、DS1302_SCLK 的定义就明白了;
比较常用的有DS1302,PCF8563,DS12C887 3.EEPROM存储芯片,如AT2402~AT24C512 4.单总线温度传感器DS18B20 5.开关型霍尔传感器44E 6.51最好买STC增强型单片机,如STC12C5410等,1T单片机,内部含有8路10位高速ADC,4路8位PWM,32KBEEPROM,硬件SPI通信,可免外部复位电路和晶振,十分好用!
这是1602电路,和时钟电路。元件基本差不多。电路如图 include <intrins.h> define uchar unsigned char define uint unsigned int sbit ds1302_RST =P2^0;sbit ds1302_IO =P2^1;sbit ds1302_SCLK=P2^2;sbit ACC0=ACC^0;sbit ACC7=ACC^7;sbit A1=P3^0;sbit A2=P3^1;sbit A3=P3^2;...
不能够断章取义,应完整看,读一个自己完成的代码是:for(i=0; i<8; i++){ cOutData >>= 1;if(SDA_1302 ==1)cOutData |= 0x80;CLK_1302 = 1;_nop_();CLK_1302 = 0;_nop_();} 芯片开始输出低位,经过读8个位,右移8次,就只好是输出的字节。
除此之外也就没什么了 总结一下,这里用到的知识有数码管扫描,ds1302控制(i2c总线),按键处理,51定时器使用,51中断使用,51IO引脚控制,如果考虑蜂鸣器播放音乐这里还有PWM脉冲的相关知识。代码估计不大可能会有人给你写,交给你个思路也让你有点方向,没有不劳而获的好事,没有free beer。