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

📄 scitest.lst

📁 mcu51程序串口输入控制2相4线步进电机的程序
💻 LST
字号:
C51 COMPILER V7.04   SCITEST                                                               11/07/2005 20:35:29 PAGE 1   


C51 COMPILER V7.04, COMPILATION OF MODULE SCITEST
OBJECT MODULE PLACED IN C:\DOCUME~1\GML\桌面\10-27\SCITEST.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE C:\DOCUME~1\GML\桌面\10-27\SCITEST.C DB SB OE

stmt level    source

   1          #include <reg51.h>
   2          #include <string.h>
   3          
   4          #define INBUF_LEN 4   //数据长度
   5          
   6          unsigned char inbuf1[INBUF_LEN];
   7          unsigned char checksum,count3;
   8          bit           read_flag=0;
   9          
  10          void init_serialcomm(void)
  11          {
  12   1          SCON  = 0x50;       //SCON: serail mode 1, 8-bit UART, enable ucvr 
  13   1          TMOD |= 0x20;       //TMOD: timer 1, mode 2, 8-bit reload 
  14   1          PCON |= 0x80;       //SMOD=1; 
  15   1          TH1   = 0xF4;       //Baud:4800  fosc=11.0592MHz 
  16   1          IE   |= 0x90;       //Enable Serial Interrupt 
  17   1          TR1   = 1;          // timer 1 run 
  18   1         // TI=1; 
  19   1      }
  20          
  21          //向串口发送一个字符 
  22          void send_char_com(unsigned char ch)  
  23          {
  24   1          SBUF=ch;
  25   1          while(TI==0);
  26   1          TI=0;
  27   1      }
  28          
  29          //向串口发送一个字符串,strlen为该字符串长度 
  30          void send_string_com(unsigned char *str,unsigned int strlen)
  31          {
  32   1          unsigned int k=0;
  33   1          do 
  34   1          {
  35   2              send_char_com(*(str + k));
  36   2              k++;
  37   2          } while(k < strlen);
  38   1      }
  39          
  40          
  41          //串口接收中断函数 
  42          void serial () interrupt 4 using 3 
  43          {
  44   1          if(RI)
  45   1          {
  46   2              unsigned char ch;
  47   2              RI = 0;
  48   2              ch=SBUF;
  49   2              if(ch>127)
  50   2              {
  51   3                   count3=0;
  52   3                   inbuf1[count3]=ch;
  53   3                   checksum= ch-128;
  54   3              }
  55   2              else 
C51 COMPILER V7.04   SCITEST                                                               11/07/2005 20:35:29 PAGE 2   

  56   2              {
  57   3                   count3++;
  58   3                   inbuf1[count3]=ch;
  59   3                   checksum ^= ch;
  60   3                   if( (count3==(INBUF_LEN-1)) && (!checksum) )
  61   3                   {
  62   4                       read_flag=1;  //如果串口接收的数据达到INBUF_LEN个,且校验没错, 
  63   4                                     //就置位取数标志 
  64   4                   }
  65   3              }
  66   2          }
  67   1      }
  68          
  69          
  70          main()
  71          {
  72   1          init_serialcomm();  //初始化串口 
  73   1          while(1)
  74   1          {
  75   2                if(read_flag)  //如果取数标志已置位,就将读到的数从串口发出 
  76   2                {
  77   3                     read_flag=0; //取数标志清0 
  78   3                     send_string_com(inbuf1,INBUF_LEN);
  79   3                }
  80   2          }
  81   1      
  82   1      }
C51 COMPILER V7.04   SCITEST                                                               11/07/2005 20:35:29 PAGE 3   

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


serial . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  ch . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
IE . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A8H  1
size_t . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_INT    -----  2
read_flag. . . . . . . . . . . . . . .  PUBLIC   DATA   BIT      0000H  1
RI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0098H  1
TI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0099H  1
main . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
_send_string_com . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  str. . . . . . . . . . . . . . . . .  AUTO     DATA   PTR      0000H  3
  strlen . . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0003H  2
  k. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_INT    0004H  2
_send_char_com . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  ch . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  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
inbuf1 . . . . . . . . . . . . . . . .  PUBLIC   DATA   ARRAY    0000H  4
init_serialcomm. . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
TH1. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   008DH  1
TR1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008EH  1
checksum . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0004H  1
count3 . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0005H  1


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