📄 pdown.lst
字号:
PDOWN PAGE 1
1 ;********************************************************************
2 ;
3 ; Author : ADI - Apps www.analog.com/MicroConverter
4 ;
5 ; Date : Febuary 2001
6 ;
7 ; File : PDown.asm
8 ;
9 ; Hardware : ADuC84
10 ;
11 ; Description : Demonstrates a use of a timer interval counter to
12 ; wake the ADuC814 out of Power down mode after a user
13 ; specified Power down time.
14 ;
15 ; The LED will, on power up, flash at 10Hz. After 5s
16 ; the ADuC8414 will enter power down mode (the LED will
17 ; stop flashing in the off position).
18 ;
19 ; By pressing the external interrupt 0 button (INT0) or
20 ; when the user specified time runs out (20s in this
21 ; example) the ADuC814 will wake up and continue
22 ; blinking as before for 5s before entering power down
23 ; mode again.
24 ;
25 ;********************************************************************
26
27 $MOD814 ; Use 8052&ADuC814 predefined symbols
28
00B3 29 LED EQU P3.3 ; P3.3 drives red LED on eval board
30
31 ;____________________________________________________________________
32 ; BEGINNING OF CODE
---- 33 CSEG
34
0000 35 ORG 0000h
36
0000 020060 37 JMP MAIN ; jump to main program
38
39
40 ;____________________________________________________________________
41 ; EXTERNAL INTERRUPT VECTOR SPACE
0003 42 ORG 0003h
0003 32 43 RETI
44
45 ;____________________________________________________________________
46 ; TIC INTERRUPT VECTOR SPACE
0053 47 ORG 0053h
0053 32 48 RETI
49 ;_____________________________________________________________________
50
0060 51 ORG 0060h
52
0060 53 MAIN:
0060 75A9A4 54 MOV IEIP2, #0A4h ; enable time interval interrupt
55
0063 D288 56 SETB IT0 ; INT0 edge triggered
0065 D2A8 57 SETB EX0 ; enable INT0 (button on eval board)
0067 D2AF 58 SETB EA ; enable interrupts
PDOWN PAGE 2
59
0069 75A614 60 MOV INTVAL, #14h ; initialise intval to 20
61 ; => 20 unit delay
62
006C 7832 63 BLINK: MOV R0, #50
64
006E 7401 65 LOOP: MOV A, #01 ; Blink light 50 times at 10Hz =>5s
0070 120084 66 CALL DELAY
0073 B2B3 67 CPL LED
0075 D8F7 68 DJNZ R0, LOOP
69
0077 75A113 70 MOV TIMECON, #13h ; initialise timecon to
71 ; -count in secs
72 ; -start all time counters
73
007A C2B3 74 CLR LED ; turn off light when in power down
007C 758722 75 MOV PCON, #22h ; power down the ADuC814
76 ; Execution stops here until the ADuC
77 ; is powered up again by either an
78 ; external interrupt or a Time Interval
79 ; Interrupt (20s)
80 ; Note: if using external data mem
81 ; make sure ALE remains toggling after
82 ; you power up again. i.e. PCON.4=0
83
007F 75A112 84 MOV TIMECON, #12h ; disable TCEN to reset counter to 0
85 ; and to temporarily stop counter
0082 80E8 86 JMP BLINK
87
88
89 ;____________________________________________________________________
90 ; DELAY
91
0084 92 DELAY: ; Delays by 100ms * A
93 ; 100mSec based on 2.097152MHZ
94 ; Core Clock
95 ; i.e. default ADuC814 Clock
96
0084 F9 97 MOV R1,A ; Acc holds delay variable
0085 7A22 98 DLY0: MOV R2,#022h ; Set up delay loop0
0087 7BFF 99 DLY1: MOV R3,#0FFh ; Set up delay loop1
0089 DBFE 100 DJNZ R3,$ ; Dec R3 & Jump here until R3 is 0
008B DAFA 101 DJNZ R2,DLY1 ; Dec R2 & Jump DLY1 until R2 is 0
008D D9F6 102 DJNZ R1,DLY0 ; Dec R1 & Jump DLY0 until R1 is 0
008F 22 103 RET ; Return from subroutine
104
105
106 ;____________________________________________________________________
107
108 END
VERSION 1.2h ASSEMBLY COMPLETE, 0 ERRORS FOUND
PDOWN PAGE 3
BLINK. . . . . . . . . . . . . . C ADDR 006CH
DELAY. . . . . . . . . . . . . . C ADDR 0084H
DLY0 . . . . . . . . . . . . . . C ADDR 0085H
DLY1 . . . . . . . . . . . . . . C ADDR 0087H
EA . . . . . . . . . . . . . . . B ADDR 00AFH PREDEFINED
EX0. . . . . . . . . . . . . . . B ADDR 00A8H PREDEFINED
IEIP2. . . . . . . . . . . . . . D ADDR 00A9H PREDEFINED
INTVAL . . . . . . . . . . . . . D ADDR 00A6H PREDEFINED
IT0. . . . . . . . . . . . . . . B ADDR 0088H PREDEFINED
LED. . . . . . . . . . . . . . . NUMB 00B3H
LOOP . . . . . . . . . . . . . . C ADDR 006EH
MAIN . . . . . . . . . . . . . . C ADDR 0060H
P3 . . . . . . . . . . . . . . . D ADDR 00B0H PREDEFINED
PCON . . . . . . . . . . . . . . D ADDR 0087H PREDEFINED
TIMECON. . . . . . . . . . . . . D ADDR 00A1H PREDEFINED
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -