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

📄 key.lst

📁 12232液晶驱动和时间显示。矩阵键盘源代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.02   KEY                                                                   01/06/2009 14:07:32 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN H:\MYPROJ~1\12232~1\KEY.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE H:\MYPROJ~1\12232~1\KEY.C DB SB OE

line level    source

   1          #include "MAIN.H"
   2          #include "KEY.H"
   3          
   4          #include <string.h>
   5          
   6          
   7          //x\y\z\a\b\c\d:PF1\PF2\PF3\PF4\PF5\PF6\PF7
   8          #define x(n)    {if(n) PIN_KEY1=1; else PIN_KEY1=0;}
   9          #define y(n)    {if(n) PIN_KEY2=1; else PIN_KEY2=0;}
  10          #define z(n)    {if(n) PIN_KEY3=1; else PIN_KEY3=0;}
  11          
  12          
  13          
  14          void buzzer_driver_key(void)
  15          {
  16   1       flag_key_active=1;
  17   1       count_key_timeout=0;
  18   1       if(flag_key_buzzer==1)
  19   1          {
  20   2           PIN_BUZZER=0;
  21   2           delay_ms(30);
  22   2          }
  23   1       PIN_BUZZER=1;
  24   1      }
  25          
  26          void init_key(void)
  27          {
  28   1       uchar temp=0;
  29   1       uchar temp_buffer[6]={1,2,3,4,5,6};
  30   1       PIN_KEY1=1;
  31   1       PIN_KEY2=1;
  32   1       PIN_KEY3=1;
  33   1       PIN_KEY4=1;
  34   1       PIN_KEY5=1;
  35   1       PIN_KEY6=1;
  36   1       PIN_KEY7=1;
  37   1       flag_key_buzzer=1;
  38   1      
  39   1       //Write_Byte_AT24LC(0x55,code_point_type);
  40   1       temp=Read_Byte_AT24LC(code_point_type);
*** WARNING C206 IN LINE 40 OF H:\MYPROJ~1\12232~1\KEY.C: 'Read_Byte_AT24LC': missing function-prototype
*** ERROR C267 IN LINE 40 OF H:\MYPROJ~1\12232~1\KEY.C: 'Read_Byte_AT24LC': requires ANSI-style prototype
  41   1       if(temp==0xff)
  42   1         {
  43   2          code_sys[0]=0;code_sys[1]=0;code_sys[2]=0;
  44   2          code_sys[3]=0;code_sys[4]=0;code_sys[5]=0;
  45   2         }
  46   1      
  47   1       else if(temp==0x55)
  48   1         {
  49   2           Read_Buffer_AT24LC(code_sys,6,code_point_addr);
  50   2           delay_10us(1);
  51   2         }
  52   1      
  53   1       else
C51 COMPILER V8.02   KEY                                                                   01/06/2009 14:07:32 PAGE 2   

  54   1         {
  55   2           PIN_BUZZER=0;
  56   2           delay_ms(delay_5);
  57   2           PIN_BUZZER=1;
  58   2           delay_ms(delay_5);
  59   2           PIN_BUZZER=0;
  60   2           delay_ms(delay_5);
  61   2           PIN_BUZZER=1;
  62   2           delay_ms(delay_5);
  63   2           PIN_BUZZER=0;
  64   2           delay_ms(delay_5);
  65   2           PIN_BUZZER=1;
  66   2         }
  67   1      
  68   1       return;
  69   1      
  70   1      }
  71          
  72          
  73          
  74          void led_driver_nomarl(void)
  75          {
  76   1      //    flag_key_buzzer=1;
  77   1          PIN_BUZZER=  1;
  78   1          PIN_LED_PWR= 0;
  79   1          PIN_LED_MODE=1;
  80   1          PIN_LED_OPEN=1;
  81   1          if(count_temp_led++==80)
  82   1             {
  83   2              status_machine=m_status_normal_recy;
  84   2              count_temp_led=0;
  85   2             }
  86   1      }
  87          
  88          void led_driver_recy(void)
  89          {
  90   1          PIN_BUZZER=  1;
  91   1          PIN_LED_PWR= 1;
  92   1          PIN_LED_MODE=1;
  93   1          PIN_LED_OPEN=1;
  94   1          if(count_temp_led++==80)
  95   1             {
  96   2              status_machine=m_status_normal;
  97   2              count_temp_led=0;
  98   2             }
  99   1      
 100   1      }
 101          
 102          void led_driver_mode(void)
 103          {
 104   1          PIN_LED_PWR= 0;
 105   1          PIN_LED_MODE=0;
 106   1          PIN_LED_OPEN=0;
 107   1      
 108   1          flag_key_buzzer=  0;
 109   1      
 110   1          status_machine=m_status_mode;
 111   1      }
 112          
 113          void led_driver_moded(void)
 114          {
 115   1      
C51 COMPILER V8.02   KEY                                                                   01/06/2009 14:07:32 PAGE 3   

 116   1          PIN_BUZZER=  0;
 117   1          PIN_LED_PWR= 0;
 118   1          PIN_LED_MODE=0;
 119   1          PIN_LED_OPEN=1;
 120   1          delay_ms(100);
 121   1          PIN_BUZZER=  1;
 122   1          status_machine=m_status_moded;
 123   1      }
 124          
 125          void led_driver_config(void)
 126          {
 127   1          PIN_BUZZER=  1;
 128   1          PIN_LED_PWR= 1;
 129   1          PIN_LED_MODE=0;
 130   1          PIN_LED_OPEN=1;
 131   1          status_machine=m_status_config;
 132   1      }
 133          
 134          void led_driver_success(void)
 135          {
 136   1          PIN_BUZZER=  0;
 137   1          PIN_LED_PWR= 0;
 138   1          PIN_LED_MODE=0;
 139   1          PIN_LED_OPEN=1;
 140   1          delay_ms(20);
 141   1          status_machine=m_status_success;
 142   1      }
 143          
 144          void led_driver_error(void)
 145          {
 146   1          flag_key_buzzer=1;
 147   1          flag_key_active=0;
 148   1          PIN_BUZZER=  0;
 149   1          PIN_LED_PWR= 1;
 150   1          PIN_LED_MODE=0;
 151   1          PIN_LED_OPEN=1;
 152   1          status_machine=m_status_error;
 153   1      }
 154          
 155          void led_driver_complete(void)
 156          {
 157   1          PIN_BUZZER=  1;
 158   1          PIN_LED_PWR= 0;
 159   1          PIN_LED_MODE=0;
 160   1          PIN_LED_OPEN=1;
 161   1          status_machine=m_status_complete;
 162   1      }
 163          
 164          
 165          
 166          uchar key_scan(void)
 167          {
 168   1      uchar key=0xff;
 169   1      x(0);
 170   1      {
 171   2      delay_ms(delay_5);
 172   2              if(PIN_KEY4==0)
 173   2                      {
 174   3                              delay_ms(key_delay);
 175   3                              if(PIN_KEY4==0)
 176   3                              {key=0x01       ; buzzer_driver_key(); x(1); return key;}
 177   3                      }
C51 COMPILER V8.02   KEY                                                                   01/06/2009 14:07:32 PAGE 4   

 178   2              if(PIN_KEY5==0)
 179   2                      {
 180   3                              delay_ms(key_delay);
 181   3                              if(PIN_KEY5==0)
 182   3                              {key=0x04       ; buzzer_driver_key(); x(1); return key;}
 183   3                      }
 184   2              if(PIN_KEY6==0)
 185   2                      {
 186   3                              delay_ms(key_delay);
 187   3                              if(PIN_KEY6==0)
 188   3                              {key=0x07       ; buzzer_driver_key(); x(1); return key;}
 189   3                      }
 190   2              if(PIN_KEY7==0)
 191   2                      {
 192   3                              delay_ms(key_delay);
 193   3                              if(PIN_KEY7==0)
 194   3                              {key=10         ; buzzer_driver_key(); x(1); return key;}//'*'
 195   3                      }
 196   2              x(1);
 197   2      }
 198   1      
 199   1      y(0);
 200   1      {
 201   2      delay_ms(delay_5);
 202   2              if(PIN_KEY4==0)
 203   2                      {
 204   3                              delay_ms(key_delay);
 205   3                              if(PIN_KEY4==0)
 206   3                              {key=0x02       ; buzzer_driver_key(); y(1); return key;}
 207   3                      }
 208   2              if(PIN_KEY5==0)
 209   2                      {
 210   3                              delay_ms(key_delay);
 211   3                              if(PIN_KEY5==0)
 212   3                              {key=0x05       ; buzzer_driver_key(); y(1); return key;}
 213   3                      }
 214   2              if(PIN_KEY6==0)
 215   2                      {
 216   3                              delay_ms(key_delay);
 217   3                              if(PIN_KEY6==0)
 218   3                              {key=0x08       ; buzzer_driver_key(); y(1); return key;}
 219   3                      }
 220   2              if(PIN_KEY7==0)
 221   2                      {
 222   3                              delay_ms(key_delay);
 223   3                              if(PIN_KEY7==0)
 224   3                              {key=0x00       ; buzzer_driver_key(); y(1); return key;}
 225   3                      }
 226   2              y(1);
 227   2      }
 228   1      
 229   1      z(0);
 230   1      {
 231   2      delay_ms(delay_5);
 232   2              if(PIN_KEY4==0)
 233   2                      {
 234   3                              delay_ms(key_delay);
 235   3                              if(PIN_KEY4==0)
 236   3                              {key=0x03       ; buzzer_driver_key(); z(1); return key;}
 237   3                      }
 238   2              if(PIN_KEY5==0)
 239   2                      {
C51 COMPILER V8.02   KEY                                                                   01/06/2009 14:07:32 PAGE 5   

 240   3                              delay_ms(key_delay);
 241   3                              if(PIN_KEY5==0)
 242   3                              {key=0x06       ; buzzer_driver_key(); z(1); return key;}
 243   3                      }
 244   2              if(PIN_KEY6==0)
 245   2                      {
 246   3                              delay_ms(key_delay);
 247   3                              if(PIN_KEY6==0)
 248   3                              {key=0x09       ; buzzer_driver_key(); z(1); return key;}
 249   3                      }
 250   2              if(PIN_KEY7==0)
 251   2                      {
 252   3                              delay_ms(key_delay);
 253   3                              if(PIN_KEY7==0)
 254   3                              {key=11         ; buzzer_driver_key(); z(1); return key;}//'#'
 255   3                      }
 256   2              z(1);
 257   2      }
 258   1      return key;
 259   1      }
 260          
 261          
 262          
 263          void key_process(void)
 264          {
 265   1        uchar idata i=0;
 266   1        uchar idata j=0;
 267   1        uchar idata flags=0;
 268   1        uchar idata key=0xff;
 269   1        uchar idata temp=0xff;
 270   1        uint  idata temp_addr;
 271   1        uchar idata temp_door_delay[3];
 272   1      //  uchar idata temp_buffer[count_byte_page];
 273   1      
 274   1       if(flag_key_active==0)//第一次按键
 275   1       {
 276   2        key=key_scan();
 277   2      
 278   2        if(key==0xff)//无效按键或无按键
 279   2        {
 280   3              return;
 281   3        }
 282   2        if(key==10)
 283   2        {
 284   3              flag_key_active=0;
 285   3              return;
 286   3        }
 287   2        if(key==11)//进入设置状态
 288   2        {
 289   3              tick_count_temp=tick_count;
 290   3              flag_key_buzzer=0;
 291   3        }
 292   2      
 293   2        else//密码开门
 294   2        {
 295   3         if(status_reader==r_status_null)
 296   3         {
 297   4          i=1;
 298   4          status_machine=m_status_null;
 299   4          reader_1.dat=(reader_1.dat<<4) | (key&0x0000000f);
 300   4          while(flag_key_active)
 301   4          {
C51 COMPILER V8.02   KEY                                                                   01/06/2009 14:07:32 PAGE 6   

⌨️ 快捷键说明

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