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

📄 back_prc.c

📁 楼宇对讲系统里用的文字信息接收。用可视对讲话机的TFT屏可看到从管理中心发过来的广播信息和本户的特发信息
💻 C
字号:
/***********************************************************/
/*							                               */
/*                CPU:AT89c55   20MHZ                      */
/*                Copyright  2004.09  Comelit              */
/*                AUTHOR:  LV_XIAO_LU                      */
/*                                                         */
/***********************************************************/

#include "reg52.h"
#include "define.h"
#include "variable.h"
#include "typedef.h"
#include "function.h"


#define TM60S 600
#define TM1MIN 60
#define TM12HOUR 12
/*******************************************************/
/*******************************************************/
void Backup_hd(void);
void Backup_prc(void);
void Backup_time_prc(void);
//void Backup_var(void);
void Backup_mes_control(void);

void Mes_list_disp(void);
/*******************************************************/
/*******************************************************/
/*void (*const code Backup[])(void) =
{
   Backup_var,
   Backup_mes_control
};*/

/*******************************************************/
/* 该函数10MS处理一次
/*******************************************************/
void Backup_hd(void)
{
   if((backup_prc_F == 1)&&(write_F == 0))
   {
          write_F = 1;
//          Backup[backup_step]();
          Backup_mes_control();
   }
}
/*******************************************************/
/*******************************************************/
void Backup_prc(void)
{
   Backup_time_prc();
   
}

/*******************************************************/
/* 50ms处理一次                                        */
/*******************************************************/
void Backup_time_prc(void)
{
   if(backup_sec_time < TM60S)    
      backup_sec_time++;
   else
   {
      backup_sec_time = 0;
	  backup_min_time++;
	  if(backup_min_time >= TM1MIN)  //#define TM1MIN 60
//       if(backup_min_time >= 2)  //test backup	      
	  {
	      backup_min_time = 0;
		  backup_hour_time++;
		  if(backup_hour_time >= TM12HOUR) //  #define TM12HOUR 12
//          if(backup_hour_time >= 2) // test backup
		  {
		     backup_hour_time = 0;			
			 backup_prc_F = 1;
//			 backup_step = 0;
		  }
	  }
   }
}

/*******************************************************/
/*******************************************************/
/*void Backup_var(void)
{
   Write_sector((unsigned char xdata*)(0x1000),(unsigned char xdata*)0x00);
   write_delay_time = TM20MS;  
   backup_step++;                 
}*/
/*******************************************************/
/*******************************************************/  
void Backup_mes_control(void)
{    
  if(backup_mes_control_no < 8)
  {
      Write_sector((unsigned char xdata*)(0x1100 + backup_mes_control_no*256),(unsigned char xdata*)(0x100+backup_mes_control_no *256));
	  write_delay_time = TM20MS;
      backup_mes_control_no++;
  }
  else           //备份工作结束
  {
      backup_mes_control_no = 0 ;
//      backup_step = 0;
	  backup_prc_F = 0;
  }
}
  	    
/*******************************************************/
/*******************************************************/	      

/***********************************************************/
/***********************************************************/
void Mes_list_disp(void) 
{
    unsigned char i;
/*无信息时的菜单处理*/
	if(scr_mes_num == 0)
	{
/*第三行第1列显示"无信息请返回"*/
//	  mes_moment = second_menu[4] ;  
      

  	  	Disp_str("无列表信息",3,2,3,7,CHA_COLOR_WHITE,0);

        if(mes_list != disp_tcb_list)  
		{
		   if(select_position == 0)
		       at_label = 1;
		   else
		       at_label = 0;
		   Disp_str("上页",7,0,3,BACK_COLOR_BLACK,CHA_COLOR_WHITE,at_label);
//           Disp_str("LA",7,0,3,BACK_COLOR_BLACK,CHA_COLOR_RED,at_label);

		   if(select_position == 1)
		      at_label = 1;
		   else
		      at_label = 0;

          Disp_str("返回",7,7,3,BACK_COLOR_BLACK,CHA_COLOR_WHITE,at_label);

		}
/*最后一行中间位置显示带标签的"返回"*/
        else
		{
	    
		     at_label = 1;
             Disp_str("返回",7,3,3,BACK_COLOR_BLACK,CHA_COLOR_WHITE,at_label);
//        Disp_str("RT",7,8,3,BACK_COLOR_BLACK,CHA_COLOR_RED,at_label);
	    }
		mes_list_F = 0;
	     return;
	}
/*有信息时菜单处理*/
    else
	{

		Disp_str("信息浏览",0,3,3,BACK_COLOR_WHITE,CHA_COLOR_WHITE,0);

    
	/*最多一屏只能提示五条信息*/
	 if(mes_list_F == 1)
     {	for(i=0;i<scr_mes_num;i++)
		{

		    if(mes_list_old->new_old_F == NEW)
			    Disp_str("*",i+1,2,3,BACK_COLOR_BLACK,CHA_COLOR_WHITE,0);
            mes_list_old = mes_list_old->next;
            
			list_num++;
		    Get_list_str(list_num); 

            if(select_position == i)
			   at_label = 1;
			else
			   at_label = 0;
		
	    	Disp_str(list_str,i+1,3,3,BACK_COLOR_BLACK,CHA_COLOR_WHITE,at_label);
			
		}
		mes_list_F = 0;
	 } 
	 else
	 {
	     switch(select_position)
		 {
		    case 0x00:
			          if(scr_mes_num >= 1)
			         {
				       Get_list_str(list_num-scr_mes_num+1);
					   Disp_str(list_str,1,3,3,BACK_COLOR_BLACK,CHA_COLOR_WHITE,1);

					 }
					   break;
            case 0x01:
			         if(scr_mes_num >=1)
			         { Get_list_str(list_num-scr_mes_num+1);
					  Disp_str(list_str,1,3,3,BACK_COLOR_BLACK,CHA_COLOR_WHITE,0);
				
					 }
					 if(scr_mes_num >=2)
			         {
				      Get_list_str(list_num-scr_mes_num+2);
					  Disp_str(list_str,2,3,3,BACK_COLOR_BLACK,CHA_COLOR_WHITE,1);
					 
					 }
				      break;
            case 0x02:
			         if(scr_mes_num >= 2)
					 {
			          Get_list_str(list_num-scr_mes_num+2);
					  Disp_str(list_str,2,3,3,BACK_COLOR_BLACK,CHA_COLOR_WHITE,0);
					 
			         }
					  if(scr_mes_num>=3)
					  {
					    Get_list_str(list_num-scr_mes_num+3);
					    Disp_str(list_str,3,3,3,BACK_COLOR_BLACK,CHA_COLOR_WHITE,1);
					  }
					   break;
            case 0x03:
			         if(scr_mes_num >= 3)
					 {
			           Get_list_str(list_num-scr_mes_num+3);
					   Disp_str(list_str,3,3,3,BACK_COLOR_BLACK,CHA_COLOR_WHITE,0);
			         }
                     if(scr_mes_num >= 4)
					 {
					  Get_list_str(list_num-scr_mes_num+4);
					  Disp_str(list_str,4,3,3,BACK_COLOR_BLACK,CHA_COLOR_WHITE,1);
					 }
				   break;
            case 0x04:
			         if(scr_mes_num >= 4)
					 {
			          Get_list_str(list_num-scr_mes_num+4);
					  Disp_str(list_str,4,3,3,BACK_COLOR_BLACK,CHA_COLOR_WHITE,0);
			         }
					 if(scr_mes_num>=5)
					 {
				      Get_list_str(list_num-scr_mes_num+5);
					  Disp_str(list_str,5,3,3,BACK_COLOR_BLACK,CHA_COLOR_WHITE,1);
					 }
					  break;
			default:
			         if(scr_mes_num>=5)
					 {
			          Get_list_str(list_num-scr_mes_num+5);
					  Disp_str(list_str,5,3,3,BACK_COLOR_BLACK,CHA_COLOR_WHITE,0);
			         }
					  break;
           }
	 }	 
		    if(select_position == scr_mes_num)
			   at_label = 1;
			else
			   at_label = 0 ;
            if(list_num > 5)
//                  Disp_str("上页",7,0,3,BACK_COLOR_BLACK,CHA_COLOR_RED,at_label) ;
				   Disp_str("上页",7,1,3,BACK_COLOR_BLACK,CHA_COLOR_WHITE,at_label) ;
			else if(list_num == 5)
//			      Disp_str("下页",7,0,3,BACK_COLOR_BLACK,CHA_COLOR_RED,at_label) ;
				   Disp_str("下页",7,0,3,BACK_COLOR_BLACK,CHA_COLOR_WHITE,at_label) ;
			else			
                  Disp_str("返回",7,4,3,BACK_COLOR_BLACK,CHA_COLOR_WHITE,at_label);
				 
			
/*如果提示不足五条,不显示'下页'*/
                  
		    if(scr_mes_num == 5)
			{
               
	    	   if(select_position == 6)
			      at_label = 1;
			   else
			      at_label = 0;
//			   Disp_str("下页",7,4,3,BACK_COLOR_BLACK,CHA_COLOR_RED,at_label) ;
               if(list_num>5)
               {      
			        Disp_str("下页",7,4,3,BACK_COLOR_BLACK,CHA_COLOR_WHITE,at_label) ;
			        
     	            if(select_position == 7)
			            at_label = 1;
		            else
		                at_label = 0;
//		       Disp_str("返回",7,8,3,BACK_COLOR_BLACK,CHA_COLOR_RED,at_label) ;
                    Disp_str("返回",7,7,3,BACK_COLOR_BLACK,CHA_COLOR_WHITE,at_label) ;
			   }
			   else
			   {
			        if(select_position == 6)
					     at_label = 1;
					else
					     at_label = 0;
			        Disp_str("返回",7,7,3,BACK_COLOR_BLACK,CHA_COLOR_WHITE,at_label) ;
			   }
			 }
            else    //不足五条信息列表
			{	 
	           
     	       if(select_position == (scr_mes_num+1))
			      at_label = 1;
		       else
		          at_label = 0;
			   if(list_num>=5)
//		       Disp_str("返回",7,8,3,BACK_COLOR_BLACK,CHA_COLOR_RED,at_label) ;
			      Disp_str("返回",7,7,3,BACK_COLOR_BLACK,CHA_COLOR_WHITE,at_label) ;
			}
     	
	}
} 


⌨️ 快捷键说明

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