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

📄 mima.lst

📁 电子密码锁24C02
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V8.08   MIMA                                                                  11/12/2007 17:13:27 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE MIMA
OBJECT MODULE PLACED IN mima.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE mima.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<reg51.h>
   2          #include<intrinS.h>
   3          #include<absacc.h>
   4          
   5          #define uchar unsigned char
   6          #define C02_write 0xa0
   7          #define C02_read  0xa1
   8          
   9          #define no0 0x28
  10          #define no1 0x14
  11          #define no2 0x24
  12          #define no3 0x44
  13          #define no4 0x12
  14          #define no5 0x22
  15          #define no6 0x42
  16          #define no7 0x11
  17          #define no8 0x21
  18          #define no9 0x41
  19          #define enter 0x88
  20          #define backspace 0x81
  21          
  22          #define lcm_write_cmd_add XBYTE[0x80FF]
  23          #define lcm_write_data_add XBYTE[0x81FF]
  24          #define lcm_read_busy_add XBYTE[0x82FF]
  25          #define lcm_read_data_add XBYTE[0x83FF]
  26          
  27          uchar idata temp5_password[6]={0x00,0x00,0x00,0x00,0x00,0x00};
  28          uchar idata key_code[]={no0,no1,no3,no4,no5,no6,no7,no8,no9};
  29          
  30          sbit SCL=P3^0;
  31          sbit SDA=P3^1;
  32          sbit i=P3^2;
  33          bit ack;
  34          
  35          uchar   int_counter_1;
  36          unsigned int int_counter_2;
  37          
  38          void delayms(uchar i)
  39          {
  40   1              uchar j;
  41   1              for(;i>0;i--)
  42   1              for(j=124;j>0;j--);
  43   1      }
  44          
  45          void longdelay(uchar i)
  46          {
  47   1              unsigned int j;
  48   1              for(;i>0;i--)
  49   1              for(j=10000;j>0;j--);
  50   1      }
  51          
  52          void lcm_wait()
  53          {
  54   1              while(lcm_read_busy_add&0x80);
  55   1      }
C51 COMPILER V8.08   MIMA                                                                  11/12/2007 17:13:27 PAGE 2   

  56          
  57          void lcm_write_cmd(uchar lcm_cmd)
  58          {
  59   1              lcm_wait();
  60   1              lcm_write_cmd_add=lcm_cmd;
  61   1      }
  62          
  63          void lcm_write_data(uchar lcm_data)
  64          {
  65   1              lcm_wait();
  66   1              lcm_write_data_add=lcm_data;
  67   1      }
  68          
  69          uchar lcm_read_data(void)
  70          {
  71   1              uchar lcm_data;
  72   1              lcm_wait();
  73   1              lcm_data=lcm_read_data_add;
  74   1              return(lcm_data);
  75   1      }
  76          
  77          void lcm_setxy(uchar x,uchar y)
  78          {
  79   1              if(y==1) lcm_write_cmd(x|0x80);
  80   1              if(y==2) lcm_write_cmd(x|0xc0);
  81   1      }
  82          
  83          void lcm_write_string(uchar *string)
  84          {
  85   1              uchar i=0;
  86   1              while(string[i]!='\0')
  87   1              {
  88   2                      lcm_write_data(string[i]);
  89   2                      i++;
  90   2              }
  91   1      }
  92          
  93          void lcm_roll_display(uchar *string,uchar y)
  94          {
  95   1              uchar counter;
  96   1              lcm_write_cmd(0x06);
  97   1              lcm_setxy(0,y);
  98   1              while(string[counter]!='\0')
  99   1              {
 100   2                      lcm_write_data(string[counter]);
 101   2                      counter++;
 102   2                      if (counter==19) lcm_setxy(19,y);
 103   2                      longdelay(2);
 104   2      
 105   2              }
 106   1              lcm_write_cmd(0x07);
 107   1              lcm_setxy(19,y);
 108   1                      while(string[counter]!='\0')
 109   1              {
 110   2                      lcm_write_data(string[counter]);
 111   2                      counter++;
 112   2                      if (counter==19) lcm_setxy(19,y);
 113   2                      longdelay(2);
 114   2      
 115   2              }
 116   1      }
 117          
C51 COMPILER V8.08   MIMA                                                                  11/12/2007 17:13:27 PAGE 3   

 118          void lcm_init()
 119          {
 120   1              delayms(20);
 121   1              lcm_write_cmd_add=0x38;
 122   1              delayms(4);
 123   1              lcm_write_cmd_add=0x38;
 124   1              delayms(1);
 125   1              lcm_write_cmd_add=0x38;
 126   1              lcm_write_cmd(0x38);
 127   1              lcm_write_cmd(0x0f);    
 128   1              lcm_write_cmd(0x01);
 129   1              lcm_write_cmd(0x06);
 130   1      }
 131          
 132          void I2C_start(void)
 133          {
 134   1              SDA=1;
 135   1              SCL=1;
 136   1              _nop_();
 137   1              _nop_();
 138   1              _nop_();
 139   1              _nop_();
 140   1              _nop_();
 141   1              SDA=0;
 142   1              _nop_();
 143   1              _nop_();
 144   1              _nop_();
 145   1              _nop_();
 146   1              _nop_();
 147   1              SCL=0;
 148   1              _nop_();
 149   1              _nop_();
 150   1      }
 151          
 152          void I2C_stop(void)
 153          {
 154   1              SDA=0;
 155   1              SCL=1;
 156   1              _nop_();
 157   1              _nop_();
 158   1              _nop_();
 159   1              _nop_();
 160   1              _nop_();
 161   1              SDA=1;
 162   1              _nop_();
 163   1              _nop_();
 164   1              _nop_();
 165   1              _nop_();
 166   1              _nop_();
 167   1              SCL=0;
 168   1              _nop_();
 169   1              _nop_();
 170   1      }
 171          
 172          void I2C_ackownledge(void)
 173          {
 174   1              SDA=0;
 175   1              _nop_();
 176   1              _nop_();
 177   1              SCL=1;
 178   1              _nop_();
 179   1              _nop_();
C51 COMPILER V8.08   MIMA                                                                  11/12/2007 17:13:27 PAGE 4   

 180   1              _nop_();
 181   1              _nop_();
 182   1              _nop_();
 183   1              SCL=0;
 184   1              _nop_();
 185   1              _nop_();
 186   1              _nop_();
 187   1      }
 188          
 189          void I2C_no_ackownledge(void)
 190          {
 191   1              SDA=1;
 192   1              _nop_();
 193   1              _nop_();
 194   1              SCL=1;
 195   1              _nop_();
 196   1              _nop_();
 197   1              _nop_();
 198   1              _nop_();
 199   1              _nop_();
 200   1              SCL=0;
 201   1              _nop_();
 202   1              _nop_();
 203   1              _nop_();
 204   1      }
 205          
 206          void I2C_sendB(uchar byte)
 207          {
 208   1              uchar counter;
 209   1              for(counter=0;counter<8;counter++)
 210   1              {
 211   2                      if(byte&0x80)   SDA=1;
 212   2                      else    SDA=0;
 213   2                      _nop_();
 214   2                      SCL=1;
 215   2                      _nop_();
 216   2                      _nop_();
 217   2                      _nop_();
 218   2                      _nop_();
 219   2                      _nop_();
 220   2                      SCL=0;
 221   2                      _nop_();

⌨️ 快捷键说明

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