仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- /**************************************************************************************
- 实验名称:电子万年历(DS1302+LCD1602)
- 实验现象:开机时,当按下K1键第1次,进入日期和时间设定模式,此时光标会在要调整的时间位置闪烁,可通过K3键进行数据加1,
- 如需切换所要调整的时间位置,可按K2键切换。当按下K1键第2次,进入闹钟设置模式(时-分),
- 此时光标同样在所要调整的时间位置闪烁,
- 2、通过K3键进行数据加1,如需切换所要调整的时间位置,
- 可按K2键切换,要让闹钟开启,除了设定对应的时间外,还需要设置闹钟开关为“ON”。
- 当按下K1键第3次,又会回到刚才日期和时间设定模式,如此循环。当设定完成后,
- 可按下K12键8次。时间会按照预定设定进行,
- 如果开启闹钟,当前时间(时-分)如果与闹铃时间(时-分)相等,
- 则蜂鸣器发出声音,半分钟以后则停止。
- 注意事项:接入LCD1602
- ***************************************************************************************/
- #include "calendar.h"
- #include "lcd1602.h"
- #include "oled.h"
- #include <stdio.h>
- //extern void lcd1602_write_cmd(u8 cmd);
- //extern void lcd1602_write_data(u8 dat);
- /*******************************************************************************
- * 函 数 名 : main
- * 函数功能 : 主函数
- * 输 入 : 无
- * 输 出 : 无
- *******************************************************************************/
- void main()
- {
- OLED_Init();
- OLED_ShowChinese(1,1,0);
- OLED_ShowChinese(1,2,2);
- OLED_ShowChinese(1,3,3);
- OLED_ShowChinese(1,4,4);
-
- OLED_ShowChinese(3,1,5);
- OLED_ShowChinese(3,2,6);
- OLED_ShowChinese(3,3,7);
- OLED_ShowChinese(3,4,8);
- OLED_ShowChinese(3,5,9);
- OLED_ShowChinese(4,1,10);
- OLED_ShowChinese(4,2,11);
- OLED_ShowChinese(4,3,12);
- OLED_ShowChinese(4,4,13);
-
- OLED_ShowNum(2,4,12,4);//最后一个显示数位,这个显示0012
- calendar_test();
- while(1)
- {
- }
- }
复制代码
所有资料51hei附件下载:
oled与1602仿真万年历.7z
(166.18 KB, 下载次数: 28)
|