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

📄 main.lst

📁 读写ID卡源代码
💻 LST
📖 第 1 页 / 共 5 页
字号:
 218      =1  sbit FL   = 0xD1;
 219      =1  sbit OV   = 0xD2;
 220      =1  sbit RS0  = 0xD3;
 221      =1  sbit RS1  = 0xD4;
 222      =1  sbit F0   = 0xD5;
 223      =1  sbit AC   = 0xD6;
 224      =1  sbit CY   = 0xD7;
 225      =1  
 226      =1  /*------------------------------------------------
 227      =1  Interrupt Vectors:
 228      =1  Interrupt Address = (Number * 8) + 3
 229      =1  ------------------------------------------------*/
 230      =1  #define IE0_VECTOR      0  /* 0x03 External Interrupt 0 */
 231      =1  #define TF0_VECTOR      1  /* 0x0B Timer 0 */
 232      =1  #define IE1_VECTOR      2  /* 0x13 External Interrupt 1 */
 233      =1  #define TF1_VECTOR      3  /* 0x1B Timer 1 */
 234      =1  #define SIO_VECTOR      4  /* 0x23 Serial port */
 235      =1  #define TF2_VECTOR      5  /* 0x1B Timer 1 */
 236      =1  /*------------------------------------------------
 237      =1  ------------------------------------------------*/
 238      =1  
  12          //sbit    LED                           = P3^5;
  13          sbit    M_BIT               = P3^2;
  14          sbit    A_500                 = P1^5;
  15          sbit    B_500                 = P1^6;
  16          sbit    C_500                 = P1^7;
  17          sbit    led_1               =P3^3;
  18          sbit    led_2               =P3^4;
  19          sbit    led_3               =P3^5;
  20          sbit    led_4               =P3^7;
  21          sbit    SECOND_3            =P1^0;        //取消
  22          sbit    SECOND_8            =P1^1;        //抢庄
  23          sbit    save                =P1^2;
  24          sbit     vvvv               =P1^4;
  25          void sort(void);
  26          // Serial Number of the MFRC500 
  27          
  28          //unsigned char tt[2];
  29          uchar snr_counter=1;
  30          uchar M_STA;        //定时读写标志   =1,起始   =2
  31          unsigned char RCV_BYTE;
  32          unsigned char M_LRC;
  33          unsigned char M_BITS;
  34          unsigned char M_BYTES;
  35          uchar M_IDATA[5];
  36          uchar snr[4];
  37          uchar snr1[4];
C51 COMPILER V7.06   MAIN                                                                  11/07/2008 09:41:02 PAGE 6   

  38          uchar snr2[4];
  39          uchar snr3[4];
  40          uchar snr4[4];
  41          //uchar snr5[4];
  42          uchar rxhead;
  43          uchar txhead=0;
  44          uchar receive_buf1[1];
  45          uchar send_buf[8];
  46          uchar mjcounter;
  47          //uchar desk_counter=0;
  48          uchar mjdata;
  49          uchar sameoutvalue;
  50          uint  mscounter;
  51          uint  mscounter1;
  52          uint  secondcounter;
  53          uint  secondcounter1;
  54          //unsigned char blockdata[16];
  55          uchar size;
  56          uchar yyj;
  57          
  58          unsigned int yyjyj;
  59          unsigned char outnum;
  60          
  61          void init(void);
  62          //void led_flash(void);
  63          unsigned char mifare_init(void);
  64          unsigned char read_3card(void);
  65          unsigned char CMP_STRING(unsigned char *pt1,
  66                                   unsigned char *pt2,unsigned char len);
  67          //void rec_comm(void);
  68          unsigned char read_card3(void);
  69          void cpu_sleep(void);
  70          unsigned char output(uchar hhh);
  71          uchar press_key(void);
  72          void selectout(unsigned char tt);
  73          void swapdata(unsigned int *x,unsigned int *y);
  74          void press_data(uchar tty);
  75          unsigned char blockdata[16];
  76          void cmpdata(void);
  77          void sort_mjdata(void);
  78          //void rec_comm(void);
  79          void sameout(unsigned char tt);
  80          void clearout(void);
  81          void flash_led(void);
  82          void m_readcard(void);  
  83          unsigned char readcard(void);
  84          void write_eeprom(unsigned int addrdata,unsigned char data2);
  85          void write_pagedata(unsigned char pagenumber);
  86          unsigned char read_eeprom(unsigned int addrdata);
  87          void erase_eeprom(unsigned char sectors);
  88          void read_cardno(void);
  89          void select_500(unsigned char ss1);
  90          void led_light(unsigned char select);
  91          void read_first(void);
  92          void time2init(void);
  93          unsigned char readcard1(void);
  94          void on_led(unsigned char yyj);
  95          void off_led(unsigned char yyj);
  96          unsigned char readcance(void);
  97          unsigned char bdata flag;
  98          //              sbit out_flag=flag^0;
  99          //              sbit up_flag=flag^1;             //上活门标志
C51 COMPILER V7.06   MAIN                                                                  11/07/2008 09:41:02 PAGE 7   

 100          //              sbit down_flag=flag^2;           //下活门标志
 101          //              sbit life_flag=flag^3;           //生死门标志
 102          //              sbit second_flag=flag^4;         //输出二次标志
 103          //              sbit reset_flag=flag^5;
 104                          sbit s8_flag=flag^6;
 105                          sbit error_flag=flag^7;
 106          
 107          sbit  ACC0 = ACC^0;
 108          sbit  ACC7 = ACC^7;
 109          
 110          unsigned char bdata flag1;
 111                          sbit M_FLAG=flag1^0;
 112                          sbit HALF_FLAG=flag1^1;
 113                          sbit SHORT_FLAG=flag1^2;
 114                          sbit RCV_BIT=flag1^3;
 115                          sbit M_DATA_FLAG=flag1^4;
 116                          sbit receive_flag=flag1^5;
 117                          sbit R_MRC=flag1^6;
 118          
 119          
 120          unsigned char bdata flag2;
 121                          sbit cance_flag=flag2^0;
 122                          sbit output_flag=flag2^1;
 123                          sbit st_1=flag2^2;
 124                          sbit st_cance=flag2^3;
 125                          sbit st_a4=flag2^4;
 126                          sbit st_e=flag2^5;
 127                          sbit st_e1=flag2^6;
 128          
 129          
 130          unsigned char bdata flag3;
 131                          sbit st_e2=flag3^0;
 132                          sbit st_e3=flag3^1;
 133                          sbit st_e4=flag3^2;
 134                          sbit sec1=flag3^3;
 135                          sbit sec2=flag3^4;
 136                          sbit sec3=flag3^5;
 137                          sbit sec4=flag3^6;
 138          
 139          unsigned char bdata flag4;
 140                          sbit first_flag=flag4^0;
 141                          sbit second_flag=flag4^1;
 142                          sbit readsecond_flag=flag4^2;
 143                          sbit third_flag=flag4^3;
 144                          sbit readthird_flag=flag4^4;
 145                          sbit sansecond_flag=flag4^5;
 146                          sbit readcance_flag=flag4^6;
 147          /****************************************************************************
 148          ****************************************************************************/
 149          void    main (void)
 150          {
 151   1        unsigned char counter,counter2,ttt;
 152   1        unsigned char mfout=2;//readbuf[16];
 153   1        unsigned char tt1[2];
 154   1        unsigned char status1;
 155   1        unsigned char cardserialno[4];
 156   1        unsigned char *sak1;
 157   1        unsigned char i,ii,iii,tt,ss;
 158   1        unsigned int j;
 159   1        unsigned char c1=0,c2=0,c3=0,c4;
 160   1      
 161   1        init();
C51 COMPILER V7.06   MAIN                                                                  11/07/2008 09:41:02 PAGE 8   

 162   1      
 163   1        mjcounter=1;  
 164   1        
 165   1              yyjyj=0;
 166   1              read_cardno();
 167   1              for(;;)
 168   1              {
 169   2      //              secondcounter1++;
 170   2                      if(save==0)
 171   2                      {
 172   3                              read_first();
 173   3                      }
 174   2                      else
 175   2                      {
 176   3                              
 177   3                      }
 178   2              }
 179   1      }
 180          /****************************************************************************
 181          ****************************************************************************/
 182          unsigned char readcance(void)
 183          {
 184   1              unsigned char i,ii;
 185   1              for(i=4;i<8;i++)
 186   1              {
 187   2                      select_500(i);
 188   2                      ii=readcard();
 189   2                      if(ii==0)
 190   2                      {
 191   3                              led_light(6);
 192   3                              return 0;
 193   3                      }
 194   2      //              led_light(6);
 195   2              }
 196   1              return 1;
 197   1      }
 198          void on_led(unsigned char yyj)
 199          {
 200   1              switch(yyj)
 201   1              {
 202   2                      case 0:
 203   2                      led_1=0;
 204   2                      break;
 205   2                      case 1:
 206   2                      led_2=0;
 207   2                      break;
 208   2                      case 2:
 209   2                      led_3=0;
 210   2                      break;
 211   2                      case 3:
 212   2                      led_4=0;
 213   2                      break;
 214   2                      default:
 215   2                      break;
 216   2              }
 217   1      }
 218          void off_led(unsigned char yyj)
 219          {
 220   1              switch(yyj)
 221   1              {
 222   2                      case 0:
 223   2                      led_1=1;
C51 COMPILER V7.06   MAIN                                                                  11/07/2008 09:41:02 PAGE 9   

 224   2                      break;
 225   2                      case 1:
 226   2                      led_2=1;
 227   2                      break;
 228   2                      case 2:
 229   2                      led_3=1;
 230   2                      break;
 231   2                      case 3:
 232   2                      led_4=1;
 233   2                      break;
 234   2                      case 10:
 235   2                      led_1=1;
 236   2                      led_2=1;
 237   2                      led_3=1;
 238   2                      led_4=1;
 239   2                      break;
 240   2                      default:
 241   2                      break;
 242   2              }
 243   1      }
 244          void    init (void)
 245          {
 246   1      
 247   1                       IP=0x00;
 248   1                       TCON=1;    
 249   1                       TMOD=0x12;     //定时器0为8位自动重装;定时器1为16位计数器工作方式
 250   1                       time2init();
 251   1                            //外部中断0的触发方式为边沿方式
 252   1                       SCON=0x50;
 253   1                       PCON|=0x80;           //dual 4800X2=9600
 254   1      //               TH1=TL1=0xfa;        //TH1=TL1=256-(11059200/4800/32/12+0.5)
 255   1                       TH1=0x00;

⌨️ 快捷键说明

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