?? realmain.c
字號:
hour=temptime[0]; minute=temptime[1]; second=temptime[2]; //鍵盤上的輸入數據存入time寄存器
year=temptime[3]; month=temptime[4]; date=temptime[5];
ds1302_initial(year, month, date, 0x01, hour, minute,second); //時間設值
break;
}
if(key==escape)
{
clearlcd();
clearlcd();
writecmdlcd(0x0c); // 光標關
writecmdlcd(0x0c); // 光標關
lcd_set_cursor(2,2);
lcd_set_cursor(2,2);
putslcd(settime10);
delays(10000,500); //延遲2.5秒
break;
}
}
}
/*****************************************************************************
******函 數 名 稱 : temperaturerestrct()
******函 數 功 能 : 進入溫度限制界面
******輸 入 :
******輸 出 :
******************************************************************************/
void temperaturerestrct()
{
char restrct1[]="溫度限制設定";
char restrct2[]="上限";
char restrct3[]="下限";
char restrct4[]="控制聲光報警";
clearlcd(); //清屏
lcd_set_cursor(1,2);
lcd_set_cursor(1,2);
putslcd(restrct1);
lcd_set_cursor(2,1);
putslcd(restrct2);
lcd_set_cursor(3,1);
putslcd(restrct3);
lcd_set_cursor(4,2);
putslcd(restrct4);
lcd_set_cursor(2,8);
writedatalcd(0xA1); //溫度標識
writedatalcd(0xE6);
lcd_set_cursor(3,8);
writedatalcd(0xA1); //溫度標識
writedatalcd(0xE6);
lcd_set_cursor(2,3);
writedatalcd(58);
if(read_i2c_date(at2416,uprestrctflag )) writedatalcd(45); //-
else writedatalcd(43); //+
display_float(stof(at2416,at2416temup)); //讀出上線溫度絕對值
lcd_set_cursor(3,3);
writedatalcd(58);
if(read_i2c_date(at2416,downrestrctflag)) writedatalcd(45); //-
else writedatalcd(43); //+
display_float(stof(at2416,at2416temdown)); //讀出下線溫度絕對值
lcd_set_cursor(2,3);
temperaturerestrcttemp();
}
/*****************************************************************************
******函 數 名 稱 : temperaturerestrcttemp()
******函 數 功 能 : 溫度限制設定
******輸 入 :
******輸 出 :
******************************************************************************/
void temperaturerestrcttemp()
{
char restrct5[]="輸入錯誤";
char restrct6[]="輸入成功";
char restrct7[]="您取消了輸入";
float tempetureread[2]={50,10};
char chooseflag=1;
char m=0;
char pos=0;
char tempflag[2]={0,1} ;
char number[7];
writecmdlcd(0x0f);
while(1)
{
readkey();
if(chooseflag)
{
if(key==just)
{
tempflag[m]=0;
lcd_set_cursor(m+2,3);
writedatalcd(58);
writedatalcd(43); //+
chooseflag=0;
continue;
}
else if(key==bear)
{
tempflag[m]=1;
lcd_set_cursor(m+2,3);
writedatalcd(58);
writedatalcd(45); //-
chooseflag=0;
continue;
}
}
if((key>=key0)&&(key<=key_m))
{
if((key==key_m)&&(pos==0)) //輸入錯誤
{
clearlcd();
writecmdlcd(0x0c); // 光標關
writecmdlcd(0x0c); // 光標關
lcd_set_cursor(2,3);
lcd_set_cursor(2,3);
putslcd(restrct5);
delays(10000,500); //延遲2.5秒
break;
}
if(pos<7)
{
number[pos++]=key;
number[pos]=0;
if(number[pos-1]==key_m) writedatalcd(46); //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
else writedatalcd(number[pos-1]+48);
}
}
if(key==down)
{ if(number[1]==key_m) tempetureread[m]=number[0]+number[2]*0.1+number[3]*0.01+number[4]*0.001+number[5]*0.0001+number[6]*0.00001;
if(number[2]==key_m) tempetureread[m]=number[0]*10+number[1]+number[3]*0.1+number[4]*0.01+number[5]*0.001+number[6]*0.0001;
if(number[3]==key_m) tempetureread[m]=number[0]*100+number[1]*10+number[2]+number[4]*0.1+number[5]*0.01+number[6]*0.001;
if(m==1) { lcd_set_cursor(m+1,3);
m=0; continue ;
}
if(m==0) lcd_set_cursor(m+3,3);
m++;
pos=0;
chooseflag=1;
}
if(key==up)
{
if(number[1]==key_m) tempetureread[m]=number[0]+number[2]*0.1+number[3]*0.01+number[4]*0.001+number[5]*0.0001+number[6]*0.00001;
if(number[2]==key_m) tempetureread[m]=number[0]*10+number[1]+number[3]*0.1+number[4]*0.01+number[5]*0.001+number[6]*0.0001;
if(number[3]==key_m) tempetureread[m]=number[0]*100+number[1]*10+number[2]+number[4]*0.1+number[5]*0.01+number[6]*0.001;
if(m==1) lcd_set_cursor(m+1,3);
if(m==0) {
lcd_set_cursor(m+3,3);
m=1; continue;
}
m--;
pos=0;
chooseflag=1;
}
if(key==enter)
{
if(number[1]==key_m) tempetureread[m]=number[0]+number[2]*0.1+number[3]*0.01+number[4]*0.001+number[5]*0.0001+number[6]*0.00001;
if(number[2]==key_m) tempetureread[m]=number[0]*10+number[1]+number[3]*0.1+number[4]*0.01+number[5]*0.001+number[6]*0.0001;
if(number[3]==key_m) tempetureread[m]=number[0]*100+number[1]*10+number[2]+number[4]*0.1+number[5]*0.01+number[6]*0.001;
clearlcd();
clearlcd();
writecmdlcd(0x0c); // 光標關
writecmdlcd(0x0c); // 光標關
lcd_set_cursor(2,3);
lcd_set_cursor(2,3);
putslcd(restrct6);
delays(10000,500); //延遲2.5秒
write_i2c_data(at2416,uprestrctflag ,tempflag[0]);
write_i2c_data(at2416,downrestrctflag ,tempflag[1]);
ftos( tempetureread[0],at2416,at2416temup);
ftos( tempetureread[1],at2416,at2416temdown);
break;
}
if(key==escape)
{
clearlcd();
clearlcd();
writecmdlcd(0x0c); // 光標關
writecmdlcd(0x0c); // 光標關
lcd_set_cursor(2,2);
lcd_set_cursor(2,2);
putslcd(restrct7);
delays(10000,500); //延遲2.5秒
break;
}
}
writecmdlcd(0x0c); // 光標關
}
/*****************************************************************************
******函 數 名 稱 : replaytemperature()
******函 數 功 能 : 歷史溫度顯示界面
******輸 入 :
******輸 出 :
*****************************************************************************/
void replaytemperature()
{
char i=19; //存儲總數
char replaytem1[]="歷史溫度回顯";
char replaytem2[]="溫度";
char replaytem3[]="時刻:";
char replaytem4[]="上翻";
char replaytem5[]="下翻";
char replaytem6[]="秒";
clearlcd(); //清屏
lcd_set_cursor(1,2);
lcd_set_cursor(1,2);
putslcd(replaytem1);
lcd_set_cursor(2,1);
putslcd(replaytem2);
lcd_set_cursor(2,8);
writedatalcd(0xA1); //溫度標識
writedatalcd(0xE6);
lcd_set_cursor(3,1);
putslcd(replaytem3);
lcd_set_cursor(3,8); //秒
putslcd(replaytem6);
lcd_set_cursor(4,2);
writedatalcd(24); //上翻
lcd_set_cursor(4,3);
putslcd(replaytem4);
lcd_set_cursor(4,5);
writedatalcd(25); //下翻
lcd_set_cursor(4,6);
putslcd(replaytem5);
while(1)
{
int j;
union {
char c[4];
float f;
}temp;
char readeepomtemp[12];
read_i2c_pagedate(at2416, i*12+20,12,readeepomtemp); //讀出數據
lcd_set_cursor(3,4);
h_to_number( readeepomtemp[4]);
if(y==48) writedatalcd(32);
else writedatalcd(y); writedatalcd(z);writedatalcd(58); //:
h_to_number(readeepomtemp[5]);
if(y==48) writedatalcd(32);
else writedatalcd(y); writedatalcd(z); writedatalcd(58); //:
h_to_number(readeepomtemp[6]);
if(y==48) writedatalcd(32);
else writedatalcd(y); writedatalcd(z);
lcd_set_cursor(2,3);
writedatalcd(58);
if(readeepomtemp[7]) writedatalcd(45); //-
else writedatalcd(43); //+
for(j=0;j<4;j++) {temp.c[j]=readeepomtemp[j+8];}
lcd_set_cursor(2,4);
display_float(temp.f);
lcd_set_cursor(4,1);
h_to_number(i);
if(y==48) writedatalcd(32);
else writedatalcd(y); writedatalcd(z);
readkey();
if(key==escape) {break;}
if(key==down) {
if(i==19) i=0;
else i++;
continue;
}
if(key==up) {
if(i==0) i=19;
else i--;
continue;
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -