dewars12
03-23 04:10
void main ()
{
unsigned char temp[16];//定义显示区域临时存储数组
LCD_Init(); //初始化液晶
DelayMs(20); //延时有助于稳定
LCD_Clear(); //清屏
Ds1302_Init(); //ds1302初始化
Init_Timer0(); //定时器0初始化
Ds1302_Write_Time();
while(1)
{ if(ReadTimeFlag==1) //定时读取ds1302 定时时间到 则标志位置1,处理过时间参数标志位清零
Ds1302_Read_Time();
keyscan();//读取时间参数
sprintf(temp,"DATE %02d-%02d-%02d %d",(int)time_buf1[1],(int)time_buf1[2],(int)time_buf1[3],(int)time_buf1[7]);//年月日周
LCD_Write_String(0,0,temp);//显示第一行
sprintf(temp,"TIME %02d:%02d:%02d",(int)time_buf1[4],(int)time_buf1[5],(int)time_buf1[6]);//时分秒
LCD_Write_String(0,1,temp);//显示第二行
}
}
/*------------------------------------------------
按键程序
------------------------------------------------*/
void keyscan(void)
{
if(key_mode==0)
{
DelayMs(5);
if(key_mode==0)
{
while(!key_mode);
keyln++;
if(keyln==9)
keyln=1;
switch(keyln)
{ Ds1302_Read_Time();
case 1:
TR0=0;
LCD_Write_Com(two+0x0c);这个难道不是设定要存入数据的那个地址?LCD_Write_Com(two+0x40+0c0c)又是什么?two=0x80,那此时光标在哪?
LCD_Write_Com(0x0f);这个是显示光标并闪烁
Ds1302_Write_Byte(0x8e,0x00);
Ds1302_Write_Byte(0x80,0x80|time_buf[6]);
//Ds1302_Read_Time();
break;
case 2:LCD_Write_Com(two+9);break;
case 3:LCD_Write_Com(two+6);break;
case 4:LCD_Write_Com(one+0x0e);break;
case 5:LCD_Write_Com(one+0x0c);break;
case 6:LCD_Write_Com(one+0x09);break;
case 7:LCD_Write_Com(one+0x06);break;
case 8:
LCD_Write_Com(0x0c);
Ds1302_Write_Byte(0x80,0x00|time_buf[6]);
Ds1302_Write_Byte(0x8e,0x80);
TR0=1;
break;
}
}
}