📄 lcd12887_1.c
字号:
/*--------------------------------------------------------------*/
//包含头文件
#include<AT89X52.H>
#include"LCD1602_8.H"
#include"DS12887_1.H"
/*--------------------------------------------------------------*/
unsigned char k; //键值
unsigned char Set; //调整值
/*--------------------------------------------------------------*/
//延时200ms 函数定义
void delay200ms(void)
{
unsigned char i,j,k;
for(i=201;i>0;i--)
for(j=32;j>0;j--)
for(k=14;k>0;k--);
}
/*--------------------------------------------------------------*/
//延时5000+0us 函数定义
void delay5ms(void)
{
unsigned char i,j;
for(i=185;i>0;i--)
for(j=12;j>0;j--);
}
/*--------------------------------------------------------------*/
//键盘扫描
void Keysan(void) //P0_0切换键,P0_1数值加,P0_1数值减
{
if(P0_0 == 0)
{
delay5ms();
if(P0_0 == 0) k++;
if(k == 7) k = 0;
}
if(P0_1 == 0) {delay5ms(); if(P0_1 == 0) Set++;}
if(P0_2 == 0) {delay5ms(); if(P0_2 == 0) Set--;}
switch(k)
{
case 0: DS12887_SetTime(DS12887_Second, Set); if(Set > 59 || Set < 0) Set = 0; break;
case 1: DS12887_SetTime(DS12887_Minute, Set); if(Set > 59 || Set < 0) Set = 0; break;
case 2: DS12887_SetTime(DS12887_Hour , Set); if(Set > 24 || Set < 0) Set = 0; break;
case 3: DS12887_SetTime(DS12887_Day , Set); if(Set > 31 || Set < 0) Set = 0; break;
case 4: DS12887_SetTime(DS12887_Month , Set); if(Set > 12 || Set < 0) Set = 0; break;
case 5: DS12887_SetTime(DS12887_Year , Set);break;
default: break;
}
}
/*--------------------------------------------------------------*/
//主函数
void main(void)
{
SYSTEMTIME CurrentTime;
lcd_init();
DS12887_Init();
lcd_pos(0,0);
prints("Date:");
lcd_pos(0,1);
prints("Time:");
k = 6; //不改变时间
while(1)
{
DS12887_GetTime(&CurrentTime);
DateToStr(&CurrentTime);
TimeToStr(&CurrentTime);
lcd_pos(6,0);
prints(CurrentTime.DateString);
lcd_pos(6,1);
prints(CurrentTime.TimeString);
delay200ms();
Keysan();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -