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

📄 menu_func.lst

📁 自己花了很长时间编写的单片机开发板程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 519   1                    clrscr();
 520   1                 }
 521   1              }*/
 522   1         while(1);
 523   1         Menu_Back();
 524   1      }
 525          /*-------------模数转换--------*/
 526          void Menu_ADC0832()
 527          {  
 528   1          uchar adtemp;
 529   1              clrscr();
 530   1              EX0=1;
 531   1              chn_disp(0,0,2,8,1,2,hz_in);               //IN
 532   1              chn_disp(0,24,2,8,1,1,hz_mh);              //:
C51 COMPILER V8.08   MENU_FUNC                                                             07/23/2007 08:20:59 PAGE 10  

 533   1              chn_disp(2,0,2,8,1,2,hz_in);           //in
 534   1              chn_disp(2,24,2,8,1,1,hz_mh);
 535   1              chn_disp(4,0,2,8,1,2,hz_in);
 536   1              chn_disp(4,24,2,8,1,1,hz_mh);
 537   1              chn_disp(6,0,2,8,1,2,hz_in);
 538   1              chn_disp(6,24,2,8,1,1,hz_mh);
 539   1              num_disp(1,0,16,0);
 540   1              num_disp(1,2,16,1);
 541   1              num_disp(1,4,16,2);
 542   1              num_disp(1,6,16,3);
 543   1              num_disp(0,0,16,4);
 544   1              num_disp(0,2,16,5);
 545   1              num_disp(0,4,16,6);
 546   1              num_disp(0,6,16,7);
 547   1              while(NowKey!=KEY_ESC) 
 548   1          {   
 549   2            AD0809_IN0=0X00;
 550   2                delay(200);
 551   2                adtemp=AD0809_IN0;
 552   2                num_disp(1,0,32,(adtemp&0xf0)>>4);
 553   2                num_disp(1,0,40,(adtemp&0x0f));
 554   2          }                           
 555   1         Menu_Back();
 556   1      }
 557          /*--------------数模转换-------------------*/
 558          void Menu_DAC0808()
 559          {
 560   1         uchar cs3,x,y,j,ADCtemp;
 561   1         cs3=1;
 562   1         clrscr();
 563   1         NowKey=0xff;
 564   1         while (NowKey!=KEY_OK)
 565   1         {
 566   2            EX0=1;
 567   2                GetTextInput();
 568   2                if(KeyInputTemp==1)
 569   2                {
 570   3                  ADCtemp<<=4;
 571   3                  ADCtemp+=TextInputTemp;
 572   3                  num_disp(cs3,x,y,TextInputTemp);
 573   3                  y+=8;
 574   3              if(y==64)                                                  //     输出8个数字时换右屏
 575   3                  {
 576   4                        cs3=!cs3;
 577   4                        y=0;
 578   4                        j++;                                                            
 579   4                  }
 580   3                 if(j==2)                                                        //      输出16个数字时换行
 581   3                 {
 582   4                    x+=2;
 583   4                    j=0;
 584   4                 }
 585   3                 if(x==8)
 586   3                 { 
 587   4                    x=0;
 588   4                    clrscr();
 589   4                 }
 590   3                 KeyInputTemp=0; 
 591   3                }
 592   2         }
 593   1        Opt9555(Cmd_op0,ADCtemp);  
 594   1        while(NowKey!=KEY_ESC);
C51 COMPILER V8.08   MENU_FUNC                                                             07/23/2007 08:20:59 PAGE 11  

 595   1        Menu_Back();   
 596   1      }
 597          /*---------------- 与PC通信--串口接收--------------*/
 598          void Menu_SerialReceive_PC()
 599          {
 600   1         uchar cs3,x,y,j;
 601   1         uchar PSerial;
 602   1         clrscr();
 603   1         cs1=1;
 604   1         cs2=0;
 605   1         chn_disp(0,0,2,16,1,2,hz_test_1);                      //显示起始行
 606   1         chn_disp(0,32,2,16,1,2,hz_test_2);   
 607   1         cs1=0;
 608   1         cs2=1;
 609   1         chn_disp(0,32,2,16,1,2,hz_test);
 610   1         chn_disp(0,0,2,16,1,2,hz_jishi);
 611   1         x=2;   
 612   1         y=0;
 613   1         cs3=1;   
 614   1         TMOD=0x20;
 615   1         TH1=0xfd;
 616   1         TL1=0xfd;
 617   1         TR1=1;
 618   1         SCON=0x50;      
 619   1         while (1)
 620   1         {                            
 621   2                  EX0=1;
 622   2                      while(!RI)
 623   2                       if (NowKey==KEY_ESC) goto Exit_SerialReceive;
 624   2                  RI=0;
 625   2                      PSerial=SBUF;      
 626   2                      num_disp(cs3,x,y,PSerial&0x0f);
 627   2                      y+=8;
 628   2              if(y==64)                                                  //     输出8个数字时换右屏
 629   2                  {
 630   3                        cs3=!cs3;
 631   3                        y=0;
 632   3                        j++;                                                            
 633   3                  }
 634   2                 if(j==2)                                                        //      输出16个数字时换行
 635   2                 {
 636   3                    x+=2;
 637   3                    j=0;
 638   3                 }
 639   2                 if(x==8)
 640   2                 { 
 641   3                    x=2;
 642   3                    clrscr();
 643   3                 }
 644   2      
 645   2         }  
 646   1         Exit_SerialReceive:
 647   1         NowKeyReg=0; 
 648   1         Menu_Back();    
 649   1      }
 650          /*------------------与PC通信--串口发送-----------------*/
 651          void Menu_SerialSend_PC()
 652          {
 653   1         uchar cs3,x,y,k,j;
 654   1         uchar PSerial;
 655   1         clrscr();
 656   1         cs1=1;
C51 COMPILER V8.08   MENU_FUNC                                                             07/23/2007 08:20:59 PAGE 12  

 657   1         cs2=0;
 658   1         chn_disp(0,0,2,16,1,2,hz_test_1);                             //显示起始行
 659   1         chn_disp(0,32,2,16,1,2,hz_test_3);   
 660   1         cs1=0;
 661   1         cs2=1;
 662   1         chn_disp(0,32,2,16,1,2,hz_test);
 663   1         chn_disp(0,0,2,16,1,2,hz_jishi);
 664   1         x=2;   
 665   1         y=0;   
 666   1         cs3=1;   
 667   1         TMOD=0x20;
 668   1         TH1=0xfd;
 669   1         TL1=0xfd;
 670   1         TR1=1;
 671   1         SCON=0x40;     
 672   1         while (NowKey!=KEY_ESC)
 673   1         {
 674   2            EX0=1;
 675   2                GetTextInput();
 676   2                if(KeyInputTemp==1)
 677   2                {
 678   3                  PSerial<<=4;
 679   3                  PSerial+=TextInputTemp;
 680   3                  num_disp(cs3,x,y,TextInputTemp);
 681   3                      k++;
 682   3                      if(k==2)
 683   3                      {         
 684   4                       k=0;
 685   4                       SBUF=PSerial;          
 686   4                   while(!TI);
 687   4                   TI=0;
 688   4                      }               
 689   3                  y+=8;
 690   3              if(y==64)                                                  //     输出8个数字时换右屏
 691   3                  {
 692   4                        cs3=!cs3;
 693   4                        y=0;
 694   4                        j++;                                                            
 695   4                  }
 696   3                 if(j==2)                                                        //      输出16个数字时换行
 697   3                 {
 698   4                    x+=2;
 699   4                    j=0;
 700   4                 }
 701   3                 if(x==8)
 702   3                 { 
 703   4                    x=2;
 704   4                    clrscr();
 705   4                 }
 706   3                 KeyInputTemp=0; 
 707   3                }
 708   2         }
 709   1        Menu_Back();   
 710   1      }
 711          void Menu_SerialReceive_MCU()
 712          {
 713   1      }
 714          void Menu_SerialSend_MCU()
 715          {
 716   1      }
 717          /*----------------返回菜单--------*/
 718          void Menu_Back()
C51 COMPILER V8.08   MENU_FUNC                                                             07/23/2007 08:20:59 PAGE 13  

 719          {
 720   1         NowKey=0xff;
 721   1         clrscr();
 722   1         JudgeHLight();
 723   1      }
 724          /*----------------版本说明------------*/
 725          void MenuFunction_Help_2()
 726          {
 727   1        DispFaceBmp();
 728   1        NowKey=0xff;
 729   1        EX0=1;   
 730   1        while(NowKey==0xff);                                    // 按任意键退出  
 731   1        Menu_Back();
 732   1      }
 733          
 734          
C51 COMPILER V8.08   MENU_FUNC                                                             07/23/2007 08:20:59 PAGE 14  

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION L?0339 (BEGIN)
0000 7400        R     MOV     A,#LOW P_motor
0002 2A                ADD     A,R2
0003 F582              MOV     DPL,A
0005 E4                CLR     A
0006 3400        R     ADDC    A,#HIGH P_motor
0008 F583              MOV     DPH,A
000A E0                MOVX    A,@DPTR
000B 908002            MOV     DPTR,#08002H
000E F0                MOVX    @DPTR,A
000F 7FFE              MOV     R7,#0FEH
             ; FUNCTION _delay (BEGIN)
                                           ; SOURCE LINE # 26
;---- Variable 'us' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 27
0011         ?C0001:
                                           ; SOURCE LINE # 28
0011 AE07              MOV     R6,AR7
0013 1F                DEC     R7
0014 EE                MOV     A,R6
0015 70FA              JNZ     ?C0001
                                           ; SOURCE LINE # 29
0017         ?C0003:
0017 22                RET     
             ; FUNCTION _delay (END)

             ; FUNCTION L?0336 (BEGIN)
0000 E9                MOV     A,R1
0001 8FF0              MOV     B,R7
0003 A4                MUL     AB
0004 FF                MOV     R7,A
0005 E0                MOVX    A,@DPTR
0006 24B8              ADD     A,#0B8H
0008 2F                ADD     A,R7
0009 2C                ADD     A,R4
000A FD                MOV     R5,A
000B E4                CLR     A
000C FF                MOV     R7,A
             ; FUNCTION _wr_lcd (BEGIN)
                                           ; SOURCE LINE # 31
;---- Variable 'content' assigned to Register 'R5' ----
;---- Variable 'dat_comm' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 32
                                           ; SOURCE LINE # 34
000D 908003            MOV     DPTR,#08003H
0010 7480              MOV     A,#080H
0012 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 35
0013 EF                MOV     A,R7
0014 908001            MOV     DPTR,#08001H
0017 B40110            CJNE    A,#01H,?C0004
                                           ; SOURCE LINE # 36

⌨️ 快捷键说明

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