📄 adccont.lst
字号:
ADCCONT PAGE 1
1 ;********************************************************************
2 ;
3 ; Author : ADI - Apps www.analog.com/MicroConverter
4 ;
5 ; Date : April 2002
6 ;
7 ; File : ADCcont.asm
8 ;
9 ; Hardware : ADuC814
10 ;
11 ; Description : Performs ADC conversions in continuous mode at a
12 ; rate of 30.840KSPS (assuming an 2.097152 Mclk).
13 ; Outputs ADC results into a buffer in ram.Continuously
14 ; flashes LED.
15 ; All rate calculations assume an 2.097152MHz Mclk.
16 ;
17 ;********************************************************************
18
19 $MOD814 ; Use 8052&ADuC812 predefined symbols
20
00B3 21 LED EQU P3.3 ; P3.3 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
---- 26 DSEG
0030 27 ORG 0030H
0028 28 LENGTH EQU 40
0030 29 BUFFER: DS LENGTH ; set up buffer in RAM
30
31 ;____________________________________________________________________
32 ; BEGINNING OF CODE
---- 33 CSEG
34
0000 35 ORG 0000h
36
0000 02004B 37 JMP MAIN ; jump to main program
38 ;____________________________________________________________________
39 ; INTERRUPT VECTOR SPACE
0033 40 ORG 0033H ; (ADC ISR)
0033 B85803 41 CJNE R0,#58H,CONT
0036 02003F 42 JMP EXIT
0039 A6DA 43 CONT: MOV @R0,ADCDATAH
003B 08 44 INC R0
003C A6D9 45 MOV @R0,ADCDATAL
003E 08 46 INC R0
003F 32 47 EXIT: RETI
48
49 ;====================================================================
50 ; MAIN PROGRAM
004B 51 ORG 004Bh
52
004B 53 MAIN:
54
55 ; PRECONFIGURE...
56
004B 75EF80 57 MOV ADCCON1,#080h ; power up ADC /32 clk cycle + 16 cycles for conversion + 1
acq cycle
ADCCONT PAGE 2
004E 75D800 58 MOV ADCCON2,#CHAN ; select channel to convert
59
60 ; LAUNCH CONTINUOUS CONVERSIONS...
0051 7830 61 MOV R0,#BUFFER
0053 D2AF 62 SETB EA ; enable interrupts
0055 D2AE 63 SETB EADC ; enable ADC interrupt
0057 D2DD 64 SETB CCONV ; begin continuous conversions
65
66 ; CONTINUE WITH OTHER CODE...
0059 7401 67 MOV A,#1 ; delay length
005B B2B3 68 AGAIN: CPL LED ; blink (complement) the LED
005D 120062 69 CALL DELAY ; delay
0060 80F9 70 JMP AGAIN ; repeat
71
72 ; the micro is free to continue with other tasks (flashing the LED in
73 ; this case) while the ADC is continuously converting, and results
74 ; are being handled by the ADC interrupt service routine.
75
76 ;____________________________________________________________________
77 ; SUBROUTINE
0062 78 DELAY: ; Delays by 100ms * A
79 ; 100mSec based on 2.097152MHZ
80 ; Core Clock
81 ; i.e. default ADuC814 Clock
82
0062 F9 83 MOV R1,A ; Acc holds delay variable
0063 7A22 84 DLY0: MOV R2,#022h ; Set up delay loop0
0065 7BFF 85 DLY1: MOV R3,#0FFh ; Set up delay loop1
0067 DBFE 86 DJNZ R3,$ ; Dec R3 & Jump here until R3 is 0
0069 DAFA 87 DJNZ R2,DLY1 ; Dec R2 & Jump DLY1 until R2 is 0
006B D9F6 88 DJNZ R1,DLY0 ; Dec R1 & Jump DLY0 until R1 is 0
006D 22 89 RET ; Return from subroutine
90
91 ;____________________________________________________________________
92
93
94 END
VERSION 1.2h ASSEMBLY COMPLETE, 0 ERRORS FOUND
ADCCONT 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 005BH
BUFFER . . . . . . . . . . . . . D ADDR 0030H
CCONV. . . . . . . . . . . . . . B ADDR 00DDH PREDEFINED
CHAN . . . . . . . . . . . . . . NUMB 0000H
CONT . . . . . . . . . . . . . . C ADDR 0039H
DELAY. . . . . . . . . . . . . . C ADDR 0062H
DLY0 . . . . . . . . . . . . . . C ADDR 0063H
DLY1 . . . . . . . . . . . . . . C ADDR 0065H
EA . . . . . . . . . . . . . . . B ADDR 00AFH PREDEFINED
EADC . . . . . . . . . . . . . . B ADDR 00AEH PREDEFINED
EXIT . . . . . . . . . . . . . . C ADDR 003FH
LED. . . . . . . . . . . . . . . NUMB 00B3H
LENGTH . . . . . . . . . . . . . NUMB 0028H
MAIN . . . . . . . . . . . . . . C ADDR 004BH
P3 . . . . . . . . . . . . . . . D ADDR 00B0H PREDEFINED
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -