📄 adcpin.lst
字号:
ADCPIN PAGE 1
1 ;********************************************************************
2 ;
3 ; Author : ADI - Apps www.analog.com/MicroConverter
4 ;
5 ; Date : 15 July 1999
6 ;
7 ; File : ADCpin.asm
8 ;
9 ; Hardware : ADuC812
10 ;
11 ; Description : Performs hardware pin driven ADC conversions and
12 ; outputs results on P0 & P2. Continuously flashes
13 ; LED (independently of ADC routine) at approximately
14 ; 5Hz (assuming an 11.0592MHz Mclk).
15 ;
16 ;********************************************************************
17
18 $MOD812 ; Use 8052&ADuC812 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)
33
0033 85D980 34 MOV P0,ADCDATAL ; ADC result low byte to Port0
0036 85DAA0 35 MOV P2,ADCDATAH ; high nibble and channel ID to Port2
0039 32 36 RETI
37
38 ;====================================================================
39 ; MAIN PROGRAM
004B 40 ORG 004Bh
41
004B 42 MAIN:
43
44 ; PRECONFIGURE...
45
004B 75EF64 46 MOV ADCCON1,#064h ; power up ADC, 6.51us conv+acq time
004E 75D800 47 MOV ADCCON2,#CHAN ; select channel to convert
48
49 ; LAUNCH CONTINUOUS CONVERSIONS...
50
0051 D2AF 51 SETB EA ; enable interrupts
0053 D2AE 52 SETB EADC ; enable ADC interrupt
0055 43EF01 53 ORL ADCCON1,#001h ; enable hardware CONVST pin
54
55 ; CONTINUE WITH OTHER CODE...
56
0058 B2B4 57 AGAIN: CPL LED ; blink (complement) the LED
005A 12005F 58 CALL DELAY ; delay 100ms
ADCPIN PAGE 2
005D 80F9 59 JMP AGAIN ; repeat
60
61 ; the micro is free to continue with other tasks (flashing the LED in
62 ; this case) while the ADC is converting, synchronously to the
63 ; external CONVST pin. results are being handled by the ADC
64 ; interrupt service routine.
65
66 ;____________________________________________________________________
67 ; SUBROUTINE
68
005F 69 DELAY: ; delay 100ms
70
005F 7FC8 71 MOV R7,#200 ; 200 * 500us = 100ms
0061 7EE5 72 DLY1: MOV R6,#229 ; 229 * 2.17us = 500us
0063 DEFE 73 DJNZ R6,$ ; sit here for 500us
0065 DFFA 74 DJNZ R7,DLY1 ; repeat 200 times (100ms total)
0067 22 75 RET
76
77 ;____________________________________________________________________
78
79 END
VERSION 1.2h ASSEMBLY COMPLETE, 0 ERRORS FOUND
ADCPIN 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 0058H
CHAN . . . . . . . . . . . . . . NUMB 0000H
DELAY. . . . . . . . . . . . . . C ADDR 005FH
DLY1 . . . . . . . . . . . . . . C ADDR 0061H
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 + -