📄 adccont.lst
字号:
ADCCONT PAGE 1
1 ;********************************************************************
2 ;
3 ; Author : ADI - Apps www.analog.com/MicroConverter
4 ;
5 ; Date : 28 May 1999
6 ;
7 ; File : ADCcont.asm
8 ;
9 ; Hardware : ADuC812
10 ;
11 ; Description : Performs ADC conversions in continuous mode at a
12 ; rate of 69.12KSPS (assuming an 11.0592MHz Mclk).
13 ; Outputs ADC results on P0 & P2. Continuously
14 ; flashes LED (independently of ADC routine) at
15 ; approximately 5Hz.
16 ; All rate calculations assume an 11.0592MHz Mclk.
17 ;
18 ;********************************************************************
19
20 $MOD812 ; Use 8052&ADuC812 predefined symbols
21
00B4 22 LED EQU P3.4 ; P3.4 drives red LED on eval board
0000 23 CHAN EQU 0 ; convert this ADC input channel..
24 ; ..chan values can be 0 thru 8
25 ;____________________________________________________________________
26 ; BEGINNING OF CODE
---- 27 CSEG
28
0000 29 ORG 0000h
30
0000 02004B 31 JMP MAIN ; jump to main program
32 ;____________________________________________________________________
33 ; INTERRUPT VECTOR SPACE
0033 34 ORG 0033H ; (ADC ISR)
35
0033 85D980 36 MOV P0,ADCDATAL ; ADC result low byte to Port0
0036 85DAA0 37 MOV P2,ADCDATAH ; high nibble and channel ID to Port2
0039 32 38 RETI
39
40 ;====================================================================
41 ; MAIN PROGRAM
004B 42 ORG 004Bh
43
004B 44 MAIN:
45
46 ; PRECONFIGURE...
47
004B 75EF7C 48 MOV ADCCON1,#07Ch ; power up ADC, 14.5us conv+acq time
004E 75D800 49 MOV ADCCON2,#CHAN ; select channel to convert
50
51 ; LAUNCH CONTINUOUS CONVERSIONS...
52
0051 D2AF 53 SETB EA ; enable interrupts
0053 D2AE 54 SETB EADC ; enable ADC interrupt
0055 D2DD 55 SETB CCONV ; begin continuous conversions
56
57 ; CONTINUE WITH OTHER CODE...
58
ADCCONT PAGE 2
0057 B2B4 59 AGAIN: CPL LED ; blink (complement) the LED
0059 12005E 60 CALL DELAY ; delay 100ms
005C 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 is continuously converting, and results
65 ; are being handled by the ADC interrupt service routine.
66
67 ;____________________________________________________________________
68 ; SUBROUTINE
69
005E 70 DELAY: ; delay 100ms
71
005E 7FC8 72 MOV R7,#200 ; 200 * 500us = 100ms
0060 7EE5 73 DLY1: MOV R6,#229 ; 229 * 2.17us = 500us
0062 DEFE 74 DJNZ R6,$ ; sit here for 500us
0064 DFFA 75 DJNZ R7,DLY1 ; repeat 200 times (100ms total)
0066 22 76 RET
77
78 ;____________________________________________________________________
79
80 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 0057H
CCONV. . . . . . . . . . . . . . B ADDR 00DDH PREDEFINED
CHAN . . . . . . . . . . . . . . NUMB 0000H
DELAY. . . . . . . . . . . . . . C ADDR 005EH
DLY1 . . . . . . . . . . . . . . C ADDR 0060H
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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -