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

📄 wg26.lst

📁 韦根26C语言程序,主要于门禁上面读起WG26信号
💻 LST
字号:
C51 COMPILER V7.50   WG26                                                                  10/16/2008 12:05:56 PAGE 1   


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

line level    source

   1          #include<reg52.h>
   2          #include<string.h>
   3          #include<intrins.h>
   4          #define uchar unsigned char
   5          #define p2 P2 
   6          sbit DATA0=P1^0;  //d0
   7          sbit DATA1=P1^1; //d1
   8          uchar temp;      //标志位
   9          uchar buf[27];   //韦根26数据存储位
  10          uchar table[]={0,0,0};   //卡号存储数组
  11          void main(void)
  12          {
  13   1              uchar i,j,even=0,odd=1;                                                         
  14   1          EX0=1;                   //允许外中断0
  15   1          PX0=1;                   //置为最高优先级
  16   1          IT0=1;                   //负边沿触发中断   
  17   1          EA=1;                                       //开总中断        
  18   1              temp=0;                 //初始化标志位
  19   1          while(temp<26); //等待读取完26位                            
  20   1          even=0;                                     //判断奇偶校验是否正确
  21   1          for(j=1;j<13;j++)
  22   1           {
  23   2                      if(buf[j]==1)   
  24   2                      even=(~even)&0x01; 
  25   2           }
  26   1           if(even!=buf[0])
  27   1            {
  28   2                    temp=0;    //清除标志      
  29   2                    goto end;
  30   2            }  
  31   1          odd=1;
  32   1          for(i=13;i<25;i++)
  33   1           {
  34   2                  if(buf[i]==1)                        
  35   2                      odd=(~odd)&0x01;              
  36   2           }
  37   1           if(odd!=buf[25])
  38   1            {
  39   2                       temp=0;        //清除标志
  40   2                     goto end;
  41   2            } 
  42   1          temp=0;//清除标志  
  43   1              for(i=0;i<3;i++)
  44   1              {
  45   2                      for(j=(i*8);j<i*8+8;j++)
  46   2                      {
  47   3      
  48   3                              table[i]=table[i]<<1|buf[j+1];
  49   3                      }
  50   2              }
  51   1              p2=table[0];        
  52   1              end:
  53   1             temp=0;                    
  54   1      }
  55          void wigenISR (void) interrupt 0 using 1  
C51 COMPILER V7.50   WG26                                                                  10/16/2008 12:05:56 PAGE 2   

  56          {    
  57   1         if(DATA0)
  58   1              buf[temp++]=1; //如果DATA0=1,则表示DATA1=0;
  59   1              else
  60   1              buf[temp++]=0;
  61   1              IE0=0;
  62   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    186    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     31    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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