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

📄 main.lst

📁 KEIL C编译 到位监控程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 172   1                  {
 173   1                       OLT9=0; 
 174   1                      }//正方向  转
 175   1               else
 176   1                 { 
 177   1                   if(pwm4<PWM100) //关断时间 9-10
 178   1                     {
 179   1                          OLT9=1; 
C51 COMPILER V7.20   MAIN                                                                  10/13/2008 13:13:43 PAGE 4   

 180   1                      }//停 
 181   1                        else
 182   1                         { pwm4=0; }
 183   1                  }
 184   1                pwm4++;
 185   1         }
 186   1        else { 
 187   1               OLT9=1; 
 188   1             }  //停
 189   1      
 190   1      if(cardlamp)
 191   1         { 
 192   1           if(pwm3<=PWM50)//导通时间 1-8
 193   1                  {
 194   1                       OLTA=0; 
 195   1                      }//正方向  转
 196   1               else
 197   1                 { 
 198   1                   if(pwm3<PWM100) //关断时间 9-10
 199   1                     {
 200   1                          OLTA=1; 
 201   1                      }//停 
 202   1                        else
 203   1                         { pwm3=0; }
 204   1                  }
 205   1                pwm3++;
 206   1         }
 207   1        else { 
 208   1              OLTA=1; 
 209   1             }  //停
 210   1      */
 211   1      XBYTE[0x1000] = outputByte2;  //公用
 212   1        
 213   1      RCAP2H=LD_T2H; 
 214   1      RCAP2L=LD_T2L;
 215   1      
 216   1        TR2=1;        //开始定时
 217   1      }
 218          
 219          /////////////////////////////
 220          //名称: timerSet                                               
 221          //功能: 设置定时器2                                        
 222          //输入: ms,定时时间,毫秒  1ms 最小单位 
 223          //输出: 定时时间到时, 
 224          ///////////////////////
 225          /*void timerSet(uchar ms)
 226          {
 227                  TR2=0; // 停止定时器
 228                  timerOver = 0;
 229                  timeCounter = ms;
 230                  TR2=1; // 重新启动定时器
 231          }*/
 232          /////////////////////////////
 233          //名称: setTimer                                               
 234          //功能: 设置定时器                                         
 235          //输入: ms,定时时间,毫秒  10ms 最小单位 
 236          //输出: 定时时间到时,输出TF0 
 237          ///////////////////////
 238          void setTimer(WORD ms)
 239          {
 240   1              TR0=0; // 停止定时器
 241   1              timerHap = 0;
C51 COMPILER V7.20   MAIN                                                                  10/13/2008 13:13:43 PAGE 5   

 242   1              counter = ms/10;
 243   1              //TF0=0;        //清除标志位
 244   1              TR0=1; // 重新启动定时器
 245   1      }
 246           
 247          main()
 248          {
 249   1          INIT_TIME2();  //first
 250   1         //releaseAllMotor(); //锁住所有电机
 251   1         init_serialcom();
 252   1         INIT_TIME0();
 253   1         // send_string_com(STAOUT,LENGTH);//发送 for test   
 254   1         while(1)
 255   1            {
 256   2             P2_0=!P2_0;      //喂狗
 257   2                 
 258   2                  switch(workState)
 259   2                  {
 260   3                       case HALT_STATUS:
 261   3                               if(RECE_flag)    //1/ 如果有新数据 //pass
 262   3                     { 
 263   4                          workState=EXEC_STATUS;
 264   4                             }
 265   3                       break;
 266   3      
 267   3                       case EXEC_STATUS:      //执行报文
 268   3                       if(RECE_flag)    //1/ 如果有新数据 //pass
 269   3                     { 
 270   4                          execCommand();
 271   4                      RECE_flag=0;
 272   4                             }  
 273   3                       break;
 274   3      
 275   3      
 276   3               default:
 277   3                       break;
 278   3                 }
 279   2       
 280   2            }//while end
 281   1      }//main end
 282          
 283          /**********************************************************************
 284          ** 函数名称:    serial_recive   //pass
 285          ** 功能描述:    串口接收中断函数接收一个字符串
 286          ** 输 入:      无    
 287          ** 输 出:              无
 288          ** 全局变量:    count: 接收字符个数统计变量
 289                          inbuf1[LENGHT]   数据接收缓冲区
 290                          LENGHT           接收数据总长度
 291                                          RECE_flag        接收标志位
 292          ** 调用模块:    无
 293          ***********************************************************************/
 294          void serial_recive () interrupt 4  
 295          {
 296   1          if(RI)
 297   1          {   
 298   2                  unsigned char ch;
 299   2                      RI = 0;
 300   2              ch=SBUF;
 301   2                      if(first_DLE==0)
 302   2                      {
 303   3               if(ch==DLE) //                                  
C51 COMPILER V7.20   MAIN                                                                  10/13/2008 13:13:43 PAGE 6   

 304   3                  {   
 305   4                           first_DLE=1;
 306   4                               //丢掉 ch
 307   4                          }
 308   3                   else //(ch!=0x10) 
 309   3                              {
 310   4                               if(ch==ETX)// 03 03 未处理
 311   4                                  {
 312   5                                    CMDIN[count++]=ch;
 313   5                        RECE_flag=1;                //表示已经完成一次完整接收
 314   5                                IN_LENGTH=count;            //接收到数据的总长度
 315   5                                    count=0; 
 316   5                                   }
 317   4                                else
 318   4                                    {
 319   5                            CMDIN[count++]=ch;
 320   5                                    }
 321   4                                first_DLE=0;
 322   4                          }
 323   3              }
 324   2      
 325   2              else //first_DLE==1
 326   2                {
 327   3              //     if(ch==DLE||ch==ETX||ch==STX) //   
 328   3              //     {}//
 329   3              //    else {}   //
 330   3                 CMDIN[count++]=ch;
 331   3                 first_DLE=0;
 332   3                }
 333   2         }
 334   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    341    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     47       1
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      7    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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