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

📄 main.c

📁 基于MSP430单片机的菜单级无限通信程序
💻 C
📖 第 1 页 / 共 5 页
字号:
void menu_down()//下一条
{       

	uchar p;
        p = curr_menu_id;
	if(menu_table[curr_menu_id].next == 0) //没下一条的情况
	{
		curr_menu_id =1;
		curr_pos = 0;
                view_menu( curr_menu_id );
                return;
	}
        
	if(curr_pos != 3)
	{//当前光标不在最下
		disp_chinese(menu_table[p].str,2*curr_pos,0,8,1,0);//inv_line(curr_pos,0x00);取正显示
		curr_pos++;
		curr_menu_id = menu_table[p].next;
		p = curr_menu_id;
		disp_chinese(menu_table[p].str,2*curr_pos,0,8,1,1);//inv_line(curr_pos,0xff);反白显示
	}
	else //if(curr_pos == 3)
	{      //当前光标在最下,再写菜单项
		curr_menu_id = menu_table[p].next;
		p = curr_menu_id;
		disp_lattice(0x00,0x00);			//???
		view_menu(p);
	}
	return;
}

///////////////////功能菜单任务函数///////////
void menu_task()//菜单功能
{
  

	//uchar a;		
	uchar i;	
        uchar p;
        //menu *k;
	task_pri[2].task_flag = 0;		//清标志/////////////
             
        if(menu_open)//从轮显进菜单任务
        {
          disp_lattice(0x00,0x00);		//cls();清屏
          curr_menu_id =1;
	  view_menu(curr_menu_id);	//显示菜单
          menu_open = 0;
          curr_pos2 = 0;      //功能设置光标置0
          curr_menu_id = 1;
          curr_pos = 0;
	  return;
        }
        //flag = 0;	
///假如在测温点显示温度模式,就退出
	if(rtu_view)	
	{	
		task_pri[3].task_flag = 0x00;
                rtu_view = 0;
		
                curr_menu_id = 7;//到最后一个菜单7
                curr_pos = 2;   //光标
                disp_lattice(0x00,0x00);	
                p = 5;
                for(i = 0;i < 2;i++)
	        {
		    disp_chinese(menu_table[p].str,2*i,0,8,1,0);
                    p++; 
 	        }
                disp_chinese(menu_table[curr_menu_id].str,4,0,8,1,1);//反白显示                
	                
		return;
	}
	if(key_code  ==  KEY_UP1)//加1
	{
          
          if(curr_menu_id == 8)
          { 		
           // disp_8x16character(set_time,4,24,4,0,0);//显示原来的时间
            if(curr_pos2 == 2)			//个位
	    {
              Hour_1++;
              if(Hour_1>9) Hour_1 = 0;
              buf = Hour_1 + 0x30;
              disp_8x16character(&buf,4,24,0,0,1);//显示原来的时间
              buf = hour_1 + 0x30;
              disp_8x16character(&buf,4,32,0,0,0);//显示原来的时间
              buf = min_1 + 0x30;
              disp_8x16character(&buf,4,48,0,0,0);//显示原来的时间
            }
	    else if (curr_pos2 == 1)	// curr_pos2 ==0十位
	    {
              hour_1++;
              if(hour_1 > 9)hour_1 = 0;
              buf = hour_1 + 0x30;
              disp_8x16character(&buf,4,32,0,0,1);//显示原来的时间
              buf =  Hour_1 + 0x30;
              disp_8x16character(&buf,4,24,0,0,0);//显示原来的时间
              buf = min_1 + 0x30;
              disp_8x16character(&buf,4,48,0,0,0);//显示原来的时间
	    }
            else if (curr_pos2 == 0)	// curr_pos2 ==0十位
	    {
              min_1++;
              if(min_1 > 9)min_1 = 0;
              buf = min_1 + 0x30;
              disp_8x16character(&buf,4,48,0,0,1);//显示原来的时间
              buf = hour_1 + 0x30;
              disp_8x16character(&buf,4,32,0,0,0);//显示原来的时间
              buf =  Hour_1 + 0x30;
              disp_8x16character(&buf,4,24,0,0,0);//显示原来的时间
	    }
	     return;
            
	  }
          
          
          else if(curr_menu_id == 9)
          { 		
           // disp_8x16character(set_time,4,24,4,0,0);//显示原来的时间
            if(curr_pos2 == 2)			//个位
	    {
              Hour_2++;
              if(Hour_2>9) Hour_2 = 0;
              buf = Hour_2 + 0x30;
              disp_8x16character(&buf,4,24,0,0,1);//显示原来的时间
              buf = hour_2 + 0x30;
              disp_8x16character(&buf,4,32,0,0,0);//显示原来的时间
              buf = min_2 + 0x30;
              disp_8x16character(&buf,4,48,0,0,0);//显示原来的时间
            }
	    else if (curr_pos2 == 1)	// curr_pos2 ==0十位
	    {
              hour_2++;
              if(hour_2 > 9)hour_2 = 0;
              buf = hour_2 + 0x30;
              disp_8x16character(&buf,4,32,0,0,1);//显示原来的时间
              buf =  Hour_2 + 0x30;
              disp_8x16character(&buf,4,24,0,0,0);//显示原来的时间
              buf = min_2 + 0x30;
              disp_8x16character(&buf,4,48,0,0,0);//显示原来的时间
	    }
            else if (curr_pos2 == 0)	// curr_pos2 ==0十位
	    {
              min_2++;
              if(min_2 > 9)min_2 = 0;
              buf = min_2 + 0x30;
              disp_8x16character(&buf,4,48,0,0,1);//显示原来的时间
              buf = hour_2 + 0x30;
              disp_8x16character(&buf,4,32,0,0,0);//显示原来的时间
              buf =  Hour_2 + 0x30;
              disp_8x16character(&buf,4,24,0,0,0);//显示原来的时间
	    }
	     return;
            
	  }
	
	
	  else if(curr_menu_id == 10)//c光标位置,设置预警温度
          { 
            if(curr_pos2 == 2)			//个位
	    {
              bai_1++;
              if(bai_1>9)bai_1 = 0;
              buf =  bai_1 + 0x30;
              disp_8x16character(&buf,4,48,0,0,1);//显示原来的时间
            }
	    else if (curr_pos2 == 1)	// curr_pos2 ==0十位
	    {
              ten_1++;
              if(ten_1 > 9)ten_1 = 0;
              buf = ten_1 + 0x30;
              disp_8x16character(&buf,4,56,0,0,1);//显示原来的时间
	    }
            else if (curr_pos2 == 0)	// curr_pos2 ==0十位
	    {
              num_1++;
              if(num_1 > 9)num_1 = 0;
              buf = num_1 + 0x30;
              disp_8x16character(&buf,4,64,0,0,1);//显示原来的时间
	    }
	     return;
          }	
          
       else if(curr_menu_id == 11)//c光标位置,设置预警温度
          { 
            if(curr_pos2 == 2)			//个位
	    {
              bai_2++;
              if(bai_2>9)bai_2 = 0;
              buf =  bai_2 + 0x30;
              disp_8x16character(&buf,4,48,0,0,1);//显示原来的时间
            }
	    else if (curr_pos2 == 1)	// curr_pos2 ==0十位
	    {
              ten_2++;
              if(ten_2 > 9)ten_2 = 0;
              buf = ten_2 + 0x30;
              disp_8x16character(&buf,4,56,0,0,1);//显示原来的时间
	    }
            else if (curr_pos2 == 0)	// curr_pos2 ==0十位
	    {
              num_2++;
              if(num_2 > 9)num_2 = 0;
              buf = num_2 + 0x30;
              disp_8x16character(&buf,4,64,0,0,1);//显示原来的时间
	    }
	     return;
          }
          
	  else if(curr_menu_id == 12)	//设置设备地址
	  {
            if (curr_pos2 == 1)	// curr_pos2 ==0十位
	    {
              Add_1++;
              if(Add_1 > 9)Add_1 = 0;
              buf = Add_1 + 0x30;
              disp_8x16character(&buf,4,56,0,0,1);//显示原来的时间
	    }
            else if (curr_pos2 == 0)	// curr_pos2 ==0十位
	    {
              add_1++;
              if(add_1 > 9)add_1 = 0;
              buf = add_1 + 0x30;
              disp_8x16character(&buf,4,64,0,0,1);//显示原来的时间
	    }
	     return;
          }
	
 	  else if(curr_menu_id == 13)	//设置设备地址
	  {
            if (curr_pos2 == 1)	// curr_pos2 ==0十位
	    {
              Add_2++;
              if(Add_2 > 9)Add_2 = 0;
              buf = Add_2 + 0x30;
              disp_8x16character(&buf,4,56,0,0,1);//显示原来的时间
	    }
            else if (curr_pos2 == 0)	// curr_pos2 ==0十位
	    {
              add_2++;
              if(add_2 > 9)add_2 = 0;
              buf = add_2 + 0x30;
              disp_8x16character(&buf,4,64,0,0,1);//显示原来的时间
	    }
	     return;
          }         
          
           else if(curr_menu_id == 14)	//设置设备地址
	  {
            if (curr_pos2 == 1)	// curr_pos2 ==0十位
	    {
              Add_3++;
              if(Add_3 > 9)Add_3 = 0;
              buf = Add_3 + 0x30;
              disp_8x16character(&buf,4,56,0,0,1);//显示原来的时间
	    }
            else if (curr_pos2 == 0)	// curr_pos2 ==0十位
	    {
              add_3++;
              if(add_3 > 9)add_3 = 0;
              buf = add_3 + 0x30;
              disp_8x16character(&buf,4,64,0,0,1);//显示原来的时间
	    }
	     return;
          } 
          
	  else
	    menu_up();
          return;
        }
	else if(key_code  ==  KEY_DOWN1) 		//设置返回时间间隔
        {
         //key_code = 0;
	  if(curr_menu_id == 8)     //设置采集时间间隔
          {
             //disp_8x16character(set_time,4,24,4,0,0);//显示原来的时间
            if(curr_pos2 == 2)			//个位
	    {
              Hour_1--;
              if(Hour_1 < 0) Hour_1 =9;
              buf =  Hour_1 + 0x30;
              disp_8x16character(&buf,4,24,0,0,1);//显示原来的时间 
              buf = hour_1 + 0x30;
              disp_8x16character(&buf,4,32,0,0,0);//显示原来的时间
              buf = min_1 + 0x30;
              disp_8x16character(&buf,4,48,0,0,0);//显示原来的时间
            
            }
            
	    else if (curr_pos2 == 1)	// curr_pos2 ==0十位
	    {
              
              hour_1--;
              if(hour_1 < 0)hour_1 = 9;
              buf = hour_1 + 0x30;
              disp_8x16character(&buf,4,32,0,0,1);//显示原来的时间
              buf =  Hour_1 + 0x30;
              disp_8x16character(&buf,4,24,0,0,0);//显示原来的时间 
              buf = min_1 + 0x30;
              disp_8x16character(&buf,4,48,0,0,0);//显示原来的时间
	    }
            else if (curr_pos2 == 0)	// curr_pos2 ==0十位
	    {
              min_1--;
              if(min_1 < 0)min_1 = 9;
              buf = min_1 + 0x30;
              disp_8x16character(&buf,4,48,0,0,1);//显示原来的时间
              buf = hour_1 + 0x30;
              disp_8x16character(&buf,4,32,0,0,0);//显示原来的时间
              buf =  Hour_1 + 0x30;
              disp_8x16character(&buf,4,24,0,0,0);//显示原来的时间 
              
	    }
	     return;
          }
	
       	  if(curr_menu_id == 9)     //设置采集时间间隔
          {
             //disp_8x16character(set_time,4,24,4,0,0);//显示原来的时间
            if(curr_pos2 == 2)			//个位
	    {
              Hour_2--;
              if(Hour_2< 0) Hour_2=9;
              buf =  Hour_2 + 0x30;
              disp_8x16character(&buf,4,24,0,0,1);//显示原来的时间 
              buf = hour_2 + 0x30;
              disp_8x16character(&buf,4,32,0,0,0);//显示原来的时间
              buf = min_2 + 0x30;
              disp_8x16character(&buf,4,48,0,0,0);//显示原来的时间
              //if(bai == 0)bai = 10; 
            }
            
	    else if (curr_pos2 == 1)	// curr_pos2 ==0十位
	    {
              
              hour_2--;
              if(hour_2 < 0)hour_2 = 9;
              buf = hour_2 + 0x30;
              disp_8x16character(&buf,4,32,0,0,1);//显示原来的时间
              buf =  Hour_2 + 0x30;
              disp_8x16character(&buf,4,24,0,0,0);//显示原来的时间 
              buf = min_2 + 0x30;
              disp_8x16character(&buf,4,48,0,0,0);//显示原来的时间
	    }
            else if (curr_pos2 == 0)	// curr_pos2 ==0十位
	    {
              min_2--;
              if(min_2 < 0)min_2 = 9;
              buf = min_2 + 0x30;
              disp_8x16character(&buf,4,48,0,0,1);//显示原来的时间
              buf = hour_2+ 0x30;
              disp_8x16character(&buf,4,32,0,0,0);//显示原来的时间
              buf =  Hour_2 + 0x30;
              disp_8x16character(&buf,4,24,0,0,0);//显示原来的时间 
              
	    }
	     return;
          }
          
          
	  else if(curr_menu_id == 10)	//设置预警温度,a为x*10分钟,b为小时
          {
	   if(curr_pos2 == 2)			//个位
	    {
             bai_1--;
              if(bai_1 < 0)bai_1 =9;
              buf =  bai_1 + 0x30;
              disp_8x16character(&buf,4,48,0,0,1);//显示原来的时间 
              buf = ten_1 + 0x30;
              disp_8x16character(&buf,4,56,0,0,0);//显示原来的时间
              buf = num_1 + 0x30;
              disp_8x16character(&buf,4,64,0,0,0);//显示原来的时间
              
          
            }
	    else if (curr_pos2 == 1)	// curr_pos2 ==0十位
	    {
              
              ten_1--;
              if(ten_1 < 0)ten_1 = 9;
              buf = ten_1 + 0x30;
              disp_8x16character(&buf,4,56,0,0,1);//显示原来的时间
              buf =  bai_1 + 0x30;
              disp_8x16character(&buf,4,48,0,0,0);//显示原来的时间 
              buf = num_1 + 0x30;
              disp_8x16character(&buf,4,64,0,0,0);//显示原来的时间
              
	    }
            else if (curr_pos2 == 0)	// curr_pos2 ==0十位
	    {
              num_1--;
              if(num_1 < 0)num_1 = 9;
              buf = num_1 + 0x30;
              disp_8x16character(&buf,4,64,0,0,1);//显示原来的时间
              buf = ten_1 + 0x30;
              disp_8x16character(&buf,4,56,0,0,0);//显示原来的时间
              buf =  bai_1 + 0x30;
              disp_8x16character(&buf,4,48,0,0,0);//显示原来的时间 
	    }
	     return;
	  }	
	
      	  else if(curr_menu_id == 11)	//设置预警温度,a为x*10分钟,b为小时
          {
	   if(curr_pos2 == 2)			//个位
	    {

⌨️ 快捷键说明

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