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

📄 anayserial_1.lst

📁 W78E516实现高速公路收费站语音费额显示器资料之三:产品的语音,通讯,显示全套源代码程序.
💻 LST
📖 第 1 页 / 共 4 页
字号:
 398   4                                              {
 399   5                                              cnt_sound=0;
 400   5                                              f_wrramover=0;
 401   5                                              }
 402   4                                      }
 403   3                             }
 404   2                      }
 405   1              }
 406          void WDFeed(void)
 407                  {
 408   1              wdi=1;
 409   1              wdi=0;
 410   1              }
 411          void serial(void) interrupt 4
 412                  {
 413   1              uchr tp=0;
 414   1              if(RI==1)
 415   1                      {
 416   2                      RI=0;
 417   2                      if(f_rerx==1)
 418   2                              {
 419   3                              if(SBUF==start)
 420   3                                      {
 421   4                                      f_rerx=0;
 422   4                                      cnt_rx=0;
 423   4                                      }
 424   3                              }
 425   2                      else
 426   2                              {
 427   3                              cnt_rx++; //rxbuff[cnt_rx-1]=SBUF;
C51 COMPILER V7.09   ANAYSERIAL_1                                                          07/20/2007 17:27:17 PAGE 8   

 428   3      
 429   3                              if(cnt_rx==1)
 430   3                                      {
 431   4                                      dispstyle=SBUF;
 432   4                                      }
 433   3                              if(cnt_rx==2)//显示数据会大于256,所以用两个字节来表示数据长度
 434   3                                      {
 435   4                                      displength_h=SBUF;
 436   4                                      }
 437   3                              if(cnt_rx==3)
 438   3                                      {
 439   4                                      //tp=SBUF;
 440   4                                      displength_l=SBUF;
 441   4                                      lengthdisp=displength_h*256+displength_l;
 442   4                                      if(lengthdisp>384)
 443   4                                              {
 444   5                                              f_rerx=1;
 445   5                                              f_transerr=1;
 446   5                                              Tx();
 447   5                                              }
 448   4                                      if(lengthdisp>127)
 449   4                                              {
 450   5                                              f_over128=1;
 451   5                                              }
 452   4                                      else
 453   4                                              {
 454   5                                              f_over128=0;
 455   5                                              }
 456   4                                      }
 457   3                              if((cnt_rx>3)&&(cnt_rx<(lengthdisp+4)))
 458   3                                      {
 459   4                                      if(cnt_rx<132)
 460   4                                              {
 461   5                                              rxbuff[cnt_rx-4]=SBUF; //0->127
 462   5                                              }
 463   4      
 464   4                                      else
 465   4                                              {
 466   5                                              CHPCON|=0x10;
 467   5                                              rxbuff2[cnt_rx-132]=SBUF; //128->384
 468   5                                              CHPCON=0x00;
 469   5                                              }
 470   4                                      }
 471   3                              if(cnt_rx==lengthdisp+4)
 472   3                                      {
 473   4                                      lengthsound=SBUF;
 474   4                                      CHPCON|=0x10;
 475   4                                      }
 476   3                              if((cnt_rx>(lengthdisp+4))&&(cnt_rx<(lengthdisp+lengthsound+5)))
 477   3                                      {
 478   4                                      soundbuff[cnt_rx-lengthdisp-5]=SBUF;
 479   4                                      }
 480   3                              if(cnt_rx==(lengthsound+lengthdisp+5))
 481   3                                      {
 482   4                                      rx_check=SBUF;
 483   4                                      }
 484   3                              if(cnt_rx==(lengthsound+lengthdisp+6))
 485   3                                      {
 486   4                                      f_rerx=1;
 487   4                                      if(SBUF==end)
 488   4                                              {
 489   5                                              f_anayrx=1;
C51 COMPILER V7.09   ANAYSERIAL_1                                                          07/20/2007 17:27:17 PAGE 9   

 490   5                                              }
 491   4                                      else
 492   4                                              {
 493   5                                              f_transerr=1;
 494   5                                              Tx();
 495   5                                              }
 496   4                                      }
 497   3                              }
 498   2                      }
 499   1              if(TI==1)
 500   1                      {
 501   2                      TI=0;
 502   2                      if(cnt_tx==1)
 503   2                              {
 504   3                              SBUF=end;
 505   3                              cnt_tx=0;
 506   3                              f_transerr=0;
 507   3                              f_transsuc=0;
 508   3                              }
 509   2                      if(cnt_tx==2)
 510   2                              {
 511   3                              cnt_tx--;
 512   3                              if(f_transerr==1)
 513   3                                      {
 514   4                                      SBUF=txerr;
 515   4                                      }
 516   3                              if(f_transsuc==1)
 517   3                                      {
 518   4                                      SBUF=txsuc;
 519   4                                      }
 520   3                              }
 521   2                      }
 522   1              }
 523          void timer0(void) interrupt 1
 524                  {
 525   1              TH0=0xfc;//定时1ms
 526   1              TL0=0x66;
 527   1              TR0=1;
 528   1              if(f_t_delaywr==1)
 529   1                      {
 530   2                      cnt_delaywr++;
 531   2                      if(cnt_delaywr==10)
 532   2                              {
 533   3                              cnt_delaywr=0;
 534   3                              f_t_delaywr=0;
 535   3                              f_delaywr=1;
 536   3                              }
 537   2                      }
 538   1              if(f_t_delayisd==1)
 539   1                      {
 540   2                      cnt_delayisd++;
 541   2                      if(cnt_delayisd==150)
 542   2                              {
 543   3                              cnt_delayisd=0;
 544   3                              f_t_delayisd=0;
 545   3                              //f_delayisd=1;
 546   3                              f_handlesound=1;
 547   3                              }
 548   2                      }
 549   1              }
 550          void int0(void) interrupt 0
 551                  {
C51 COMPILER V7.09   ANAYSERIAL_1                                                          07/20/2007 17:27:17 PAGE 10  

 552   1              if(isd_ce==0)
 553   1                      {
 554   2                      f_t_delayisd=1;
 555   2                      }
 556   1              isd_ce=1;
 557   1              }
 558          void Tx(void)
 559                  {
 560   1              cnt_tx=2;
 561   1              SBUF=0x10;
 562   1              }
 563          
 564          void rom2ram_ascii(uchr x,uchr y)
 565                  {
 566   1              uint tp=0;
 567   1              uchr i=0;
 568   1              ram_ce=0;
 569   1              if(x<13)
 570   1                      {
 571   2                      for(i=0;i<16;i++)
 572   2                              {
 573   3                              tp=12*i+x-1;
 574   3                              nDispRam[tp]=ascii[y*16+i];
 575   3                              if(f_fixdisp==1)
 576   3                                      {
 577   4                                      if((tp==151)||(tp==163))
 578   4                                              {
 579   5                                              nDispRam[tp]=ascii[y*16+i]|0x03;
 580   5                                              }
 581   4                                      }
 582   3                              }
 583   2                      }
 584   1              else
 585   1                      {
 586   2                      for(i=0;i<16;i++)
 587   2                              {
 588   3                              tp=12*(i+16)+x-1-12;
 589   3                              nDispRam[tp]=ascii[y*16+i];
 590   3                              if(f_fixdisp==1)
 591   3                                      {
 592   4                                      if((tp==343)||(tp==355))
 593   4                                              {
 594   5                                              nDispRam[tp]=ascii[y*16+i]|0x03;
 595   5                                              }
 596   4                                      }
 597   3                              }
 598   2                      } 
 599   1              ram_ce=1;
 600   1              }

⌨️ 快捷键说明

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