定时闹钟基于
51开发板,用到了LCD1602,Delay延迟函数,按键扫描。
定时时钟不能实现声音提示只能实现光标闪烁。并且不能提供实时,
时间设置函数(调时功能将时间调到要定时的时间)
if (dipl_mode == 1)
{
if (flag == 0) // 时间设置
{
switch (set_mode)
{
case 1:
hour++; // 时钟+
if (hour == 24)
hour = 0;
break;
case 2:
min++; // 分钟+
if (min == 60)
min = 0;
break;
case 3:
sec++; // 秒钟+
if (sec == 60)
sec = 0;
break;
}
}
else if (flag == 1) // 日期设置
{
switch (set_mode)
{
case 1:
year++; // 年+
if (year == 100)
year = 0;
break;
case 2:
month++; // 月+
if (month == 13)
month = 1;
break;
case 3:
day++; // 日+
if (day > daysInCurrentMonth)
day = 1;
break;
}
}
}
时钟显示
if ((flag == 1) && (dipl_mode ==
定时闹钟基于
51开发板,用到了LCD1602,Delay延迟函数,按键扫描。
定时时钟不能实现声音提示只能实现光标闪烁。并且不能提供实时,
时间设置函数(调时功能将时间调到要定时的时间)
if (dipl_mode == 1)
{
if (flag == 0) // 时间设置
{
switch (set_mode)
{
case 1:
hour++; // 时钟+
if (hour == 24)
hour = 0;
break;
case 2:
min++; // 分钟+
if (min == 60)
min = 0;
break;
case 3:
sec++; // 秒钟+
if (sec == 60)
sec = 0;
break;
}
}
else if (flag == 1) // 日期设置
{
switch (set_mode)
{
case 1:
year++; // 年+
if (year == 100)
year = 0;
break;
case 2:
month++; // 月+
if (month == 13)
month = 1;
break;
case 3:
day++; // 日+
if (day > daysInCurrentMonth)
day = 1;
break;
}
}
}
时钟显示
if ((flag == 1) && (dipl_mode == 1) && (set_mode == 1)) // 设置时钟,做闪烁效果
{
if (twinkle)
{
lcd1602_show_string(0, y, " "); // 清空显示
twinkle = 0;
}
else
{
lcd1602_show_string(0, y, date_time); // 显示时间
twinkle = 1;
};
引脚配置:
sbit LCD_RS=P2^6;
sbit LCD_RW=P2^5;
sbit LCD_EN=P2^7;
void LCD_Init()
{
LCD_WriteCommand(0x38);//八位数据接口,两行显示,5*7点阵
LCD_WriteCommand(0x0c);//显示开,光标关,闪烁关
LCD_WriteCommand(0x06);//数据读写操作后,光标自动加一,画面不动
LCD_WriteCommand(0x01);//光标复位,清屏
定时闹钟主要是用LCD实现显示,如图所示当到达定时时间右上角会出现#。
这个闹钟还有很多地方要完善,代码需要进行多次调试优化,该功能还可以和蜂鸣器结合让该功能更加完善还可以增加计数功能还可以利用DS1302做成实时时钟1) && (set_mode == 1)) // 设置时钟,做闪烁效果
{
if (twinkle)
{
lcd1602_show_string(0, y, " "); // 清空显示
twinkle = 0;
}
else
{
lcd1602_show_string(0, y, date_time); // 显示时间
twinkle = 1;
};
引脚配置:
sbit LCD_RS=P2^6;
sbit LCD_RW=P2^5;
sbit LCD_EN=P2^7;
void LCD_Init()
{
LCD_WriteCommand(0x38);//八位数据接口,两行显示,5*7点阵
LCD_WriteCommand(0x0c);//显示开,光标关,闪烁关
LCD_WriteCommand(0x06);//数据读写操作后,光标自动加一,画面不动
LCD_WriteCommand(0x01);//光标复位,清屏
定时闹钟主要是用LCD实现显示,如图所示当到达定时时间右上角会出现#。
这个闹钟还有很多地方要完善,代码需要进行多次调试优化,该功能还可以和蜂鸣器结合让该功能更加完善还可以增加计数功能还可以利用DS1302做成实时时钟