📄 show_window.c
字号:
e | 时 2 UTC时, "00".."23" |
| ----------------------- ------- ------------------------
| 分 2 UTC分, "00".."59" |
| ----------------------- ------- ------------------------
\秒 2 UTC秒, "00".."59" /
----------------------- ------- ------------------------
*/
/*****************************************************************/
void show_menu_ShiJian()
{
unsigned char xdata dsp_count=0; //刷新次数计数器
unsigned char xdata Bhour=0,Bday=0,Bmonth=0;
unsigned int xdata Byear=0;
CleanScreen();
delay_nms(100);
Display_Char(0,3,55); // T
Display_Char(1,3,62); // :
delay_nus(100);
if(buf_full|0x08) //北京时间转换
{
if(Bhour!=((time[0]-0x30)*10+time[1]-0x30)+TIME_AREA)
{
Bhour=((time[0]-0x30)*10+time[1]-0x30)+TIME_AREA;
Bday=(date[0]-0x30)*10+date[1]-0x30;
Bmonth=(date[2]-0x30)*10+date[3]-0x30;
Byear=(date[4]-0x30)*10+date[5]-0x30+2000;
if(Bhour>=24)
{ //如果小时数大于24
Bhour-=24; //小时数减24
Bday++; //日期数加1
switch(Bday)
{ //判断日期
case 29: //普通年的2月份
if((!((Byear%400==0)||((Byear%4==0)&&(Byear%100!=0)))&&(Bmonth==2)))
{
Bday=1;
Bmonth++;
}
break;
case 30: //如果是闰年的2月
if(((Byear%400==0)||((Byear%4==0)&&(Byear%100!=0)))&&(Bmonth==2))
{
Bday=1;
Bmonth++;
}
break;
case 31:
if((Bmonth==4)||(Bmonth==6)||(Bmonth==9)||(Bmonth==11))
{
Bday=1;
Bmonth++;
}
break;
case 32:
Bday=1;
Bmonth++;
if(Bmonth>=13)
{
Byear++;
Bmonth=1;
}
break;
}
}
}
Display_Char(0,1,39); // D
Display_Char(1,1,62); // :
Display_Char(3,1,2); // 2
Display_Char(4,1,0); // 0
Display_Char(5,1,(Byear%100)/10);
Display_Char(6,1,Byear%10);
Display_Char(7,1,68);
Display_Char(8,1,Bmonth/10);
Display_Char(9,1,Bmonth%10);
Display_Char(10,1,68);
Display_Char(11,1,Bday/10);
Display_Char(12,1,Bday%10);
Display_Char(0,5,52); // Q
Display_Char(1,5,62); // :
Display_Character(4,5,28); // 星期
Display_Character(6,5,29);
switch(week(Byear%100,Bmonth,Bday))
{
case 0:
Display_Char(8,5,7); // 星期日
break;
case 1:
Display_Char(8,5,1); // 星期一
break;
case 2:
Display_Char(8,5,2); // 星期二
break;
case 3:
Display_Char(8,5,3); // 星期三
break;
case 4:
Display_Char(8,5,4); // 星期四
break;
case 5:
Display_Char(8,5,5); // 星期五
break;
case 6:
Display_Char(8,5,6); // 星期六
break;
}
if(Bhour/10==0)
{
Display_Char(3,3,0);
}
else
{
Display_Char(3,3,Bhour/10);
}
Display_Char(4,3,Bhour%10);
Display_Char(5,3,62); // :
Display_Char(6,3,time[2]-0x30);
Display_Char(7,3,time[3]-0x30);
Display_Char(8,3,62);
Display_Char(9,3,time[4]-0x30);
Display_Char(10,3,time[5]-0x30);
/*
Display_Char(9,1,Bhour%10-0x30);
Display_Char(10,1,10);
Display_Char(11,1,time[2]-0x30);
Display_Char(12,1,time[3]-0x30);
Display_Char(13,1,10);
Display_Char(14,1,time[4]-0x30);
Display_Char(15,1,time[5]-0x30);
*/
buf_full&=~0x08;
dsp_count=0;
}
}
/*****************************************************************/
/* 窗口显示函数:基本信息 :第三屏 : */
/* 窗口模式: 00000 */
/*
/ ----------------------- ------- ------------------------\
| 水平定位误差 3 单位为“米” |
| ----------------------- ------- ------------------------ |
| 高度符号 1 '+' 或 '-' |
| ----------------------- ------- ------------------------ |
*/
/*****************************************************************/
void show_menu_GaoDu()
{
Display_Char(0,5,43); // H
Display_Char(1,5,62); // :
Display_Char(2,5,Height[0]-0x30); // 0
Display_Char(3,5,Height[1]-0x30); // 1
Display_Char(4,5,Height[2]-0x30); // 2
Display_Char(5,5,66); // .
Display_Char(6,5,Height[4]-0x30); // 4
Display_Char(7,5,Height[5]-0x30); // 5
}
/*****************************************************************/
/* 窗口显示函数:基本信息 :第三屏 : */
/* 窗口模式: */
/*
----------------------- ------- ------------------------
/东/西 速度方向 1 'E' 或 'W'
| ----------------------- ------- ------------------------
| 东/西速度 4 单位是“米/秒”,在第三位后省略了一个小数点,
| ("1234" = 123.4 m/s)
V | ----------------------- ------- ------------------------
e | 南/北 速度方向 1 'S' 或 'N'
l |
o | ----------------------- ------- ------------------------
c | 南/北 速度 4 单位是“米/秒”,在第三位后省略了一个小数点,
i | ("1234" = 123.4 m/s )
t | ----------------------- ------- ------------------------
*/
/*****************************************************************/
void show_menu_SuDu()
{
Display_Char(1,1,57); // V
Display_Char(2,1,62); // :
Display_Char(4,1,speed[0]-0x30); // 0
Display_Char(5,1,66);
Display_Char(6,1,speed[2]-0x30); // 1
Display_Char(7,1,speed[3]-0x30); // 2
Display_Char(8,1,speed[4]-0x30); // 3
}
void show_menu_sat()
{
unsigned char usesat=0;
unsigned char use_n=0;
Display_Char(1,3,use_sat[0]-0x30); // 0
Display_Char(2,3,use_sat[1]-0x30); // 1
usesat=(use_sat[0]-0x30)*10+(use_sat[1]-0x30);
switch(usesat)
{
case 0: break;
// 无卫星
case 1: Display_Char(4,3,69);
break;
// 一颗卫星
case 2: for(use_n=0;use_n<2;use_n++)
{
Display_Char(4+use_n,3,69);
}
break;
// 二颗卫星
case 3: for(use_n=0;use_n<3;use_n++)
{
Display_Char(4+use_n,3,69);
}
break;
// 三颗卫星
case 4: for(use_n=0;use_n<4;use_n++)
{
Display_Char(4+use_n,3,69);
}
break;
// 四颗卫星
case 5: for(use_n=0;use_n<5;use_n++)
{
Display_Char(4+use_n,3,69);
}
break;
// 五颗卫星
case 6: for(use_n=0;use_n<6;use_n++)
{
Display_Char(4+use_n,3,69);
}
break;
// 六颗卫星
case 7: for(use_n=0;use_n<7;use_n++)
{
Display_Char(4+use_n,3,69);
}
break;
// 七颗卫星
case 8: for(use_n=0;use_n<8;use_n++)
{
Display_Char(4+use_n,3,69);
}
break;
// 八颗卫星
default:break;
}
}
void show_sum_sat()
{
unsigned char sum_sat=0;
unsigned char sum_n=0;
Display_Char(1,5,total_sat[0]-0x30); // 0
Display_Char(2,5,total_sat[1]-0x30); // 1
sum_sat=(total_sat[0]-48)*10+(total_sat[1]-48);
if(sum_sat>12)sum_sat=12;
for(sum_n=0;sum_n<sum_sat;sum_n++)
{
Display_Char(4+sum_n,5,69);
}
}
//计算星期
unsigned char week(unsigned char year, unsigned char mon, unsigned char day)
{
unsigned char Weekdays[12] = {0,3,3,6,1,4,6,2,5,0,3,5}; // 31 28 31 30 31 30 31 31 30 31 30
return (6-1 + (year>>2) + year + Weekdays[mon-1] + day + (((year & 3) || mon > 2)? 1 : 0)) % 7;
//完整的计算星期的公式:
//(year>>2) - (year / 100) + (year/400) + year +
// Weekdays[mon-1] + day + ((!isLeap(year) || mon > 2)? 1 : 0)) % 7;
}
/*****************************************************************/
void show_author_information()
{
Display_Char(1,5,55);
Display_Char(2,5,4);
Display_Char(3,5,8);
Display_Char(4,5,3);
Display_Char(5,5,67);
Display_Char(6,5,4);
Display_Char(7,5,67);
Display_Char(8,5,1);
Display_Char(9,5,1);
Display_Char(10,5,9);
Display_Character(12,5,18);
Display_Character(14,5,19);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -