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

📄 main.lst

📁 毕业设计—红外遥控电子密码锁
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.02   MAIN                                                                  05/17/2012 10:39:23 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\电子技术\Keil3\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <stc89.h>
   2          #define uchar unsigned char
   3          #define uint unsigned int
   4          
   5          sbit rs=P2^0;
   6          sbit rw=P2^1;
   7          sbit e=P2^2;
   8          #define port P0
   9          
  10          sbit beep=P1^0;
  11          sbit led=P1^1;
  12          
  13          uchar buffer[4];
  14          uchar n;
  15          uchar dat;
  16          uchar js;
  17          
  18          bit ks; //开锁
  19          uchar wrong;
  20          uchar bp;  //蜂鸣器时间控制
  21          
  22          
  23          uchar mima[17];
  24          uchar mima_temp[17];
  25          uchar mima1[17];
  26          uchar mmxg;   //密码修改控制
  27          
  28          uchar asc[17]="01234567890ABCDEF";
  29          
  30          void show(uchar c);
  31          void lcd_wr(uchar a,uchar c);
  32          void delay(uchar c);
  33          void send(uchar c);
  34          void IAP_Disable();
  35          void eeprom_wr();
  36          void eeprom_re();
  37          
  38          
  39          void delay(uchar c)   //1ms  误差 -0.651041666667us       
  40          {
  41   1          unsigned char a,b;
  42   1      
  43   1        while(c--)
  44   1        {
  45   2          for(b=102;b>0;b--)
  46   2              for(a=3;a>0;a--);
  47   2        }
  48   1      }
  49          
  50          void InitUART(void)      //9600
  51          {
  52   1          TMOD = 0x21;
  53   1          SCON = 0x50;
  54   1          TH1 = 0xFD;
  55   1          TL1 = TH1;
C51 COMPILER V8.02   MAIN                                                                  05/17/2012 10:39:23 PAGE 2   

  56   1          PCON = 0x00;
  57   1          EA = 1;
  58   1          ES = 1;
  59   1          TR1 = 1;
  60   1      }
  61          
  62          
  63          
  64          
  65          
  66          uchar lcd_re(uchar a)
  67          {
  68   1       uchar c;
  69   1       e=0;
  70   1       rw=1;
  71   1       rs=a;
  72   1       ;
  73   1       ;
  74   1       e=1;
  75   1       ;
  76   1       ;
  77   1       e=0;
  78   1       c=port;
  79   1       return c;
  80   1      }
  81          
  82          void busy()
  83          {
  84   1       uchar i;
  85   1       i=1;
  86   1       while((lcd_re(0)&0x80)&&i++);
  87   1      }
  88          
  89          void lcd_wr(uchar a,uchar c)
  90          {
  91   1       busy();
  92   1       e=0;
  93   1       rw=0;
  94   1       rs=a;
  95   1       port=c;
  96   1       ;
  97   1       ;
  98   1       e=1;
  99   1       ;
 100   1       ;
 101   1       e=0;
 102   1      }
 103          
 104          /**************初始化**************/
 105          
 106          void lcd_int(void)
 107          {
 108   1       delay(15);
 109   1       rs=0;
 110   1       rw=0;
 111   1       port=0x38;
 112   1       e=1;
 113   1       ;
 114   1       ;
 115   1       e=0;
 116   1       delay(5);
 117   1       port=0x38;
C51 COMPILER V8.02   MAIN                                                                  05/17/2012 10:39:23 PAGE 3   

 118   1       e=1;
 119   1       ;
 120   1       ;
 121   1       e=0;
 122   1       delay(5);
 123   1       port=0x38;
 124   1       e=1;
 125   1       ;
 126   1       ;
 127   1       e=0;
 128   1       rw=1;
 129   1       rs=1;
 130   1       lcd_wr(0,0x38); //显示模式设置 
 131   1       lcd_wr(0,0x08); //关闭显示
 132   1       lcd_wr(0,0x01); //清屏
 133   1       lcd_wr(0,0x02);
 134   1       lcd_wr(0,0x06); //光标又移,整屏不移动
 135   1       lcd_wr(0,0x0c); //开显示 
 136   1      
 137   1      }
 138          
 139          
 140          //mm:ss:s
 141          void show(uchar c)
 142          {
 143   1       uchar i;
 144   1       lcd_wr(0,0x80);
 145   1       lcd_wr(1,'E');
 146   1       lcd_wr(1,'n');
 147   1       lcd_wr(1,'t');
 148   1       lcd_wr(1,'e');
 149   1       lcd_wr(1,'r');
 150   1       lcd_wr(1,' ');
 151   1       lcd_wr(1,'P');
 152   1       lcd_wr(1,'a');
 153   1       lcd_wr(1,'s');
 154   1       lcd_wr(1,'s');
 155   1       lcd_wr(1,'W');
 156   1       lcd_wr(1,'o');
 157   1       lcd_wr(1,'r');
 158   1       lcd_wr(1,'d');
 159   1       lcd_wr(1,' ');
 160   1       if(mmxg==1) lcd_wr(1,'1');
 161   1       else if(mmxg==2) lcd_wr(1,'2');
 162   1       else lcd_wr(1,' ');
 163   1      
 164   1       lcd_wr(0,0xc0);
 165   1       if(c<17)
 166   1       {
 167   2        for(i=0;i<c;i++)
 168   2        lcd_wr(1,'*'); 
 169   2       }
 170   1       else
 171   1       {
 172   2        if(c==110)
 173   2        {
 174   3        lcd_wr(1,'P');
 175   3        lcd_wr(1,'a');
 176   3        lcd_wr(1,'s');
 177   3        lcd_wr(1,'s');
 178   3        lcd_wr(1,'W');
 179   3        lcd_wr(1,'o');
C51 COMPILER V8.02   MAIN                                                                  05/17/2012 10:39:23 PAGE 4   

 180   3        lcd_wr(1,'r');
 181   3        lcd_wr(1,'d');
 182   3        lcd_wr(1,' ');
 183   3        lcd_wr(1,'R');          //Ringht
 184   3        lcd_wr(1,'i');
 185   3        lcd_wr(1,'g');
 186   3        lcd_wr(1,'h');
 187   3        lcd_wr(1,'t');
 188   3        lcd_wr(1,'!');
 189   3        }
 190   2        if(c==119)
 191   2        {
 192   3        lcd_wr(1,'P');
 193   3        lcd_wr(1,'a');
 194   3        lcd_wr(1,'s');
 195   3        lcd_wr(1,'s');
 196   3        lcd_wr(1,'W');
 197   3        lcd_wr(1,'o');
 198   3        lcd_wr(1,'r');
 199   3        lcd_wr(1,'d');
 200   3        lcd_wr(1,' ');
 201   3        lcd_wr(1,'W');   //wrong
 202   3        lcd_wr(1,'r');
 203   3        lcd_wr(1,'o');
 204   3        lcd_wr(1,'n');
 205   3        lcd_wr(1,'g');
 206   3        lcd_wr(1,'!');
 207   3        }
 208   2       } 
 209   1       for(i=0;i<16;i++)               //写空格,防止显示重叠
 210   1        lcd_wr(1,' ');
 211   1       lcd_wr(0,0x0c); //开显示 
 212   1       
 213   1      }
 214          
 215          uchar mmyz()
 216          {
 217   1       uchar j;
 218   1       for(j=0;j<17;j++)
 219   1       {
 220   2        send(mima_temp[j]);
 221   2        send(mima[j]);
 222   2       }
 223   1       if(mima_temp[16]==mima[16])
 224   1       {
 225   2        for(j=0;j<mima[16];j++)
 226   2        if(mima_temp[j]!=mima[j])     return 2;  //密码错误退出
 227   2        wrong=0;
 228   2        return 1;
 229   2       }
 230   1       else return 2;
 231   1       
 232   1      }
 233          
 234          main()
 235          {
 236   1       uchar i,j;
 237   1       uchar k,s;
 238   1       eeprom_re();
 239   1       if(mima[16]>16)
 240   1       {
 241   2        for(j=0;j<17;j++)
C51 COMPILER V8.02   MAIN                                                                  05/17/2012 10:39:23 PAGE 5   

 242   2        mima[j]=6;
 243   2       }
 244   1       lcd_int();
 245   1       InitUART();
 246   1       ET0=1;
 247   1       EX1=1;  //开外部中断1    
 248   1       IT1=1;  //下隆沿中断 
 249   1       show(0);
 250   1       while(1)
 251   1       {

⌨️ 快捷键说明

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