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

📄 config.lst

📁 240128液晶底层驱动以及键盘操作编写菜单
💻 LST
字号:
C51 COMPILER V7.50   CONFIG                                                                05/13/2008 18:45:45 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE CONFIG
OBJECT MODULE PLACED IN .\obj\config.obj
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE src\config.c BROWSE DEBUG OBJECTEXTEND PRINT(.\lst\config.lst) OBJECT(.\obj
                    -\config.obj)

line level    source

   1          #include <reg52.h>
   2          #include <intrins.h>
   3          
   4          #define   EXTERN_LCD
   5          #include  "lcd.h"
   6          
   7          #include  "config.h"
   8          
   9          void Keyboard_Process(void)
  10          {
  11   1      // uchar  kkk=0;
  12   1      // uchar  k=0;
  13   1      // uchar  g_slt_N=0;
  14   1       //int m1=-1,m2=-1,m3=-1;
  15   1       bit flag1=0,flag2=0;//,flag3=0,flag4=0,flag5=0,flag6=0,flag7=0,flag8=0;//,flag9=0;
  16   1       //bit flag9=0,flag10=0,flag11=0,flag12=0,flag13=0,flag14=0,flag15=0,flag16=0;//,flag6=0;
  17   1       //bit flag17=0,flag18=0,flag19=0,flag20=0,flag21=0;
  18   1       //bit yearflag=0,monthflag=0,dateflag=0,dayflag=0,hourflag=0,minflag=0,secflag=0;
  19   1       // uchar Sab1[5]={0,0,0,0,0};
  20   1       // uchar Sab2[3]={0,0,0};
  21   1       // uchar Sab3[2]={0,0};
  22   1      
  23   1       P0=0xf0; /////键盘的正常工作赋值//////////////////////
  24   1      
  25   1       if((P07&P06&P05&P04)==0)/////第1个if(P26&P25&P24&P23==0)开始////////
  26   1        {
  27   2          flag1=1;
  28   2          LCD_Clear_Graphics();//清除图形层显示数据//
  29   2          LCD_Clear_Text();//////清除文本层显示数据///////////////////////
  30   2          Disp_Start();
*** WARNING C206 IN LINE 30 OF SRC\CONFIG.C: 'Disp_Start': missing function-prototype
  31   2          Delay(800);
  32   2          LCD_Clear_Text(); 
  33   2          Disp_interface_1();
*** WARNING C206 IN LINE 33 OF SRC\CONFIG.C: 'Disp_interface_1': missing function-prototype
  34   2          Delay(800);
  35   2          while((P07&P06&P05&P04)==0) ;/////等待键释放/////
  36   2          Wooae(flag1);/////保证能从此处退出第1个if(P26&P25&P24&P23==0),此处后面的程序均不要执行/////////
  37   2        }
  38   1      /////////////////////////////////////////////////////////////////////////////
  39   1      
  40   1      //////////////////用户继续往下面操作键盘////////////////////////////////////
  41   1        if((P07&P06&P05&P04)==0)/////第2个if(P26&P25&P24&P23==0)开始///////
  42   1          {
  43   2              uchar keynum1;
  44   2              flag2=1;
  45   2              keynum1=Get_KeyNum();
  46   2              while((P07&P06&P05&P04)==0) ;/////等待键释放后执行键功能函数/////
  47   2              switch(keynum1)
  48   2                        {
  49   3                 case 0x0B: Disp_interface_2();
*** WARNING C206 IN LINE 49 OF SRC\CONFIG.C: 'Disp_interface_2': missing function-prototype
  50   3                            Delay(800);
  51   3                                            break;
C51 COMPILER V7.50   CONFIG                                                                05/13/2008 18:45:45 PAGE 2   

  52   3                 case 0x0E: Disp_interface_11();
*** WARNING C206 IN LINE 52 OF SRC\CONFIG.C: 'Disp_interface_11': missing function-prototype
  53   3                            Delay(800);
  54   3                            flag2=0;
  55   3                                            break;
  56   3                  default :LCD_Write_word(2,48,"不要乱按键!%");
  57   3                            flag2=0;
  58   3                                            break;//////////
  59   3                                          //////////////////////后面没有k=12的分支功能程序,会自动退出//////////////
  60   3                        }/////switch结构结束////
  61   2           Wooae(flag2);/////保证能从此处退出第1个if(P26&P25&P24&P23==0),此处后面的程序均不要执行/////////
  62   2          }/////第2个if(P26&P25&P24&P23==0)结束///////
  63   1      
  64   1      }
  65          
  66          /******************************等待连续操作,超时间自动退出函数****************************
  67          *入口参数: bit flag
  68          *出口参数: 无 
  69          函数功能 : wait_operation_overtime_auto_exit//等待连续操作,超时间自动退出函数
  70          ************************************************************************/
  71          void Wooae(bit flag)
  72          {
  73   1        uchar w=0;
  74   1        while(((P07&P06&P05&P04)==1)&&(flag==1))
  75   1              {                                       
  76   2                w++;
  77   2            Delay(800);
  78   2                if(w==30)
  79   2                {
  80   3                // LcdWriteCommand(0x01,1);
  81   3            // g_slt=20;g_year=0x07;g_month=0x07; g_day=0x05;
  82   3            // g_date=0x13;g_hour=0x23;g_min=0x36; g_sec=0x08;
  83   3            // yearflag=monthflag=dateflag=dayflag=hourflag=minflag=secflag=0;
  84   3              LCD_Clear_Graphics();//清除图形层显示数据//
  85   3              LCD_Clear_Text();//////清除文本层显示数据///////////////////////
  86   3                  flag=0;
  87   3                   ;
  88   3                }      
  89   2              }/////保证能从此处退出第1个if(P26&P25&P24&P23==0),此处
  90   1      }
  91          /////////////////////////////////////////////////////////////////////////////////////////////
  92          ///////////////////////键盘扫描函数///////////////////////////////////////////////////////////////
  93          uchar Get_KeyNum(void)
  94          {
  95   1       uchar key_code,row;
  96   1        uint i=0; 
  97   1            row=0;
  98   1      ////////////////////////////////////////////////////////////////////////////////
  99   1      ///模块功能:确定有真实的键按下时,跳出循环往下走。否则一直在循环体内等待/////////////////////////////////
             -///////////////////////////////
 100   1          P0=0x8f;        /////////////正常赋值//////////////
 101   1          while(1)
 102   1          { 
 103   2         //  uint i=0;
 104   2         D:  while((P07&P06&P05&P04)==1);//
 105   2            key_xd_delay();////键消抖延时/////
 106   2                if((P07&P06&P05&P04)==1)
 107   2                   {i++;
 108   3                        if(i==6000){goto D;}
 109   3                        else  continue;                
 110   3                       }
 111   2                else  break;
C51 COMPILER V7.50   CONFIG                                                                05/13/2008 18:45:45 PAGE 3   

 112   2          }
 113   1      //////////////////////////////////////////////////////////////////////////////////
 114   1      ////模块功能:确定出按下的键在那一行,通过变量row的值去体现///////////////////////////////////////////////
             -//////////////////////////
 115   1         P0=0xfe;
 116   1         while(1)
 117   1         {
 118   2          if((P07&P06&P05&P04)==1)
 119   2              {
 120   3            row++;
 121   3                if(row>=3){row=0;P0=0xfe;}
 122   3                P0=_crol_(P0,1);//|0x08)&0xe8;
 123   3                continue;     
 124   3              }   
 125   2         else  break;     
 126   2         }
 127   1      ////////////////////////////////////////////////////////////////////////////////
 128   1      /////模块功能:确定出按下的键在那一列,由此确定按下的键,返回键号key_code/////////////////////////////////
             -///////////////////////////////////////
 129   1         switch(row)
 130   1         {
 131   2          case  0:  if(P07==0) key_code=0x04;
 132   2                        else{
 133   3                                       if(P06==0) key_code=0x08;
 134   3                                           else{
 135   4                                if(P05==0) key_code=0x0B;
 136   4                                  else key_code=0x0F;
 137   4                               }
 138   3                                    }
 139   2                                 break;
 140   2          case  1:  if(P07==0) key_code=0x03;
 141   2                        else{
 142   3                                       if(P06==0) key_code=0x07;
 143   3                                           else{
 144   4                                if(P05==0) key_code=0x00;
 145   4                                  else key_code=0x0E;
 146   4                               }
 147   3                                    }
 148   2                                 break;
 149   2          case  2:  if(P07==0) key_code=0x02;
 150   2                        else{
 151   3                                       if(P06==0) key_code=0x06;
 152   3                                           else{
 153   4                                if(P05==0) key_code=0x09;
 154   4                                  else key_code=0x0D;
 155   4                               }
 156   3                                    }
 157   2                                 break;
 158   2         case  3:  if(P07==0) key_code=0x01;
 159   2                        else{
 160   3                                       if(P06==0) key_code=0x05;
 161   3                                           else{
 162   4                                if(P05==0) key_code=0x0A;
 163   4                                  else key_code=0x0C;
 164   4                               }
 165   3                                    }
 166   2                                 break;
 167   2         }
 168   1        P0=0xf0;        /////////////恢复正常赋值//////////////
 169   1      return(key_code);    
 170   1      }
 171          //////////////////////////////////////////////////////////////////////////////////////
C51 COMPILER V7.50   CONFIG                                                                05/13/2008 18:45:45 PAGE 4   

 172          
 173          ///////////////////////////////////////////////////////////////////////////////////////////////////////
 174          //键消抖延时函数//
 175          void key_xd_delay(void)
 176          {
 177   1              uchar i;
 178   1              for (i=300;i>0;i--);
 179   1      }
 180          //////////////////////////////////////////////////////////////////////////////////////////////////////


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    426    ----
   CONSTANT SIZE    =     13    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       6
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       3
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  4 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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