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

📄 key_new.lst

📁 这是单片机驱动液晶显示器12864和键盘的源代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.07   KEY_NEW                                                               06/14/2007 21:11:22 PAGE 1   


C51 COMPILER V7.07, COMPILATION OF MODULE KEY_NEW
OBJECT MODULE PLACED IN key_new.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE key_new.c COMPACT BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <SST89x5x4.H>
   2          
   3          #define uchar unsigned  char
   4          #define uint unsigned int
   5          #define lcd_clr 0x01
   6          #define option_num 8
   7          uchar basic_time=0;
   8          uchar page = 0;
   9          uchar page_old = 0;
  10          uchar page_new = 1;
  11          
  12          
  13          /*
  14          keyboard        data
  15          0               12
  16          1               8
  17          2               4
  18          3               0
  19          4               1
  20          5               2
  21          6               3
  22          7               5
  23          8               6
  24          9               7
  25          10-ok   9
  26          11              10
  27          12-wrong11
  28          13              13
  29          14              14
  30          15              15
  31          */      
  32          
  33          #define key_0   12
  34          #define key_1   8
  35          #define key_2   4
  36          #define key_3   0
  37          #define key_4   1
  38          #define key_5   2
  39          #define key_6   3
  40          #define key_7   5
  41          #define key_8   6
  42          #define key_9   7
  43          #define key_o   9
  44          #define key_d   10
  45          #define key_c   11
  46          #define key_l   13
  47          #define key_u   14
  48          #define key_r   15
  49          
  50          //全局变量定义
  51          sbit rs = P1^7;
  52          sbit rw  = P1^6;
  53          sbit e = P2^1;
  54          sbit lcd_deng = P2^3;
  55          sbit le = P2^6;
C51 COMPILER V7.07   KEY_NEW                                                               06/14/2007 21:11:22 PAGE 2   

  56          sbit ce = P2^4;
  57          
  58          //函数申明
  59          void lcd_ini(void);     
  60          void lcd_wrc(uchar com);
  61          void lcd_wrd(uchar dat);
  62          void lcd_checkbusy();
  63          void delay(uchar n);
  64          void ldelay(uchar n);
  65          void lcd_on();
  66          void lcd_off();
  67          uchar lcd_read_ac();
  68          void lcd_dis_num(uint dat);
  69          void lcd_dis_ch(uchar h,uchar l);
  70          void lcd_add(uchar h,uchar l);
  71          
  72          
  73          void page_0();
  74          void page_1();
  75          void page_2();
  76          void page_3();
  77          void page_4();
  78          void page_5();
  79          
  80          //keyboard
  81          uchar key_data(void);
  82          uchar check_key(void);
  83          uchar key_data_ok(void);
  84          
  85          uchar lcd_line = 0;
  86          //总线控制--使能和释放
  87          void ad_en(void);
  88          void lcd_en(void);
  89          void three_en(void);
  90          /*
  91          struct caidan
  92          {
  93                  uchar key_index;
  94                  uchar key_ok;
  95                  uchar key_cancel;
  96                  uchar (*function)();            //定义一个指向函数的指针变量
  97          };
  98          
  99          struct caidan menu[]=
 100          {
 101          
 102          //      {0,0,1,(*page_0)},
 103          //      {0,0,1,(*function)},
 104                  {1,6,0,(*page_1)},
 105                  {2,7,0,(*page_2)},
 106                  {3,8,0,(*page_3)},
 107                  {4,9,0,(*page_4)},
 108                  {5,10,0,(*page_5)},
 109          
 110          };
 111          */
 112          void page_1()
 113          {
 114   1              uchar i = 0;
 115   1              uchar dat_1[] = {"1.列车检测"};
 116   1              uchar dat_2[] = {"2.单车检测"};
 117   1              uchar dat_3[] = {"3.参数设置"};
C51 COMPILER V7.07   KEY_NEW                                                               06/14/2007 21:11:22 PAGE 3   

 118   1              uchar dat_4[] = {"4.历史数据"};
 119   1              uchar dat_5[] = {"5.两相测量"};
 120   1      //      lcd_wrc(0x01);
 121   1      //      ldelay(200);
 122   1              page_new = 0;
 123   1              lcd_add(1,1);
 124   1              for (i=0; i<10; i++)
 125   1              {
 126   2                      lcd_wrd(dat_1[i]);
 127   2              }
 128   1      //      lcd_wrc(0x04);
 129   1              lcd_add(2,1);
 130   1              for (i=0; i<10; i++)
 131   1              {
 132   2                      lcd_wrd(dat_2[i]);
 133   2              }
 134   1              lcd_add(3,1);
 135   1              for (i=0; i<10; i++)
 136   1              {
 137   2                      lcd_wrd(dat_3[i]);
 138   2              }
 139   1              lcd_add(4,1);
 140   1              for (i=0; i<10; i++)
 141   1              {
 142   2                      lcd_wrd(dat_4[i]);
 143   2              }
 144   1      //      lcd_wrc(0x34);
 145   1      //      lcd_wrc(0x05);
 146   1      }
 147          void page_0(void)
 148          {
 149   1              uchar dat_1[] = {"一二三四五六日"};
 150   1              uchar i = 0;
 151   1      
 152   1              basic_time ++;
 153   1              page_new = 0;
 154   1      
 155   1      //      lcd_wrc(0x01);
 156   1      //计算温度和湿度年月日
 157   1              if(basic_time==100)
 158   1              {
 159   2                      cal_temp_humi();
*** WARNING C206 IN LINE 159 OF KEY_NEW.C: 'cal_temp_humi': missing function-prototype
 160   2                      lcd_read_time();
*** WARNING C206 IN LINE 160 OF KEY_NEW.C: 'lcd_read_time': missing function-prototype
 161   2                      basic_time = 0;
 162   2              }
 163   1              else
 164   1              {
 165   2                      lcd_read_time();
 166   2              }
 167   1      
 168   1      //              cal_basic();            //
 169   1                      lcd_add(1,1);
 170   1                      lcd_dis_num_2(20);
*** WARNING C206 IN LINE 170 OF KEY_NEW.C: 'lcd_dis_num_2': missing function-prototype
*** ERROR C267 IN LINE 170 OF KEY_NEW.C: 'lcd_dis_num_2': requires ANSI-style prototype
 171   1                      lcd_dis_num_2((uint)b_data.year);
*** ERROR C202 IN LINE 171 OF KEY_NEW.C: 'b_data': undefined identifier
 172   1                      lcd_dis_ch(0xc4,0xea);          //uchar h,uchar l);
 173   1                      lcd_wrd(0x20);
 174   1                      lcd_wrd(0x20);
C51 COMPILER V7.07   KEY_NEW                                                               06/14/2007 21:11:22 PAGE 4   

 175   1                      lcd_add(1,5);
 176   1                      lcd_dis_num_2((uint)b_data.month);
*** ERROR C202 IN LINE 176 OF KEY_NEW.C: 'b_data': undefined identifier
 177   1                      lcd_dis_ch(0xd4,0xc2);
 178   1                      lcd_add(1,7);
 179   1                      lcd_dis_num_2((uint)b_data.date);
*** ERROR C202 IN LINE 179 OF KEY_NEW.C: 'b_data': undefined identifier
 180   1                      lcd_dis_ch(0xc8,0xd5);
 181   1                      lcd_add(2,1);
 182   1                      lcd_dis_ch(0xd0,0xc7);
 183   1                      lcd_dis_ch(0xc6,0xda);
 184   1      
 185   1      //              lcd_dis_num_1((uint)b_data.day);
 186   1                      i=b_data.day;
*** ERROR C202 IN LINE 186 OF KEY_NEW.C: 'b_data': undefined identifier
 187   1                      lcd_dis_ch(dat_1[2*(i-1)],dat_1[2*(i-1)+1]);
 188   1      
 189   1                      lcd_add(2,5);
 190   1                      lcd_dis_num_2((uint)b_data.hour);
*** ERROR C202 IN LINE 190 OF KEY_NEW.C: 'b_data': undefined identifier
 191   1                      lcd_wrd(0x3a);
 192   1      //              lcd_add(2,6);
 193   1                      lcd_dis_num_2((uint)b_data.minute);
*** ERROR C202 IN LINE 193 OF KEY_NEW.C: 'b_data': undefined identifier
 194   1                      lcd_wrd(0x3a);
 195   1      //              lcd_add(2,8);
 196   1                      lcd_dis_num_2((uint)b_data.second);
*** ERROR C202 IN LINE 196 OF KEY_NEW.C: 'b_data': undefined identifier
 197   1                      lcd_add(3,1);
 198   1                      lcd_dis_ch(0xca,0xaa);
 199   1                      lcd_dis_ch(0xb6,0xc8);
 200   1                      lcd_wrd(0x3a);
 201   1                      lcd_add(3,4);
 202   1                      lcd_dis_num_2((uint)b_data.humi);
*** ERROR C202 IN LINE 202 OF KEY_NEW.C: 'b_data': undefined identifier
 203   1      //              lcd_wrd(0x25);
 204   1                      lcd_dis_ch(0xa3,0xa5);
 205   1                      lcd_add(3,7);
 206   1                      lcd_dis_ch(0xc7,0xeb);
 207   1                      lcd_dis_ch(0xb0,0xb4);
 208   1                      lcd_add(4,1);
 209   1                      lcd_dis_ch(0xce,0xc2);
 210   1                      lcd_dis_ch(0xb6,0xc8);
 211   1                      lcd_wrd(0x3a);
 212   1                      lcd_add(4,4);
 213   1                      lcd_dis_num_2((uint)b_data.temp);
*** ERROR C202 IN LINE 213 OF KEY_NEW.C: 'b_data': undefined identifier
 214   1                      lcd_dis_ch(0xa1,0xe6);
 215   1                      lcd_add(4,7);
 216   1                      lcd_dis_ch(0xc8,0xa1);
 217   1                      lcd_dis_ch(0xcf,0xfb);
 218   1      
 219   1      }
 220          
 221          
 222          void ad_en(void)
 223          {
 224   1      /*
 225   1              e = 0;  //lcd not enable
 226   1              le = 0; //three-states latched
 227   1              ce = 0; //ad enable
 228   1      */
C51 COMPILER V7.07   KEY_NEW                                                               06/14/2007 21:11:22 PAGE 5   

 229   1      }
 230          void lcd_en(void)
 231          {
 232   1              ce = 1; //ad not enable
 233   1              le = 0; //three-states latched
 234   1              e = 1;  //lcd enable
 235   1      }
 236          
 237          void three_en(void)
 238          {
 239   1              ce = 1; //ad not enable
 240   1              e = 0;  //lcd not enable
 241   1              le = 1; //tree-states open
 242   1      }
 243          
 244          
 245          void lcd_ini()
 246          {
 247   1              delay(100);
 248   1              lcd_wrc(0x34);
 249   1              delay(10);
 250   1              lcd_wrc(0x30);
 251   1              delay(10);
 252   1              lcd_wrc(0x01);
 253   1              delay(10);
 254   1              lcd_wrc(0x06);
 255   1              delay(10);
 256   1              lcd_wrc(0x0c);
 257   1              delay(200);
 258   1      }       
 259          void lcd_wrc(uchar com)
 260          {
 261   1              lcd_en();
 262   1              lcd_checkbusy();
 263   1              rs = 0;
 264   1              rw = 0;
 265   1              P0 = com;
 266   1              e = 1;
 267   1              delay(10);
 268   1              e = 0;
 269   1      }
 270          
 271          void lcd_wrd(uchar dat)
 272          {
 273   1      //      checkbusy();
 274   1              lcd_en();
 275   1              lcd_checkbusy();
 276   1              rs = 1;
 277   1              rw = 0;
 278   1              P0 = dat;
 279   1              e = 1;
 280   1              delay(5);
 281   1              e = 0;
 282   1      }
 283          void lcd_checkbusy()
 284          {
 285   1              
 286   1              uchar busy = 0;
 287   1              lcd_en();
 288   1              P0 = 0XFF;
 289   1              busy = P0;
 290   1              if(busy>0x7f)
C51 COMPILER V7.07   KEY_NEW                                                               06/14/2007 21:11:22 PAGE 6   

 291   1              {
 292   2                      rs = 0;
 293   2                      rw = 1;
 294   2                      e = 1;
 295   2                      busy = P0;
 296   2                      e = 0;
 297   2                      delay(10);
 298   2              }
 299   1      }
 300          uchar lcd_rdd();
 301          void delay(uchar n)
 302          {
 303   1              while(n--);
 304   1      }
 305          
 306          void ldelay(uchar n)
 307          {
 308   1              uchar a=100;
 309   1              while(a--)
 310   1              {
 311   2              while(n--);
 312   2              }
 313   1      }
 314          
 315          
 316          void lcd_on()
 317          {
 318   1              lcd_deng = 0;
 319   1      }
 320          void lcd_off()
 321          {
 322   1              lcd_deng = 1;
 323   1      }
 324          uchar lcd_read_ac()
 325          {
 326   1      //      uchar dat = 0;
 327   1              lcd_en();

⌨️ 快捷键说明

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