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

📄 zj.lst

📁 基于51的RS485的多机发送和接收的通信程序
💻 LST
字号:
C51 COMPILER V8.08   ZJ                                                                    04/13/2009 17:52:20 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE ZJ
OBJECT MODULE PLACED IN zj.OBJ
COMPILER INVOKED BY: F:\KEILUV38.08+注册机\KEIL UV3 8.08 + 注册机\C51\BIN\C51.EXE zj.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg51.h>
   2          #define uchar unsigned char
   3          void send(uchar number,uchar comand);
   4          void read();
   5          void closed();
   6          void open();
   7          void wai();
   8          void delay();
   9          uchar cort=0x03;
  10          sbit p35=P3^5;
  11          sbit p10=P1^0;
  12          sbit p11=P1^1;
  13          
  14          void main(){
  15   1                P2=0Xff;
  16   1                TMOD=0x20;
  17   1                TL1=0xfd;
  18   1                TH1=0xfd;
  19   1                PCON=0x00;
  20   1                TR1=1;
  21   1                SCON=0xD8;
  22   1      IT0=1;
  23   1      EX0=1;
  24   1                EA=1;
  25   1                ES=1;
  26   1                p35=1;
  27   1      while(1)
  28   1      {
  29   2      if(p10==0)  switch(cort) {
  30   3                           case 3:send(0x01,0x03);break;
  31   3                           case 4:send(0x01,0x04);break;
  32   3                           case 5:send(0x01,0x05);break;
  33   3                           default:;
  34   3                   }
  35   2      
  36   2      if(p11==0) switch(cort)  {
  37   3                           case 3:send(0x02,0x03);break;
  38   3                           case 4:send(0x02,0x04);break;
  39   3                           case 5:send(0x02,0x05);break;
  40   3                           default:;
  41   3                   }
  42   2      }
  43   1      }
  44          //发送函数
  45          void send(uchar number,uchar comand)
  46          {
  47   1      a1:p35=1;SM2=0;SBUF=number;while(TI==0);TI=0;//发从机号
  48   1         p35=0;TB8=0;while(RI==0);RI=0;//接收从机号
  49   1         if(SBUF!=number){p35=1;SBUF=0x80;while(TI==0);TI=0;//从机号不一致,重发
  50   2         delay();TB8=1;goto a1;}
  51   1         p35=1;SBUF=0X00;while(TI==0);TI=0;//发正确信号
  52   1         delay();
  53   1      do{p35=1;SBUF=comand;while(TI==0);TI=0;//发送命令
  54   2         delay();
  55   2         p35=1;SBUF=comand;while(TI==0);TI=0;//发校验命令
C51 COMPILER V8.08   ZJ                                                                    04/13/2009 17:52:20 PAGE 2   

  56   2         p35=0;while(RI==0);RI=0;//接收从机应答
  57   2         }while((SBUF&0X80)==0X80);
  58   1         switch (comand){
  59   2                        case 0x03:read();break;
  60   2                        case 0x04:closed();break;
  61   2                        case 0x05:open();break;
  62   2                        default:;
  63   2                        }
  64   1         SM2=1;TB8=1;p35=1;
  65   1      }
  66          
  67          //read函数
  68          void read()
  69          {uchar result;
  70   1      a2:p35=0;while(RI==0);RI=0;result=SBUF;
  71   1         p35=0;while(RI==0);RI=0;
  72   1         if(SBUF!=result){p35=1;SBUF=0x80;while(TI==0);TI=0;goto a2;}
  73   1         p35=1;SBUF=0x00;while(TI==0);TI=0;
  74   1         P2=result;
  75   1      }
  76          
  77          //closed函数
  78          void closed()
  79          {P2=0xf0;}
  80          
  81          //open函数
  82          void open()
  83          {P2=0x0f;}
  84          
  85          
  86          void delay()
  87          {uchar i;
  88   1      for(i=5;i>0;i--);
  89   1      }
  90          //
  91          void wai() interrupt 0
  92          {
  93   1      ++cort;
  94   1      P2=cort;
  95   1      if(cort>=0x06)cort=0x03;
  96   1      
  97   1      }


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