beicheng2s.lst

来自「基于89c2051开发的ptr8000一对多无线通信程序.」· LST 代码 · 共 175 行

LST
175
字号
C51 COMPILER V7.06   BEICHENG2S                                                            01/14/2007 17:12:04 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE BEICHENG2S
OBJECT MODULE PLACED IN beicheng2s.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE beicheng2s.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <reg51.h>
   2          #include <absacc.h> 
   3          #include <stdio.h>
   4          #define RBUFFLEN 7
   5          #define SBUFFLEN 7
   6          unsigned char TLV=0;
   7          unsigned char THV=0;
   8          unsigned short SECTICKS=18; //65536/(65536-(THV*256+TLV))*18;
   9          unsigned short HALFSECTICKS=9;
  10          unsigned short adbuff[8];
  11          unsigned char rbuff[RBUFFLEN],sbuff[SBUFFLEN];
  12          unsigned char rbuffp=0,sbuffp=0;
  13          unsigned char count=0,chno=0,lastchno;
  14          unsigned char ticks=0;ticks1=0,ticks2=0,ticksl2=0,ticksh2=0;
  15          unsigned char in;
  16          unsigned short advalue,advl,advh;
  17          bit triggle=0,sendbz=0;
  18          void delay()
  19          {
  20   1       unsigned short i,j;
  21   1       for(i=0;i<30;i++) j=i;
  22   1      }
  23          void e0int() interrupt 0
  24          {
  25   1       //P1=P1 ^ 0x80; // Feed watchdog.
  26   1       //advh=XBYTE[0x4002];
  27   1       //advl=XBYTE[0x4003];
  28   1       //advalue=(advh<<4)+(advl>>4);
  29   1       //adbuff[chno]=(adbuff[chno]+advalue)>>1; //advalue;
  30   1       ticks1++;
  31   1       //XBYTE[0x4000]=0; //Start AD.
  32   1       //lastchno=chno;
  33   1       //if(++chno == 8) chno=0;
  34   1       //P1=0xf8+chno; //Change channl.}
  35   1      }
  36          void e1int() interrupt 2
  37          {
  38   1       ticks2++;
  39   1      }
  40          void t0int() interrupt 1
  41          {
  42   1       //unsigned char i;
  43   1       count++;
  44   1       //XBYTE[0x4000]=0; //Start AD.
  45   1       if(count == HALFSECTICKS)
  46   1       {
  47   2        //sbuff[17]=XBYTE[0x2103]; //Read PC.
  48   2        //for(i=0;i<22;i++) putchar(sbuff[i]);
  49   2        triggle=1;
  50   2       }
  51   1       if(count == SECTICKS)
  52   1       {
  53   2        count=0;
  54   2        ticks=ticks1;
  55   2        ticks1=ticks2=0;
C51 COMPILER V7.06   BEICHENG2S                                                            01/14/2007 17:12:04 PAGE 2   

  56   2        triggle=1;
  57   2       }
  58   1      }
  59          void comint() interrupt 4
  60          {
  61   1       if(RI)
  62   1       {
  63   2        RI=0;
  64   2        rbuff[rbuffp]=SBUF;
  65   2        if((rbuff[rbuffp] == 'E') && (rbuff[(rbuffp+RBUFFLEN-4)%RBUFFLEN] == 'S'))
  66   2        {
  67   3         switch (rbuff[(rbuffp+RBUFFLEN-3)%RBUFFLEN])
  68   3         {
  69   4          case 'O':
  70   4              XBYTE[0x2102]=rbuff[(rbuffp+RBUFFLEN-2)%RBUFFLEN]; //Set PB.
  71   4              break;
  72   4          case 'D':
  73   4              XBYTE[0x6000]=rbuff[(rbuffp+RBUFFLEN-2)%RBUFFLEN]; //Set DA.
  74   4              break;
  75   4              default:break;
  76   4         }
  77   3        }
  78   2        rbuffp++;
  79   2        if(rbuffp == RBUFFLEN) rbuffp=0;
  80   2       }
  81   1       /*
  82   1       if(TI)
  83   1       {
  84   1        TI=0;
  85   1        if(sendbz) SBUF=sbuff[sbuffp];
  86   1        if(++sbuffp==SBUFFLEN)
  87   1        {
  88   1         sbuffp=0;
  89   1         sendbz=0;
  90   1        }
  91   1       }
  92   1       */
  93   1      }
  94          void main (void)
  95          {
  96   1       unsigned char  i;
  97   1       sbuff[0]=0xd7;
  98   1       sbuff[1]=0x06;
  99   1       sbuff[2]='S';
 100   1       sbuff[5]=0x00;
 101   1       sbuff[6]='E';
 102   1       XBYTE[0x6000]=0; //Set DA=0V.
 103   1       XBYTE[0x2104]=0x80;
 104   1       XBYTE[0x2105]=0x40;
 105   1       XBYTE[0x2100]=0xc0; //pa,pb,pc in.//0xc3; //Control byte set,pa,pb out,pc in
 106   1       SCON  = 0x50;                  /* SCON: mode 1, 8-bit UART, enable rcvr      */
 107   1       TMOD |= 0x21;               /* TMOD: timer 1, mode 2, 8-bit reload        */
 108   1       TH1   = 0xfd; //9600bps 0xe8; //1200bps,0xfd;               //9600bps for 11.0592M /* TH1:  reload value 
             -for 1200 baud @ 16MHz   */
 109   1       TR1   = 1;                  /* TR1:  timer 1 run                          */
 110   1       IT1   = 1;
 111   1       IT0   = 1;
 112   1       TI    = 1;                  /* TI:   set TI to send first char of UART    */
 113   1       TR0   = 1;
 114   1       IE    = 0x87;
 115   1       P1=0xf8;   //Select chno=0;
 116   1       for(i=0;i<8;i++) adbuff[i]=0;
C51 COMPILER V7.06   BEICHENG2S                                                            01/14/2007 17:12:04 PAGE 3   

 117   1       XBYTE[0x4000]=0; //Start AD.
 118   1       while (1)
 119   1       {
 120   2        delay();
 121   2        //adbuff[chno]=(adbuff[chno]>>1)+(adbuff[chno]>>2)+(advalue>>2); //ReadAD.
 122   2        //adbuff[lastchno]=(adbuff[lastchno]+(adbuff[lastchno]<<1)+advalue)>>2; //ReadAD.
 123   2        //sbuff[lastchno*2+1]=(unsigned char)(adbuff[lastchno]>>8);
 124   2        //sbuff[lastchno*2+2]=(unsigned char)(adbuff[lastchno] & 0x00ff);
 125   2        if(triggle)
 126   2        {
 127   3         triggle=0;
 128   3         in=XBYTE[0x2101]; //Read PA port.
 129   3         sbuff[3]=in;
 130   3         in=XBYTE[0x2102]; //Read PB port.
 131   3         sbuff[4]=in;
 132   3         for(i=0;i<RBUFFLEN;i++) putchar(sbuff[i]);
 133   3         //printf("AD=");
 134   3         //for(i=0;i<8;i++)
 135   3         //printf("%03X,",adbuff[i]);
 136   3         //%03X,%03X,%03X,%03X,%03X,%03X,%03X,%03X,IO=%02BX,END\n",adbuff[0],adbuff[1],adbuff[2],adbuff[3],adbuf
             -f[4],adbuff[5],adbuff[6],adbuff[7],in);
 137   3         //printf("IO=%02BX,",ticks); //in);
 138   3         //printf("END\n");
 139   3         //sbuffp=0;
 140   3         //sendbz=1;
 141   3         //TI=1;
 142   3        }
 143   2       }
 144   1      }
 145          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    379    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     57       3
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      2    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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