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

📄 main.lst

📁 F020集成以太网接口核心模块以太网通讯与数据采集例程源代码
💻 LST
📖 第 1 页 / 共 5 页
字号:
 846          //-----------------------------
 847          
 848          unsigned long SampleVoltageAndOut()
 849          {
 850   1              
 851   1              unsigned long  lt;
 852   1              unsigned int   nRet;
 853   1              unsigned char Save;
 854   1      
 855   1              Save = EIE2;
 856   1      
 857   1              EIE2&=~0x02;
 858   1      
 859   1              AMX0SL   = 0;  // 采集通道0
C51 COMPILER V8.02   MAIN                                                                  01/16/2008 21:37:44 PAGE 15  

 860   1              AD0INT   = 0;
 861   1      
 862   1              AD0BUSY = 1;
 863   1      
 864   1      
 865   1              while(AD0INT==0);
 866   1              AD0INT = 0;
 867   1      
 868   1              EIE2 = Save;
 869   1      
 870   1              // DA输出
 871   1              DAC0L = ADC0L;
 872   1              DAC0H = ADC0H;
 873   1      
 874   1      
 875   1              nRet = ADC0H;
 876   1              nRet<<=8;
 877   1              nRet+=ADC0L;
 878   1              
 879   1              lt = nRet+1;
 880   1              lt =lt*AD_VREF;
 881   1              lt >>=12;
 882   1      
 883   1      
 884   1              g_Voltage = lt;
 885   1      
 886   1              return g_Voltage;
 887   1      
 888   1      
 889   1      }
 890          
 891          //------------------------------
 892          // 测量温度
 893          // Vtemp=0.00286*Temp+0.776
 894          // g_Temperature/2.86=实际温度
 895          //-----------------------------
 896          
 897          long SampleTemperature()
 898          {
 899   1              unsigned int   nRet;
 900   1              unsigned long  lt;
 901   1              unsigned char Save;
 902   1      
 903   1              Save = EIE2;
 904   1      
 905   1              EIE2&=~0x02;
 906   1      
 907   1              AMX0SL   = 8;  // 采集通道8
 908   1              AD0INT   = 0;
 909   1      
 910   1              AD0BUSY = 1;
 911   1      
 912   1      
 913   1              while(AD0INT==0);
 914   1              AD0INT = 0;
 915   1              
 916   1              EIE2 = Save;
 917   1              
 918   1              // 计算实际的温度
 919   1              nRet = ADC0H<<8;
 920   1              nRet+=ADC0L;
 921   1              
C51 COMPILER V8.02   MAIN                                                                  01/16/2008 21:37:44 PAGE 16  

 922   1              lt =nRet+1;
 923   1              lt =lt*AD_VREF;
 924   1              lt >>=12;
 925   1              
 926   1              // 1000V
 927   1              g_Temperature=lt-776;
 928   1      
 929   1              return g_Temperature;
 930   1      
 931   1      }       
 932          
 933          //---------------------------------------------------------
 934          // 软件延时函数
 935          //---------------------------------------------------------
 936          
 937          
 938          
 939                                                                                                          //                                              ;时钟周期数
 940                                                                                                          //  lcall                               ;4
 941          void dly(unsigned char cnt){while(cnt){cnt--;}}         // delay:       mov a,r7        ;1
 942                                                                                                  //                      jz quit         ;2
 943                                                                                                  //                      dec r7          ;1
 944                                                                                                  //                      sjmp delay      ;2
 945                                                                                                  // quit:        ret                     ;1
 946                                                                                                  // 6n+5 sysclk @c8051f022(0.5425)
 947                                                                                                  // 延时(6n+5)*0.0904us @11.0592MHZ
 948          
 949          //....................................................................................
 950          // 延时ms毫秒
 951          //....................................................................................
 952          void Dlyms(unsigned int ms)                                                 // 延时cnt(ms)@11.0592MHZ
 953          {
 954   1              while(ms)
 955   1              {
 956   2                      dly(250);
 957   2                      dly(210);
 958   2      
 959   2                      dly(250);
 960   2                      dly(210);
 961   2      
 962   2                      dly(250);
 963   2                      dly(210);
 964   2      
 965   2                      dly(250);
 966   2                      dly(210);
 967   2      
 968   2                      dly(250);
 969   2                      dly(210);
 970   2      
 971   2                      dly(250);
 972   2                      dly(210);
 973   2      
 974   2                      dly(250);
 975   2                      dly(210);
 976   2      
 977   2                      dly(250);
 978   2                      dly(210);
 979   2      
 980   2                      ms--;
 981   2              }
 982   1      }
 983          
C51 COMPILER V8.02   MAIN                                                                  01/16/2008 21:37:44 PAGE 17  

 984          
 985          
 986          
 987          
 988          
 989          
 990          
C51 COMPILER V8.02   MAIN                                                                  01/16/2008 21:37:44 PAGE 18  

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION mn_init_m (BEGIN)
                                           ; SOURCE LINE # 133
                                           ; SOURCE LINE # 134
                                           ; SOURCE LINE # 139
0000 A2AF              MOV     C,EA
0002 9200        R     MOV     c,C
                                           ; SOURCE LINE # 140
0004 C2AF              CLR     EA
                                           ; SOURCE LINE # 141
0006 900000      E     MOV     DPTR,#DEVICE_ID
0009 E4                CLR     A
000A 93                MOVC    A,@A+DPTR
;---- Variable 'chip_id' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 142
000B 6403              XRL     A,#03H
000D 6005              JZ      ?C0001
                                           ; SOURCE LINE # 143
000F 7EFF              MOV     R6,#0FFH
0011 7FA7              MOV     R7,#0A7H
0013 22                RET     
0014         ?C0001:
                                           ; SOURCE LINE # 148
0014 900000      E     MOV     DPTR,#NUM_SOCKETS
0017 E4                CLR     A
0018 93                MOVC    A,@A+DPTR
0019 FF                MOV     R7,A
001A 7E00              MOV     R6,#00H
001C 7C00              MOV     R4,#00H
001E 7D3D              MOV     R5,#03DH
0020 120000      E     LCALL   ?C?IMUL
0023 8E00        R     MOV     num,R6
0025 8F00        R     MOV     num+01H,R7
                                           ; SOURCE LINE # 149
0027 E4                CLR     A
0028 900000      R     MOV     DPTR,#val
002B F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 150
002C 7B01              MOV     R3,#01H
002E 7A00        E     MOV     R2,#HIGH sock_info
0030 7900        E     MOV     R1,#LOW sock_info
0032 FD                MOV     R5,A
0033 120000      E     LCALL   ?C?MEMSET
                                           ; SOURCE LINE # 153
0036 120000      E     LCALL   mn_ip_init
0039 8E00        R     MOV     num,R6
003B 8F00        R     MOV     num+01H,R7
                                           ; SOURCE LINE # 154
003D E500        R     MOV     A,num+01H
003F 4500        R     ORL     A,num
0041 7003              JNZ     $ + 5H
0043 020000      R     LJMP    ?C0003
                                           ; SOURCE LINE # 155
                                           ; SOURCE LINE # 158
0046 120000      E     LCALL   mn_timer_init
                                           ; SOURCE LINE # 167
0049 900000      E     MOV     DPTR,#NUM_VF_PAGES
004C E4                CLR     A
004D 93                MOVC    A,@A+DPTR
004E FF                MOV     R7,A
C51 COMPILER V8.02   MAIN                                                                  01/16/2008 21:37:44 PAGE 19  

004F 7E00              MOV     R6,#00H
0051 7C00              MOV     R4,#00H
0053 7D1F              MOV     R5,#01FH
0055 120000      E     LCALL   ?C?IMUL
0058 8E00        R     MOV     num,R6
005A 8F00        R     MOV     num+01H,R7
                                           ; SOURCE LINE # 168
005C E4                CLR     A
005D 900000      R     MOV     DPTR,#val
0060 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 169
0061 7B01              MOV     R3,#01H
0063 7A00        E     MOV     R2,#HIGH vf_dir
0065 7900        E     MOV     R1,#LOW vf_dir
0067 FD                MOV     R5,A
0068 120000      E     LCALL   ?C?MEMSET
                                           ; SOURCE LINE # 171
;---- Variable 'i' assigned to Register 'R7' ----
006B E4                CLR     A
006C FF                MOV     R7,A
006D         ?C0004:
006D 900000      E     MOV     DPTR,#NUM_VF_PAGES
0070 E4                CLR     A
0071 93                MOVC    A,@A+DPTR
0072 FE                MOV     R6,A
0073 EF                MOV     A,R7
0074 C3                CLR     C
0075 9E                SUBB    A,R6
0076 5018              JNC     ?C0005
                                           ; SOURCE LINE # 172
0078 75F01F            MOV     B,#01FH
007B EF                MOV     A,R7
007C A4                MUL     AB
007D 2400        E     ADD     A,#LOW vf_dir+018H
007F F582              MOV     DPL,A
0081 E5F0              MOV     A,B
0083 3400        E     ADDC    A,#HIGH vf_dir+018H
0085 F583              MOV     DPH,A
0087 7420              MOV     A,#020H
0089 F0                MOVX    @DPTR,A
008A A3                INC     DPTR
008B E4                CLR     A
008C F0                MOVX    @DPTR,A
008D 0F                INC     R7
008E 80DD              SJMP    ?C0004
0090         ?C0005:
                                           ; SOURCE LINE # 175
0090 900000      E     MOV     DPTR,#NUM_SOCKETS
0093 E4                CLR     A
0094 93                MOVC    A,@A+DPTR
0095 FF                MOV     R7,A
0096 7E00              MOV     R6,#00H
0098 7C00              MOV     R4,#00H
009A 7D09              MOV     R5,#09H
009C 120000      E     LCALL   ?C?IMUL
009F 8E00        R     MOV     num,R6
00A1 8F00        R     MOV     num+01H,R7
                                           ; SOURCE LINE # 176
00A3 E4                CLR     A
00A4 900000      R     MOV     DPTR,#val
00A7 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 177
C51 COMPILER V8.02   MAIN                                                                  01/16/2008 21:37:44 PAGE 20  

00A8 7B01              MOV     R3,#01H
00AA 7A00        E     MOV     R2,#HIGH page_send_info
00AC 7900        E     MOV     R1,#LOW page_send_info
00AE FD                MOV     R5,A
00AF 120000      E     LCALL   ?C?MEMSET
                                           ; SOURCE LINE # 179
00B2 E4                CLR     A
00B3 FF                MOV     R7,A
00B4         ?C0007:
00B4 900000      E     MOV     DPTR,#NUM_SOCKETS
00B7 E4                CLR     A
00B8 93                MOVC    A,@A+DPTR
00B9 FE                MOV     R6,A

⌨️ 快捷键说明

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