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

📄 adc.lst

📁 KIT RTC按键设置闹钟程序!
💻 LST
字号:
ARM COMPILER V2.53,  adc                                                                   02/08/06  16:25:35  PAGE 1   


ARM COMPILER V2.53, COMPILATION OF MODULE adc
OBJECT MODULE PLACED IN .\Obj\adc.obj
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe adc.c THUMB BROWSE DEBUG PRINT(.\LST\ADC.LST) TABS(4) OBJECT(.\Obj\adc.obj) 

stmt  level    source

    1          
    2           #include<lpc214x.h>
    3           #include <code.h>
    4          
    5          
    6          
    7          
    8          //10K的热敏电阻0-50度所对应的码表值
    9          const unsigned  int Temp_code[]=
   10          {
   11          //  0-25
   12              2843,2718,2599,2486,2379,2277,2180,2087,1999,1916,1836,1760,1688,1619,1553,1490,1430,1373,1319,1266,1217
             -,1169,1124,1081,1039,1000,
   13          //  26--50
   14              962,925,891,857,826,795,766,738,711,686,661,638,615,593,573,553,534,515,497,480,464,449,433,419,405,
   15          //  51-75
   16          //  392,379,366,355,343,332,321,311,301,292,283,274,265,257,249,242,234,227,220,214,208,201,195,190,184,
   17          //  76--100
   18          //  179,174,169,164,159,155,150,146,142,138,134,131,127,124,120,117,114,111,108,105,102,100,97,94,92
   19                  
   20              
   21          };
   22          
   23          /***********************************************************************
   24          //查电阻值所对应的温度是多少
   25          ***********************************************************************/
   26          
   27          
   28          unsigned char check_code(unsigned int k)
   29          {
   30   1          unsigned char i;
   31   1          if(k<405)return(51);    //大于50度以上都显示为51度
   32   1          for(i=0;k<Temp_code[i];i++);
   33   1          return (i-1);
   34   1          
   35   1      }
   36           
   37          /***********************************************************************
   38          //R=30K或20K
   39          //RT=10K
   40          ***********************************************************************/
   41          
   42          
   43          unsigned int Totemp(unsigned int AD)
   44          {   
   45   1          unsigned int Itemp;
   46   1          unsigned int Tk;
   47   1          Tk=1023-AD;
   48   1      
   49   1          Itemp=(unsigned int)(((unsigned long)1000*AD)/Tk);      //扩大100倍
   50   1          return(Itemp);
   51   1      }
   52          
   53          
   54          unsigned char  Get_Temp(unsigned int i)
   55          {
   56   1      return (check_code(Totemp(i))); //转换温度
   57   1      }
   58          
ARM COMPILER V2.53,  adc                                                                   02/08/06  16:25:35  PAGE 2   

   59          
   60          
   61          
   62          void Ad_fun (void) {                             /* Delay function */
   63   1        unsigned int val;
   64   1        unsigned char t;
   65   1        AD0CR |= 1<<24;                          /* Start A/D Conversion */
   66   1        do {
   67   2          val = AD0DR1;                                /* Read A/D Data Register */
   68   2        }                    while ((val & 0x80000000) == 0);            /* Wait for end of A/D Conversion */
   69   1        AD0CR &= ~0x01000000;                         /* Stop A/D Conversion */
   70   1        val = (val >> 6) & 0x03FF;                    /* Extract AIN0 Value */
   71   1      
   72   1        t=Get_Temp(val)-2;                           //校准
   73   1      
   74   1        Draw_a(t/10,88,0,8); 
   75   1        Draw_a(t%10,96,0,8);
   76   1        Draw_a(13,104,0,8);
   77   1      
   78   1        }
ARM COMPILER V2.53,  adc                                                                   02/08/06  16:25:35  PAGE 3   

ASSEMBLY LISTING OF GENERATED OBJECT CODE



*** EXTERNALS:
 EXTERN CODE16 (Draw_a?T)
 EXTERN CODE16 (?C?UDIV?T)
 EXTERN CODE16 (?C?SDIV?T)



*** PUBLICS:
 PUBLIC         check_code?T
 PUBLIC         Totemp?T
 PUBLIC         Get_Temp?T
 PUBLIC         Ad_fun?T
 PUBLIC         Temp_code



*** DATA SEGMENT '?CON?adc':
 00000000          Temp_code:
 00000000           BEGIN_INIT
 00000000  00000B1B  DD          0xB1B
 00000004  00000A9E  DD          0xA9E
 00000008  00000A27  DD          0xA27
 0000000C  000009B6  DD          0x9B6
 00000010  0000094B  DD          0x94B
 00000014  000008E5  DD          0x8E5
 00000018  00000884  DD          0x884
 0000001C  00000827  DD          0x827
 00000020  000007CF  DD          0x7CF
 00000024  0000077C  DD          0x77C
 00000028  0000072C  DD          0x72C
 0000002C  000006E0  DD          0x6E0
 00000030  00000698  DD          0x698
 00000034  00000653  DD          0x653
 00000038  00000611  DD          0x611
 0000003C  000005D2  DD          0x5D2
 00000040  00000596  DD          0x596
 00000044  0000055D  DD          0x55D
 00000048  00000527  DD          0x527
 0000004C  000004F2  DD          0x4F2
 00000050  000004C1  DD          0x4C1
 00000054  00000491  DD          0x491
 00000058  00000464  DD          0x464
 0000005C  00000439  DD          0x439
 00000060  0000040F  DD          0x40F
 00000064  000003E8  DD          0x3E8
 00000068  000003C2  DD          0x3C2
 0000006C  0000039D  DD          0x39D
 00000070  0000037B  DD          0x37B
 00000074  00000359  DD          0x359
 00000078  0000033A  DD          0x33A
 0000007C  0000031B  DD          0x31B
 00000080  000002FE  DD          0x2FE
 00000084  000002E2  DD          0x2E2
 00000088  000002C7  DD          0x2C7
 0000008C  000002AE  DD          0x2AE
 00000090  00000295  DD          0x295
 00000094  0000027E  DD          0x27E
 00000098  00000267  DD          0x267
 0000009C  00000251  DD          0x251
 000000A0  0000023D  DD          0x23D
 000000A4  00000229  DD          0x229
 000000A8  00000216  DD          0x216
 000000AC  00000203  DD          0x203
 000000B0  000001F1  DD          0x1F1
 000000B4  000001E0  DD          0x1E0
 000000B8  000001D0  DD          0x1D0
 000000BC  000001C1  DD          0x1C1
ARM COMPILER V2.53,  adc                                                                   02/08/06  16:25:35  PAGE 4   

 000000C0  000001B1  DD          0x1B1
 000000C4  000001A3  DD          0x1A3
 000000C8  00000195  DD          0x195
 000000CC           END_INIT



*** CODE SEGMENT '?PR?check_code?T?adc':
   28: unsigned char check_code(unsigned int k)
 00000000  1C02      MOV         R2,R0 ; k
 00000002  ---- Variable 'k' assigned to Register 'R2' ----
   29: {
 00000002            ; SCOPE-START
   31:     if(k<405)return(51);    //大于50度以上都显示为51度
 00000002  1C10      MOV         R0,R2 ; k
 00000004  4800      LDR         R1,=0x195
 00000006  4288      CMP         R0,R1 ; k
 00000008  D201      BCS         L_7  ; T=0x0000000E
 0000000A  2033      MOV         R0,#0x33
 0000000C  E011      B           L_2  ; T=0x00000032
   32:     for(i=0;k<Temp_code[i];i++);
 0000000E          L_7:
 0000000E  2100      MOV         R1,#0x0
 00000010  ---- Variable 'i' assigned to Register 'R1' ----
 00000010  E002      B           L_5  ; T=0x00000018
 00000012          L_3:
 00000012  3101      ADD         R1,#0x1
 00000014  0609      LSL         R1,R1,#0x18
 00000016  0E09      LSR         R1,R1,#0x18
 00000018          L_5:
 00000018  1C08      MOV         R0,R1 ; i
 0000001A  0603      LSL         R3,R0,#0x18 ; i
 0000001C  0E1B      LSR         R3,R3,#0x18
 0000001E  009B      LSL         R3,R3,#0x2
 00000020  4800      LDR         R0,=Temp_code ; Temp_code
 00000022  58C3      LDR         R3,[R0,R3]
 00000024  1C10      MOV         R0,R2 ; k
 00000026  4298      CMP         R0,R3 ; k
 00000028  D3F3      BCC         L_3  ; T=0x00000012
   33:     return (i-1);
 0000002A  1C08      MOV         R0,R1 ; i
 0000002C  0600      LSL         R0,R0,#0x18 ; i
 0000002E  0E00      LSR         R0,R0,#0x18
 00000030  3801      SUB         R0,#0x1
 00000032            ; SCOPE-END
   35: }
 00000032          L_2:
 00000032  4770      BX          R14
 00000034          ENDP ; 'check_code?T'


*** CODE SEGMENT '?PR?Totemp?T?adc':
   43: unsigned int Totemp(unsigned int AD)
 00000000  B500      PUSH        {LR}
 00000002  1C01      MOV         R1,R0 ; AD
 00000004  ---- Variable 'AD' assigned to Register 'R1' ----
   44: {    
 00000004            ; SCOPE-START
   47:     Tk=1023-AD;
 00000004  1C08      MOV         R0,R1 ; AD
 00000006  4800      LDR         R2,=0x3FF
 00000008  1A12      SUB         R2,R0 ; AD
 0000000A  ---- Variable 'Tk' assigned to Register 'R2' ----
   49:     Itemp=(unsigned int)(((unsigned long)1000*AD)/Tk);      //扩大100倍
 0000000A  1C08      MOV         R0,R1 ; AD
 0000000C  49FA      LDR         R1,=0x3E8
 0000000E  4348      MUL         R0,R1
 00000010  1C11      MOV         R1,R2 ; Tk
 00000012  F7FF      BL          ?C?UDIV?T  ; T=0x0001  (1) ; ?C?UDIV?T
 00000014  FFF5      BL          ?C?UDIV?T  ; T=0x0001  (2) ; ?C?UDIV?T
ARM COMPILER V2.53,  adc                                                                   02/08/06  16:25:35  PAGE 5   

 00000016  1C08      MOV         R0,R1
 00000018  ---- Variable 'Itemp' assigned to Register 'R1' ----
   50:     return(Itemp);
 00000018  1C08      MOV         R0,R1 ; Itemp
 0000001A            ; SCOPE-END
   51: }
 0000001A  BC08      POP         {R3}
 0000001C  4718      BX          R3
 0000001E          ENDP ; 'Totemp?T'


*** CODE SEGMENT '?PR?Get_Temp?T?adc':
   54: unsigned char  Get_Temp(unsigned int i)
 00000000  B500      PUSH        {LR}
 00000002  1C01      MOV         R1,R0 ; i
 00000004  ---- Variable 'i' assigned to Register 'R1' ----
   56: return (check_code(Totemp(i))); //转换温度
 00000004  1C08      MOV         R0,R1 ; i
 00000006  F7FF      BL          Totemp?T  ; T=0x0001  (1)
 00000008  FFFB      BL          Totemp?T  ; T=0x0001  (2)
 0000000A  F7FF      BL          check_code?T  ; T=0x0001  (1)
 0000000C  FFF9      BL          check_code?T  ; T=0x0001  (2)
 0000000E  0600      LSL         R0,R0,#0x18 ; check_code?T
 00000010  0E00      LSR         R0,R0,#0x18
   57: }
 00000012  BC08      POP         {R3}
 00000014  4718      BX          R3
 00000016          ENDP ; 'Get_Temp?T'


*** CODE SEGMENT '?PR?Ad_fun?T?adc':
   62: void Ad_fun (void) {                             /* Delay function */
 00000000  B510      PUSH        {R4,LR}
 00000002            ; SCOPE-START
   65:   AD0CR |= 1<<24;                          /* Start A/D Conversion */
 00000002  4800      LDR         R2,=0x1000000
 00000004  4800      LDR         R0,=0xE0034000
 00000006  6801      LDR         R1,[R0,#0x0]
 00000008  4311      ORR         R1,R2
 0000000A  6001      STR         R1,[R0,#0x0]
   66:   do {
 0000000C          L_10:
   67:     val = AD0DR1;                                /* Read A/D Data Register */
 0000000C  4800      LDR         R0,=0xE0034014
 0000000E  6801      LDR         R1,[R0,#0x0]
 00000010  ---- Variable 'val' assigned to Register 'R1' ----
   68:   }                    while ((val & 0x80000000) == 0);            /* Wait for end of A/D Conversion */
 00000010  1C08      MOV         R0,R1 ; val
 00000012  4800      LDR         R2,=0x80000000
 00000014  4210      TST         R0,R2 ; val
 00000016  D0F9      BEQ         L_10  ; T=0x0000000C
   69:   AD0CR &= ~0x01000000;                         /* Stop A/D Conversion */
 00000018  4800      LDR         R3,=0x1000000
 0000001A  4800      LDR         R0,=0xE0034000
 0000001C  6802      LDR         R2,[R0,#0x0]
 0000001E  439A      BIC         R2,R3
 00000020  6002      STR         R2,[R0,#0x0]
   70:   val = (val >> 6) & 0x03FF;                    /* Extract AIN0 Value */
 00000022  0989      LSR         R1,R1,#0x6 ; val
 00000024  4800      LDR         R0,=0x3FF
 00000026  4001      AND         R1,R0
   72:   t=Get_Temp(val)-2;                           //校准
 00000028  1C08      MOV         R0,R1 ; val
 0000002A  F7FF      BL          Get_Temp?T  ; T=0x0001  (1)
 0000002C  FFE9      BL          Get_Temp?T  ; T=0x0001  (2)
 0000002E  0604      LSL         R4,R0,#0x18 ; Get_Temp?T
 00000030  0E24      LSR         R4,R4,#0x18
 00000032  3C02      SUB         R4,#0x2
 00000034  0624      LSL         R4,R4,#0x18
 00000036  0E24      LSR         R4,R4,#0x18
ARM COMPILER V2.53,  adc                                                                   02/08/06  16:25:35  PAGE 6   

 00000038  ---- Variable 't' assigned to Register 'R4' ----
   74:   Draw_a(t/10,88,0,8); 
 00000038  1C20      MOV         R0,R4 ; t
 0000003A  0600      LSL         R0,R0,#0x18 ; t
 0000003C  0E00      LSR         R0,R0,#0x18
 0000003E  210A      MOV         R1,#0xA
 00000040  F7FF      BL          ?C?SDIV?T  ; T=0x0001  (1) ; ?C?SDIV?T
 00000042  FFDE      BL          ?C?SDIV?T  ; T=0x0001  (2) ; ?C?SDIV?T
 00000044  1C08      MOV         R0,R1
 00000046  2158      MOV         R1,#0x58
 00000048  2200      MOV         R2,#0x0
 0000004A  2308      MOV         R3,#0x8
 0000004C  F7FF      BL          Draw_a?T  ; T=0x0001  (1)
 0000004E  FFD8      BL          Draw_a?T  ; T=0x0001  (2)
   75:   Draw_a(t%10,96,0,8);
 00000050  1C20      MOV         R0,R4 ; t
 00000052  0600      LSL         R0,R0,#0x18 ; t
 00000054  0E00      LSR         R0,R0,#0x18
 00000056  210A      MOV         R1,#0xA
 00000058  F7FF      BL          ?C?SDIV?T  ; T=0x0001  (1) ; ?C?SDIV?T
 0000005A  FFD2      BL          ?C?SDIV?T  ; T=0x0001  (2) ; ?C?SDIV?T
 0000005C  1C01      MOV         R1,R0
 0000005E  2160      MOV         R1,#0x60
 00000060  2200      MOV         R2,#0x0
 00000062  2308      MOV         R3,#0x8
 00000064  F7FF      BL          Draw_a?T  ; T=0x0001  (1)
 00000066  FFCC      BL          Draw_a?T  ; T=0x0001  (2)
   76:   Draw_a(13,104,0,8);
 00000068  200D      MOV         R0,#0xD
 0000006A  2168      MOV         R1,#0x68
 0000006C  2200      MOV         R2,#0x0
 0000006E  2308      MOV         R3,#0x8
 00000070  F7FF      BL          Draw_a?T  ; T=0x0001  (1)
 00000072  FFC6      BL          Draw_a?T  ; T=0x0001  (2)
 00000074            ; SCOPE-END
 00000074  BC10      POP         {R4}
 00000076  BC08      POP         {R3}
 00000078  4718      BX          R3
 0000007A          ENDP ; 'Ad_fun?T'



Module Information          Static
----------------------------------
  code size            =    ------
  data size            =    ------
  const size           =       204
End of Module Information.


ARM COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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