📄 main_function.h
字号:
/*main()函数调用的子函数*/
//欢迎界面
//显示欢迎界面
void welcome_page(bit flagg)
{
uchar i;
clsram();
if(!flagg)
{
dis_ch(1,3,fuhao); //'*'
dis_hzstr(1,2,welcome,4); //欢迎使用
dis_ch(1,12,fuhao); //'*'
dis_chstr(2,4,biaoqing,8);
for(i=0;i<8;i++)
{
dis_hz(0,i,wuxing);
dis_hz(3,7-i,wuxing+32);
delay(100);
}
for(i=0;i<8;i++)
{
dis_hz_fb(0,i,wuxing);
dis_hz_fb(3,7-i,wuxing+32);
delay(100);
}
for(i=0;i<8;i++)
{
dis_hz(0,i,wuxing);
dis_hz(3,7-i,wuxing+32);
delay(100);
}
}
delay(600);
clsram();
}
//主菜单
void menu_page(uchar select)
{
dis_hzstr(0,1,menu,5); //1.显示时间
dis_hzstr(1,1,menu+32*5,5); //2.测量电压
dis_hzstr(2,1,menu+32*10,5); //3.修改时间
dis_hzstr(3,1,menu+32*15,5); //4.作者信息
switch(select)
{
case 0: cls_line(0);dis_hzstr_fb(0,1,menu,5); break; //1.显示时间
case 1: cls_line(1);dis_hzstr_fb(1,1,menu+32*5,5); break; //2.测量电压
case 2: cls_line(2);dis_hzstr_fb(2,1,menu+32*10,5);break; //3.修改时间
case 3: cls_line(3);dis_hzstr_fb(3,1,menu+32*15,5);break; //4.作者信息
}
}
//时间显示
void SHOW_TIME()
{
lcd_init();
clsram();
while(1)
{ dis_chstr(0,1,time,13); //显示 *Time&Temp*
dis_ch(1,0,number+2*16);// 2
dis_ch(1,1,number); // 0
dis_1302(1,2,YEAR);
dis_hz(1,2,nyr); // 年
dis_1302(1,6,MONTH);
dis_hz(1,4,nyr+32); // 月
dis_1302(1,10,DAY);
dis_hz(1,6,nyr+64); //日
dis_1302(2,0,HOUR); //时
dis_ch(2,2,fuhao+16); //:
dis_1302(2,3,MINUTE); // 分
dis_ch(2,5,fuhao+16); //:
dis_1302(2,6,SECOND); //秒
dis_1302_xingqi(2,5); //星期几
//显示温度
show_temperature(3,2);
delay(50);
if(!ok)break;
}
}
//显示测量电压
void Test_voltage()
{
uchar Temp1,Temp2;
clsram();
while(1)
{
dis_chstr(0,1,volt,14); //*Test voltage*
dis_vol(2,0); //显示电压值
dis_hzstr(3,0,dianya+128,2); //类型
dis_ch(3,4,fuhao+16); //:
Temp1=AD_transform();
delay(20);
Temp2=AD_transform();
if(Temp1==Temp2)
dis_hzstr(3,3,dianya+256,2);
else
dis_hzstr(3,3,dianya+192,2);
if(!ok)break;
}
}
void Author_informations()
{
clsram();
while(1)
{
dis_chstr(0,1,author_information,14); //*author infom*
dis_hzstr(1,0,author_information+224,2);//班级
dis_ch(1,4,fuhao+16); //:
dis_hzstr(1,3,author_information+288,2);//电信
dis_ch(1,10,number); //0
dis_ch(1,11,number+112); //7
dis_ch(1,12,number+32); //2
dis_hzstr(2,0,author_information+352,2);//姓名
dis_ch(2,4,fuhao+16); //:
dis_hzstr(2,3,author_information+416,3);//吴英剑
dis_hzstr(3,0,author_information+512,2);//学号
dis_ch(3,4,fuhao+16); //:
dis_chstr(3,5,xuehao,9);//208070634
if(!ok)break;
}
}
void SET_TIME()
{
char time[7];
uchar i;
uchar select=0; //存放ok键值
bit Flag=0; //标志 Y/N 0:Y 1:N
clsram();
for(i=0;i<7;i++)
{
temp=read_B(0x81+i*2); //读的是BCD码
time[i]=((temp&0x70)>>4)*10+(temp&0x0f);//转化为十进制
}
dis_chstr(0,2,set_tm,10); //*Set time*
while(1)
{
dis_ch(1,0,number+2*16);// 2
dis_ch(1,1,number); // 0
dis_ch(1,2,number+16*(time[6]/10));
dis_ch(1,3,number+16*(time[6]%10));
dis_hz(1,2,nyr); // 年
dis_ch(1,6,number+16*(time[4]/10));
dis_ch(1,7,number+16*(time[4]%10));
dis_hz(1,4,nyr+32); // 月
dis_ch(1,10,number+16*(time[3]/10));
dis_ch(1,11,number+16*(time[3]%10));
dis_hz(1,6,nyr+64); //日
dis_ch(2,0,number+16*(time[2]/10));
dis_ch(2,1,number+16*(time[2]%10)); //时
dis_ch(2,2,fuhao+16); //:
dis_ch(2,3,number+16*(time[1]/10));
dis_ch(2,4,number+16*(time[1]%10)); // 分
dis_ch(2,5,fuhao+16); //:
dis_ch(2,6,number+16*(time[0]/10));
dis_ch(2,7,number+16*(time[0]%10)); //秒
dis_hz(2,5,xingqi); //星
dis_hz(2,6,xingqi+32); //期
dis_hz(2,7,xingqi+(time[5]+1)*32);//汉字显示星期几
dis_chstr(3,0,time_ch,10); //Save?(Y/N)
dis_ch(3,11,time_ch+96); //Y
switch(select)
{
case 0:
dis_ch_fb(1,2,number+16*(time[6]/10)); // 年十位
dis_ch_fb(1,3,number+16*(time[6]%10)); // 年个位
break;
case 1:
dis_ch_fb(1,6,number+16*(time[4]/10)); // 月十位
dis_ch_fb(1,7,number+16*(time[4]%10)); // 月个位
break;
case 2:
dis_ch_fb(1,10,number+16*(time[3]/10)); // 日十位
dis_ch_fb(1,11,number+16*(time[3]%10)); // 日个位
break;
case 3:
dis_ch_fb(2,0,number+16*(time[2]/10)); // 时十位
dis_ch_fb(2,1,number+16*(time[2]%10)); // 时个位
break;
case 4:
dis_ch_fb(2,3,number+16*(time[1]/10)); // 分十位
dis_ch_fb(2,4,number+16*(time[1]%10)); // 分个位
break;
case 5:
dis_hz(1,1,kongge); // 空格
dis_ch_fb(2,6,number+16*(time[0]/10)); // 秒十位
dis_ch_fb(2,7,number+16*(time[0]%10)); // 秒个位
break;
case 6:
dis_hz(2,7,kongge); // 空格
dis_hz_fb(2,7,xingqi+32*(time[5]+1)); // 星期
break;
case 7:
if(!Flag) //如果Flag=0,显示 Y ,否则显示 N
dis_ch_fb(3,11,time_ch+96); // Y
else
dis_ch_fb(3,11,time_ch+128); // N
break;
}
if(!ok)select++;
while(!ok); //等待松手
if(select>8)select=0;
if(up==0)
{ switch(select)
{
case 0: // 年
time[6]++;
if(time[6]>99)time[6]=0;
break;
case 1: // 月
time[4]++;
if(time[4]>12)time[4]=1;
break;
case 2: // 日
time[3]++;
if(time[3]>31)time[3]=1;
break;
case 3: // 时
time[2]++;
if(time[2]>23)time[2]=0;
break;
case 4: // 分
time[1]++;
if(time[1]>59)time[1]=0;
break;
case 5: // 秒
time[0]++;
if(time[0]>59)time[0]=0;
break;
case 6: // 星期
time[5]++;
if(time[5]>7)time[5]=1;
break;
case 7:
Flag=~Flag; //Flag 状态取反 }
}
while(!up); //等待松手
}
if(down==0)
{ switch(select)
{
case 0: // 年
time[6]--;
if(time[6]<0)time[6]=99;
break;
case 1: // 月
time[4]--;
if(time[4]<=0)time[4]=12;
break;
case 2: // 日
time[3]--;
if(time[3]<=0)time[3]=31;
break;
case 3: // 时
time[2]--;
if(time[2]<0)time[2]=23;
break;
case 4: // 分
time[1]--;
if(time[1]<0)time[1]=59;
break;
case 5: // 秒
time[0]--;
if(time[0]<0)time[0]=59;
break;
case 6: // 星期
time[5]--;
if(time[5]<1)time[5]=7;
break;
case 7:
Flag=~Flag; //Flag 状态取反
}
while(!down); //等待松手
}
if((select==8)&&(Flag==0))
{
for(i=0;i<7;i++) //写新时间到1302
{
temp=((time[i]/10)<<4)+time[i]%10;
write_B(0x80+i*2,temp);
}
}
if((select==8)&&(Flag==0))
{
clsram();
dis_hzstr(1,1,time_hz,7);//时间保存成功!
dis_chstr(2,3,biaoqing,8);
delay(2000);
break;
}
if((select==8)&&(Flag==1))
{
clsram();
dis_hzstr(1,1,time_hz+224,6); //时间未保存!
dis_chstr(2,3,biaoqing+128,7);
delay(2000);
break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -