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

📄 myapi.lst

📁 单片机485通信单发单收单发多收及主从模式
💻 LST
📖 第 1 页 / 共 2 页
字号:
 146          
 147          void TESTSW(void)//当检测到P1.?和P1.?口为低电平时,就分别将红灯点亮和将绿灯点亮。
 148          {               if(SWGREEN == 0) GREEN1 =       GREEN2  =       0; else GREEN1  =       GREEN2  =       1;
 149   1                      if(SWRED   == 0) RED1   =       RED2    =       0; else RED1    =       RED2    =       1;
 150   1      }
 151          
 152          
 153          void AtoB(void)//将i到j从A发送到B    闪烁~~~~~~~~
 154          {
 155   1              TorRF   =       1;TR_CFG        =       1;
 156   1              ES              =       0;
 157   1              SBUF    =       SENDNUM;
 158   1              DISPLAYNUM       =      SENDNUM;
 159   1              TR1             =       1; 
 160   1              while(!TI);
 161   1              TI      =       0;
 162   1              GREEN1  =       0;
 163   1              GREEN1  =       1;
 164   1              if(COUNT2       <       5) COUNT2++;
 165   1              else {COUNT2 = 0; if(SENDNUM<99) ++SENDNUM;else SENDNUM=DISPLAYNUM=0;}
 166   1              ES      =       1;
 167   1      }
 168          void AtoBOFF(void)
 169          {ES             =       0;TR1           =       0;DISPLAYNUM    =       0;ST1   =       ST2     =       1;}
 170          void AreB(void)//A从B接收到一个字节 作为跟新全局变量DISPLAYNUM
 171          {
 172   1              ES              =       1;TorRF         =       0;TR_CFG        =       0;
 173   1              while(!RI);
 174   1              RI      =       0;
 175   1              RENUM   =       SBUF;
 176   1              TorRF   =       0;
 177   1              TR1     =       1;
 178   1              DISPLAYNUM      =       RENUM;
 179   1      }
C51 COMPILER V7.50   MYAPI                                                                 03/23/2009 12:46:39 PAGE 4   

 180          void AreBOFF(void)
 181          {ES             =       0;TorRF         =       1;TR_CFG        =       1;SR1   =       SR2     =       1;TR1   =       0;}
 182          void MasterTOSlaver(void)//主从通信 每回合通信为16个数
 183          {
 184   1              SM2     =       1;
 185   1              TR0     =       0;
 186   1              //主机程序
 187   1              if((SW5 ==      0)&&(!ACKMASTER))
 188   1              {
 189   2                      TR1             =       0;      ST1 = ST2 = SR1 = SR2 = 1;TI    =       0;
 190   2                      TB8     =       1;
 191   2                      TR_CFG  =       1;
 192   2                      SBUF    =       ADD1;
 193   2                      
 194   2                      while(!TI);
 195   2                      TI      =       0;
 196   2                      TR_CFG  =       0;
 197   2                      SM2     =       0;
 198   2                      GREEN1  =       0;
 199   2                      GREEN1  =       1;
 200   2                      
 201   2                      MASTERNUM       =       0;
 202   2                      DISPLAYNUM      =       0;
 203   2                      TorRF   =       0;
 204   2      
 205   2                      RI      =       0; 
 206   2                              
 207   2                                      
 208   2                      while(MASTERNUM <       MAXNUM  +       1)
 209   2                      {
 210   3                              while(!RI);
 211   3                              RI      =       0;
 212   3                              RENUM   =       SBUF;
 213   3                              DISPLAYNUM      =       RENUM;ACKMASTER =       1; TorRF        =       0;
 214   3                              TR1     =       1;
 215   3                              MASTERNUM++;
 216   3      //                      Delay(255);
 217   3                      }
 218   2                      TR_CFG  =       1;      
 219   2                      SM2     =       1;      
 220   2              
 221   2      /*              //接收超时
 222   2                      if(!ACKMASTER)
 223   2                      {
 224   2                              TR1     =       0;
 225   2                              ST1 = ST2 = SR1 = SR2 = 1;
 226   2                              P0      =       0xF8;
 227   2                              DISPLAYNUM      =       SENDNUM;TR1     =       1;TorRF =       1;//可在此处修正从机地址
 228   2                      }*/ 
 229   2                      
 230   2                      
 231   2      
 232   2              }
 233   1              if((SW6         ==      0)&&(!ACKSLAVER))
 234   1              {
 235   2                      TR1             =       0;      ST1 = ST2 = SR1 = SR2 = 1;TR_CFG        =       0;TorRF =       0;
 236   2                      
 237   2      //              while(EERCOUNT  <       255) 
 238   2      //              {
 239   2      //                      ++EERCOUNT;
 240   2      //                      if(RI   ==      1)
 241   2      //                      {
C51 COMPILER V7.50   MYAPI                                                                 03/23/2009 12:46:39 PAGE 5   

 242   2                                      while(!RI)
 243   2                                      RI      =       0;
 244   2      
 245   2                                      RENUM   =       SBUF;
 246   2                                      if(ADD  ==      RENUM)
 247   2                                      {
 248   3                                              SENDNUM =       0x10;SM2        =       0;
 249   3                                              TorRF   =       1;TR_CFG        =       1;ACKSLAVER = 1;
 250   3                                              SLAVERNUM       =       0;
 251   3                                              while(SLAVERNUM <       MAXNUM)
 252   3                                              {
 253   4                                                      TB8     =       0;
 254   4                                                      SBUF    =       SENDNUM;
 255   4                                                      DISPLAYNUM       =      SENDNUM;
 256   4                                                      TR1             =       1; 
 257   4                                                      while(!TI);
 258   4                                                      TI      =       0;
 259   4                                                      GREEN1  =       0;
 260   4                                                      GREEN1  =       1;
 261   4                                                      if(SENDNUM<99) ++SENDNUM;
 262   4                                                      else SENDNUM=DISPLAYNUM=0;
 263   4                                                      SLAVERNUM++;
 264   4                                                      Delay(255);
 265   4                                              }
 266   3      
 267   3                                      }
 268   2      
 269   2      //                      } 
 270   2      //              }
 271   2      
 272   2      /*              if(!ACKSLAVER)
 273   2                      {
 274   2                              TR1     =       0;
 275   2                              ST1 = ST2 = SR1 = SR2 = 1;
 276   2                              P0      =       0xF0;
 277   2                              DISPLAYNUM      =       SENDNUM;TR1     =       1;TorRF =       0;//可在此处修正从机地址
 278   2                      }  */
 279   2      
 280   2              }
 281   1              SM2     =       1;
 282   1              TR0     =       1;
 283   1      }


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