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

📄 009.lst

📁 串口通讯(查询方式)实验成功
💻 LST
字号:
C51 COMPILER V8.02   009                                                                   03/02/2012 13:27:14 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE 009
OBJECT MODULE PLACED IN 009.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 009.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1                   
   2                   
   3                   ////////////////////////////////
   4              ////cocoguojia E-51开发板///////
   5             //////cocoguojia@163.com ///////
   6            ////////////////////////////////
   7          
   8          
   9           
  10           //实验目的:利用串口助手联调,当串口助手发送0x55时,单片机向串口助手发送0xAA
  11           //波特率为9600 单片机用11.0592的晶振
  12          
  13          
  14           //---------------------------------------
  15           //头文件
  16           #include<AT89X51.H>
  17          #include<intrins.h>
  18          
  19           //---------------------------------------
  20          
  21          
  22           //---------------------------------------
  23           //数据类型替代声明
  24           #define u8  unsigned char
  25           #define u16 unsigned int
  26                             sbit LED0=P0^0;
  27          sbit LED1=P0^1;
  28          sbit LED2=P0^2;
  29          sbit LED3=P0^3;
  30          sbit LED4=P0^4;
  31          sbit LED5=P0^5;
  32          sbit LED6=P0^6;
  33          sbit LED7=P0^7;
  34          
  35          u8 buf[10] = 0;
  36          u8 cnt = 0;
  37          u8 cnt1 = 0;
  38          u16 cnt2 = 0;
  39          
  40          
  41           //---------------------------------------
  42          
  43          
  44           //---------------------------------------
  45           //初始化
  46           void init(void) 
  47           {
  48   1              SCON=0X50;
  49   1              TH1=0XFD;
  50   1              TL1=0XFD;
  51   1              TMOD=0X20;
  52   1              TR1=1;  
  53   1       }
  54          //---------------------------------------
  55          
C51 COMPILER V8.02   009                                                                   03/02/2012 13:27:14 PAGE 2   

  56          
  57          //---------------------------------------
  58          //接受子函数
  59           u8 rec_data(void)
  60           {
  61   1              if(RI==0)
  62   1              {
  63   2                      return 0;       
  64   2              }
  65   1              else
  66   1              {
  67   2                      cnt1 = 0;
  68   2                      cnt2 = 0;
  69   2                      RI=0;
  70   2                      buf[cnt] = SBUF;
  71   2                      if(cnt ==0)
  72   2                      {
  73   3                              if(buf[cnt] != 0x01)    //ID不对          报文格式 01 ** ## -- -- -- -- -- 其中01为地址,**为命令字 ##为数据长度
             -(--的个数)
  74   3                              {
  75   4                                      return 0;       
  76   4                              }       
  77   3                      }
  78   2                      cnt ++;
  79   2                      if(cnt == buf[2] + 3)
  80   2                      {
  81   3                              return 1;       
  82   3                      }
  83   2                      return 0;
  84   2              }
  85   1       }
  86          //---------------------------------------
  87          
  88          //---------------------------------------
  89          //发送子函数
  90          void send_data(u8 i)
  91          {
  92   1              SBUF=i;
  93   1              while(TI==0)
  94   1              {
  95   2                      ;
  96   2              }
  97   1              TI=0;
  98   1      }
  99          //---------------------------------------
 100          
 101          //---------------------------------------
 102          //主函数
 103          
 104          void main(void)
 105          { 
 106   1              u8 i = 0;
 107   1              cnt = 0;
 108   1              init();
 109   1              while(1)
 110   1              {
 111   2                      if(rec_data())
 112   2                      {
 113   3                              ; //接收数据处理
 114   3                              for(i = 0;i< cnt;i++)
 115   3                              {
 116   4                                      send_data(buf[i]);      
C51 COMPILER V8.02   009                                                                   03/02/2012 13:27:14 PAGE 3   

 117   4                              }
 118   3                                buf[0] = 0;
 119   3                                 cnt=0;
                        cnt = 0;

 120   3                      }
 121   2                      
 122   2                      cnt1 ++;
 123   2                      if(cnt1 == 0xff)
 124   2                      {
 125   3                              cnt2 ++;
 126   3                              if(cnt2 == 10000)
 127   3                              {
 128   4                                      cnt2 = 0;
 129   4                                      buf[0] = 0;
 130   4                                      cnt = 0;
 131   4                              }       
 132   3                      }
 133   2              }
 134   1      }
 135          //---------------------------------------
 136          
 137          
 138          
 139          
 140          
 141          
 142          


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