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

📄 11.2.lst

📁 串口读写
💻 LST
字号:
C51 COMPILER V6.14  11_2                                                                   01/13/2005 20:45:21 PAGE 1   


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

stmt level    source

*** WARNING C500 IN LINE 1 OF .\11.2.C: MISSING DEVICE (SECURITY KEY NOT FOUND)
   1          #include<reg51.h>
   2          #define uchar unsigned char
   3          #define BN 16						//传送一次的字节数
   4          
   5          uchar master(uchar addrs,uchar comnd);
   6          uchar SLAVE=0x00;					//从机地址
   7          uchar idata rdata[16];
   8          uchar idata tdata[16]={"abcdefghijklmnop"};
   9          void main(void)
  10          {
  11   1        uchar i;
  12   1        for(i=0;i<10;i++)
  13   1        TMOD=0x20;						//定时器T1定义为模式2
  14   1        TL1=0xfd;TH1=0xfd;				//置初值
  15   1        PCON=0x00;
  16   1        TR1=1;
  17   1        SCON=0xD0;					//设置串行口控制字,方式3,允许接收
  18   1        master(SLAVE,0x01);
  19   1        master(SLAVE,0x02);
  20   1        SLAVE++;
  21   1      }
  22          
  23          void error(void)
  24          {
  25   1        SBUF=0xFF;					//发给从机数据出错标志
  26   1        while(TI!=1);						//等待发送完
  27   1        TI=0;
  28   1      }
  29          
  30          uchar master(uchar addrs,uchar comnd)
  31          { uchar a,i,p;
  32   1      while(1)
  33   1      {
  34   2        SBUF=SLAVE;					//发呼叫地址 
  35   2        while(TI!=1);						//等待发送完
  36   2        TI=0;
  37   2        while(RI!=1);						//等待从机应答
  38   2        RI=0;
  39   2        if(SBUF!=addrs)
  40   2        error();							//若地址出错,发出错标志,从机复位
  41   2        else
  42   2        {
  43   3         TB8=0;						//清地址标志位,准备接收数据
  44   3         SBUF=comnd;					//发命令帧
  45   3         while(TI!=1);TI=0;
  46   3         while(RI!=1);RI=0;
  47   3         a=SBUF;						//接收从机的返回地址帧
  48   3         if((a&0x80)==0x80){TB8=1;error();}	//若主机命令非法,发复位信号给从机
  49   3         else
  50   3         {
  51   4      	 if(comnd==0x01)				//主机发送的命令是请求从机接收数据
  52   4             {
  53   5               if((a&0x01)==0x01)			//从机准备接收就绪
  54   5               {
C51 COMPILER V6.14  11_2                                                                   01/13/2005 20:45:21 PAGE 2   

  55   6                    do{
  56   7      				p=0;					//清校验和
  57   7      				for(i=0;i<BN;i++)
  58   7      				 {
  59   8      				  SBUF=tdata[i];			//发送数据
  60   8      				  p=p+tdata;				//计算校验和
  61   8      				  while(TI!=1);TI=0;
  62   8      				 }
  63   7      				SBUF=p;				//发送校验和给从机
  64   7      				while(TI!=1);TI=0;
  65   7      				while(RI!=1);RI=0;
  66   7                     }while(SBUF!=0);			//从机接收不正确,主机重新发送
  67   6                    TB8=1;				//重置地址标志位
  68   6                    return(0);
  69   6                }
  70   5            }
  71   4      	 else{
  72   5            if(comnd==0x02)			//主机发送的是接收命令,从机发送数据
  73   5              {if((a&0x02)==0x02)		   	//从机准备发送就绪
  74   6               {while(1)
  75   7                 {p=0;
  76   8                  for(i=0;i<BN;i++)
  77   8                  {
  78   9                   while(RI!=1);RI=0;
  79   9                   rdata[i]=SBUF;		//主机接收数据
  80   9                   p+=rdata[i];
  81   9                  }
  82   8                  while(RI==0);RI=0;
  83   8                  if(SBUF==p)
  84   8      			{
  85   9      			 SBUF=0x00;		//校验和相同,发0x00给从机
  86   9      			 while(TI!=1);TI=0;
  87   9      			}
  88   8      			else
  89   8      			{
  90   9                   SBUF=0x0F;			//校验和不同,发0x0F给从机
  91   9      			 while(TI!=1);TI=0;
  92   9      			}
  93   8                }
  94   7      	      TB8=1;				//重置地址标志位
  95   7             	  return(0);
  96   7             }
  97   6            }
  98   5           }
  99   4      }
 100   3      }
 101   2      }
 102   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    218    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1    ----
   IDATA SIZE       =     32    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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