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

📄 muticom.lst

📁 基于89c2051开发的ptr8000一对多无线通信程序.
💻 LST
字号:
C51 COMPILER V6.23a  MUTICOM                                                               11/04/2006 10:33:11 PAGE 1   


C51 COMPILER V6.23a, COMPILATION OF MODULE MUTICOM
OBJECT MODULE PLACED IN MutiCom.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE MutiCom.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <reg51.h>
   2          #include <stdio.h>
   3          bit startframe=0,com2rb=1,lastcom2rb=1;
   4          unsigned char TLV=0xb0;      //Now is 16 times of baud,0xc0; //for 18432000,4 times baudrate,
   5          unsigned char THV=0xff;      //                        0xfe; if 8times baudrate it's 0x60 and 0xff respect
             -ively.
   6          unsigned char com2sbufp=0,com2buffs[2],com2buffr[20],com2buffrp=0;
   7          unsigned short SECTICKS=19200; //4800; //65536/(65536-(THV*256+TLV))*18;
   8          unsigned short HALFSECTICKS=9600; //2400;
   9          unsigned char rbuff[20],sbuff[11];
  10          unsigned char rbuffp=0;
  11          unsigned char triggle=0,chno=0,ensend=0,rest;
  12          unsigned char ticks1=0,ticks2=0,ticksl2=0,ticksh2=0,ticks3,numberofzero=0,numberofone=16;
  13          unsigned char temptl0,tempth0;
  14          unsigned short filterB=0xffff,count=0,com2sbuf;
  15          //sbit P32 = P3^2;
  16          sbit COM2R=P3^2; //P3^0;
  17          sbit COM2S=P3^1;
  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       ticks3++;
  27   1      }
  28          void e1int() interrupt 2
  29          {
  30   1       ticks1++;
  31   1      }
  32          void t0int() interrupt 1
  33          {
  34   1       // unsigned char i;
  35   1       temptl0=TL0;
  36   1       tempth0=TH0;
  37   1       TH0=THV+tempth0;
  38   1       TL0=TLV+temptl0+10;
  39   1       //if(!(filterB&0x8000)) numberofzero--;
  40   1       filterB<<=1;
  41   1       filterB&=0xfffe;
  42   1       filterB|=COM2R;
  43   1       //if(!(filterB&1)) numberofzero++;
  44   1       switch (filterB&0x3f)
  45   1       {
  46   2        case 0x3f:
  47   2             com2rb=1;
  48   2                 break;
  49   2        case 0:
  50   2             com2rb=0;
  51   2             if((!startframe)) // && (numberofzero>7)) // && (filterB&0xf)) // && (lastcom2rb) && (numberofzero>
             -=8))
  52   2                 {
  53   3                  startframe=1;
C51 COMPILER V6.23a  MUTICOM                                                               11/04/2006 10:33:11 PAGE 2   

  54   3                  com2sbufp=0;
  55   3                  rest=count&0xf;
  56   3                 }
  57   2                 break;
  58   2        default:
  59   2             break;
  60   2       }
  61   1       lastcom2rb=com2rb;
  62   1       if(startframe && ((count&0xf) == rest))
  63   1       {
  64   2        com2sbuf>>=1;
  65   2        com2sbuf&=0xfeff;
  66   2        if(com2rb) com2sbuf|=0x0100;
  67   2        com2sbufp++;
  68   2        if(com2sbufp==10)
  69   2        {
  70   3         startframe=0;
  71   3         if(com2sbuf&0x100)
  72   3         {
  73   4          com2buffr[com2buffrp]=com2sbuf;
  74   4              SBUF=com2sbuf;
  75   4              if((com2buffr[com2buffrp] == 'E') && (com2buffr[(com2buffrp+19)%20] == 0) && (com2buffr[(com2buffrp+16)%2
             -0] == 'S'))
  76   4          {
  77   5               //TI=0;
  78   5           //SBUF=com2buffr[(com2buffrp+17)%20];
  79   5               sbuff[4]=com2buffr[(com2buffrp+17)%20];
  80   5               sbuff[5]=com2buffr[(com2buffrp+18)%20];
  81   5              }
  82   4          if(++com2buffrp==20) com2buffrp=0;
  83   4         }
  84   3        }
  85   2       }
  86   1       count++;
  87   1       if(count == SECTICKS)
  88   1       {
  89   2        count=0;
  90   2        triggle=1;
  91   2       }
  92   1      }
  93          void comint() interrupt 4
  94          {
  95   1       if(RI)
  96   1       {
  97   2        RI=0;
  98   2        rbuff[rbuffp]=SBUF;
  99   2        if((rbuff[rbuffp] == 'E') && (rbuff[(rbuffp+11)%20] == 'S') && (rbuff[(rbuffp+12)%20] == '0'))
 100   2        {
 101   3         switch (rbuff[(rbuffp+13)%20])
 102   3         {
 103   4          case 'A': ensend=1;
 104   4              break;
 105   4          case 'D':
 106   4              break;
 107   4              default:break;
 108   4         }
 109   3        }
 110   2        rbuffp++;
 111   2        if(rbuffp == 20) rbuffp=0;
 112   2       }
 113   1      }
 114          void main (void)
C51 COMPILER V6.23a  MUTICOM                                                               11/04/2006 10:33:11 PAGE 3   

 115          {
 116   1       unsigned char i;
 117   1       sbuff[0]=0xff; 
 118   1       sbuff[1]=0xd7;
 119   1       sbuff[2]=0x06;
 120   1       sbuff[3]='S';
 121   1       sbuff[8]=0x00;
 122   1       sbuff[9]='E';
 123   1       SCON  = 0x50;                  /* SCON: mode 1, 8-bit UART, enable rcvr      */
 124   1       TMOD |= 0x21;               /* TMOD: timer 1, mode 2, 8-bit reload        */
 125   1       TH1   = 0xd8;                /* TH1:  reload value for 1200 baud @ 184320000MHz   */
 126   1       TR1   = 1;                  /* TR1:  timer 1 run                          */
 127   1       IT1   = 1;
 128   1       IT0   = 1;
 129   1       TI    = 1;                  /* TI:   set TI to send first char of UART    */
 130   1       TR0   = 1;
 131   1       IE    = 0x82;     //Only enable t0 interrupt.
 132   1       while (1)
 133   1       {
 134   2        if (triggle==1)
 135   2        {
 136   3         //P32=0;
 137   3         sbuff[6]=P1;
 138   3         sbuff[7]=P1;
 139   3         //for(i=0;i<10;i++) putchar(sbuff[i]);
 140   3         //putchar(temptl0);
 141   3         triggle=0;
 142   3         //P32=1;
 143   3        }
 144   2        delay();
 145   2       }
 146   1      }
*** WARNING C280 IN LINE 116 OF MUTICOM.C: 'i': unreferenced local variable


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    468    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     81       3
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      3    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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