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

📄 main.lst

📁 韦根解码程序,包括的原理图与KEIL C51原代码
💻 LST
字号:
C51 COMPILER V6.02  MAIN                                                                   03/09/2006 22:51:38 PAGE 1   


C51 COMPILER V6.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN D:\NEWWORK\51346B~1\WIEGEN~1\MAIN.OBJ
COMPILER INVOKED BY: C:\comp51v6\C51.EXE D:\NEWWORK\51346B~1\WIEGEN~1\MAIN.C DB SB OE OT(4) 

stmt level    source

   1          //**********************************************
   2          //文件:MAIN.C
   3          //版本:V1.0
   4          //编写人:马一兵
   5          //编写日期:2005年12月10日
   6          //修改日期:
   7          //功能说明:
   8          //**********************************************
   9          #include<reg52.h>
  10          #include<string.h>
  11          #include <intrins.h>
  12          
  13          
  14          sbit DATA0=P1^0;
  15          sbit DATA1=P1^1;
  16          
  17          unsigned char Wigen_counter;
  18          unsigned char Wigen_ReciveBuf[27];
  19          
  20          
  21          /******************************************************************/
  22          /******************************************************************/
  23          /***************************主程序*********************************/
  24          /******************************************************************/
  25          /******************************************************************/
  26          void main(void)
  27          {
  28   1      unsigned char idata even;
  29   1      unsigned char idata odd;
  30   1      unsigned char idata i,j;
  31   1      unsigned char idata WIGEN_BUF[6];
  32   1      //外中断0初始化              //用于捕获WIGEN信号
  33   1          EX0=1;                   //允许外中断0
  34   1          PX0=1;                   //置为最高优先级
  35   1          IT0=1;                   //负边沿触发中断
  36   1      
  37   1      //开总中断
  38   1          EA=1;
  39   1      
  40   1      
  41   1          Wigen_counter=0;
  42   1      
  43   1          while(Wigen_counter<26);
  44   1      
  45   1      
  46   1      
  47   1      //判断奇偶校验是否正确
  48   1          even=0;
  49   1          for(j=0;j<3;j++)
  50   1           {
  51   2           WIGEN_BUF[j]=0;
  52   2           for(i=(j*4);i<(j*4+4);i++)
  53   2            {
  54   3             WIGEN_BUF[j]=(WIGEN_BUF[j]<<1)&0xfe;
  55   3             if(Wigen_ReciveBuf[i+1]==1)
C51 COMPILER V6.02  MAIN                                                                   03/09/2006 22:51:38 PAGE 2   

  56   3              {
  57   4               WIGEN_BUF[j]=WIGEN_BUF[j]|0x01;
  58   4               even=(~even)&0x01;
  59   4              }
  60   3            }
  61   2           }
  62   1           if(even!=Wigen_ReciveBuf[0])
  63   1            {
  64   2      //清除标志
  65   2             Wigen_counter=0;
  66   2            goto end;
  67   2            }
  68   1      
  69   1          odd=1;
  70   1          for(j=3;j<6;j++)
  71   1           {
  72   2           WIGEN_BUF[j]=0;
  73   2           for(i=(j*4);i<(j*4+4);i++)
  74   2            {
  75   3             WIGEN_BUF[j]=(WIGEN_BUF[j]<<1)&0xfe;
  76   3             if(Wigen_ReciveBuf[i+1]==1)
  77   3              {
  78   4               WIGEN_BUF[j]=WIGEN_BUF[j]|0x01;
  79   4               odd=(~odd)&0x01;
  80   4              }
  81   3            }
  82   2           }
  83   1           if(odd!=Wigen_ReciveBuf[25])
  84   1            {
  85   2      //清除标志
  86   2             Wigen_counter=0;
  87   2             goto end;
  88   2            }
  89   1      
  90   1      //清除标志
  91   1             Wigen_counter=0;
  92   1      
  93   1      
  94   1             //wigen数据接收正确,存在WIGEN_BUF中,加入你的处理
  95   1      
  96   1      end:
  97   1             Wigen_counter=0;
  98   1             
  99   1             
 100   1             
 101   1      }
 102          
 103          
 104          
 105          
 106          
 107          /******************************************************************/
 108          /****************************外中断2子程序************************/
 109          /******************************************************************/
 110          void wigenISR (void) interrupt 0 using 1  
 111          {
 112   1      
 113   1         //如果DATA0=1,则表示DATA1=0;
 114   1         if(DATA0) Wigen_ReciveBuf[Wigen_counter++]=1;
 115   1         else      Wigen_ReciveBuf[Wigen_counter++]=0;
 116   1      
 117   1         //D0和D1不能同时为0;
C51 COMPILER V6.02  MAIN                                                                   03/09/2006 22:51:38 PAGE 3   

 118   1      
 119   1         IE0 = 0; 	//Clear interrupt request flag
 120   1      
 121   1      }
C51 COMPILER V6.02  MAIN                                                                   03/09/2006 22:51:38 PAGE 4   

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


P1 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0090H  1
P3 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B0H  1
T0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B4H  1
AC . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D6H  1
T1 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B5H  1
T2 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0090H  1
EA . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AFH  1
wigenISR . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
IE . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A8H  1
size_t . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_INT    -----  2
EXF2 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CEH  1
RD . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B7H  1
ES . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ACH  1
IP . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B8H  1
RI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0098H  1
INT0 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B2H  1
CY . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D7H  1
TI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0099H  1
INT1 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B3H  1
PS . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BCH  1
T2EX . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0091H  1
OV . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D2H  1
main . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  even . . . . . . . . . . . . . . . .  AUTO     IDATA  U_CHAR   0000H  1
  odd. . . . . . . . . . . . . . . . .  AUTO     IDATA  U_CHAR   0001H  1
  i. . . . . . . . . . . . . . . . . .  AUTO     IDATA  U_CHAR   0002H  1
  j. . . . . . . . . . . . . . . . . .  AUTO     IDATA  U_CHAR   0003H  1
  WIGEN_BUF. . . . . . . . . . . . . .  AUTO     IDATA  ARRAY    0004H  6
  end. . . . . . . . . . . . . . . . .  LABEL    CODE   LABEL    -----  -----
C_T2 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00C9H  1
WR . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B6H  1
RCLK . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CDH  1
TCLK . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CCH  1
SCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0098H  1
TCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0088H  1
IE0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0089H  1
IE1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008BH  1
CP_RL2 . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00C8H  1
ET0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A9H  1
ET1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ABH  1
TF0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008DH  1
DATA0. . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0090H  1
ET2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ADH  1
TF1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008FH  1
DATA1. . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0091H  1
TF2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CFH  1
RB8. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009AH  1
EX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A8H  1
IT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0088H  1
TB8. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009BH  1
EX1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AAH  1
IT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008AH  1
P. . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D0H  1
SM0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009FH  1
SM1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009EH  1
SM2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009DH  1
PT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B9H  1
C51 COMPILER V6.02  MAIN                                                                   03/09/2006 22:51:38 PAGE 5   

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


PT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BBH  1
RS0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D3H  1
PT2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BDH  1
TR0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008CH  1
RS1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D4H  1
TR1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008EH  1
TR2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CAH  1
PX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B8H  1
PX1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BAH  1
Wigen_ReciveBuf. . . . . . . . . . . .  PUBLIC   DATA   ARRAY    0000H  27
Wigen_counter. . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   001BH  1
EXEN2. . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CBH  1
REN. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009CH  1
T2CON. . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00C8H  1
RXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B0H  1
TXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B1H  1
F0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D5H  1
PSW. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00D0H  1


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