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

📄 11.1.lst

📁 《单片机C语言编程与实例的代码.rar
💻 LST
字号:
C51 COMPILER V6.20c  11_1                                                                  09/02/2001 15:06:41 PAGE 1   


C51 COMPILER V6.20c, COMPILATION OF MODULE 11_1
OBJECT MODULE PLACED IN 11.1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 11.1.c DEBUG OBJECTEXTEND

stmt level    source

   1          #include<reg51.h>
   2          #define uchar unsigned char
   3          #define TR 1						//接收、发送区别值,TR=0为发送
   4          
   5          uchar idata buf[10];
   6          uchar sum;							//检验和
   7          void init(void)
   8          {TMOD=0x20;						//串行口初始化
   9   1       TH1=0xE8;TL1=0xE8;				//设定波特率
  10   1       PCON=0x00;
  11   1       TR1=1;							//启动T1
  12   1       SCON=0x50;						//串行口工作在方式1,并允许接收
  13   1      }
  14          
  15          /*发送程序*/
  16          void send(void)
  17          {uchar i;
  18   1       do{
  19   2          SBUF=0xAA;					//发送联络信号"AA"
  20   2          while(TI==0);					//等待发送结束
  21   2          TI=0;
  22   2          while(RI==0);					//等待B机回答
  23   2          RI=0;
  24   2         }while((SBUF^0xBB)!=0);			//B机未准备好,继续联络
  25   1      do{
  26   2         sum=0;							//清检验和
  27   2         for(i=0;i<16;i++)
  28   2          {SBUF=buf[i];
  29   3           sum+=buf[i];					//求校验和
  30   3           while(TI==0);
  31   3           TI=0;
  32   3          }
  33   2         SBUF=sum;						//发送校验和
  34   2         while(TI==0);TI=0;
  35   2         while(RI==0);RI=0;				//等待B机应答
  36   2      }while(SBUF!=0);					//出错则重发
  37   1      }
  38          
  39          /*接收程序*/
  40          void receive()
  41          {uchar i;
  42   1       do{}while(RI==0);RI=0;
  43   1       while((SBUF^0xAA)!=0)				//判断A机是否发出请求
  44   1          SBUF=0xBB;					//发送应答信号"BB"
  45   1          while(TI==0);					//等待发送结束
  46   1          TI=0;
  47   1          while(1)
  48   1          {sum=0;						//清校验和
  49   2           for(i=0;i<16;i++)
  50   2           {while(RI==0);RI=0;
  51   3            buf[i]=SBUF;					//接收一个数据
  52   3            sum+=buf[i];					//求校验和
  53   3           }
  54   2          while(RI==0);RI=0;			//接收A机校验和
  55   2          if((SBUF^sum)==0)			//比较检验和
C51 COMPILER V6.20c  11_1                                                                  09/02/2001 15:06:41 PAGE 2   

  56   2          {SBUF=0x00;break;}			//校验和相同则发"00"
  57   2         else
  58   2          {SBUF=0xFF;				//出错发"FF",重新接收
  59   3           while(TI==0);TI=0;
  60   3          }
  61   2      }
  62   1      }
  63          
  64          /*主程序main()*/
  65          void main(void)
  66          {init();
  67   1       if(TR==0) {send();}				//发送
  68   1       else{receive();}					//接收
  69   1      }


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