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

📄 wiegand.lst

📁 KEIL C上的门禁控制器源代码
💻 LST
📖 第 1 页 / 共 3 页
字号:
 642   1              Wiegand_dat=Wiegand_dat<<8;
 643   1      
 644   1              Wiegand_dat=Wiegand_dat+areaaddr;       // 分组地址
 645   1              Wiegand_dat=Wiegand_dat<<8;
 646   1      
 647   1              Wiegand_dat=Wiegand_dat+decaddr;        // 设备地址
 648   1              Wiegand_dat=Wiegand_dat<<8;
 649   1      
 650   1              Wiegand_dat=Wiegand_dat+2;                      // 双锁联动
 651   1      
 652   1              Send_Wiegand();
 653   1      
 654   1              for(i=0; i<10; i++)
 655   1                      Wait10ms();
 656   1      
 657   1              // 发两次保险
 658   1              Wiegand_dat=0x000000f8;                         // F8设置锁控方式命令
 659   1              Wiegand_dat=Wiegand_dat<<8;
 660   1      
 661   1              Wiegand_dat=Wiegand_dat+areaaddr;       // 分组地址
 662   1              Wiegand_dat=Wiegand_dat<<8;
 663   1      
 664   1              Wiegand_dat=Wiegand_dat+decaddr;        // 设备地址
 665   1              Wiegand_dat=Wiegand_dat<<8;
 666   1      
 667   1              Wiegand_dat=Wiegand_dat+2;                      // 双锁联动
 668   1      
 669   1              Send_Wiegand();
 670   1      
 671   1              Wiegand_dat=0;
 672   1              Wgnd_count=0;
 673   1      }
 674          
 675          ///////////////////////////////////////////////////////////////////////////////
C51 COMPILER V7.07   WIEGAND                                                               09/15/2005 12:05:42 PAGE 12  

 676          // 自定义正常操作发送合法用户号
 677          ///////////////////////////////////////////////////////////////////////////////
 678          void normal_send()
 679          {
 680   1              idata uchar i;
 681   1      
 682   1              Wiegand_dat=areaaddr;                           // 分组地址
 683   1              Wiegand_dat=Wiegand_dat<<8;
 684   1      
 685   1              Wiegand_dat=Wiegand_dat+decaddr;        // 设备地址
 686   1              Wiegand_dat=Wiegand_dat<<16;
 687   1      
 688   1              Wiegand_dat=Wiegand_dat+asctoint(User_id);      // 用户编号
 689   1      
 690   1              Send_Wiegand();
 691   1      
 692   1              for(i=0; i<7; i++)
 693   1                      Wait10ms();
 694   1      
 695   1              // 发两次保险
 696   1              Wiegand_dat=areaaddr;                           // 分组地址
 697   1              Wiegand_dat=Wiegand_dat<<8;
 698   1      
 699   1              Wiegand_dat=Wiegand_dat+decaddr;        // 设备地址
 700   1              Wiegand_dat=Wiegand_dat<<16;
 701   1      
 702   1              Wiegand_dat=Wiegand_dat+asctoint(User_id);      // 用户编号
 703   1      
 704   1              Send_Wiegand();
 705   1      
 706   1              Wiegand_dat=0;
 707   1              Wgnd_count=0;
 708   1      }
 709          
 710          ///////////////////////////////////////////////////////////////////////////////
 711          // 26位韦根正常操作发送合法用户号
 712          ///////////////////////////////////////////////////////////////////////////////
 713          void send26()
 714          {
 715   1              Wiegand_dat=decaddr;                            // 设备地址
 716   1              Wiegand_dat=Wiegand_dat<<16;
 717   1      
 718   1              Wiegand_dat=Wiegand_dat+asctoint(User_id);      // 用户编号
 719   1      
 720   1              Send_Wiegand();
 721   1      
 722   1              Wiegand_dat=0;
 723   1              Wgnd_count=0;
 724   1      }
 725          
 726          ///////////////////////////////////////////////////////////////////////////////
 727          // 34位韦根正常操作发送合法用户号
 728          ///////////////////////////////////////////////////////////////////////////////
 729          void send34()
 730          {
 731   1              Wiegand_dat=areaaddr;                           // 分组地址
 732   1              Wiegand_dat=Wiegand_dat<<8;
 733   1      
 734   1              Wiegand_dat=Wiegand_dat+decaddr;        // 设备地址
 735   1              Wiegand_dat=Wiegand_dat<<16;
 736   1      
 737   1              Wiegand_dat=Wiegand_dat+asctoint(User_id);      // 用户编号
C51 COMPILER V7.07   WIEGAND                                                               09/15/2005 12:05:42 PAGE 13  

 738   1      
 739   1              Send_Wiegand();
 740   1      
 741   1              Wiegand_dat=0;
 742   1              Wgnd_count=0;
 743   1      }
 744          
 745          ///////////////////////////////////////////////////////////////////////////////
 746          // 注册终端地址
 747          ///////////////////////////////////////////////////////////////////////////////
 748          void addr_reg()
 749          {
 750   1              idata uchar i;
 751   1      
 752   1              Wiegand_dat=0x000000f6;                         // F6注册终端地址
 753   1              Wiegand_dat=Wiegand_dat<<8;
 754   1      
 755   1              Wiegand_dat=Wiegand_dat+areaaddr;       // 分组地址
 756   1              Wiegand_dat=Wiegand_dat<<8;
 757   1      
 758   1              Wiegand_dat=Wiegand_dat+decaddr;        // 设备地址
 759   1              Wiegand_dat=Wiegand_dat<<8;
 760   1              Send_Wiegand();
 761   1      
 762   1              for(i=0; i<10; i++)
 763   1                      Wait10ms();
 764   1      
 765   1              // 发两次保险
 766   1              Wiegand_dat=0x000000f6;                         // F6注册终端地址
 767   1              Wiegand_dat=Wiegand_dat<<8;
 768   1      
 769   1              Wiegand_dat=Wiegand_dat+areaaddr;       // 分组地址
 770   1              Wiegand_dat=Wiegand_dat<<8;
 771   1      
 772   1              Wiegand_dat=Wiegand_dat+decaddr;        // 设备地址
 773   1              Wiegand_dat=Wiegand_dat<<8;
 774   1              Send_Wiegand();
 775   1      
 776   1              Wiegand_dat=0;
 777   1              Wgnd_count=0;
 778   1      }
 779          
 780          ///////////////////////////////////////////////////////////////////////////////
 781          // 清空所有白名单
 782          ///////////////////////////////////////////////////////////////////////////////
 783          void erase_bill()
 784          {
 785   1              idata uchar i;
 786   1      
 787   1              Wiegand_dat=0x000000f7;                         // F7清空所有白名单
 788   1              Wiegand_dat=Wiegand_dat<<8;
 789   1      
 790   1              Wiegand_dat=Wiegand_dat+areaaddr;       // 分组地址
 791   1              Wiegand_dat=Wiegand_dat<<8;
 792   1      
 793   1              Wiegand_dat=Wiegand_dat+decaddr;        // 设备地址
 794   1              Wiegand_dat=Wiegand_dat<<8;
 795   1              Send_Wiegand();
 796   1      
 797   1              for(i=0; i<10; i++)
 798   1                      Wait10ms();
 799   1      
C51 COMPILER V7.07   WIEGAND                                                               09/15/2005 12:05:42 PAGE 14  

 800   1              // 发三次保险
 801   1              Wiegand_dat=0x000000f7;                         // F7清空所有白名单
 802   1              Wiegand_dat=Wiegand_dat<<8;
 803   1      
 804   1              Wiegand_dat=Wiegand_dat+areaaddr;       // 分组地址
 805   1              Wiegand_dat=Wiegand_dat<<8;
 806   1      
 807   1              Wiegand_dat=Wiegand_dat+decaddr;        // 设备地址
 808   1              Wiegand_dat=Wiegand_dat<<8;
 809   1              Send_Wiegand();
 810   1      
 811   1              for(i=0; i<10; i++)
 812   1                      Wait10ms();
 813   1      
 814   1              // 发三次保险
 815   1              Wiegand_dat=0x000000f7;                         // F7清空所有白名单
 816   1              Wiegand_dat=Wiegand_dat<<8;
 817   1      
 818   1              Wiegand_dat=Wiegand_dat+areaaddr;       // 分组地址
 819   1              Wiegand_dat=Wiegand_dat<<8;
 820   1      
 821   1              Wiegand_dat=Wiegand_dat+decaddr;        // 设备地址
 822   1              Wiegand_dat=Wiegand_dat<<8;
 823   1              Send_Wiegand();
 824   1      
 825   1              Wiegand_dat=0;
 826   1              Wgnd_count=0;
 827   1      }
 828          
 829          ///////////////////////////////////////////////////////////////////////////////
 830          // 电话设置报警控制
 831          ///////////////////////////////////////////////////////////////////////////////
 832          void tele_alarm()
 833          {
 834   1              Wiegand_dat=0x000000f9;                         // F9电话布防
 835   1              Wiegand_dat=Wiegand_dat<<8;
 836   1      
 837   1              Wiegand_dat=Wiegand_dat+areaaddr;       // 分组地址
 838   1              Wiegand_dat=Wiegand_dat<<8;
 839   1      
 840   1              Wiegand_dat=Wiegand_dat+decaddr;        // 设备地址
 841   1              Wiegand_dat=Wiegand_dat<<8;
 842   1              Send_Wiegand();
 843   1      
 844   1              Wiegand_dat=0;
 845   1              Wgnd_count=0;
 846   1      }
 847          
 848          ///////////////////////////////////////////////////////////////////////////////
 849          // 电话去除报警控制
 850          ///////////////////////////////////////////////////////////////////////////////
 851          void tele_alarm_off()
 852          {
 853   1              Wiegand_dat=0x000000fa;                         // FA电话撤防
 854   1              Wiegand_dat=Wiegand_dat<<8;
 855   1      
 856   1              Wiegand_dat=Wiegand_dat+areaaddr;       // 分组地址
 857   1              Wiegand_dat=Wiegand_dat<<8;
 858   1      
 859   1              Wiegand_dat=Wiegand_dat+decaddr;        // 设备地址
 860   1              Wiegand_dat=Wiegand_dat<<8;
 861   1              Send_Wiegand();
C51 COMPILER V7.07   WIEGAND                                                               09/15/2005 12:05:42 PAGE 15  

 862   1      
 863   1              Wiegand_dat=0;
 864   1              Wgnd_count=0;
 865   1      }
 866          
 867          ///////////////////////////////////////////////////////////////////////////////
 868          // 注册报警电话
 869          ///////////////////////////////////////////////////////////////////////////////
 870          void reg_tele()
 871          {
 872   1              idata uchar i;
 873   1              idata uchar temp;
 874   1      
 875   1              Wiegand_dat=0x000000fb;                         // FB登记报警电话
 876   1      
 877   1              for(i=0;i<3;i++)
 878   1              {
 879   2                      Wiegand_dat=Wiegand_dat<<8;
 880   2      
 881   2                      temp=0;
 882   2                      if(tele_code[2*i]>0x39)                 // 共计12位定长电话号码
 883   2                              temp=tele_code[2*i]-0x37;
 884   2                      else
 885   2                              temp=tele_code[2*i]-0x30;
 886   2      
 887   2                      temp=temp<<4;
 888   2      
 889   2                      if(tele_code[2*i+1]>0x39)
 890   2                              temp=temp+(tele_code[2*i+1]-0x37);
 891   2                      else
 892   2                              temp=temp+(tele_code[2*i+1]-0x30);
 893   2              
 894   2                      Wiegand_dat=Wiegand_dat+temp;
 895   2              }
 896   1      
 897   1              Send_Wiegand();
 898   1      
 899   1              Wiegand_dat=0;
 900   1              Wgnd_count=0;
 901   1      
 902   1              for(i=0;i<10;i++)
 903   1                      Wait10ms();                             // 发送第二部分电话号码
 904   1      
 905   1              Wiegand_dat=0x000000fb;                         // FB登记报警电话
 906   1      
 907   1              for(i=3;i<6;i++)
 908   1              {
 909   2                      Wiegand_dat=Wiegand_dat<<8;
 910   2      
 911   2                      temp=0;
 912   2                      if(tele_code[2*i]>0x39)                 // 共计12位定长电话号码
 913   2                              temp=tele_code[2*i]-0x37;
 914   2                      else
 915   2                              temp=tele_code[2*i]-0x30;
 916   2      
 917   2                      temp=temp<<4;
 918   2      
 919   2                      if(tele_code[2*i+1]>0x39)
 920   2                              temp=temp+(tele_code[2*i+1]-0x37);
 921   2                      else
 922   2                              temp=temp+(tele_code[2*i+1]-0x30);
 923   2              
C51 COMPILER V7.07   WIEGAND                                                               09/15/2005 12:05:42 PAGE 16  

 924   2                      Wiegand_dat=Wiegand_dat+temp;
 925   2              }
 926   1      
 927   1              Send_Wiegand();
 928   1      
 929   1              Wiegand_dat=0;
 930   1              Wgnd_count=0;
 931   1      }
 932          
 933          ///////////////////////////////////////////////////////////////////////////////
 934          // 清除报警电话号码
 935          ///////////////////////////////////////////////////////////////////////////////
 936          void erase_tele()
 937          {
 938   1              Wiegand_dat=0x000000fc;                         // FC清电话报警号码
 939   1              Wiegand_dat=Wiegand_dat<<8;
 940   1      
 941   1              Wiegand_dat=Wiegand_dat+areaaddr;       // 分组地址
 942   1              Wiegand_dat=Wiegand_dat<<8;
 943   1      
 944   1              Wiegand_dat=Wiegand_dat+decaddr;        // 设备地址
 945   1              Wiegand_dat=Wiegand_dat<<8;
 946   1              Send_Wiegand();
 947   1      
 948   1              Wiegand_dat=0;
 949   1              Wgnd_count=0;
 950   1      }
 951          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1927    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----      25
   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 + -