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

📄 adcsingl.lst

📁 aduc842原程序代码 ad公司芯片应用笔记
💻 LST
📖 第 1 页 / 共 2 页
字号:
ADCSINGL                                                                                                      PAGE 1

                       1    ;********************************************************************
                       2    ;
                       3    ; Author        : ADI - Apps            www.analog.com/MicroConverter
                       4    ;
                       5    ; Date          : October 2003
                       6    ;
                       7    ; File          : ADCsingl.asm
                       8    ;
                       9    ; Hardware      : ADuC842/ADuC843
                      10    ;
                      11    ; Description   : Performs repeated single ADC conversions and moves
                      12    ;                 results to UART. Sets the red LED on the eval
                      13    ;                 board upon completion of each conversion.  A new
                      14    ;                 conversion is innitiated every 200ms.
                      15    ;                 All rate calculations assume an 2.097152MHz Mclk.
                      16    ;               
                      17    ;********************************************************************
                      18    
                      19    $MOD842                       ; Use 8052&ADuC832 predefined symbols
                      20    
  00B4                21    LED     EQU     P3.4            ; P3.4 drives red LED on eval board
  0000                22    CHAN    EQU     0               ; convert this ADC input channel..
                      23                                    ; ..chan values can be 0 thru 6
                      24    ;____________________________________________________________________
                      25                                                      ; BEGINNING OF CODE
----                  26    CSEG
                      27    
0000                  28    ORG 0000h
                      29    
0000 02004B           30            JMP     MAIN            ; jump to main program
                      31    ;____________________________________________________________________
                      32                
                      33    
                      34    ;====================================================================
                      35                                                           ; MAIN PROGRAM
004B                  36    ORG 004Bh
                      37    
004B                  38    MAIN:
                      39            
                      40    ; Set up UART
004B 759E83           41            MOV     T3CON,#083H
004E 759D2D           42            MOV     T3FD,#02DH
0051 759852           43            MOV     SCON,#52h
                      44    
                      45    ; PRECONFIGURE...
                      46    
0054 75EFAC           47            MOV     ADCCON1,#0ACh   ; power up ADC
0057 75D800           48            MOV     ADCCON2,#CHAN   ; select channel to convert
                      49    
                      50    ; PERFORM REPEATED SINGLE CONVERSIONS...
                      51    
005A B2B4             52    AGAIN:  CPL     LED             ; turn the LED off
005C 7414             53            MOV     A,#020          ; Delay length
005E 120072           54            CALL    DELAY           ; delay 200ms
                      55    
0061 D2DC             56            SETB    SCONV           ; innitiate single ADC conversion
                      57                                    ; ADC ISR is called upon completion
0063 30DFFD           58            JNB     ADCI,$
ADCSINGL                                                                                                      PAGE 2

                      59            
0066 E5DA             60            MOV     A,ADCDATAH
0068 12009E           61            CALL    SENDVAL
006B E5D9             62            MOV     A,ADCDATAL
006D 12009E           63            CALL    SENDVAL
                      64            
0070 80E8             65            JMP     AGAIN           ; repeat
                      66    
                      67    ;____________________________________________________________________
                      68                                                             ; SUBROUTINE
0072                  69    DELAY:                                  ; Delays by 10ms * A
                      70                                            ; 25mSec based on 2.09MHZ 
                      71                                            ; Core Clock 
                      72                                            ; i.e. default ADuC842 Clock
                      73    
0072 F9               74                    MOV     R1,A            ; Acc holds delay variable (1 clock)
0073 7A1B             75     DLY0:          MOV     R2,#01Bh        ; Set up delay loop0 (2 clocks)
0075 7BFF             76     DLY1:          MOV     R3,#0FFh        ; Set up delay loop1 (2 clocks)
0077 DBFE             77                    DJNZ    R3,$            ; Dec R3 & Jump here until R3 is 0 (3 clocks)
0079 DAFA             78                    DJNZ    R2,DLY1         ; Dec R2 & Jump DLY1 until R2 is 0 (3 clocks)
007B D9F6             79                    DJNZ    R1,DLY0         ; Dec R1 & Jump DLY0 until R1 is 0 (3 clocks)
007D 22               80                    RET                     ; Return from subroutine
                      81    
                      82    
                      83    ;____________________________________________________________________
                      84                    
                      85    
                =1    86    $INCLUDE(UARTIO.ASM)            
                =1    87    ;********************************************************************
                =1    88    ;
                =1    89    ; Author        : ADI - Apps            www.analog.com/MicroConverter
                =1    90    ;
                =1    91    ; Date          : 12 October 1999
                =1    92    ;
                =1    93    ; File          : UARTIO.hex
                =1    94    ;
                =1    95    ; Hardware      : any 8051 based microcontroller or MicroConverter
                =1    96    ;
                =1    97    ; Description   : standard UART I/O subroutines.  total size of this
                =1    98    ;                 code when assembled is 155 bytes.  routines for use
                =1    99    ;                 external to this file are:
                =1   100    ;
                =1   101    ;                 SENDSTRING - sends a string of characters
                =1   102    ;                 SENDCHAR   - sends a single character
                =1   103    ;                 SENDVAL    - sends a byte as 2 ASCII characters
                =1   104    ;                 HEX2ASCII  - converts from HEX to ASCII
                =1   105    ;                 ASCII2HEX  - converts from ASCII to HEX
                =1   106    ;                 GETCHAR    - gets a single character
                =1   107    ;                 GETVAL     - gets a byte as 2 ASCII characters
                =1   108    ;
                =1   109    ;********************************************************************
                =1   110    
                =1   111    ;____________________________________________________________________
                =1   112                                                             ; SENDSTRING
                =1   113    
007E            =1   114    SENDSTRING:     ; sends ASCII string to UART starting at location
                =1   115                    ; DPTR and ending with a null (0) value
                =1   116    
ADCSINGL                                                                                                      PAGE 3

007E C0E0       =1   117            PUSH    ACC
0080 C0F0       =1   118            PUSH    B
0082 E4         =1   119            CLR     A
0083 F5F0       =1   120            MOV     B,A
0085 E5F0       =1   121    IO0010: MOV     A,B
0087 05F0       =1   122            INC     B
0089 93         =1   123            MOVC    A,@A+DPTR
008A 6005       =1   124            JZ      IO0020
008C 120096     =1   125            CALL    SENDCHAR
008F 80F4       =1   126            JMP     IO0010
0091 D0F0       =1   127    IO0020: POP     B
0093 D0E0       =1   128            POP     ACC
                =1   129    
0095 22         =1   130            RET
                =1   131    
                =1   132    ;____________________________________________________________________
                =1   133                                                               ; SENDCHAR
                =1   134    
0096            =1   135    SENDCHAR:       ; sends ASCII value contained in A to UART
                =1   136    
0096 3099FD     =1   137            JNB     TI,$            ; wait til present char gone
0099 C299       =1   138            CLR     TI              ; must clear TI
009B F599       =1   139            MOV     SBUF,A
                =1   140    
009D 22         =1   141            RET
                =1   142    
                =1   143    ;____________________________________________________________________
                =1   144                                                                ; SENDVAL

⌨️ 快捷键说明

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