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

📄 panel.lst

📁 64输入32输出单片机程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 247   1          _write_char(r,(char)('0'+(v/100)));
 248   1          v %= 100;
 249   1          _write_char(r,(char)('0'+(v/10)));
 250   1          _write_char(r,'.');
 251   1          _write_char(r,(char)('0'+(v%10)));
 252   1      }
 253          //-------------------------------------------------------------------------
 254          void _disp_win (char *win)
 255          {
 256   1          unsigned char i;
 257   1          _set_display(0,0x80);
 258   1          for (i=0; i<40; i++)
 259   1              _write_char(0,win[i]);   // write char. to row 0 in display.
 260   1          _set_display(0,0xc0);
 261   1          for (i=40; i<80; i++)
 262   1              _write_char(0,win[i]);   // write char. to row 1 in display.
 263   1          _set_display(1,0x80);
 264   1          for (i=80; i<120; i++)
 265   1              _write_char(1,win[i]);   // write char. to row 2 in display.
 266   1          _set_display(1,0xc0);
 267   1          for (i=120; i<160; i++)
 268   1              _write_char(1,win[i]);   // write char. to row 3 in display.
 269   1      }
 270          //-------------------------------------------------------------------------
 271          void _set_display (char s, char d)
 272          {
 273   1          char buf = d;
 274   1          switch (s){
 275   2              case 0 :
 276   2                  buf &= 0xf0;
 277   2                  buf |= 0x04;
 278   2                  DispPort = buf;
 279   2                  DispPort = 0x02;
 280   2                  _delay100us();
 281   2                  buf = (d<<4)|0x04;
 282   2                  DispPort = buf;
 283   2                  DispPort = buf & 0x02;     //==0
 284   2                  _delay100us();
 285   2                  break;
 286   2              case 1 :
 287   2                  buf &= 0xf0;
 288   2                  buf |= 0x08;
 289   2                  DispPort = buf;
 290   2                  DispPort = 0x02;
 291   2                  _delay100us();
 292   2                  buf = (d<<4)|0x08;
 293   2                  DispPort = buf;
 294   2                  DispPort = 0x02;
 295   2                  _delay100us();
 296   2          }
 297   1      }
 298          //-------------------------------------------------------------------------
 299          void _res_display (char s, char d)
 300          {
 301   1          char buf = d;
 302   1          switch (s){
 303   2              case 0 :
C51 COMPILER V7.06   PANEL                                                                 01/26/2004 20:24:41 PAGE 6   

 304   2                  buf &= 0xf0;
 305   2                  buf |= 0x04;
 306   2                  DispPort = buf;
 307   2                  DispPort = 0x02;
 308   2                  break;
 309   2              case 1 :
 310   2                  buf &= 0xf0;
 311   2                  buf |= 0x08;
 312   2                  DispPort = buf;
 313   2                  DispPort = 0x02;
 314   2          }
 315   1          _delay100us();
 316   1      }
 317          //-------------------------------------------------------------------------
 318          void _write_char (char s, char c)
 319          {
 320   1          char buf = c;
 321   1          switch (s) {
 322   2              case 0 :
 323   2                  buf &= 0xf0;
 324   2                  buf |= 0x05;
 325   2                  DispPort = buf;
 326   2                  DispPort = 0x03;
 327   2                  _delay100us();
 328   2                  buf = (c<<4)|0x05;
 329   2                  DispPort = buf;
 330   2                  DispPort = 0x03;
 331   2                  _delay100us();
 332   2                  break;
 333   2              case 1 :
 334   2                  buf &= 0xf0;
 335   2                  buf |= 0x09;
 336   2                  DispPort = buf;
 337   2                  DispPort = 0x03;
 338   2                  _delay100us();
 339   2                  buf = (c<<4)|0x09;
 340   2                  DispPort = buf;
 341   2                  DispPort = 0x03;
 342   2                  _delay100us();
 343   2          }
 344   1      }
 345          //-------------------------------------------------------------------------
 346          void _delay5ms(void)
 347          {
 348   1          unsigned tref = 900;
 349   1          while (tref != 0)
 350   1              tref--;
 351   1      }
 352          //-------------------------------------------------------------------------
 353          void _delay200us (void)
 354          {
 355   1          char tref = 64;
 356   1          while (tref--);
 357   1      }
 358          //-------------------------------------------------------------------------
 359          void _delay100us (void)
 360          {
 361   1          char tref = 32;
 362   1          while (tref--);
 363   1      }
 364          //-------------------------------------------------------------------------
 365          /*
C51 COMPILER V7.06   PANEL                                                                 01/26/2004 20:24:41 PAGE 7   

 366          void _outp_bit (char f , char s)
 367          {
 368              switch (f){
 369                  case OFF :
 370                      if (s == OFF)
 371                          outp_buf |= 00000100;
 372                      else
 373                          outp_buf &= 11111011;
 374                      break;
 375                  case PASS :
 376                      if (s == OFF)
 377                          outp_buf |= 00010000;
 378                      else
 379                          outp_buf &= 11101111;
 380                      break;
 381                  case FAIL :
 382                      if (s == OFF)
 383                          outp_buf |= 00100000;
 384                      else
 385                          outp_buf &= 11011111;
 386                      break;
 387                  case AUTO :
 388                      if (s == OFF)
 389                          outp_buf |= 00000001;
 390                      else
 391                          outp_buf &= 11111110;
 392                      break;
 393                  case MANU :
 394                      if (s == OFF)
 395                          outp_buf |= 00000010;
 396                      else
 397                          outp_buf &= 11111101;
 398                      break;
 399                  case TEST :
 400                      if (s == OFF)
 401                          outp_buf |= 00000100;
 402                      else
 403                          outp_buf &= 11111011;
 404                      break;
 405                  case BUZZER :
 406                      if (s == OFF)
 407                          outp_buf |= 01000000;
 408                      else
 409                          outp_buf &= 10111111;
 410              }
 411              OutputPort = outp_buf;
 412          }
 413          */
 414          //
 415          -------------------------------------------------------------------------
*** ERROR C141 IN LINE 415 OF PANEL.C: syntax error near '--'
 416          ar _read_keypad(void)
*** ERROR C129 IN LINE 416 OF PANEL.C: missing ';' before '_read_keypad'
 417          {
 418              unsigned char key_val;
 419              K2=0;
 420              K0=1;K1=1;K3=1;
 421              if(K4==0)key_val=F1;
 422              if(K5==0)key_val=F2;
 423              if(K6==0)key_val=F3;
 424              if(K7==0)key_val=F4;
 425          
C51 COMPILER V7.06   PANEL                                                                 01/26/2004 20:24:41 PAGE 8   

 426              K3=0;
 427              K0=1;K1=1;K2=1;
 428              if(K4==0) key_val=7;
 429              if(K5==0) key_val=8;
 430              if(K6==0) key_val=9;
 431              if(K7==0) key_val=0;
 432          
 433              K0=0;
 434              K1=1;K2=1;K3=1;
 435              if(K4==0) key_val=4;
 436              if(K5==0) key_val=5;
 437              if(K6==0) key_val=6;
 438              if(K7==0) key_val=F5;
 439          
 440              K1=0;
 441              K0=1;K2=1;K3=1;
 442              if(K4==0) key_val=1;
 443              if(K5==0) key_val=2;
 444              if(K6==0) key_val=3;
 445              if(K7==0) key_val=F6;
 446          
 447              return(key_val);
 448          }
 449          
 450          
 451          //-------------------------------------------------------------------------
 452          void _set_delay(char delay)
 453          {
 454              unsigned time;
 455              time = tick_clock+delay;            // read current time
 456              while (time != tick_clock);
 457          }
 458          //-------------------------------------------------------------------------
 459          void _init_system(void)
 460          {
 461              // setup timer0 interrupt initalization
 462              tick_clock = 0;
 463              TH0 = MSB_PERIOD;
 464              TL0 = LSB_PERIOD;
 465              TMOD |= 0x01;
 466              TR0 = ON;
 467              ET0 = ON;
 468              EA  = ON;
 469              _init_serial(BAUD19200);
 470              _initial_disp();
 471              _set_delay(30);
 472           }
 473          //-------------------------------------------------------------------------
 474          //          Timer0 interrupt service function
 475          //          Executes each 10ms @24MHZ Crystal clock
 476          //-------------------------------------------------------------------------
 477          timer0() interrupt 1 using 2     // Int Vector at 000BH, Reg Bank 2
 478          {
 479              TH0 = MSB_PERIOD;
 480              TL0 = LSB_PERIOD;
 481              tick_clock++;
 482              K0=0;K1=0;K2=0;K3=0;
 483              if(K4==0||K5==0||K6==0||K7==0)
 484                  {
 485                   key_down = _read_keypad();
 486                   key_flag=1;
 487                  }
C51 COMPILER V7.06   PANEL                                                                 01/26/2004 20:24:41 PAGE 9   

 488              else
 489                  key_flag=0;
 490          
 491              if (++inc_ref == 10) {
 492                  ref_100ms++;
 493                  inc_ref = OFF;
 494              }
 495          }
 496          //--------------------------------------------------------------------------

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

⌨️ 快捷键说明

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