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

📄 adcconv.lst

📁 ADI公司的产品aduc824单片机的ADC转换程序
💻 LST
字号:
ADCCONV                                                                                                       PAGE 1

                       1    ;======================================================================
                       2    ;
                       3    ; Author        : ADI - Apps
                       4    ;
                       5    ; Date          : Sept. 1999
                       6    ;
                       7    ; File          : adcconv.asm
                       8    ;
                       9    ; Hardware      : ADuC824
                      10    ;
                      11    ; Description   : example routine to continuosuly trigger 
                      12    ;                 a single conversion on the ADC main channel 
                      13    ;                 The Conversion result is written to external memory, 
                      14    ;                 P3.4 is toggled 5 times at 100ms delay
                      15    ;                 The ADC result is written to external memory
                      16    ;                 P3.4 is toggled 5 times at 500ms
                      17    ;                 and the sequence repeats itself.
                      18    ;
                      19    ;======================================================================
                      20    ;       
                      21    $MOD824                                 ; Use 8052 predefined Symbols
                      22    
  0000                23    FLAG    EQU     00H                     ; Define Bit
                      24    
                      25    
----                  26    CSEG                                    ; Defines the following as a segment of code
                      27    
0000                  28    ORG     0000H                           ; Load Code at '0'      
                      29    
0000 020060           30                    JMP     START           ; Jump to START
                      31    ;
                      32    ;======================================================================
                      33    ;
0033                  34    ORG 0033H                               ; Read ADC Result H/M/L to external Memory
                      35    
                      36                                            ; 10 flashes at 100ms
0033 7401             37                    MOV     A,#01H          ; 100msec delay
0035 7B0A             38                    MOV     R3,#0Ah         ; loop=5
0037 B2B4             39    TIC1:           CPL     P3.4            ; Toggle LED
0039 120079           40                    CALL    DELAY           ; Delay 100mSec
003C DBF9             41                    DJNZ    R3,TIC1         ; Dec loop
                      42    
003E 900000           43                    MOV     DPTR, #00H      ; DPTR=00
0041 E5D9             44                    MOV     A,ADC0L         ; read ADC low byte 
0043 F0               45                    MOVX    @DPTR,A         ; write low byte to ext memory
0044 A3               46                    INC     DPTR            ; DPTR=01
0045 E5DA             47                    MOV     A,ADC0M         ; read ADC Middle byte 
0047 F0               48                    MOVX    @DPTR,A         ; write Middle byte to ext memory
0048 A3               49                    INC     DPTR            ; DPTR=02
0049 E5DB             50                    MOV     A,ADC0H         ; read ADC High byte 
004B F0               51                    MOVX    @DPTR,A         ; write low High byte to ext memory
004C A3               52                    INC     DPTR
                      53            
                      54                                            ; 5 flashes at 500ms
004D 7405             55                    MOV     A,#05H          ; 500msec delay
004F 7B0A             56                    MOV     R3,#0Ah         ; loop=10
0051 B2B4             57    TIC2:           CPL     P3.4            ; Toggle LED
0053 120079           58                    CALL    Delay           ; Delay 100mSec
ADCCONV                                                                                                       PAGE 2

0056 DBF9             59                    DJNZ    R3,TIC2         ; Dec loop
                      60    ;
0058 D200             61                    SETB    Flag            ; Set Flag
                      62                    
005A 32               63                    RETI                    ; Return from Interrupt
                      64    ;
                      65    ;======================================================================
                      66    ;
0060                  67    ORG 0060H
0060                  68    START:
                      69                                            ; Configure Interrupt System
0060 D288             70                    SETB    IT0             ; CONFIG EXTERNAL INTERRUPT Falling Edge
0062 D2AF             71                    SETB    EA              ; Enable Global Interrupts
                      72                    
                      73                                            ; Configure ADC
0064 75D120           74                    MOV     ADCMODE,#20H    ; ENABLE MAIN ADC; Mode- Power down 
0067 75D240           75                    MOV     ADC0CON,#40H    ; 24 BITS
                      76                                            ; USE EXTERNAL REFERENCE
                      77                                            ; AIN1-AIN2 
                      78                                            ; BIPOLAR MODE
                      79                                            ; RANGE = +/-20mV 
006A D2AE             80                    SETB    EADC            ; ENABLE ADC INTERRUPT
                      81    
                      82                                            ; Looped single conversions                     
006C C200             83    CONV:           CLR     FLAG            ; Initial condition for FLAG variable
006E 75D122           84                    MOV     ADCMODE,#22H    ; INITIATE A MAIN ADC SINGLE CONVERSION
0071 120079           85                    CALL    DELAY           ; Jump to subroutine DELAY
0074 3000FD           86                    JNB     FLAG,$          ; Stay here until FLAG=1 i.e. wait for ADC Int.
0077 80F3             87                    JMP     CONV            ; Next ADC Conversion
                      88    ;       
                      89    ;======================================================================
                      90    ;
                      91    
0079                  92    DELAY:                                  ; Delays by A*100ms (default Core Clk =1.57MHz)
0079 F8               93                    MOV     R0,A            ; Acc holds delay variable
007A 79FE             94     DLY0:          MOV     R1,#0FEh        ; Set up delay loop0
007C 7A19             95     DLY1:          MOV     R2,#019h        ; Set up delay loop1
007E DAFE             96                    DJNZ    R2,$            ; Dec R2 & Jump here until R2 is 0
0080 D9FA             97                    DJNZ    R1,DLY1         ; Dec R1 & Jump DLY1 until R1 is 0
0082 D8F6             98                    DJNZ    R0,DLY0         ; Dec R0 & Jump DLY0 until R0 is 0
0084 22               99                    RET                     ; Return from subroutine                
                     100    ;
                     101    END
                     102    
                     103    
                     104    

VERSION 1.2h ASSEMBLY COMPLETE, 0 ERRORS FOUND
ADCCONV                                                                                                       PAGE 3

ADC0CON. . . . . . . . . . . . .  D ADDR  00D2H  PREDEFINED  
ADC0H. . . . . . . . . . . . . .  D ADDR  00DBH  PREDEFINED  
ADC0L. . . . . . . . . . . . . .  D ADDR  00D9H  PREDEFINED  
ADC0M. . . . . . . . . . . . . .  D ADDR  00DAH  PREDEFINED  
ADCMODE. . . . . . . . . . . . .  D ADDR  00D1H  PREDEFINED  
CONV . . . . . . . . . . . . . .  C ADDR  006CH  
DELAY. . . . . . . . . . . . . .  C ADDR  0079H  
DLY0 . . . . . . . . . . . . . .  C ADDR  007AH  
DLY1 . . . . . . . . . . . . . .  C ADDR  007CH  
EA . . . . . . . . . . . . . . .  B ADDR  00AFH  PREDEFINED  
EADC . . . . . . . . . . . . . .  B ADDR  00AEH  PREDEFINED  
FLAG . . . . . . . . . . . . . .    NUMB  0000H  
IT0. . . . . . . . . . . . . . .  B ADDR  0088H  PREDEFINED  
P3 . . . . . . . . . . . . . . .  D ADDR  00B0H  PREDEFINED  
START. . . . . . . . . . . . . .  C ADDR  0060H  
TIC1 . . . . . . . . . . . . . .  C ADDR  0037H  
TIC2 . . . . . . . . . . . . . .  C ADDR  0051H  

⌨️ 快捷键说明

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