⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 show_window.c

📁 此程序是GPS的定位程序
💻 C
📖 第 1 页 / 共 2 页
字号:
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 + -