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

📄 query.lst

📁 主要是有关单片机串口通讯的相关程序
💻 LST
字号:
C51 COMPILER V6.00i QUERY                                                                  10/09/2005 20:27:38 PAGE 1   


C51 COMPILER 6.00i, COMPILATION OF MODULE QUERY
OBJECT MODULE PLACED IN C:\WAVE6000\COMM1\QUERY.OBJ
COMPILER INVOKED BY: C:\C516uv1\Bin\C51.EXE C:\WAVE6000\COMM1\QUERY.C DB SB OE OT(0) 

stmt level    source

   1          #include <reg51.h>
   2          #define uchar unsigned    char
   3          #define uint unsigned    int
   4          
   5          #define INBUF_LEN 4
   6          
   7          uchar inbuf[INBUF_LEN];
   8          uchar checksum,count3;
   9          bit   read_flag=0;
  10          
  11          void InitComm(void)
  12          {
  13   1          SCON  = 0x50;       //SCON: serail mode 1, 8-bit UART, enable ucvr
  14   1          TMOD |= 0x20;       //TMOD: timer 1, mode 2, 8-bit reload
  15   1          PCON |= 0x00;       //SMOD=1;
  16   1          TH1   = 0xF4;       //Baud:2400  fosc=11.0592MHz
  17   1          TL1   = 0xF4;       //Baud:2400  fosc=11.0592MHz
  18   1      //    IE   |= 0x90;       //Enable Serial Interrupt
  19   1          TR1   = 1;          // timer 1 run
  20   1      }
  21          
  22          void SendChar(uchar ch)
  23          {
  24   1          SBUF=ch;
  25   1          while(TI==0);
  26   1          TI=0;
  27   1      }
  28          
  29          void SendString(uchar *str,uint strlen)
  30          {
  31   1          unsigned int k;
  32   1      
  33   1          checksum = 0;
  34   1          for (k=0;k<strlen;k++)
  35   1          {
  36   2              checksum ^= *(str+k);
  37   2          }
  38   1          checksum |= 0x80;
  39   1          SendChar(checksum);
  40   1          k = 0;
  41   1          do
  42   1          {
  43   2              SendChar(*(str + k));
  44   2              k++;
  45   2          } while(k < strlen);
  46   1      }
  47          
  48          void serial () interrupt 4 using 1
  49          {
  50   1          uchar ch;
  51   1          if(RI)
  52   1          {
  53   2              RI = 0;
  54   2              ch=SBUF;
  55   2              if(ch>127)
C51 COMPILER V6.00i QUERY                                                                  10/09/2005 20:27:38 PAGE 2   

  56   2              {
  57   3                   count3=0;
  58   3                   checksum= ch&0x7F;
  59   3              }
  60   2              else
  61   2              {
  62   3                   inbuf[count3++]=ch;
  63   3                   checksum ^= ch;
  64   3                   if( (count3==INBUF_LEN) && ((checksum&0x7F)==0) )
  65   3                   {
  66   4                       read_flag=1;  //如果串口接收的数据达到INBUF_LEN个,且校验没错,
  67   4                                     //就置位取数标志
  68   4                   }
  69   3                   if(count3>=INBUF_LEN) count3 = 0;
  70   3              }
  71   2          }
  72   1      }
  73          
  74          uint BIN2BCD(int bin)
  75          {
  76   1          uint a, v;
  77   1          a = bin%10;
  78   1          v = a;
  79   1          bin /= 10;
  80   1          a = bin%10;
  81   1          v |= a<<4;
  82   1          bin /= 10;
  83   1          a = bin%10;
  84   1          v |= a<<8;
  85   1          bin /= 10;
  86   1          a = bin%10;
  87   1          v |= a<<12;
  88   1          return(v);
  89   1      }
  90          
  91          sbit SRC = P1^0;
  92          sbit SRC1 = P1^1;
  93          sbit SRC2 = P1^2;
  94          sbit SRC3 = P1^3;
  95          sbit QUE = P1^7;
  96          
  97          int kbhit()
  98          {
  99   1          unsigned char i;
 100   1          SRC = 0;
 101   1          SRC1 = 0;
 102   1          SRC2 = 0;
 103   1          SRC3 = 0;
 104   1          i =QUE;
 105   1          if(i==0)
 106   1          {
 107   2             return(1);
 108   2          }
 109   1          return(0);
 110   1      }
 111          
 112          void Unpack(uint spd,uchar *buf)
 113          {
 114   1         buf[0] = ((spd&0xF000)>>12) | 0x30;
 115   1         buf[1] = ((spd&0x0F00)>>8) | 0x30;
 116   1         buf[2] = ((spd&0x00F0)>>4) | 0x30;
 117   1         buf[3] = (spd&0x000F) | 0x30;
C51 COMPILER V6.00i QUERY                                                                  10/09/2005 20:27:38 PAGE 3   

 118   1      }
 119          
 120          uint Speed = 1000;
 121          
 122          void Delay(int t)
 123          {
 124   1        int  i,j;
 125   1          for(i=0;i<t;i++)
 126   1          { for(j=0;j<2;j++); }
 127   1      }
 128          
 129          void main()
 130          {
 131   1        unsigned int spd; uchar ch;
 132   1      
 133   1        InitComm();
 134   1        inbuf[0] = '8';
 135   1        inbuf[1] = '7';
 136   1        inbuf[2] = '6';
 137   1        inbuf[3] = '5';
 138   1        ch = 0x8C;
 139   1        SendString(inbuf,INBUF_LEN);
 140   1      /*  SendChar(ch);
 141   1        SendChar(inbuf[0]);
 142   1        SendChar(inbuf[1]);
 143   1        SendChar(inbuf[2]);
 144   1        SendChar(inbuf[3]);*/  
 145   1      //  while(RI==0) ;
 146   1      //  RI = 0;
 147   1      //  spd = SBUF;
 148   1        while(1);
 149   1      //  while(1)
 150   1       // {
 151   1            Delay(30000);
 152   1      //    if(kbhit())
 153   1      //    {
 154   1              Speed++;
 155   1              spd = BIN2BCD(Speed);
 156   1              Unpack(spd, inbuf);
 157   1              SendString(inbuf,INBUF_LEN);
 158   1      //    }
 159   1       // }
 160   1        while(1);
 161   1      }
 162          
C51 COMPILER V6.00i QUERY                                                                  10/09/2005 20:27:38 PAGE 4   

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


P1 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0090H  1
serial . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  ch . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
T0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B4H  1
AC . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D6H  1
T1 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B5H  1
EA . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AFH  1
kbhit. . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
RD . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B7H  1
inbuf. . . . . . . . . . . . . . . . .  PUBLIC   DATA   ARRAY    0000H  4
ES . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ACH  1
SRC1 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0091H  1
SRC2 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0092H  1
read_flag. . . . . . . . . . . . . . .  PUBLIC   DATA   BIT      0000H  1
RI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0098H  1
SRC3 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0093H  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
InitComm . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
OV . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D2H  1
main . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  spd. . . . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0000H  2
  ch . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0002H  1
WR . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B6H  1
SBUF . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0099H  1
PCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0087H  1
SCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0098H  1
TMOD . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0089H  1
_BIN2BCD . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  bin. . . . . . . . . . . . . . . . .  AUTO     DATA   INT      0000H  2
  a. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0002H  2
  v. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0004H  2
IE0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0089H  1
IE1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008BH  1
_Unpack. . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  spd. . . . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0000H  2
  buf. . . . . . . . . . . . . . . . .  AUTO     DATA   PTR      0002H  3
ET0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A9H  1
ET1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ABH  1
TF0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008DH  1
TF1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008FH  1
RB8. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009AH  1
EX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A8H  1
IT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0088H  1
TH1. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   008DH  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
_Delay . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  t. . . . . . . . . . . . . . . . . .  AUTO     DATA   INT      0000H  2
  i. . . . . . . . . . . . . . . . . .  AUTO     DATA   INT      0002H  2
C51 COMPILER V6.00i QUERY                                                                  10/09/2005 20:27:38 PAGE 5   

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


  j. . . . . . . . . . . . . . . . . .  AUTO     DATA   INT      0004H  2
SM1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009EH  1
TL1. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   008BH  1
SM2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009DH  1
PT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B9H  1
PT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BBH  1
RS0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D3H  1
TR0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008CH  1
RS1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D4H  1
TR1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008EH  1
checksum . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0004H  1
PX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B8H  1
PX1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BAH  1
count3 . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0005H  1
REN. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009CH  1
_SendString. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  str. . . . . . . . . . . . . . . . .  AUTO     DATA   PTR      0000H  3
  strlen . . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0003H  2
  k. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0005H  2
SRC. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0090H  1
QUE. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0097H  1
_SendChar. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  ch . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
RXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B0H  1
TXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B1H  1
Speed. . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_INT    0006H  2
F0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D5H  1


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