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

📄 main.lst

📁 一个应用89C52
💻 LST
📖 第 1 页 / 共 3 页
字号:
 196   4                         else          onbat =0;
 197   4                         if(GET[5]!=0x55) serbit=1;
 198   4                         else   {
 199   5                                   abc = 0;
 200   5                                   for(i=0;i<12;i++){
 201   6                                       GET[i] = 0;
 202   6                                       LD[i]  = 0;  }
 203   5                                  }
 204   4                         break;
 205   4              case 0xf1: sendstring(&TT[0],12);
 206   4                         break;
 207   4              case 0xf2: abc = getchar();
 208   4                         getstring(&GET[0],12);
 209   4                         for(i=0;i<12;i++){
 210   5                          TEMP[i] = TT[i];            //TEMP[12] 分选前有电池的位
 211   5                                           }          //LD[12] 点亮的电池位
 212   4                         if(abc==0) {                 //TT[12] 当前有电池的位
 213   5                         for(i=0;i<12;i++){           //GET[12] 想要点亮的电池位,
 214   6                          LD[i]  = GET[i];             //abc:档位号,abc=0时,测试灯的好坏
 215   6                          }
 216   5                                      }
 217   4                         break;
 218   4              case 0xf3:
 219   4                         qg      = getchar();                //汽缸开启与关闭
 220   4                         if(tuopan_state==1) qg=0,serbit=1;//汽缸开关为本地状态,TA3=1为本地状态;
 221   4                         break;
 222   4                        }
 223   3              if(serbit) sendchar(0x44);
 224   3              else       sendchar(0x88);
 225   3                              }
 226   2                                       }
 227   1        // else  c[0]=SBUF;
 228   1      if(TI)   TI=0;
 229   1               P10 = 0;
 230   1               SM2 = 1;
 231   1               serbit =0;
 232   1      
 233   1       }
 234           /****************************************************************************************
 235          *函数名称:writeled(hang)
 236          *函数功能:发光二极管点亮函数
 237          *入口参数:hang
 238          *出口参数:无
C51 COMPILER V6.12  MAIN                                                                   01/23/2007 22:25:02 PAGE 5   

 239          *作    者:
 240          *日    期:
 241          *****************************************************************************************/
 242          void writeled(unsigned char data hang)
*** WARNING C258 IN LINE 242 OF F:\新建文件夹10\9601\FENX96\MAIN.C: 'hang': mspace on parameter ignored
 243          {
 244   1         unsigned char data i;
 245   1         LEDW = led_off;    //lie 0-7
 246   1         LDW  = ld_off;
 247   1         i	= hang;
 248   1         LDW  = i;
 249   1         if(onbat) {
 250   2         LEDW = TT[i];     //TT[12]:当前有电池的位
 251   2                   }
 252   1         else      {
 253   2          LEDW = LD[i];    //LD[12]:点亮的电池位
 254   2                    }
 255   1      }
 256          /****************************************************************************************
 257          *函数名称: timego()
 258          *函数功能: 定时器1中断函数
 259          *入口参数: 无
 260          *出口参数: 无
 261          *作    者:
 262          *日    期:
 263          *****************************************************************************************/
 264          void timego(void) interrupt 3
 265          {    //定时   t1
 266   1                  TT[hang]   = ~V1R;                //红外线发接受管列读入,行为GDW,列为V1R
 267   1      /*#ifdef  onebyone
 268   1                  if(hang==1) {
 269   1                              nop;
 270   1                              }
 271   1      #endif*/
 272   1                 if(++hang==12) hang= 0;
 273   1                 if(jiguangbit==0)
 274   1                  {
 275   2                    GDW  = hang;
 276   2                    writeled(hang);                 //点亮相应的电池位
 277   2                    }
 278   1                  if(errbit)  onbeep =1;
 279   1                  else        onbeep =0,FNC =0;
 280   1                 if(FNC==1&&flashbit==0){           //电池取错蜂鸣器报警,LED闪烁
 281   2                     FNC=FNC;
 282   2                                          }
 283   1                  if(++t1_500ms>=500)
 284   1                  {
 285   2                       flashbit=~flashbit;
 286   2                       t1_500ms=0;                       //托盘到位检测
 287   2                       if(flashbit&&onbeep) FNC=1;
 288   2                       else                 FNC=0;
 289   2                       if(++sec5>=6){
 290   3                                     sec5 = 0;
 291   3                                     errbit=0;
 292   3                                      }
 293   2                   }
 294   1             FQG        = 1;            //*********************
 295   1             key_state  = FQG;
 296   1             if(key_state!=key) {       //汽缸开关状态检测 &&tuopan_state==1
 297   2                      onqg=1;
 298   2                                }
 299   1              tuopan_state   = TXADR;
C51 COMPILER V6.12  MAIN                                                                   01/23/2007 22:25:02 PAGE 6   

 300   1              tuopan_state >>= 5;
 301   1      
 302   1             if(onqg&&tuopan_state==1) {
 303   2                                        FNC = 0;
 304   2                                        LEDW      = led_off;
 305   2                                        LDW       = ld_off;
 306   2                 if(key_state)   {          //0
 307   3                           XQG        = DOWN;
 308   3                           qgtime     = 0  ;
 309   3                           GDW        = 0x90;
 310   3                           jiguangbit = 1;
 311   3                           qg_state   = 1;
 312   3                          
 313   3                           
 314   3                              }
 315   2                 else      {
 316   3                            XQG       = UP;
 317   3                            qg_state  = 0;               //1
 318   3                            }
 319   2                 while(key!=key_state)          //{FQG = 1,key = FQG;}
 320   2                   {
 321   3                     key=~key;
 322   3                   }
 323   2                  onqg = 0;
 324   2                       }
 325   1           else if(onqg&&tuopan_state!=1){
 326   2                  onqg = 0;
 327   2                                  }
 328   1            if(qg!=0&&tuopan_state==0)  {
 329   2                                        FNC = 0;
 330   2                                        LEDW      = led_off;
 331   2                                        LDW       = ld_off;
 332   2              if(qg==0x55)  {
 333   3                          XQG        = DOWN;
 334   3                           qgtime     = 0  ;
 335   3                           GDW        = 0x90;
 336   3                           jiguangbit = 1;
 337   3                           qg_state   = 1;
 338   3                             }
 339   2              else           {
 340   3                              XQG       = UP;
 341   3                              qg_state  = 0;
 342   3                              }
 343   2              qg = 0;
 344   2                        }
 345   1           else if(qg!=0&&tuopan_state!=0){
 346   2                                  qg=0;
 347   2                                          }
 348   1               while(jiguangbit)
 349   1              {                                 //TEST JIGUANG GUAN
 350   2               JIG = 1;
 351   2               JIG = JIG;
 352   2               if(JIG==1){
 353   3                  delay_char(250);
 354   3                  JIG = JIG;                 //JIG低电平正常,高电平错误
 355   3                  if(JIG&qg_state){
 356   4                     XQG        = UP;
 357   4                     qg_state   = 0;     //
 358   4                     jiguangbit = 0;
 359   4      	     GDW        = 0x10;  ///
 360   4                     errbit     = 1;
 361   4                                  }
C51 COMPILER V6.12  MAIN                                                                   01/23/2007 22:25:02 PAGE 7   

 362   3                          }
 363   2               }
 364   1                   if(qg_state)
 365   1                   {   qgtime++;
 366   2                       if(qgtime>=3000) {
 367   3                           qg_state   = 0;
 368   3                           qgtime     = 0;
 369   3                           jiguangbit = 0;
 370   3                           GDW        = 0X10;
 371   3                                       }
 372   2                    }
 373   1                  TL1        = _tl1;
 374   1                  TH1        = _th1;
 375   1                 }
 376          /****************************************************************************************
 377          *函数名称:getledbyte(pm)
 378          *函数功能:电池错拿检测函数
 379          *入口参数:pm
 380          *出口参数:errbit,LD[M],
 381          *作    者:
 382          *日    期:
 383          *****************************************************************************************/
 384          void getledbyte(unsigned char data pm)
*** WARNING C258 IN LINE 384 OF F:\新建文件夹10\9601\FENX96\MAIN.C: 'pm': mspace on parameter ignored
 385          {
 386   1           unsigned char data atemp,m,att;
 387   1            m     = pm;
 388   1            atemp = (~TEMP[m])&TT[m];                        //TEMP[12] 分选前有电池的位
 389   1            att   = (TEMP[m]&(~TT[m]))&(~GET[m]);
 390   1            LD[m] = (TEMP[m]&TT[m])&GET[m];                 //LD[i]:分选时点亮的电池位
 391   1            if(atemp) {
 392   2                       errbit = 1;
 393   2                       if(flashbit)  LD[m] |= atemp;
 394   2                       else          LD[m] &= (~atemp);
 395   2                      }
 396   1            if(att)
 397   1                      {                                      //att电池取错的位
 398   2                       errbit = 1;
 399   2                       if(flashbit)  LD[m] |= att;
 400   2                       else          LD[m] &= (~att);

⌨️ 快捷键说明

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