1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228
|
demo4 PAGE 1
1 ; MCU 8051 IDE - Demostration code
2 ; Interrupt monitor and list of active subprograms
3
4 ; 1) Press Ctrl+0 to show tab "List of subprograms" on righ panel
5 ; 2) Run interrupt monitor
6 ; (Main menu: Simulator -> Interrupt monitor)
7 ; 3) Press F2 to start simulator and F6 to run animation mode
8
9 ; Macro instructions
10 ; ------------------
11
12 ;; Handle interrupt
13 intr macro
14 ; Set UART interrupt flags
15 setb RI
16 setb TI
17
18 ; Wait a while and return from interrupt
19 acall wait
20 reti
21 endm
22
23
24 ; Interrupt vectors
25 ; -----------------
26 org 00h ; Reset
0000 D298 27 ajmp start
28
29 +1 org 03h ; External 0
30 +2
31 +3
32 +4
33 +5
34 +6
35 +7
36 +7
37 +7 setb RI
000B 113F 38 +7 setb TI
000D 22 39 +7
40 +7 acall wait
000F DFFE 41 +7 reti
42 +6 setb RI
0011 22 43 +6 setb TI
44 +6
45 +6 acall wait
0013 D28F 46 +6 reti
47 +5 setb RI
0015 D289 48 +5 setb TI
49 +5
0017 D28B 50 +5 acall wait
0019 75A8FF 51 +5 reti
52 +4 setb RI
53 +4 setb TI
54 +4
001B 80FE 55 +4 acall wait
56 +4 reti
57 +3 setb RI
58 +3 setb TI
59 +3
60 +3 acall wait
61 +3 reti
62 +2 setb RI
63 +2 setb TI
64 +2
65 +2 acall wait
66 +2 reti
67 +1 setb RI
68 +1 setb TI
69 +1
70 +1 acall wait
71 +1 reti
72 intr
73
74 org 0Bh ; Timer 0
75 intr
76
77 org 13h ; External 0
78 intr
79
80 org 1Bh ; Timer 1
81 intr
82
83 org 23h ; UART and SPI
84 intr
85
86 org 2Bh ; Timer 2
87 intr
88
89 org 33h ; Analog comparator
90 intr
91
92 ; Subprograms
93 ; -----------------
94 wait: ; Wait for 24 cycles
95 mov R7, #10h
96 acall wait_aux
97 ret
98
99 wait_aux:
100 djnz R7, $
101 ret
102
103
104 ; Program start
105 ; -----------------
106 start:
107 ; Set some interrupt bits
108 setb TF0
109 setb TF1
110 setb IE0
111 setb IE1
112
113 ; Enable all interrupts and set priorities
114 mov IE, #0FFh
115 setb PS
116
117 ; Infinite loop
118 sjmp $
119
120
121 ; End of code
122 ; -----------------
123 end
ASSEMBLY COMPLETE, NO ERRORS FOUND, NO WARNINGS
SYMBOL TABLE:
AC . . . . . . . . . . . . . . . . . B ADDR 00D6H NOT USED
ACC. . . . . . . . . . . . . . . . . D ADDR 00E0H NOT USED
ACSR . . . . . . . . . . . . . . . . D ADDR 0097H NOT USED
AUXR . . . . . . . . . . . . . . . . D ADDR 008EH NOT USED
AUXR1. . . . . . . . . . . . . . . . D ADDR 00A2H NOT USED
B. . . . . . . . . . . . . . . . . . D ADDR 00F0H NOT USED
CKCON. . . . . . . . . . . . . . . . D ADDR 008FH NOT USED
CLKREG . . . . . . . . . . . . . . . D ADDR 008FH NOT USED
CPRL2. . . . . . . . . . . . . . . . B ADDR 00C8H NOT USED
CT2. . . . . . . . . . . . . . . . . B ADDR 00C9H NOT USED
CY . . . . . . . . . . . . . . . . . B ADDR 00D7H NOT USED
DP0H . . . . . . . . . . . . . . . . D ADDR 0083H NOT USED
DP0L . . . . . . . . . . . . . . . . D ADDR 0082H NOT USED
DP1H . . . . . . . . . . . . . . . . D ADDR 0085H NOT USED
DP1L . . . . . . . . . . . . . . . . D ADDR 0084H NOT USED
DPH. . . . . . . . . . . . . . . . . D ADDR 0083H NOT USED
DPL. . . . . . . . . . . . . . . . . D ADDR 0082H NOT USED
EA . . . . . . . . . . . . . . . . . B ADDR 00AFH NOT USED
EECON. . . . . . . . . . . . . . . . D ADDR 0096H NOT USED
ES . . . . . . . . . . . . . . . . . B ADDR 00ACH NOT USED
ET0. . . . . . . . . . . . . . . . . B ADDR 00A9H NOT USED
ET1. . . . . . . . . . . . . . . . . B ADDR 00ABH NOT USED
EX0. . . . . . . . . . . . . . . . . B ADDR 00A8H NOT USED
EX1. . . . . . . . . . . . . . . . . B ADDR 00AAH NOT USED
EXEN2. . . . . . . . . . . . . . . . B ADDR 00CBH NOT USED
EXF2 . . . . . . . . . . . . . . . . B ADDR 00CEH NOT USED
F0 . . . . . . . . . . . . . . . . . B ADDR 00D5H NOT USED
IE . . . . . . . . . . . . . . . . . D ADDR 00A8H NOT USED
IE0. . . . . . . . . . . . . . . . . B ADDR 0089H NOT USED
IE1. . . . . . . . . . . . . . . . . B ADDR 008BH NOT USED
INT0 . . . . . . . . . . . . . . . . B ADDR 00B2H NOT USED
INT1 . . . . . . . . . . . . . . . . B ADDR 00B3H NOT USED
IP . . . . . . . . . . . . . . . . . D ADDR 00B8H NOT USED
IPH. . . . . . . . . . . . . . . . . D ADDR 00B7H NOT USED
IT0. . . . . . . . . . . . . . . . . B ADDR 0088H NOT USED
IT1. . . . . . . . . . . . . . . . . B ADDR 008AH NOT USED
OV . . . . . . . . . . . . . . . . . B ADDR 00D2H NOT USED
P. . . . . . . . . . . . . . . . . . B ADDR 00D0H NOT USED
P0 . . . . . . . . . . . . . . . . . D ADDR 0080H NOT USED
P1 . . . . . . . . . . . . . . . . . D ADDR 0090H NOT USED
P2 . . . . . . . . . . . . . . . . . D ADDR 00A0H NOT USED
P3 . . . . . . . . . . . . . . . . . D ADDR 00B0H NOT USED
P4 . . . . . . . . . . . . . . . . . D ADDR 00C0H NOT USED
PCON . . . . . . . . . . . . . . . . D ADDR 0087H NOT USED
PS . . . . . . . . . . . . . . . . . B ADDR 00BCH NOT USED
PSW. . . . . . . . . . . . . . . . . D ADDR 00D0H NOT USED
PT0. . . . . . . . . . . . . . . . . B ADDR 00B9H NOT USED
PT1. . . . . . . . . . . . . . . . . B ADDR 00BBH NOT USED
PX0. . . . . . . . . . . . . . . . . B ADDR 00B8H NOT USED
PX1. . . . . . . . . . . . . . . . . B ADDR 00BAH NOT USED
RB8. . . . . . . . . . . . . . . . . B ADDR 009AH NOT USED
RCAP2H . . . . . . . . . . . . . . . D ADDR 00CBH NOT USED
RCAP2L . . . . . . . . . . . . . . . D ADDR 00CAH NOT USED
RCLK . . . . . . . . . . . . . . . . B ADDR 00CDH NOT USED
RD . . . . . . . . . . . . . . . . . B ADDR 00B7H NOT USED
REN. . . . . . . . . . . . . . . . . B ADDR 009CH NOT USED
RI . . . . . . . . . . . . . . . . . B ADDR 0098H NOT USED
RS0. . . . . . . . . . . . . . . . . B ADDR 00D3H NOT USED
RS1. . . . . . . . . . . . . . . . . B ADDR 00D4H NOT USED
RXD. . . . . . . . . . . . . . . . . B ADDR 00B0H NOT USED
SADDR. . . . . . . . . . . . . . . . D ADDR 00A9H NOT USED
SADEN. . . . . . . . . . . . . . . . D ADDR 00B9H NOT USED
SBUF . . . . . . . . . . . . . . . . D ADDR 0099H NOT USED
SCON . . . . . . . . . . . . . . . . D ADDR 0098H NOT USED
SM0. . . . . . . . . . . . . . . . . B ADDR 009FH NOT USED
SM1. . . . . . . . . . . . . . . . . B ADDR 009EH NOT USED
SM2. . . . . . . . . . . . . . . . . B ADDR 009DH NOT USED
SP . . . . . . . . . . . . . . . . . D ADDR 0081H NOT USED
SPCR . . . . . . . . . . . . . . . . D ADDR 00D5H NOT USED
SPDR . . . . . . . . . . . . . . . . D ADDR 0086H NOT USED
SPSR . . . . . . . . . . . . . . . . D ADDR 00AAH NOT USED
START. . . . . . . . . . . . . . . . C ADDR 0042H NOT USED
T0 . . . . . . . . . . . . . . . . . B ADDR 00B4H NOT USED
T1 . . . . . . . . . . . . . . . . . B ADDR 00B5H NOT USED
T2CON. . . . . . . . . . . . . . . . D ADDR 00C8H NOT USED
T2MOD. . . . . . . . . . . . . . . . D ADDR 00C9H NOT USED
TB8. . . . . . . . . . . . . . . . . B ADDR 009BH NOT USED
TCLK . . . . . . . . . . . . . . . . B ADDR 00CCH NOT USED
TCON . . . . . . . . . . . . . . . . D ADDR 0088H NOT USED
TF0. . . . . . . . . . . . . . . . . B ADDR 008DH NOT USED
TF1. . . . . . . . . . . . . . . . . B ADDR 008FH NOT USED
TF2. . . . . . . . . . . . . . . . . B ADDR 00CFH NOT USED
TH0. . . . . . . . . . . . . . . . . D ADDR 008CH NOT USED
TH1. . . . . . . . . . . . . . . . . D ADDR 008DH NOT USED
TH2. . . . . . . . . . . . . . . . . D ADDR 00CDH NOT USED
TI . . . . . . . . . . . . . . . . . B ADDR 0099H NOT USED
TL0. . . . . . . . . . . . . . . . . D ADDR 008AH NOT USED
TL1. . . . . . . . . . . . . . . . . D ADDR 008BH NOT USED
TL2. . . . . . . . . . . . . . . . . D ADDR 00CCH NOT USED
TMOD . . . . . . . . . . . . . . . . D ADDR 0089H NOT USED
TR0. . . . . . . . . . . . . . . . . B ADDR 008CH NOT USED
TR1. . . . . . . . . . . . . . . . . B ADDR 008EH NOT USED
TR2. . . . . . . . . . . . . . . . . B ADDR 00CAH NOT USED
TXD. . . . . . . . . . . . . . . . . B ADDR 00B1H NOT USED
WAIT . . . . . . . . . . . . . . . . C ADDR 003AH NOT USED
WAIT_AUX . . . . . . . . . . . . . . C ADDR 003FH NOT USED
WDTCON . . . . . . . . . . . . . . . D ADDR 00A7H NOT USED
WDTPRG . . . . . . . . . . . . . . . D ADDR 00A7H NOT USED
WDTRST . . . . . . . . . . . . . . . D ADDR 00A6H NOT USED
WR . . . . . . . . . . . . . . . . . B ADDR 00B6H NOT USED
|