本次实验使用msp430及一块扩展板实现数字钟系统,扩展板上有一块OLED屏幕与4x4矩阵键盘,此外还有一些led指示灯,如下图所示:
最终实现的效果如下图所示:
可以看到有一个动态的开机界面,细心的同学还会发现右上角是一个月亮图案,白天可是会变成太阳哦~
系统采用了层级设置界面的方式,使用状态标志记录当前显示界面。将显示与数据运算分层,使代码逻辑清晰易懂。
main函数代码如下:
#include
#include "libinterfacePaint.h"
#include "libinit.h"
#include "liboledoled.h"
#include "liboledbmp.h"
void Key_Head();
void run_time();
void run_date();
void make_date_legal();
int time_d = 0;//分频计数器
int h = 23, m = 59, s = 50;//时分秒
int y = 2017, mon = 12, d = 31;//出生日期为该天,计算多少天后的天数只需要用 (年-2018)+月天数+日天数 即可
//闹钟存储数组,5个闹钟,
//分别存储 h,m,s,off(0)/on(1)s
int alarms[5][4] = { {0,0,0,0},
{0,0,0,0},
{0,0,0,0},
{0,0,0,0},
{0,0,0,0} };
//界面字符串缓存,init时即初始化,闹钟设置选择界面使用
char set_alarm_string[25] = "1OFF 2OFF 3OFF 4OFF 5OFF";
int alarm_on = 0;
int alarm_count = 0;
//状态标志:0:走钟;1&