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

📄 key.lst

📁 这是单片机驱动液晶显示器12864和键盘的源代码
💻 LST
字号:
C51 COMPILER V7.07   KEY                                                                   03/12/2007 20:04:05 PAGE 1   


C51 COMPILER V7.07, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN key.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE key.c 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 you_on  0x0f
   7          
   8          #define BIT0    0X01
   9          #define BIT1    0X02
  10          #define BIT2    0X04
  11          #define BIT3    0X08
  12          #define BIT4    0X10
  13          #define BIT5    0X20
  14          #define BIT6    0X40
  15          #define BIT7    0X80
  16          
  17          
  18                  
  19          //全局变量定义
  20          sbit rs = P1^7;
  21          sbit rw  = P1^6;
  22          sbit e = P2^1;
  23          sbit lcd_deng = P2^3;
  24          
  25          
  26          //函数申明
  27          void lcd_ini(void);     
  28          void lcd_wrc(uchar com);
  29          void lcd_wrd(uchar dat);
  30          void lcd_checkbusy();
  31          void delay(uchar n);
  32          void ldelay(uchar n);
  33          void lcd_on();
  34          void lcd_off();
  35          uchar lcd_read_ac();
  36          void lcd_dis_num(uint dat);
  37          void lcd_dis_ch(uchar h,uchar l);
  38          void lcd_add(uchar h,uchar l);
  39          
  40          uchar key_data(void);
  41          
  42          
  43          
  44          void main()
  45          {
  46   1              uchar i;
  47   1              
  48   1              lcd_off();
  49   1              lcd_on();
  50   1              lcd_ini();
  51   1              lcd_add(2,1);
  52   1              lcd_dis_ch(0xb4,0xa1);
  53   1              lcd_dis_ch(0xb4,0xa1);
  54   1              lcd_dis_ch(0xb4,0xa1);
  55   1              i=lcd_read_ac();
C51 COMPILER V7.07   KEY                                                                   03/12/2007 20:04:05 PAGE 2   

  56   1              lcd_dis_num(i);
  57   1      //      lcd_wrc(you_on);        //游标开关
  58   1      //      lcd_wrc(0x10);          //光标左移
  59   1              lcd_add(1,1);
  60   1              lcd_dis_num(3);
  61   1      //      ldelay(10);
  62   1              while(1)
  63   1              {
  64   2      //              lcd_wrd(0x30+keydata);
  65   2      
  66   2      
  67   2      /*              
  68   2                      for(i=0;i<5;i++)
  69   2                      {
  70   2                              delay(100);
  71   2                              lcd_dis_num(i);
  72   2                              delay(100);
  73   2                      }
  74   2      //              ldelay(100);
  75   2      */
  76   2              }
  77   1      }
  78          
  79          
  80          void lcd_ini()
  81          {
  82   1              delay(100);
  83   1              lcd_wrc(0x34);
  84   1              lcd_wrc(0x30);
  85   1              lcd_wrc(0x01);
  86   1              lcd_wrc(0x06);
  87   1              lcd_wrc(0x0c);
  88   1              delay(100);
  89   1      }       
  90          void lcd_wrc(uchar com)
  91          {
  92   1              lcd_checkbusy();
  93   1              rs = 0;
  94   1              rw = 0;
  95   1              e = 1;
  96   1              P0 = com;       
  97   1              P0 = com;
  98   1              delay(10);
  99   1              e = 0;
 100   1      }
 101          
 102          void lcd_wrd(uchar dat)
 103          {
 104   1              lcd_checkbusy();
 105   1              rs = 1;
 106   1              rw = 0;
 107   1              e = 1;
 108   1              P0 = dat;
 109   1              P0 = dat;
 110   1              delay(5);
 111   1              e = 0;
 112   1      }
 113          void lcd_checkbusy()
 114          {
 115   1              uchar busy;
 116   1              P0 = 0XFF;
 117   1              busy = P0;
C51 COMPILER V7.07   KEY                                                                   03/12/2007 20:04:05 PAGE 3   

 118   1              if(busy>0x7f)
 119   1              {
 120   2                      rs = 0;
 121   2                      rw = 1;
 122   2                      e = 1;
 123   2                      busy = P0;
 124   2                      e = 0;
 125   2                      delay(10);
 126   2              }
 127   1      }
 128          uchar lcd_rdd();
 129          void delay(uchar n)
 130          {
 131   1              while(n--);
 132   1      }
 133          void ldelay(uchar n)
 134          {
 135   1              uchar a=100;
 136   1              while(a--)
 137   1              {
 138   2              while(n--);
 139   2              }
 140   1      }
 141          void lcd_on()
 142          {
 143   1              lcd_deng = 0;
 144   1      }
 145          void lcd_off()
 146          {
 147   1              lcd_deng = 1;
 148   1      }
 149          uchar lcd_read_ac()
 150          {
 151   1              uchar dat;
 152   1      //      P0 = 0X00;
 153   1              rs = 0;
 154   1              rw = 1;
 155   1              e = 1;
 156   1              dat = P0;
 157   1              dat = P0;
 158   1              e = 0;
 159   1              return(dat&0x7f);
 160   1      }
 161          void lcd_dis_num(uint dat)
 162          {
 163   1          uint a=0;
 164   1          dat =dat%10000;
 165   1          a =dat/1000;
 166   1          lcd_wrd(0x30+a);
 167   1          dat =dat%1000;
 168   1          a =dat/100;
 169   1          lcd_wrd(0x30+a);
 170   1          dat =dat%100;
 171   1          a=dat/10;
 172   1          lcd_wrd(0x30+a);
 173   1          dat =dat%10;
 174   1          lcd_wrd(0x30+dat);
 175   1      }
 176          void lcd_dis_ch(uchar h,uchar l)
 177          {
 178   1          lcd_wrd(h);
 179   1          lcd_wrd(l);
C51 COMPILER V7.07   KEY                                                                   03/12/2007 20:04:05 PAGE 4   

 180   1      }
 181          
 182          void lcd_add(uchar h,uchar l)       //定位地址
 183          {
 184   1        l--;
 185   1        switch(h)
 186   1        {
 187   2          case 1:
 188   2          {
 189   3            lcd_wrc(0x80+l);
 190   3            break;
 191   3          }
 192   2          case 2:
 193   2          {
 194   3            lcd_wrc(0x90+l);
 195   3            break;
 196   3          }
 197   2          case 3:
 198   2          {
 199   3            lcd_wrc(0x88+l);
 200   3            break;
 201   3          }
 202   2          case 4:
 203   2          {
 204   3            lcd_wrc(0x98+l);
 205   3            break;
 206   3          }
 207   2        }
 208   1      }
 209          
 210          


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


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

⌨️ 快捷键说明

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