3.15 实时时钟 DS1302 实验
实验现象:
- 通过 DS1302 的读取获取年/月/日/星期/时/分/秒的值,然后串口显示在 PC 上。可以通过 4 个按键设定当前的时间。
- 按键1(设置):按一下进入设置状态。再按一下退出设置状态。
- 按键2(切换):按一下切换一种设置变量,分别可以设置年/月/日/星期/时/分/秒
- 按键3(增一):可以对当前的设置变量进行加一操作。
- 按键4(减一):可以对当前的设置变量进行减一操作。
理论学习:
- DS1302 是美国 DALLAS 公司推出的一种高性能、低功耗的实时时钟芯片,附加 31 字节静态
RAM,采用 SPI 三线接口与 CPU 进行同步通信,并可采用突发方式一次传送多个字节的时 钟信号和 RAM 数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与 31 天 时可以自动调整,且具有闰年补偿功能。工作电压宽达 2.5~5.5V。采用双电源供电(主电 源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。 细节参数请查看 DS1302 中文资料(Arduino 独家整理资料包\7.芯片资料\DS1302 中文资料)。
- 程序通过调用头文件DS1302.h里面的DS1302_GetTime(&DS1302Buffer)函数获取当前的实时
时钟,存放在结构体变量DS1302Buffer中,然后通过Display_RTCC()函数把实时时钟通过串口 发送出来。
- Scan_KEY();语句用于扫描4个按键的按键动作。
- switch( KEY_NUM )语句用于执行4个按键的功能。