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

📄 show_window.c

📁 此程序是GPS定位导航程序
💻 C
📖 第 1 页 / 共 2 页
字号:
						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);	       // : 
		 if((((use_sat[0]-0x30)*10+(use_sat[1]-0x30))>=4)&&(((use_sat[0]-0x30)*10+(use_sat[1]-0x30))<=12))
		 {
    	 	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
		 }
		 else
		 {
    	 	Display_Char(2,5,0);              // 0
   		 	Display_Char(3,5,0);			    // 1
    	 	Display_Char(4,5,0);              // 2

   		 	Display_Char(5,5,66);        	 		        // .
		 
    	 	Display_Char(6,5,0);              // 4
   		 	Display_Char(7,5,0);			    // 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);	       // : 

         if((((use_sat[0]-0x30)*10+(use_sat[1]-0x30))>=4)&&(((use_sat[0]-0x30)*10+(use_sat[1]-0x30))<=12))
		 {
    	 	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
		 }
		 else
		 {
		 
    	 	Display_Char(4,1,0);              // 0
		 	Display_Char(5,1,66);  
   		 	Display_Char(6,1,0);			   // 1
    		Display_Char(7,1,0);              // 2		 
   	     	Display_Char(8,1,0);              // 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);
         

		 if((((use_sat[0]-0x30)*10+(use_sat[1]-0x30))>=4)&&(((use_sat[0]-0x30)*10+(use_sat[1]-0x30))<=12))
		 {
		 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; 
																	 
		 }
		 }
		 else
		 {
		 	for(use_n=0;use_n<8;use_n++)
			{
				Display_Char(2+use_n,3,64);
		 	}
		 }
}
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; 
}
/*****************************************************************/


/*****************************************************************/
/*函数名称: Navigation_End_ConstrolWord.c                       */
/*函数功能: 终点地址的确定                                      */      
/*有无返回: 无                                                  */
/*修改记录: 无修改记录                                          */
/*编写作者: t483-4-19chenyong                                   */
/*编写日期: 2008-3-12                                           */
/*****************************************************************/

void Navigation_End_ConstrolWord(void)
{



    i=0;t=0;sum=0;
	CleanScreen();
	delay_nms(10);

	Display_Character(2,3,35);
	Display_Character(4,3,37);
 
	Display_Character(2,5,36);
	Display_Character(4,5,37);

	while(1)
	{
		key=keyscan();
		delay_nms(3000);

		switch(key)
		{			
			case 0x00:
					if(i<=KeyInputN-1&&i!=0)
					{
 						if(i<=1)
						Display_Char(8+i,3,0);
						else
					    Display_Char(6+i,5,0);
						temp_key[i]=0;
						i++;
					 }
					break;
			case 0x01:
					if(i<=KeyInputN-1)
					{
 						if(i<=1)
						Display_Char(8+i,3,1);
						else
					    Display_Char(6+i,5,1);
						temp_key[i]=1;
						i++;
					 }
					break;
			case 0x02:
					if(i<=KeyInputN-1)
					{
 						if(i<=1)
						Display_Char(8+i,3,2);
						else
					    Display_Char(6+i,5,2);;
						temp_key[i]=2;
						i++;
					 }
					break;
			case 0x03:
					if(i<=KeyInputN-1)
					{
 						if(i<=1)
						Display_Char(8+i,3,3);
						else
					    Display_Char(6+i,5,3);
						temp_key[i]=3;
						i++;
					 }
					break;
			case 0x04:
					if(i<=KeyInputN-1)
					{
 						if(i<=1)
						Display_Char(8+i,3,4);
						else
					    Display_Char(6+i,5,4);
						temp_key[i]=4;
						i++;
					 }
					break;
			case 0x05:
					if(i<=KeyInputN-1)
					{
 						if(i<=1)
						Display_Char(8+i,3,5);
						else
					    Display_Char(6+i,5,5);
						temp_key[i]=5;
						i++;
					 }
					break;
			case 0x06:
					if(i<=KeyInputN-1)
					{
 						if(i<=1)
						Display_Char(8+i,3,6);
						else
					    Display_Char(6+i,5,6);
						temp_key[i]=6;
						i++;
					 }
					break;
			case 0x07:
					if(i<=KeyInputN-1)
					{
 						if(i<=1)
						Display_Char(8+i,3,7);
						else
					    Display_Char(6+i,5,7);
						temp_key[i]=7;
						i++;
					 }
					break;
			case 0x08:
					if(i<=KeyInputN-1)
					{
 						if(i<=1)
						Display_Char(8+i,3,8);
						else
					    Display_Char(6+i,5,8);
						temp_key[i]=8;
						i++;
					 }
					break;
			case 0x09:
					if(i<=KeyInputN-1)
					{
 						if(i<=1)
						Display_Char(8+i,3,9);
						else
					    Display_Char(6+i,5,9);
						temp_key[i]=9;
						i++;
					 }
					break;	
												       /*如果输错,就重新置0,清一位*/
			case 0x0a:	i=0;			                             
						Display_Char(8,3,64);
						Display_Char(9,3,64);	
					    Display_Char(8,5,64);	
						Display_Char(9,5,64);				  
					break;		                   
/*			case 0x0b:								  //如果输错,重新输数,清所有位
					 
					for(i=KeyInputN;i>0;i--)
						temp_key[i-1]=0;
					break;	
 */
			case 0x0b:
					for(t=0;t<i;t++)
			    	sum=sum+(temp_key[t])*ten_n(i-1-t);
	      		 	Position=sum;
					CleanScreen();      // 清屏
                    delay_nms(1000);
                	show_menu_DaoHang();
 					sum=0;
					break;
			case 0x0d:
					Clear_Area(6,3,5);
					for(i=KeyInputN;i>0;i--)
						temp_key[i-1]=0;
					t=0;
					sum=0;
					Position=0;
					break;
 			case 0x0f:GPS_Navigation();
			 		break;	 					       											
			default:break;

	  }

	}
}
/*****************************************************************/


void	GPS_Navigation(void)
{
		OSCILLATOR_Init ();                 // Initialize oscillator
		PORT_Init ();                       // Initialize crossbar and GPIO
        LCD_Init();		                   // 液晶初始化   
		CleanScreen();                     // 清屏
		delay_nms(100);
      	Show_Map();
 	    while(1)

	    {
 			key= keyscan();
			delay_nms(1000);
			switch(key)
			{
		    	case 0x00:  Navigation_End_ConstrolWord();
							break;
 /*	
				case 0x00:  show_menu_DaoHang();
				            break; 
 */				case 0x0f:  show_menu_frist(); 
				            break;                    
				default:    break;
			
			}			
           
		}
}

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,9);

	Display_Character(11,5,18);
	Display_Character(13,5,19);  
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -