?? clocktime.c
字號:
#include "clocktime.h"
xdata float tempdata,temph,templ;
char dh,dl;
unsigned char tempvalue;
void ShowDateTime()
{
xdata char str[14];
xdata char readout[7];
unsigned char i=0;
//讀時鐘
v_Get1302(readout);
for(i=0;i<7;i++)
readout[i]=BCD_TO_HEX(readout[i]);
strcpy(str,"20");
strcat(str,IntToStr(readout[6],0,2));
strcat(str,"年");
strcat(str,IntToStr(readout[4],0,2));
strcat(str,"月");
strcat(str,IntToStr(readout[3],0,2));
strcat(str,"日");
LcdShow(0,1,str);
//顯示星期
str[0]=0xd0;
str[1]=0xc7;
str[2]=0xc6;
str[3]=0xda;
switch(readout[5])
{
case 0x01:
str[4]=0xd2;
str[5]=0xbb;
break;
case 0x02:
str[4]=0xb6;
str[5]=0xfe;
break;
case 0x03:
str[4]=0xc8;
str[5]=0xfd;
break;
case 0x04:
str[4]=0xcb;
str[5]=0xc4;
break;
case 0x05:
str[4]=0xce;
str[5]=0xe5;
break;
case 0x06:
str[4]=0xc1;
str[5]=0xf9;
break;
case 0x07:
str[4]=0xcc;
str[5]=0xec;
break;
}
str[6]=0;
LcdShow(1,1,str);
//顯示溫度
ShowTemp();
//顯示時間
strcpy(str,"");
strcat(str,IntToStr(readout[2],1,2));
strcat(str,":");
strcat(str,IntToStr(readout[1],0,2));
strcat(str,":");
strcat(str,IntToStr(readout[0],0,2));
LcdShow(2,2,str);
LcdShow(3,1,"請選擇測試功能");
}
void ShowTime()
{
xdata char str[14];
xdata char readout[7];
unsigned char i=0;
// start1302();
//讀時鐘
v_Get1302(readout);
for(i=0;i<7;i++)
readout[i]=BCD_TO_HEX(readout[i]);
strcpy(str,"");
strcat(str,IntToStr(readout[2],1,2));
strcat(str,":");
strcat(str,IntToStr(readout[1],0,2));
strcat(str,":");
strcat(str,IntToStr(readout[0],0,2));
LcdShow(2,2,str);
}
//called when reading time,if the data read from DS1302 is 49(0x31),the time should be BCD_TO_HEX(49)=31(0x1f)
unsigned char BCD_TO_HEX(unsigned char bcd_data) //hex轉為bcd子程序
{
return (bcd_data/16*10+bcd_data%16);
}
/*
//called when seting time,if you want to set the time as 31 seconds,just write HEX_TO_BCD(31) to DS1302
unsigned char HEX_TO_BCD(unsigned char hex_data) //BCD轉為HEX子程序
{
return (hex_data/10*16+hex_data%10);
}
*/
void ShowTemp()
{
// LcdShow(1,5,"28℃");
char str[4];
tempint=0;
tempbusy=1;
while(tempint==0){}
tempbusy=0;
if(tempint==1)
{
templ=ADC0L;
temph=ADC0H&0x0f;
tempdata=temph*256+templ;
tempvalue=(unsigned char)(((tempdata/4095)*2.4-0.776)/0.00286);
strcpy(str,"");
strcat(str,IntToStr(tempvalue,1,2));
strcat(str,"℃");
LcdShow(1,5,str);
}
}
/*
void ShowDateTime()
{
LcdShow(0,0,"2008年09月12日");
LcdShow(1,0,"星期五11:20:32");
LcdShow(2,2,"28攝氏度");
LcdShow(3,0,"請選擇測試功能");
}
*/
void setDateTime()
{
xdata char pSecDa[7];
pSecDa[0]=0x00;
pSecDa[1]=0x14;
pSecDa[2]=0x15;
pSecDa[3]=0x20;
pSecDa[4]=0x09;
pSecDa[5]=6;
pSecDa[6]=8;
v_Set1302(pSecDa);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -