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

📄 show_window.c

📁 此程序是GPS导航程序
💻 C
字号:
/*****************************************************************/
/*函数名称: Show_Window.c                                       */
/*函数功能: 基本信息的显示                                      */       
/*有无返回: 无                                                  */
/*修改记录: 无修改记录                                          */
/*编写作者: t483-4-19chenyong                                   */
/*编写日期: 2007-4-06                                           */
/*****************************************************************/

#include  "common.h"
#include  "TS12864A.h"
#include  "delay.h"
#include  "window.h"
#include  "key.h"
#include  "astar.h"
#include  "map.h" 

extern unsigned int  Position;
unsigned char key=0xff;
unsigned char i=0;
/*****************************************************************/
/* 窗口显示函数:基本信息		    :第一屏 :					 */
/* 窗口模式:                                                    */
/*      -----------------------------------------------------    */
/*      |                   毕业设计                         |   */
/*      -----------------------------------------------------    */
/*      |                     作品                           |   */
/*      -----------------------------------------------------    */
/*      |                  GPS导航设计                       |   */
/*      -----------------------------------------------------    */
/*字库查询:
                    毕(0) 业(1) 设(2) 计(3)                          
				          作(4) 品(5)
				    导(6) 航(7) 设(8) 计(9)                      */
/*****************************************************************/
					   
void show_menu_system()
{
		   
    CleanScreen();
 	delay_nms(10);

    Display_Character(2,1,0);      // 毕
	Display_Character(4,1,1);	   // 业
	Display_Character(6,1,2);	   // 设
	Display_Character(8,1,3);	   // 计
	Display_Character(10,1,4);	   // 作
    Display_Character(12,1,5);	   // 品
	Display_Char(2,3,42);	       // G
    Display_Char(3,3,51);	       // P
	Display_Char(4,3,54);	       // S
    Display_Character(6,3,6);	   // 导
	Display_Character(8,3,7);	   // 航
    Display_Character(10,3,8);	   // 设
	Display_Character(12,3,9);	   // 计

	show_author_information();

 	while(1)
	{
		key= keyscan();
        delay_nms(1000);
		switch(key)
		{
		   case 0x00: show_menu_frist(); 
		              /* 按0(确定键)键进入菜单界面 */
		              break;
		   default:   break; 			  		 
		}
	}
}
/*****************************************************************/
/* 窗口显示函数:基本信息		    :第二屏 :					 */
/* 窗口模式:                                                    */
/*      -----------------------------------------------------    */
/*      |                   1: 基本信息                     |    */
/*      -----------------------------------------------------    */
/*      |                   2: 小车导航                     |    */
/*      -----------------------------------------------------    */
/*字库查询:
                    基(10) 本(11) 信(12) 息(13)                         
				          作(4) 品(5)
				    小(14)车(15)导(16) 航(17)                     */
/*****************************************************************/

void show_menu_frist()
{
	   
    CleanScreen();
 	delay_nms(10);

	Display_Char(3,3,0);	       // 0:
    Display_Char(4,3,62);	        	      
    Display_Character(5,3,10);	   // 基
	Display_Character(7,3,11);	   // 本
    Display_Character(9,3,12);	   // 信
	Display_Character(11,3,13);	   // 息
	Display_Char(3,5,1);	       // 1:
    Display_Char(4,5,62);	       	       
    Display_Character(5,5,14);	   // 小
	Display_Character(7,5,15);	   // 车
    Display_Character(9,5,16);	   // 导
	Display_Character(11,5,17);	   // 航
 	while(1)
	{
		
 		if(i==5)
		{      
			   i=0;
			   Clear_Area(0,1,16); 
		}
		Display_Character(2*(7-i),1,30+i);
		delay_nms(2500);
        if(i<3)   
			  Clear_Area(2*(7-i),1,2); 
	    Display_Character(2*i,1,30+i);
 
			
		key= keyscan();
 		delay_nms(2500);
		switch(key)
		{
		   case 0x00: GPS_Navigation();
		              /* 按1(确定键)键进入小车导航显示界面 */
		              break;
		   default:   break; 			  		 
		}
		i++;	
	}
}



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

void Navigation_End_ConstrolWord(void)
{
	unsigned char t;
	unsigned int sum=0;
	unsigned char i=0;
    /*xy坐标*/
    unsigned char temp_key[KeyInputN]={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 0x01:  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 + -