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

📄 password.lst

📁 RZ-51V20 实例程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V8.02   PASSWORD                                                              08/12/2012 20:55:13 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE PASSWORD
OBJECT MODULE PLACED IN PASSWORD.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE PASSWORD.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<reg52.h>
   2          #define uint unsigned int
   3          #define uchar unsigned char
   4          void key_scan();
   5          uchar count0,count1,count3,num,n=0,temp,a,j,count4;
   6          uchar mima[8];                                                  //初始密码存储区
   7          uchar tab_key[50];                                              //输入密码存储区
   8          uchar code table[]={
   9          0x3f,0x06,0x5b,0x4f,
  10          0x66,0x6d,0x7d,0x07,
  11          0x7f,0x6f,0x77,0x7c,
  12          0x39,0x5e,0x79,0x71};
  13          bit enterflag;                                                  //确认键按下与否的标志
  14          bit mimaflag;                                                   //密码正确与否的标志
  15          bit xiugaiflag;                                                 //修改密码标志  
  16          bit enter1flag;                                         //修改密码确认键标志    
  17          sbit red=P3^7;
  18          sbit bell=P3^6;
  19          sbit rs=P2^0;
  20           sbit rw=P2^1;
  21          sbit lcden=P2^2;
  22          sbit scl=P3^4;
  23          sbit sda=P3^5;
  24          uchar code table1[]="input the passco";
  25          uchar code table2[]="de:     --------";
  26          uchar code table3[]="*";
  27          uchar code table4[]="right   (^_^)   ";
  28          uchar code table5[]="first  error!!!!";
  29          uchar code table6[]="second error!!!!";
  30          uchar code table7[]="third error see ";
  31          uchar code table8[]="u tomorrow (^_^)";
  32          uchar code table9[]="define the passc";
  33          uchar code table10[]="ode:    --------";
  34          uchar code table11[]="code   is    new";
  35          //******************************键盘消抖函数*******************************
  36          void delay1()
  37          { ;; }
  38          void delay2(uchar x)
  39          {
  40   1              uchar a,b;
  41   1              for(a=x;a>0;a--)
  42   1               for(b=100;b>0;b--);
  43   1      }
  44                  
  45          void delay(uint z)
  46          {
  47   1              uint x,y;
  48   1              for(x=z;x>0;x--)
  49   1                      for(y=110;y>0;y--);
  50   1      }
  51          
  52          //****************************i2c驱动开始*******************************
  53          void start()  //开始信号
  54          {       
  55   1              sda=1;
C51 COMPILER V8.02   PASSWORD                                                              08/12/2012 20:55:13 PAGE 2   

  56   1              delay1();
  57   1              scl=1;
  58   1              delay1();
  59   1              sda=0;
  60   1              delay1();
  61   1      }
  62          
  63          void stop()   //停止
  64          {
  65   1              sda=0;
  66   1              delay1();
  67   1              scl=1;
  68   1              delay1();
  69   1              sda=1;
  70   1              delay1();
  71   1      }
  72          //****************************应答信号*************************************
  73          void respond()  
  74          {
  75   1              uchar i;
  76   1              scl=1;
  77   1              delay1();
  78   1              while((sda==1)&&(i<250))i++;
  79   1              scl=0;
  80   1              delay1();
  81   1      }
  82          //*****************************写字节操作函数**********************************
  83          void write_byte(uchar date)
  84          {
  85   1              uchar i,temp;
  86   1              temp=date;
  87   1              for(i=0;i<8;i++)
  88   1              {
  89   2                      temp=temp<<1;                   //保持最高位,左移到进位CY
  90   2                      scl=0;
  91   2                  delay1();
  92   2                      sda=CY;
  93   2                      delay1();
  94   2                      scl=1;
  95   2                      delay1();
  96   2              }
  97   1              scl=0;
  98   1              delay1();
  99   1              sda=1;//总线释放
 100   1              delay1();
 101   1      }
 102          //*******************************读字节操作函数*****************************
 103          uchar read_byte()
 104          {
 105   1              uchar i,k;
 106   1              scl=0;
 107   1              delay1();
 108   1              sda=1;
 109   1              delay1();
 110   1              for(i=0;i<8;i++)
 111   1              {
 112   2                      scl=1;
 113   2                      delay1();       
 114   2                      k=(k<<1)|sda;    //或运算,放到最低位
 115   2                      scl=0;
 116   2                      delay1();       
 117   2              }
C51 COMPILER V8.02   PASSWORD                                                              08/12/2012 20:55:13 PAGE 3   

 118   1              return k;
 119   1      }
 120          //**********************************写函数******************************
 121          void write_add(uchar address,uchar date)
 122          {
 123   1              start();
 124   1              write_byte(0xa0);
 125   1              respond();
 126   1              write_byte(address);
 127   1              respond();
 128   1              write_byte(date);
 129   1              respond();
 130   1              stop();
 131   1      }
 132          //*******************************读函数*************************************
 133          uchar read_add(uchar address)
 134          {
 135   1              uchar date;
 136   1              start();
 137   1              write_byte(0xa0);
 138   1              respond();
 139   1              write_byte(address);
 140   1              respond();
 141   1              start();
 142   1              write_byte(0xa1);
 143   1              respond();
 144   1              date=read_byte();
 145   1              stop();
 146   1              return date;
 147   1      }
 148          //*******************************i2c驱动程序结束*************************************
 149          
 150          
 151          
 152          
 153          
 154          
 155          //****************************LCD1602驱动程序开始*******************************
 156          void write_com(uchar com)
 157          {
 158   1              rs=0;
 159   1              lcden=0;
 160   1              P0=com;
 161   1              delay(5);
 162   1              lcden=1;
 163   1              delay(5);
 164   1              lcden=0;        
 165   1      }
 166          
 167          void write_date(uchar date)
 168          {
 169   1              rs=1;
 170   1              lcden=0;
 171   1              P0=date;
 172   1              delay(5);
 173   1              lcden=1;
 174   1              delay(5);
 175   1              lcden=0;        
 176   1      }
 177          ////**********************************LCD显示函数开始**************************************
 178          void lcd_display()
 179          {
C51 COMPILER V8.02   PASSWORD                                                              08/12/2012 20:55:13 PAGE 4   

 180   1      uchar i=0;
 181   1      write_com(0x80+0x40+8);
 182   1      for(i=0;i<n;i++)
 183   1      {
 184   2      write_date(table3[0]);  //display "*"
 185   2      }
 186   1      }
 187          
 188          
 189          
 190          
 191          
 192          
 193          
 194          
 195          //***************************************密码比较函数********************************
 196          bit mimacmp()                                   
 197          {
 198   1              bit flag;
 199   1              uchar i;
 200   1              for(i=0;i<8;i++)
 201   1                      {
 202   2                              if(mima[i]==tab_key[i])
 203   2                                      flag=1;
 204   2                              else
 205   2                                      {
 206   3                                      flag=0;
 207   3                                      i=8;
 208   3                                      }
 209   2                      }
 210   1              return(flag);                                                   //返回flag
 211   1      }
 212          
 213          
 214          
 215          //****************************************键盘功能分配函数群开始****************************
 216          //** 0 ** 1 **2 ** 3**                     
 217          //** 4** 5** 6 **7 **
 218          //**8** 9** 确认(A)  **无效(B)
 219          //**取消(C)**修改密码键(D)**确认修改键(E)**无效(F)
 220          
 221          
 222          
 223          
 224          void key_manage1()
 225          {
 226   1      tab_key[n]=0;
 227   1      n++;
 228   1      if(xiugaiflag==1)
 229   1      {
 230   2      mima[count4]=0;
 231   2      count4++;
 232   2      }
 233   1      }
 234          
 235          void key_manage2()
 236          {
 237   1      
 238   1      tab_key[n]=1;
 239   1      n++;
 240   1      if(xiugaiflag==1)
 241   1      {
C51 COMPILER V8.02   PASSWORD                                                              08/12/2012 20:55:13 PAGE 5   

 242   2      mima[count4]=1;
 243   2      count4++;
 244   2      }
 245   1      }
 246          
 247          void key_manage3()
 248          {
 249   1      
 250   1      tab_key[n]=2;
 251   1      n++;
 252   1      if(xiugaiflag==1)
 253   1      {
 254   2      mima[count4]=2;
 255   2      count4++;
 256   2      }
 257   1      }
 258          
 259          void key_manage4()

⌨️ 快捷键说明

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