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

📄 adcpin.lst

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

                       1    ;********************************************************************
                       2    ;
                       3    ; Author        : ADI - Apps            www.analog.com/MicroConverter
                       4    ;
                       5    ; Date          : October 2003
                       6    ;
                       7    ; File          : ADCpin.asm
                       8    ;
                       9    ; Hardware      : ADuC842/ADuC843
                      10    ;
                      11    ; Description   : Performs hardware pin driven ADC conversions and
                      12    ;                 outputs results on the UART  Continuously flashes
                      13    ;                 LED (independently of ADC routine) at approximately
                      14    ;                 5Hz (assuming an 2.097152 MHz Mclk).
                      15    ;               
                      16    ;********************************************************************
                      17    
                      18    $MOD842                         ; Use 8052&ADuC842 predefined symbols
                      19    
  00B4                20    LED     EQU     P3.4            ; P3.4 drives red LED on eval board
  0000                21    CHAN    EQU     0               ; convert this ADC input channel..
                      22                                    ; ..chan values can be 0 thru 8
                      23    ;____________________________________________________________________
                      24                                                      ; BEGINNING OF CODE
----                  25    CSEG
                      26    
0000                  27    ORG 0000h
                      28    
0000 02004B           29            JMP     MAIN            ; jump to main program
                      30    ;____________________________________________________________________
                      31                                                 ; INTERRUPT VECTOR SPACE
0033                  32    ORG 0033H ; (ADC ISR)
0033 E5DA             33            MOV A,ADCDATAH
0035 120096           34            CALL SENDVAL
0038 E5D9             35            MOV A,ADCDATAL
003A 120096           36            CALL SENDVAL    
003D 32               37            RETI
                      38    
                      39    ;====================================================================
                      40                                                           ; MAIN PROGRAM
004B                  41    ORG 004Bh
                      42    
004B                  43    MAIN:
                      44    
                      45    ; Set up UART
004B 759E83           46            MOV     T3CON,#083h
004E 759D2D           47            MOV     T3FD,#02DH
0051 759852           48            MOV     SCON,#52H
                      49    ; PRECONFIGURE...
                      50    
0054 75EFAC           51            MOV     ADCCON1,#0ACh   ; power up ADC 
0057 75D800           52            MOV     ADCCON2,#CHAN   ; select channel to convert
                      53    
                      54    ; LAUNCH CONTINUOUS CONVERSIONS...
                      55    
005A D2AF             56            SETB    EA              ; enable interrupts
005C D2AE             57            SETB    EADC            ; enable ADC interrupt
005E 43EF01           58            ORL     ADCCON1,#001h   ; enable hardware CONVST pin
ADCPIN                                                                                                        PAGE 2

                      59    
                      60    ; CONTINUE WITH OTHER CODE...
                      61    
0061 B2B4             62    AGAIN:  CPL     LED             ; blink (complement) the LED
0063 740A             63            MOV     A,#010          ; delay length
0065 12006A           64            CALL    DELAY           ; delay 100ms
0068 80F7             65            JMP     AGAIN           ; repeat
                      66    
                      67    ; the micro is free to continue with other tasks (flashing the LED in
                      68    ; this case) while the ADC is converting, synchronously to the
                      69    ; external CONVST pin.  results are being handled by the ADC
                      70    ; interrupt service routine.
                      71    
                      72    ;____________________________________________________________________
                      73                                                             ; SUBROUTINE
006A                  74    DELAY:                                  ; Delays by 10ms * A
                      75                                            ; 10mSec based on 2.097152MHz
                      76                                            ; Core Clock 
                      77                                            ; 
                      78    
006A F9               79                    MOV     R1,A            ; Acc holds delay variable (1 clock)
006B 7A1B             80     DLY0:          MOV     R2,#01Bh        ; Set up delay loop0 (2 clocks)
006D 7BFF             81     DLY1:          MOV     R3,#0FFh        ; Set up delay loop1 (2 clocks)
006F DBFE             82                    DJNZ    R3,$            ; Dec R3 & Jump here until R3 is 0 (3 clocks)
0071 DAFA             83                    DJNZ    R2,DLY1         ; Dec R2 & Jump DLY1 until R2 is 0 (3 clocks)
0073 D9F6             84                    DJNZ    R1,DLY0         ; Dec R1 & Jump DLY0 until R1 is 0 (3 clocks)
0075 22               85                    RET                     ; Return from subroutine
                      86    
                      87    ;____________________________________________________________________
                      88    
                =1    89    $INCLUDE(UARTIO.ASM)
                =1    90    ;********************************************************************
                =1    91    ;
                =1    92    ; Author        : ADI - Apps            www.analog.com/MicroConverter
                =1    93    ;
                =1    94    ; Date          : 12 October 1999
                =1    95    ;
                =1    96    ; File          : UARTIO.hex
                =1    97    ;
                =1    98    ; Hardware      : any 8051 based microcontroller or MicroConverter
                =1    99    ;
                =1   100    ; Description   : standard UART I/O subroutines.  total size of this
                =1   101    ;                 code when assembled is 155 bytes.  routines for use
                =1   102    ;                 external to this file are:
                =1   103    ;
                =1   104    ;                 SENDSTRING - sends a string of characters
                =1   105    ;                 SENDCHAR   - sends a single character
                =1   106    ;                 SENDVAL    - sends a byte as 2 ASCII characters
                =1   107    ;                 HEX2ASCII  - converts from HEX to ASCII
                =1   108    ;                 ASCII2HEX  - converts from ASCII to HEX
                =1   109    ;                 GETCHAR    - gets a single character
                =1   110    ;                 GETVAL     - gets a byte as 2 ASCII characters
                =1   111    ;
                =1   112    ;********************************************************************
                =1   113    
                =1   114    ;____________________________________________________________________
                =1   115                                                             ; SENDSTRING
                =1   116    
ADCPIN                                                                                                        PAGE 3

0076            =1   117    SENDSTRING:     ; sends ASCII string to UART starting at location
                =1   118                    ; DPTR and ending with a null (0) value
                =1   119    
0076 C0E0       =1   120            PUSH    ACC
0078 C0F0       =1   121            PUSH    B
007A E4         =1   122            CLR     A
007B F5F0       =1   123            MOV     B,A
007D E5F0       =1   124    IO0010: MOV     A,B
007F 05F0       =1   125            INC     B
0081 93         =1   126            MOVC    A,@A+DPTR
0082 6005       =1   127            JZ      IO0020
0084 12008E     =1   128            CALL    SENDCHAR
0087 80F4       =1   129            JMP     IO0010
0089 D0F0       =1   130    IO0020: POP     B
008B D0E0       =1   131            POP     ACC
                =1   132    
008D 22         =1   133            RET
                =1   134    
                =1   135    ;____________________________________________________________________
                =1   136                                                               ; SENDCHAR
                =1   137    
008E            =1   138    SENDCHAR:       ; sends ASCII value contained in A to UART
                =1   139    
008E 3099FD     =1   140            JNB     TI,$            ; wait til present char gone
0091 C299       =1   141            CLR     TI              ; must clear TI
0093 F599       =1   142            MOV     SBUF,A
                =1   143    
0095 22         =1   144            RET
                =1   145    
                =1   146    ;____________________________________________________________________

⌨️ 快捷键说明

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