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

📄 menu_sub.c

📁 电力系统中的保护装置全部代码
💻 C
字号:
/************************************************************************/
/*                                                                      */
/* FILE NAME                                            VERSION         */
/*                                                                      */
/*      menu_sub.c                                      PLUS  1.0    	*/
/*                                                               		*/
/* COMPONENT                                                            */
/*                                                                      */
/*                                  	                                */
/*                                                                      */
/* DESCRIPTION                                                          */
/*       This file contines MMI foundermental  program, any changes     */
/*    may  produce undisiable result.                                   */
/*                                                                      */
/*                                                                      */
/* AUTHOR                                                               */
/*                                                                      */
/*      chenjie    						        						*/
/*                                                                      */
/* DATA STRUCTURES                                                      */
/*                                                                      */
/*      None                                                            */
/*                                                                      */
/* FUNCTIONS                                                            */
/*                                                                      */
/*      None                                                            */
/*                                                                      */
/* DEPENDENCIES                                                         */
/*                                                                      */
/*      None                                                            */
/*                                                                      */
/* HISTORY                                                              */
/*                                                                      */
/*      NAME            DATE                    REMARKS                 */
/*                                                                      */
/*    QingShan.Huang   03-20-2002      Created edit version 1.1         */
/*                                                                      */
/************************************************************************/
#include        "menu_task.h"   
#include        "math.h"     
#include        "stdio.h"     
#include        "string.h"     
#include 		"menu_sub.h"
 
extern unsigned 	keytime;
extern unsigned     keycounter;
extern unsigned     TMD_System_Clock; 
extern unsigned     keycode;
extern unsigned     key_current;
extern unsigned     lcd_bg_time;  
extern unsigned	    key_buffer[KEY_BUFFER_LENGTH];	
extern unsigned     key_delaytime;  	
extern unsigned    *pkeybuf_in;  			
extern unsigned    *pkeybuf_out;
extern unsigned	    din_flag;
extern unsigned    *pAscii_tab;    		
extern unsigned     CtrlOutBuf;
     
unsigned			LCD_BUFFER[1024];
unsigned			*pLCD_BUFFER = LCD_BUFFER; 
UNSIGNED    		Auto_Disp_Flag;
unsigned			*pHzk16_tab=(unsigned *)0x010000; 

/***********************************************/
/*                                             */
/***********************************************/
void Lcd_Write_Data_Left(int  data)
{   
    int  i = 0;
	
	while ((*(int *)LCD_COMMAND_LEFT&0x80) == 0x80)
	 { i++;
	   if(i>100) 
	   {
	     Lcd_Initial(); 
	   }
	 }
	*(int *)LCD_DATD_LEFT=data;    
}  

/***********************************************/
/*                                             */
/***********************************************/ 
void Lcd_Write_Data_Right(int  data)
{   
    int  i = 0;
	
	while ((*(int *)LCD_COMMAND_RIGHT&0x80) == 0x80)
	 { i++;
	   if(i>100) 
	   {
	     Lcd_Initial(); 
	   }
	 }
	*(int *)LCD_DATD_RIGHT=data;
}   

/***********************************************/
/*                                             */
/***********************************************/
void Lcd_Write_Com_Left(int  command) 
{
    int  i = 0;
	while ((*(int *)LCD_COMMAND_LEFT&0x80) == 0x80)
	{ 
	    i++;
	    if(i>100) 
	    {
	        Lcd_Initial(); 
	    }
	}
	*(int *)LCD_COMMAND_LEFT=command;	
}

/***********************************************/
/*                                             */
/***********************************************/
void Lcd_Write_Com_Right(int  command) 
{
    int  i = 0;
    while ((*(int *)LCD_COMMAND_RIGHT&0x80) == 0x80)
	{ 
	    i++;
	    if(i>100) 
	    {
	        Lcd_Initial();
	    }
	 }
	*(int *)LCD_COMMAND_RIGHT=command;
}

/***********************************************/
/*                                             */
/***********************************************/
void Lcd_Initial(void) 
{
	
	int  *ptr=NU_NULL;
    
    Lcd_Write_Com_Left(0xc0);	
    Lcd_Write_Com_Right(0xc0);
	
	Lcd_Write_Com_Left(0x3f); 
	Lcd_Write_Com_Right(0x3f);	     
	
}

/***********************************************/
/*                                             */
/***********************************************/
void Lcd_Clear_Screen(void)
{
  int i,j;
  
  Lcd_Initial();
  
  for(i=0;i<8;i++)
	{
      Lcd_Write_Com_Left(0xb8+i);  
      Lcd_Write_Com_Right(0xb8+i);
      
      Lcd_Write_Com_Left(0x40);   
      Lcd_Write_Com_Right(0x40);
	  
	  for(j=0;j<64;j++)
      { Lcd_Write_Data_Left(0); 
        Lcd_Write_Data_Right(0);
      }
    }    
 
}  

/********************************************************************************/
/*  LCD画点子程序                        2001-8-23                               */
/*  入口: (x,y,c)                        出口:无返回值                           */
/*  说明:  X:0-319    Y:0-233   COLOR:0-7                                       */
/********************************************************************************/
void Lcd_Draw_Point(int x,  int y, int color)
{ 
   register int value;
   int *mem_offset=NU_NULL,page,column,offset,data_refresh;
   
   page=y/8;
   column=x;
   offset=(y%8);
   
   mem_offset = (int *)pLCD_BUFFER + page*128 + column;	
   value = *(mem_offset);       
   data_refresh=(0x01<<offset);
   
   value |= data_refresh;
   *(mem_offset)=value;
}  

/********************************************************************************/
/*                                                                              */
/*                                                                              */
/*                                                                              */
/********************************************************************************/ 
void Lcd_Display_Executive(void)
{ 
    unsigned value;
    int *mem_offset=NU_NULL,page,column,column_right,counter=0;
     
    Lcd_Initial(); 
    for(page=0;page<8;page++)
    {
   	    Lcd_Write_Com_Left(page|0xb8);  /* 页面地址设

⌨️ 快捷键说明

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