📄 adcsingl.lst
字号:
ADCSINGL PAGE 1
1 ;********************************************************************
2 ;
3 ; Author : ADI - Apps www.analog.com/MicroConverter
4 ;
5 ; Date : 28 May 1999
6 ;
7 ; File : ADCsingl.asm
8 ;
9 ; Hardware : ADuC812
10 ;
11 ; Description : Performs repeated single ADC conversions and moves
12 ; results to P0 & P2. 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 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 C2B4 37 CLR LED ; turn the LED on
003B 32 38 RETI
39
40 ;====================================================================
41 ; MAIN PROGRAM
004B 42 ORG 004Bh
43
004B 44 MAIN:
45
46 ; PRECONFIGURE...
47
004B 75EF60 48 MOV ADCCON1,#060h ; power up ADC
004E 75D800 49 MOV ADCCON2,#CHAN ; select channel to convert
0051 D2AF 50 SETB EA ; enable interrupts
0053 D2AE 51 SETB EADC ; enable ADC interrupt
52
53 ; PERFORM REPEATED SINGLE CONVERSIONS...
54
0055 D2B4 55 AGAIN: SETB LED ; turn the LED off
0057 120061 56 CALL DELAY ; delay 100ms
005A D2DC 57 SETB SCONV ; innitiate single ADC conversion
58 ; ADC ISR is called upon completion
ADCSINGL PAGE 2
005C 120061 59 CALL DELAY ; delay 100ms
005F 80F4 60 JMP AGAIN ; repeat
61
62 ;____________________________________________________________________
63 ; SUBROUTINE
64
0061 65 DELAY: ; delay 100ms
66
0061 7FC8 67 MOV R7,#200 ; 200 * 500us = 100ms
0063 7EE5 68 DLY1: MOV R6,#229 ; 229 * 2.17us = 500us
0065 DEFE 69 DJNZ R6,$ ; sit here for 500us
0067 DFFA 70 DJNZ R7,DLY1 ; repeat 200 times (100ms total)
0069 22 71 RET
72
73 ;____________________________________________________________________
74
75 END
VERSION 1.2h ASSEMBLY COMPLETE, 0 ERRORS FOUND
ADCSINGL 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 0055H
CHAN . . . . . . . . . . . . . . NUMB 0000H
DELAY. . . . . . . . . . . . . . C ADDR 0061H
DLY1 . . . . . . . . . . . . . . C ADDR 0063H
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
SCONV. . . . . . . . . . . . . . B ADDR 00DCH PREDEFINED
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -