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

📄 cid.lst

📁 C 语言的 ID卡开发应用 详细的介绍和使用C语言开发ID读卡器
💻 LST
📖 第 1 页 / 共 2 页
字号:
 308   1           uchar temp1;
 309   1           uchar ByteCounter; //数组计数器
 310   1           uchar ByteCounter1;
 311   1           uchar *PData;
 312   1           uchar *PData1;
 313   1      ////////////////////初如化变量值
 314   1           PData=Read_RF_Data;
 315   1           PData1=ID_Data;
 316   1           temp=0;
 317   1           temp1=0;
 318   1           ByteCounter=0;
 319   1           ByteCounter1=0;
 320   1      /////////////////////循环效验
 321   1           WATCHDOG=~WATCHDOG;
 322   1      /////////////////////行校验
 323   1      for(ByteCounter1=0;ByteCounter1<5;ByteCounter1++)//有5个字节数据
 324   1      {
 325   2          temp=(((*(PData+ByteCounter))&0x10)>>4)+(((*(PData+ByteCounter))&0x08)>>3)+(((*(PData+ByteCounter))&0x
             -04)>>2)+(((*(PData+ByteCounter))&0x02)>>1);
 326   2          if((temp&0x01)==((*(PData+ByteCounter))&0x01))//效验高4位
 327   2           {
 328   3            temp1=(*(PData+ByteCounter)&0xfe)<<3;
 329   3            ByteCounter++;
 330   3            temp=(((*(PData+ByteCounter))&0x10)>>4)+(((*(PData+ByteCounter))&0x08)>>3)+(((*(PData+ByteCounter))&
             -0x04)>>2)+(((*(PData+ByteCounter))&0x02)>>1);
 331   3            if((temp&0x01)==((*(PData+ByteCounter))&0x01))//效验高4位
 332   3            {
 333   4             *(PData1+ByteCounter1)=temp1|((*(PData+ByteCounter)&0xfe)>>1);//高低位生成一个字节存入数组
 334   4             ByteCounter++;
 335   4            }
 336   3           else
 337   3           {
 338   4           ByteCounter1=5;//只要有一组不对则退出效验
 339   4           Clern_Number();//并清所有数据
 340   4           }
 341   3          }
 342   2         else
 343   2         	{
 344   3           ByteCounter1=5;//只要有一组不对则退出效验
 345   3           Clern_Number();//并清所有数据
 346   3          }
 347   2           WATCHDOG=~WATCHDOG;
 348   2         }
 349   1      /////////////////////列校验
 350   1      //......因没有必要所以先省略此处.........//
 351   1      /////////////////////生成校验和,并发送出去
 352   1         if(ByteCounter==10)
 353   1         {
 354   2          ID_Data[5]=ID_Data[0]+ID_Data[1]+ID_Data[2]+ID_Data[3]+ID_Data[4];//生成校验和
 355   2          if(MSEL==0) //此脚如果为低电位,为异步通信方式发送数据
 356   2           {
 357   3            CP=0;
 358   3            delay0_2ms(1);
 359   3            Send_RS232net(ID_Data,6); //调用串口发送函数
 360   3            delay0_2ms(1);
 361   3            CP=1;
 362   3           }
 363   2          Clern_Number();
C51 COMPILER V6.10  CID                                                                    11/05/2008 12:38:04 PAGE 7   

 364   2          dida(1);
 365   2          GREEN_LED=0x00;
 366   2          delay0_2ms(1000);//*****(正确读取一张卡号后要等待约一秒后再重新扫描)*****
 367   2         }
 368   1        }
 369          //************************************************************
 370          /*清暂存器*/
 371          //************************************************************
 372          void Clern_Number(void)
 373          {
 374   1        WATCHDOG=~WATCHDOG;
 375   1        Read_RF_Data[0]=0;
 376   1        Read_RF_Data[1]=0;
 377   1        Read_RF_Data[2]=0;
 378   1        Read_RF_Data[3]=0;
 379   1        Read_RF_Data[4]=0;
 380   1        Read_RF_Data[5]=0;
 381   1        Read_RF_Data[6]=0;
 382   1        Read_RF_Data[7]=0;
 383   1        Read_RF_Data[8]=0;
 384   1        Read_RF_Data[9]=0;
 385   1        Read_RF_Data[10]=0;
 386   1        ID_Data[0]=0;
 387   1        ID_Data[1]=0;
 388   1        ID_Data[2]=0;
 389   1        ID_Data[3]=0;
 390   1        ID_Data[4]=0;
 391   1        ID_Data[5]=0;
 392   1      }
 393          //**********************************************************
 394          /*串行口发送,接收程序*/
 395          //**********************************************************
 396          void Send_RS232net(uchar Data[],uchar Num) //串行口数据发送
 397          {
 398   1        uchar i=0;
 399   1        uchar *PData;
 400   1        PData=Data;
 401   1        WATCHDOG=~WATCHDOG;
 402   1        TH1=0xf3; //串行口波特率2400b/s
 403   1        TL1=0xf3;
 404   1        TR1=1;
 405   1        for(i=0;i<Num;i++)//有Num组号码要发送
 406   1         {
 407   2          SBUF=*(PData+i);
 408   2          while(TI==0);TI=0;//等待数据发送出去
 409   2          delay0_2ms(1);//等待后再发送
 410   2         }
 411   1          TR1=0;
 412   1        }
 413          //*****************************************************
 414          /*延时0.2ms*count*/
 415          //*****************************************************
 416          void delay0_2ms(uint count)
 417          {
 418   1         uint k;
 419   1         while(count--!=0)
 420   1          {
 421   2           for(k=0;k<50;k++)
 422   2           {
 423   3            WATCHDOG=~WATCHDOG;
 424   3           }
 425   2          }
C51 COMPILER V6.10  CID                                                                    11/05/2008 12:38:04 PAGE 8   

 426   1      }
 427          void delay1ms(uint count)
 428          {
 429   1         uint k;
 430   1         while(count--!=0)
 431   1         {
 432   2          for(k=0;k<250;k++)
 433   2          {
 434   3           WATCHDOG=~WATCHDOG;
 435   3          }
 436   2         }
 437   1      }
 438          //*****************************************************
 439          /*鸣叫声*/
 440          //*****************************************************
 441          void dida(uchar j)
 442          {
 443   1         uchar i;
 444   1         for(i=0;i<j;i++)
 445   1         {
 446   2          DD=~DD;
 447   2          delay1ms(30);
 448   2          DD=~DD;
 449   2          delay1ms(30);
 450   2          }
 451   1      }
 452          ///////////////////////////////////////////////////////
C51 COMPILER V6.10  CID                                                                    11/05/2008 12:38:04 PAGE 9   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


size_t . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_INT    -----  2
P0 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0080H  1
P1 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0090H  1
P2 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A0H  1
P3 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B0H  1
PSW. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00D0H  1
PCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0087H  1
TCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0088H  1
TMOD . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0089H  1
TL0. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   008AH  1
TL1. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   008BH  1
TH0. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   008CH  1
TH1. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   008DH  1
IE . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A8H  1
IP . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B8H  1
SCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0098H  1
SBUF . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0099H  1
T2CON. . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00C8H  1
CY . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D7H  1
AC . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D6H  1
F0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D5H  1
RS1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D4H  1
RS0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D3H  1
OV . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D2H  1
P. . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D0H  1
TF1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008FH  1
TR1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008EH  1
TF0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008DH  1
TR0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008CH  1
IE1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008BH  1
IT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008AH  1
IE0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0089H  1
IT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0088H  1
EA . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AFH  1
ET2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ADH  1
ES . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ACH  1
ET1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ABH  1
EX1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AAH  1
ET0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A9H  1
EX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A8H  1
PT2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BDH  1
PS . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BCH  1
PT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BBH  1
PX1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BAH  1
PT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B9H  1
PX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B8H  1
RD . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B7H  1
WR . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B6H  1
T1 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B5H  1
T0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B4H  1
INT1 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B3H  1
INT0 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B2H  1
TXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B1H  1
RXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B0H  1
SM0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009FH  1
SM1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009EH  1
SM2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009DH  1
C51 COMPILER V6.10  CID                                                                    11/05/2008 12:38:04 PAGE 10  

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


REN. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009CH  1
TB8. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009BH  1
RB8. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009AH  1
TI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0099H  1
RI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0098H  1
T2EX . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0091H  1
T2 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0090H  1
TF2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CFH  1
EXF2 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CEH  1
RCLK . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CDH  1
TCLK . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CCH  1
EXEN2. . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CBH  1
TR2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CAH  1
C_T2 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00C9H  1
CP_RL2 . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00C8H  1
P17. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0097H  1
P37. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B7H  1
P16. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0096H  1
P36. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B6H  1
P15. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0095H  1
P35. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B5H  1
P14. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0094H  1
P34. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B4H  1
P13. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0093H  1
P33. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B3H  1
P12. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0092H  1
P32. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B2H  1
P11. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0091H  1
P31. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B1H  1
P10. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0090H  1
P30. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B0H  1
P27. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A7H  1
P07. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0087H  1
P26. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A6H  1
P06. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0086H  1
P25. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A5H  1
P05. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0085H  1
P24. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A4H  1
P04. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0084H  1
P23. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A3H  1
P03. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0083H  1
P22. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A2H  1
P02. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0082H  1
P21. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A1H  1
P01. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0081H  1
P20. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A0H  1
P00. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0080H  1
Read_RF_Data . . . . . . . . . . . . .  PUBLIC   DATA   ARRAY    0000H  11
ID_Data. . . . . . . . . . . . . . . .  PUBLIC   DATA   ARRAY    000BH  6
TIMER_1. . . . . . . . . . . . . . . .  PUBLIC   DATA   U_INT    0011H  2
Check_Data_bit . . . . . . . . . . . .  PUBLIC   DATA   BIT      0000H  1
Recive_RF_Data . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  header . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  pc . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
  temp . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0002H  1
  temp1. . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0003H  1
  temp2. . . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0004H  2
C51 COMPILER V6.10  CID                                                                    11/05/2008 12:38:04 PAGE 11  

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


  ByteCounter. . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0006H  1
  PData. . . . . . . . . . . . . . . .  AUTO     DATA   PTR      0007H  3
  BitCounter . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   000AH  1
  str. . . . . . . . . . . . . . . . .  LABEL    CODE   LABEL    -----  -----
Check_Data . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  temp . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  temp1. . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
  ByteCounter. . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0002H  1
  ByteCounter1 . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0003H  1
  PData. . . . . . . . . . . . . . . .  AUTO     DATA   PTR      0004H  3
  PData1 . . . . . . . . . . . . . . .  AUTO     DATA   PTR      0007H  3
Clern_Number . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
_Send_RS232net . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  Data . . . . . . . . . . . . . . . .  AUTO     DATA   PTR      0000H  3
  Num. . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0003H  1
  i. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0004H  1
  PData. . . . . . . . . . . . . . . .  AUTO     DATA   PTR      0005H  3
_delay0_2ms. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  count. . . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0000H  2
  k. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0002H  2
_delay1ms. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  count. . . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0000H  2
  k. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0002H  2
_dida. . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  j. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  i. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
Data_start . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
main . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1385    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     58    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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