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

📄 text7.lst

📁 单片机AT89S52控制MFRC500以及MAX485实现读取IC卡信息和多机通信功能
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   TEXT7                                                                 04/10/2009 11:52:04 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE TEXT7
OBJECT MODULE PLACED IN Text7.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Text7.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "send.h"
   2          
   3          void main(void)
   4          {
   5   1              bit searchcard_f=0,key_f=0,check_f=0,read_f=0,write_f=0;
   6   1              bee=0;
   7   1              TMOD = 0x20;
   8   1              SCON = 0xd0;
   9   1              TH1 = 250;
  10   1              TL1 = 250;
  11   1              TR1 = 1;
  12   1              PCON = 0x80;                                            // SMOD=1
  13   1              EA = 0;
  14   1              DE=0;                                  //禁止发送,禁止接收
  15   1              RE=1;   
  16   1              LCD_Init ();    
  17   1              while(!searchcard_f)                //寻卡
  18   1              {
  19   2                      write_f=0;
  20   2                      searchcard_f=search();
  21   2                      Delay_ms(5);
  22   2              }
  23   1              while(!key_f)                                //发送密码
  24   1              {                                                          
  25   2                      searchcard_f=0;
  26   2                      key_f=password();
  27   2                      Delay_ms(5);
  28   2              }
  29   1              while(!check_f)                             //密码验证
  30   1              {
  31   2                  key_f=0;
  32   2                      check_f=check_password();
  33   2                      Delay_ms(5);
  34   2              }
  35   1              while(!read_f)                              //读数据
  36   1              {
  37   2                      check_f=0;
  38   2                      read_f=read();
  39   2                      Delay_ms(5);
  40   2              }
  41   1              DE=1;                                  //允许发送,允许接收
  42   1              RE=0;
  43   1              Delay_ms(50);
  44   1              while(!Transmit_f)              //主从机通信
  45   1              {
  46   2                      Transmit();     
  47   2              }
  48   1              dataprocess();
  49   1              DE=0;                                  //禁止发送,禁止接收
  50   1              RE=1;
  51   1              Delay_ms(2);
  52   1              while(!write_f)                           //写数据
  53   1              {
  54   2                  read_f=0;           
  55   2                      write_f=write();
C51 COMPILER V7.50   TEXT7                                                                 04/10/2009 11:52:04 PAGE 2   

  56   2                      bee=write_f;
  57   2                      Delay_ms(255);
  58   2                      Delay_ms(255);
  59   2                      bee=0;
  60   2              }
  61   1              Display();
  62   1              Delay_ms(255);
  63   1      while(1);
  64   1      }
  65          /********************寻卡过程*********************/ 
  66          bit search()
  67          {
  68   1              uchar i;
  69   1              TB8=1;
  70   1              Send(SEARCHCARD[0]);
  71   1              TB8=0;
  72   1              Send(SEARCHCARD[1]);
  73   1              Send(SEARCHCARD[2]);
  74   1              Send(SEARCHCARD[3]);
  75   1              TB8=1;
  76   1              Send(SEARCHCARD[4]);
  77   1              for(i=0;i<9;i++)
  78   1              {
  79   2                      return_frame[i]=Receive();
  80   2                      if(return_frame[0]!=0x47)
  81   2                      return 0;
  82   2              }
  83   1              for(i=0;i<9;i++)
  84   1              {
  85   2                              Send(return_frame[i]);
  86   2              }
  87   1              if(return_frame[2]!=0x00)
  88   1                      return 0;
  89   1              else
  90   1              {
  91   2                      
  92   2                      return 1;
  93   2              }
  94   1              
  95   1      }
  96          /***********************发送密码******************/ 
  97          bit password()
  98          {
  99   1              uint i;
 100   1              TB8=1;
 101   1              Send(KEY[0]);
 102   1              TB8=0;
 103   1              Send(KEY[1]);
 104   1              Send(KEY[2]);
 105   1              Send(KEY[3]);   
 106   1              Send(KEY[4]);
 107   1              TB8=1;
 108   1              Send(KEY[5]);
 109   1              Send(KEY[6]);
 110   1              Send(KEY[7]);   
 111   1              Send(KEY[8]);
 112   1              Send(KEY[9]);
 113   1              Send(KEY[10]);
 114   1              Send(KEY[11]);  
 115   1              for(i=0;i<5;i++)
 116   1              {
 117   2                      return_frame[i]=Receive();
C51 COMPILER V7.50   TEXT7                                                                 04/10/2009 11:52:04 PAGE 3   

 118   2                      if(return_frame[0]!=0x47)
 119   2                      return 0;
 120   2              }
 121   1              if(return_frame[2]!=0x00)
 122   1                      return 0;
 123   1              for(i=0;i<5;i++)
 124   1              {
 125   2                      Send(return_frame[i]);
 126   2              }
 127   1              return 1;
 128   1      }
 129          
 130          /********************密码验证*********************/ 
 131          bit check_password()
 132          {
 133   1              uchar i;
 134   1              TB8=1;
 135   1              Send(CHECK[0]);
 136   1              TB8=0;
 137   1              Send(CHECK[1]);
 138   1              Send(CHECK[2]);
 139   1              Send(CHECK[3]);
 140   1              Send(CHECK[4]);
 141   1              TB8=1;
 142   1              Send(CHECK[5]);
 143   1      
 144   1              for(i=0;i<5;i++)
 145   1              {
 146   2                      return_frame[i]=Receive();
 147   2                      if(return_frame[0]!=0x47)
 148   2                      return 0;
 149   2              }
 150   1              if(return_frame[2]!=0x00)
 151   1                      return 0;
 152   1              for(i=0;i<5;i++)
 153   1              {
 154   2                      Send(return_frame[i]);
 155   2              }
 156   1              return 1;       
 157   1      }
 158          
 159          /********************读卡*********************/ 
 160          bit read()
 161          {
 162   1          uchar i;
 163   1              TB8=1;
 164   1              Send(READDATA[0]);
 165   1              TB8=0;
 166   1              Send(READDATA[1]);
 167   1              Send(READDATA[2]);
 168   1              Send(READDATA[3]);
 169   1              TB8=1;
 170   1              Send(READDATA[4]);
 171   1      
 172   1              for(i=0;i<21;i++)
 173   1              {
 174   2                      return_frame[i]=Receive();
 175   2                      if(return_frame[0]!=0x47)
 176   2                      return 0;
 177   2              }
 178   1              if(return_frame[2]!=0x00)
 179   1                      return 0;
C51 COMPILER V7.50   TEXT7                                                                 04/10/2009 11:52:04 PAGE 4   

 180   1              for(i=0;i<21;i++)
 181   1              {
 182   2                      Send(return_frame[i]);
 183   2              }
 184   1              DATA[0]=return_frame[4];
 185   1              DATA[1]=return_frame[5];
 186   1              DATA[2]=return_frame[6];
 187   1              return 1;
 188   1      }
 189          
 190          /********************写卡*********************/ 
 191          bit write()
 192          {
 193   1              uchar i;
 194   1              TB8=1;
 195   1              Send(WRITEDATA[0]);
 196   1              TB8=0;
 197   1              Send(WRITEDATA[1]);
 198   1              Send(WRITEDATA[2]);
 199   1              Send(WRITEDATA[3]);
 200   1              TB8=1;
 201   1              Send(WRITEDATA[4]);
 202   1              TB8=0;
 203   1              Send(WRITEDATA[5]);
 204   1              Send(WRITEDATA[6]);
 205   1              for(i=7;i<20;i++)
 206   1              {
 207   2                      Send(WRITEDATA[i]);
 208   2              }
 209   1              TB8=0;
 210   1              Send(WRITEDATA[20]);            
 211   1              for(i=0;i<5;i++)
 212   1              {
 213   2                      return_frame[i]=Receive();
 214   2                      if(return_frame[0]!=0x47)
 215   2                      return 0;
 216   2              }
 217   1              for(i=0;i<5;i++)
 218   1              {
 219   2                      Send(return_frame[i]);
 220   2              }
 221   1              if(return_frame[2]!=0x00)
 222   1                      return 0;
 223   1              else
 224   1              {
 225   2                      
 226   2                      return 1;
 227   2              }
 228   1      }
 229          
 230          /***************发送单字节数据********************/ 
 231          void Send(uchar m)
 232          {
 233   1              TI = 0;
 234   1              DE = 0;
 235   1              RE = 0;
 236   1              SBUF = m;
 237   1          while(!TI);
 238   1              TI = 0;
 239   1      }
 240          
 241          /***************接收单字节数据*******************/
C51 COMPILER V7.50   TEXT7                                                                 04/10/2009 11:52:04 PAGE 5   

⌨️ 快捷键说明

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