?? ds18b20+ds1320+lcd12864.c
字號(hào):
clear();
write_character(0,2,"溫",0);
write_character(0,4,"度",0);
write_character(0,10,"返",0);
write_character(0,12,"回",0);
write_character(4,2,"熱",0);
write_character(4,4,"水",0);
write_character(4,6,"箱",0);
write_character(4,12,"℃",0);
write_ascii(4,10,TN>>4,0);
write_ascii(4,11,TN&0x0f,0);
while(BACK2!=0)
{
if((K1&&K2&&K3)!=1)
{
write_character(0,10,"返",0);
write_character(0,12,"回",0);
write_ascii(4,10,TN>>4,0);
write_ascii(4,11,TN&0x0f,0);
}
if(K1==0)
{
delayms(40);
while(K1==0);
TPF++;
}
if(K3==0)
{
delayms(40);
while(K3==0);
TPF--;
}
if(TPF==0xff)
{
TPF=1;
}
if(TPF==2)
{
TPF=0;
}
switch(TPF)
{
case 0:write_character(0,10,"返",1);
write_character(0,12,"回",1);
if(K2==0)
{
delayms(60);
while(K2==0);
BACK2=0;
clear();
}
break;
case 1:write_ascii(4,10,TN>>4,1);
write_ascii(4,11,TN&0x0f,1);
if(K2==0)
{
delayms(60);
while(K2==0);
TN=turntobcd(4,10,TN,70,20);
}
break;
}
}
}
/****************************************************************************
鬧鐘設(shè)置
****************************************************************************/
void ringreset(void)
{
unsigned char onoff1=read_ds1302(0x0c1);
unsigned char ring1h=read_ds1302(0x0c3);
unsigned char ring1l=read_ds1302(0x0c5);
unsigned char onoff2=read_ds1302(0x0c7);
unsigned char ring2h=read_ds1302(0x0c9);
unsigned char ring2l=read_ds1302(0x0cb);
bit BACK3=1;
clear();
write_character(0,2,"鬧",0);
write_character(0,4,"鐘",0);
write_character(0,10,"返",0);
write_character(0,12,"回",0);
write_week(4,2,1,0);
write_character(4,4,"路",0);
write_week(6,2,2,0);
write_character(6,4,"路",0);
write_ascii(4,9,ring1h>>4,0);
write_ascii(4,10,ring1h&0x0f,0);
write_ascii(4,11,11,0);
write_ascii(4,12,ring1l>>4,0);
write_ascii(4,13,ring1l&0x0f,0);
write_ascii(6,9,ring2h>>4,0);
write_ascii(6,10,ring2h&0x0f,0);
write_ascii(6,11,11,0);
write_ascii(6,12,ring2l>>4,0);
write_ascii(6,13,ring2l&0x0f,0);
if(onoff1==0)
{
write_character(4,6,"關(guān)",0);
}
else
{
write_character(4,6,"開",0);
}
if(onoff2==0)
{
write_character(6,6,"關(guān)",0);
}
else
{
write_character(6,6,"開",0);
}
while(BACK3!=0)
{
if((K1&&K2&&K3)!=1)
{
write_character(0,10,"返",0);
write_character(0,12,"回",0);
write_ascii(4,9,ring1h>>4,0);
write_ascii(4,10,ring1h&0x0f,0);
write_ascii(4,12,ring1l>>4,0);
write_ascii(4,13,ring1l&0x0f,0);
write_ascii(6,9,ring2h>>4,0);
write_ascii(6,10,ring2h&0x0f,0);
write_ascii(6,12,ring2l>>4,0);
write_ascii(6,13,ring2l&0x0f,0);
if(onoff1==0)
{
write_character(4,6,"關(guān)",0);
}
else
{
write_character(4,6,"開",0);
}
if(onoff2==0)
{
write_character(6,6,"關(guān)",0);
}
else
{
write_character(6,6,"開",0);
}
}
if(K1==0)
{
delayms(40);
while(K1==0);
TRF++;
}
if(K3==0)
{
delayms(40);
while(K3==0);
TRF--;
}
if(TRF==0xff)
{
TRF=6;
}
if(TRF==7)
{
TRF=0;
}
switch(TRF)
{
case 0:write_character(0,10,"返",1);
write_character(0,12,"回",1);
if(K2==0)
{
delayms(60);
while(K2==0);
BACK3=0;
clear();
}
break;
case 1:if(onoff1==0)
{
write_character(4,6,"關(guān)",1);
}
else
{
write_character(4,6,"開",1);
}
if(K2==0)
{
delayms(60);
while(K2==0);
while(K2!=0)
{
if(onoff1==0)
{
if(SCNF==1) write_character(4,6,"關(guān)",1);
else
{
write_ascii(4,6,12,0);
write_ascii(4,7,12,0);
}
}
else
{
if(SCNF==1) write_character(4,6,"開",1);
else
{
write_ascii(4,6,12,0);
write_ascii(4,7,12,0);
}
}
if(K1==0)
{
delayms(60);
while(K1==0);
onoff1++;
}
if(K3==0)
{
delayms(40);
while(K3==0);
onoff1--;
}
if(onoff1==2)
{
onoff1=0;
}
if(onoff1==0xff)
{
onoff1=1;
}
}
delayms(60);
while(K2==0);
write_ds1302(0x0c0,onoff1);
}
break;
case 2:write_ascii(4,9,ring1h>>4,1);
write_ascii(4,10,ring1h&0x0f,1);
if(K2==0)
{
delayms(60);
while(K2==0);
ring1h=turntobcd(4,9,ring1h,23,0);
}
write_ds1302(0x0c2,ring1h);
break;
case 3:write_ascii(4,12,ring1l>>4,1);
write_ascii(4,13,ring1l&0x0f,1);
if(K2==0)
{
delayms(60);
while(K2==0);
ring1l=turntobcd(4,12,ring1l,59,0);
}
write_ds1302(0x0c4,ring1l);
break;
case 4:if(onoff2==0)
{
write_character(6,6,"關(guān)",1);
}
else
{
write_character(6,6,"開",1);
}
if(K2==0)
{
delayms(60);
while(K2==0);
while(K2!=0)
{
if(onoff2==0)
{
if(SCNF==1) write_character(6,6,"關(guān)",1);
else
{
write_ascii(6,6,12,0);
write_ascii(6,7,12,0);
}
}
else
{
if(SCNF==1) write_character(6,6,"開",1);
else
{
write_ascii(6,6,12,0);
write_ascii(6,7,12,0);
}
}
if(K1==0)
{
delayms(60);
while(K1==0);
onoff2++;
}
if(K3==0)
{
delayms(40);
while(K3==0);
onoff2--;
}
if(onoff2==2)
{
onoff2=0;
}
if(onoff2==0xff)
{
onoff2=1;
}
}
delayms(60);
while(K2==0);
write_ds1302(0x0c6,onoff2);
}
break;
case 5:write_ascii(6,9,ring2h>>4,1);
write_ascii(6,10,ring2h&0x0f,1);
if(K2==0)
{
delayms(60);
while(K2==0);
ring2h=turntobcd(6,9,ring2h,23,0);
}
write_ds1302(0x0c8,ring2h);
break;
case 6:write_ascii(6,12,ring2l>>4,1);
write_ascii(6,13,ring2l&0x0f,1);
if(K2==0)
{
delayms(60);
while(K2==0);
ring2l=turntobcd(6,12,ring2l,59,0);
}
write_ds1302(0x0ca,ring2l);
break;
}
}
}
/****************************************************************************
時(shí)間設(shè)置
****************************************************************************/
void timereset(void)
{
bit BACK4=1;
clear();
write_character(0,2,"時(shí)",0);
write_character(0,4,"間",0);
write_character(0,10,"返",0);
write_character(0,12,"回",0);
write_character(2,4,"年",0);//寫入 年月日星期等不變漢字
write_character(2,8,"月",0);
write_character(2,12,"日",0);
write_character(4,4,"星",0);
write_character(4,6,"期",0);
write_ascii(6,7,11,0);
readtime();
write_ascii(2,2,YEAR>>4,0);
write_ascii(2,3,YEAR&0x0f,0);
write_ascii(2,6,MONTH>>4,0);
write_ascii(2,7,MONTH&0x0f,0);
write_ascii(2,10,DAY>>4,0);
write_ascii(2,11,DAY&0x0f,0);
write_week(4,8,WEEK,0);
write_ascii(6,5,HOUR>>4,0);
write_ascii(6,6,HOUR&0x0f,0);
write_ascii(6,8,MINUTE>>4,0);
write_ascii(6,9,MINUTE&0x0f,0);
while(BACK4!=0)
{
readtime();
if((K1&&K2&&K3)!=1)
{
write_character(0,10,"返",0);
write_character(0,12,"回",0);
write_ascii(2,2,YEAR>>4,0);
write_ascii(2,3,YEAR&0x0f,0);
write_ascii(2,6,MONTH>>4,0);
write_ascii(2,7,MONTH&0x0f,0);
write_ascii(2,10,DAY>>4,0);
write_ascii(2,11,DAY&0x0f,0);
write_week(4,8,WEEK,0);
write_ascii(6,5,HOUR>>4,0);
write_ascii(6,6,HOUR&0x0f,0);
write_ascii(6,8,MINUTE>>4,0);
write_ascii(6,9,MINUTE&0x0f,0);
}
if(K1==0)
{
delayms(40);
while(K1==0);
TMF++;
}
if(K3==0)
{
delayms(40);
while(K3==0);
TMF--;
}
if(TMF==0xff)
{
TMF=6;
}
if(TMF==7)
{
TMF=0;
}
switch(TMF)
{
case 0:write_character(0,10,"返",1);
write_character(0,12,"回",1);
if(K2==0)
{
delayms(60);
while(K2==0);
BACK4=0;
clear();
}
break;
case 1:write_ascii(2,2,YEAR>>4,1);
write_ascii(2,3,YEAR&0x0f,1);
if(K2==0)
{
delayms(60);
while(K2==0);
YEAR=turntobcd(2,2,YEAR,99,0);
write_ds1302(0x8c,YEAR);
}
break;
case 2:write_ascii(2,6,MONTH>>4,1);
write_ascii(2,7,MONTH&0x0f,1);
if(K2==0)
{
delayms(60);
while(K2==0);
MONTH=turntobcd(2,6,MONTH,12,1);
write_ds1302(0x88,MONTH);
}
break;
case 3:write_ascii(2,10,DAY>>4,1);
write_ascii(2,11,DAY&0x0f,1);
if(K2==0)
{
delayms(60);
while(K2==0);
DAY=turntobcd(2,10,DAY,31,1);
write_ds1302(0x86,DAY);
}
break;
case 4:write_week(4,8,WEEK,1);
if(K2==0)
{
delayms(60);
while(K2==0);
WEEK=turntobcd(4,8,WEEK,7,1);
write_ds1302(0x8a,WEEK);
}
break;
case 5:write_ascii(6,5,HOUR>>4,1);
write_ascii(6,6,HOUR&0x0f,1);
if(K2==0)
{
delayms(60);
while(K2==0);
HOUR=turntobcd(6,5,HOUR,23,0);
}
write_ds1302(0x84,HOUR);
break;
case 6:write_ascii(6,8,MINUTE>>4,1);
write_ascii(6,9,MINUTE&0x0f,1);
if(K2==0)
{
delayms(60);
while(K2==0);
MINUTE=turntobcd(6,8,MINUTE,59,0);
write_ds1302(0x82,MINUTE);
}
break;
}
}
}
/****************************************************************************
選擇設(shè)置
****************************************************************************/
void keyscanf1(void)
{
bit BACK1=1;
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -