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

📄 adctimer.lst

📁 aduc812精典源代码下载,适合初学者
💻 LST
字号:
ADCTIMER                                                                                                      PAGE 1

                       1    ;********************************************************************
                       2    ;
                       3    ; Author        : ADI - Apps            www.analog.com/MicroConverter
                       4    ;
                       5    ; Date          : 28 May 1999
                       6    ;
                       7    ; File          : ADCtimer.asm
                       8    ;
                       9    ; Hardware      : ADuC812
                      10    ;
                      11    ; Description   : Performs ADC conversions at 10KSPS in Timer2 mode.
                      12    ;                 Outputs ADC results on P0 & P2.  Continuously
                      13    ;                 flashes LED (independently of ADC routine) at
                      14    ;                 approximately 5Hz.
                      15    ;                 All rate calculations assume an 11.0592MHz Mclk.
                      16    ;               
                      17    ;********************************************************************
                      18    
                      19    $MOD812                         ; Use 8052&ADuC812 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 8
                      24    ;____________________________________________________________________
                      25                                                      ; BEGINNING OF CODE
----                  26    CSEG
                      27    
0000                  28    ORG 0000h
                      29    
0000 02004B           30            JMP     MAIN            ; jump to main program
                      31    ;____________________________________________________________________
                      32                                                 ; INTERRUPT VECTOR SPACE
0033                  33    ORG 0033H ; (ADC ISR)
                      34    
0033 85D980           35            MOV     P0,ADCDATAL     ; ADC result low byte to Port0
0036 85DAA0           36            MOV     P2,ADCDATAH     ; high nibble and channel ID to Port2
0039 32               37            RETI
                      38    
                      39    ;====================================================================
                      40                                                           ; MAIN PROGRAM
004B                  41    ORG 004Bh
                      42    
004B                  43    MAIN:
                      44    
                      45    ; PRECONFIGURE...
004B 75EF62           46            MOV     ADCCON1,#062h   ; power up ADC & enable Timer2 mode
004E 75D800           47            MOV     ADCCON2,#CHAN   ; select channel to convert
0051 75CAD2           48            MOV     RCAP2L,#0D2h    ; sample period = 2 * T2 reload prd
0054 75CBFF           49            MOV     RCAP2H,#0FFh    ;   = 2*(10000h-FFD2h)*1.085us
0057 75CCD2           50            MOV     TL2,#0D2h       ;   = 2*46*1.085us
005A 75CDFF           51            MOV     TH2,#0FFh       ;   = 99.8us
                      52    
                      53    ; LAUNCH Timer2 DRIVEN CONVERSIONS...
005D D2AF             54            SETB    EA              ; enable interrupts
005F D2AE             55            SETB    EADC            ; enable ADC interrupt
0061 D2CA             56            SETB    TR2             ; run Timer2
                      57    
                      58    ; CONTINUE WITH OTHER CODE...
ADCTIMER                                                                                                      PAGE 2

0063 B2B4             59    AGAIN:  CPL     LED             ; blink (complement) the LED
0065 12006A           60            CALL    DELAY           ; delay 100ms
0068 80F9             61            JMP     AGAIN           ; repeat
                      62    
                      63    ; the micro is free to continue with other tasks (flashing the LED in
                      64    ; this case) while the ADC operation is being controlled by Timer2
                      65    ; and the ADC interrupt service routine.
                      66    
                      67    ;____________________________________________________________________
                      68                                                             ; SUBROUTINE
                      69    
006A                  70    DELAY:                          ; delay 100ms
                      71    
006A 7FC8             72            MOV     R7,#200         ; 200 * 500us = 100ms
006C 7EE5             73    DLY1:   MOV     R6,#229         ; 229 * 2.17us = 500us
006E DEFE             74            DJNZ    R6,$            ; sit here for 500us
0070 DFFA             75            DJNZ    R7,DLY1         ; repeat 200 times (100ms total)
0072 22               76            RET
                      77    
                      78    ;____________________________________________________________________
                      79    
                      80    END

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

ADCCON1. . . . . . . . . . . . .  D ADDR  00EFH  PREDEFINED  
ADCCON2. . . . . . . . . . . . .  D ADDR  00D8H  PREDEFINED  
ADCDATAH . . . . . . . . . . . .  D ADDR  00DAH  PREDEFINED  
ADCDATAL . . . . . . . . . . . .  D ADDR  00D9H  PREDEFINED  
AGAIN. . . . . . . . . . . . . .  C ADDR  0063H  
CHAN . . . . . . . . . . . . . .    NUMB  0000H  
DELAY. . . . . . . . . . . . . .  C ADDR  006AH  
DLY1 . . . . . . . . . . . . . .  C ADDR  006CH  
EA . . . . . . . . . . . . . . .  B ADDR  00AFH  PREDEFINED  
EADC . . . . . . . . . . . . . .  B ADDR  00AEH  PREDEFINED  
LED. . . . . . . . . . . . . . .    NUMB  00B4H  
MAIN . . . . . . . . . . . . . .  C ADDR  004BH  
P0 . . . . . . . . . . . . . . .  D ADDR  0080H  PREDEFINED  
P2 . . . . . . . . . . . . . . .  D ADDR  00A0H  PREDEFINED  
P3 . . . . . . . . . . . . . . .  D ADDR  00B0H  PREDEFINED  
RCAP2H . . . . . . . . . . . . .  D ADDR  00CBH  PREDEFINED  
RCAP2L . . . . . . . . . . . . .  D ADDR  00CAH  PREDEFINED  
TH2. . . . . . . . . . . . . . .  D ADDR  00CDH  PREDEFINED  
TL2. . . . . . . . . . . . . . .  D ADDR  00CCH  PREDEFINED  
TR2. . . . . . . . . . . . . . .  B ADDR  00CAH  PREDEFINED  

⌨️ 快捷键说明

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