| Line 1... |
Line 1... |
| 1 |
CCS PCH C Compiler, Version 4.090, 47914 20-I-10 01:41 |
1 |
CCS PCH C Compiler, Version 4.090, 47914 23-I-10 18:55 |
| 2 |
|
2 |
|
| 3 |
Filename: D:\MLAB\Designs\STOPWATCH02A\SW\test\main.lst |
3 |
Filename: D:\MLAB\Designs\STOPWATCH02A\SW\test\main.lst |
| 4 |
|
4 |
|
| 5 |
ROM used: 376 bytes (1%) |
5 |
ROM used: 370 bytes (1%) |
| 6 |
Largest free fragment is 32388 |
6 |
Largest free fragment is 32394 |
| 7 |
RAM used: 24 (1%) at main() level |
7 |
RAM used: 25 (1%) at main() level |
| 8 |
25 (1%) worst case |
8 |
26 (1%) worst case |
| 9 |
Stack: 2 worst case (1 in main + 1 for interrupts) |
9 |
Stack: 2 worst case (1 in main + 1 for interrupts) |
| 10 |
|
10 |
|
| 11 |
* |
11 |
* |
| 12 |
0000: GOTO 00EE |
12 |
0000: GOTO 00D0 |
| 13 |
* |
13 |
* |
| 14 |
0008: MOVWF 05 |
14 |
0008: MOVWF 05 |
| 15 |
000A: MOVFF FD8,06 |
15 |
000A: MOVFF FD8,06 |
| 16 |
000E: MOVFF FE0,07 |
16 |
000E: MOVFF FE0,07 |
| 17 |
0012: MOVLB 0 |
17 |
0012: MOVLB 0 |
| Line 30... |
Line 30... |
| 30 |
0044: MOVFF 03,12 |
30 |
0044: MOVFF 03,12 |
| 31 |
0048: MOVFF 04,13 |
31 |
0048: MOVFF 04,13 |
| 32 |
004C: BTFSS FF2.5 |
32 |
004C: BTFSS FF2.5 |
| 33 |
004E: GOTO 0058 |
33 |
004E: GOTO 0058 |
| 34 |
0052: BTFSC FF2.2 |
34 |
0052: BTFSC FF2.2 |
| 35 |
0054: GOTO 00AA |
35 |
0054: GOTO 009E |
| 36 |
0058: BTFSS FF2.3 |
- |
|
| 37 |
005A: GOTO 0064 |
- |
|
| 38 |
005E: BTFSC FF2.0 |
- |
|
| 39 |
0060: GOTO 00B4 |
- |
|
| 40 |
0064: MOVFF 0F,00 |
36 |
0058: MOVFF 0F,00 |
| 41 |
0068: MOVFF 10,01 |
37 |
005C: MOVFF 10,01 |
| 42 |
006C: MOVFF 11,02 |
38 |
0060: MOVFF 11,02 |
| 43 |
0070: MOVFF 12,03 |
39 |
0064: MOVFF 12,03 |
| 44 |
0074: MOVFF 13,04 |
40 |
0068: MOVFF 13,04 |
| 45 |
0078: MOVFF 0D,FE9 |
41 |
006C: MOVFF 0D,FE9 |
| 46 |
007C: MOVFF 08,FEA |
42 |
0070: MOVFF 08,FEA |
| 47 |
0080: BSF 08.7 |
43 |
0074: BSF 08.7 |
| 48 |
0082: MOVFF 09,FE1 |
44 |
0076: MOVFF 09,FE1 |
| 49 |
0086: MOVFF 0A,FE2 |
45 |
007A: MOVFF 0A,FE2 |
| 50 |
008A: MOVFF 0B,FD9 |
46 |
007E: MOVFF 0B,FD9 |
| 51 |
008E: MOVFF 0C,FDA |
47 |
0082: MOVFF 0C,FDA |
| 52 |
0092: MOVFF 14,FF3 |
48 |
0086: MOVFF 14,FF3 |
| 53 |
0096: MOVFF 15,FF4 |
49 |
008A: MOVFF 15,FF4 |
| 54 |
009A: MOVFF 16,FFA |
50 |
008E: MOVFF 16,FFA |
| 55 |
009E: MOVF 05,W |
51 |
0092: MOVF 05,W |
| 56 |
00A0: MOVFF 07,FE0 |
52 |
0094: MOVFF 07,FE0 |
| 57 |
00A4: MOVFF 06,FD8 |
53 |
0098: MOVFF 06,FD8 |
| 58 |
00A8: RETFIE 0 |
54 |
009C: RETFIE 0 |
| 59 |
.................... #include "D:\MLAB\Designs\STOPWATCH02A\SW\test\main.h" |
55 |
.................... #include "D:\MLAB\Designs\STOPWATCH02A\SW\test\main.h" |
| 60 |
.................... #include <18F4550.h> |
56 |
.................... #include <18F4550.h> |
| 61 |
.................... //////// Standard Header file for the PIC18F4550 device //////////////// |
57 |
.................... //////// Standard Header file for the PIC18F4550 device //////////////// |
| 62 |
.................... #device PIC18F4550 |
58 |
.................... #device PIC18F4550 |
| 63 |
.................... #list |
59 |
.................... #list |
| Line 94... |
Line 90... |
| 94 |
.................... #FUSES NOVREGEN //USB voltage regulator enabled |
90 |
.................... #FUSES NOVREGEN //USB voltage regulator enabled |
| 95 |
.................... #FUSES NOICPRT //ICPRT enabled |
91 |
.................... #FUSES NOICPRT //ICPRT enabled |
| 96 |
.................... |
92 |
.................... |
| 97 |
.................... #use delay(clock=8000000) |
93 |
.................... #use delay(clock=8000000) |
| 98 |
* |
94 |
* |
| 99 |
00C6: CLRF FEA |
95 |
00A8: CLRF FEA |
| 100 |
00C8: MOVLW 18 |
96 |
00AA: MOVLW 19 |
| 101 |
00CA: MOVWF FE9 |
97 |
00AC: MOVWF FE9 |
| 102 |
00CC: MOVF FEF,W |
98 |
00AE: MOVF FEF,W |
| 103 |
00CE: BZ 00EA |
99 |
00B0: BZ 00CC |
| 104 |
00D0: MOVLW 02 |
100 |
00B2: MOVLW 02 |
| 105 |
00D2: MOVWF 01 |
101 |
00B4: MOVWF 01 |
| 106 |
00D4: CLRF 00 |
102 |
00B6: CLRF 00 |
| 107 |
00D6: DECFSZ 00,F |
103 |
00B8: DECFSZ 00,F |
| 108 |
00D8: BRA 00D6 |
104 |
00BA: BRA 00B8 |
| 109 |
00DA: DECFSZ 01,F |
105 |
00BC: DECFSZ 01,F |
| 110 |
00DC: BRA 00D4 |
106 |
00BE: BRA 00B6 |
| 111 |
00DE: MOVLW 97 |
107 |
00C0: MOVLW 97 |
| 112 |
00E0: MOVWF 00 |
108 |
00C2: MOVWF 00 |
| 113 |
00E2: DECFSZ 00,F |
109 |
00C4: DECFSZ 00,F |
| 114 |
00E4: BRA 00E2 |
110 |
00C6: BRA 00C4 |
| 115 |
00E6: DECFSZ FEF,F |
111 |
00C8: DECFSZ FEF,F |
| 116 |
00E8: BRA 00D0 |
112 |
00CA: BRA 00B2 |
| 117 |
00EA: GOTO 0178 (RETURN) |
113 |
00CC: GOTO 015C (RETURN) |
| 118 |
.................... #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8) |
114 |
.................... #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8) |
| 119 |
.................... |
115 |
.................... |
| 120 |
.................... |
116 |
.................... |
| 121 |
.................... |
117 |
.................... |
| 122 |
.................... #define LED1 PIN_A1 |
118 |
.................... #define LED1 PIN_A1 |
| Line 125... |
Line 121... |
| 125 |
.................... #int_TIMER0 |
121 |
.................... #int_TIMER0 |
| 126 |
.................... void TIMER0_isr(void) |
122 |
.................... void TIMER0_isr(void) |
| 127 |
.................... { |
123 |
.................... { |
| 128 |
.................... Output_low(LED2); |
124 |
.................... Output_low(LED2); |
| 129 |
* |
125 |
* |
| 130 |
00AA: BCF F92.2 |
126 |
009E: BCF F92.2 |
| 131 |
00AC: BCF F89.2 |
127 |
00A0: BCF F89.2 |
| 132 |
.................... } |
128 |
.................... } |
| 133 |
.................... |
129 |
.................... |
| 134 |
00AE: BCF FF2.2 |
- |
|
| 135 |
00B0: GOTO 0064 |
- |
|
| 136 |
.................... #int_RB |
130 |
.................... /*#int_RB |
| 137 |
.................... void RB_isr(void) |
131 |
.................... void RB_isr(void) |
| 138 |
.................... { |
132 |
.................... { |
| 139 |
.................... output_high(LED2); |
133 |
.................... output_high(LED2); |
| 140 |
00B4: BCF F92.2 |
- |
|
| 141 |
00B6: BSF F89.2 |
- |
|
| 142 |
.................... output_toggle(PIN_B2); |
- |
|
| 143 |
00B8: BCF F93.2 |
- |
|
| 144 |
00BA: BTG F8A.2 |
- |
|
| 145 |
.................... input_b(); |
- |
|
| 146 |
00BC: MOVLW FF |
- |
|
| 147 |
00BE: MOVWF F93 |
- |
|
| 148 |
.................... } |
134 |
.................... }*/ |
| 149 |
.................... |
135 |
.................... |
| 150 |
.................... |
136 |
.................... |
| 151 |
00C0: BCF FF2.0 |
137 |
00A2: BCF FF2.2 |
| 152 |
00C2: GOTO 0064 |
138 |
00A4: GOTO 0058 |
| 153 |
.................... void main() |
139 |
.................... void main() |
| 154 |
.................... { |
140 |
.................... { |
| 155 |
* |
141 |
* |
| 156 |
00EE: CLRF FF8 |
142 |
00D0: CLRF FF8 |
| 157 |
00F0: BCF FD0.7 |
143 |
00D2: BCF FD0.7 |
| 158 |
00F2: BSF 08.7 |
144 |
00D4: BSF 08.7 |
| 159 |
00F4: CLRF FEA |
145 |
00D6: CLRF FEA |
| 160 |
00F6: CLRF FE9 |
146 |
00D8: CLRF FE9 |
| 161 |
00F8: MOVLW 70 |
147 |
00DA: MOVLW 70 |
| 162 |
00FA: MOVWF FD3 |
148 |
00DC: MOVWF FD3 |
| 163 |
00FC: MOVF FD3,W |
149 |
00DE: MOVF FD3,W |
| 164 |
00FE: BCF FB8.3 |
150 |
00E0: BCF FB8.3 |
| 165 |
0100: MOVLW 0C |
151 |
00E2: MOVLW 0C |
| 166 |
0102: MOVWF FAF |
152 |
00E4: MOVWF FAF |
| 167 |
0104: MOVLW A2 |
153 |
00E6: MOVLW A2 |
| 168 |
0106: MOVWF FAC |
154 |
00E8: MOVWF FAC |
| 169 |
0108: MOVLW 90 |
155 |
00EA: MOVLW 90 |
| 170 |
010A: MOVWF FAB |
156 |
00EC: MOVWF FAB |
| 171 |
010C: MOVF FC1,W |
157 |
00EE: MOVF FC1,W |
| 172 |
010E: ANDLW C0 |
158 |
00F0: ANDLW C0 |
| 173 |
0110: IORLW 0F |
159 |
00F2: IORLW 0F |
| 174 |
0112: MOVWF FC1 |
160 |
00F4: MOVWF FC1 |
| 175 |
0114: MOVLW 07 |
161 |
00F6: MOVLW 07 |
| 176 |
0116: MOVWF FB4 |
162 |
00F8: MOVWF FB4 |
| - |
|
163 |
.................... unsigned int8 last; |
| - |
|
164 |
.................... |
| 177 |
.................... setup_adc_ports(NO_ANALOGS|VSS_VDD); |
165 |
.................... setup_adc_ports(NO_ANALOGS|VSS_VDD); |
| 178 |
0118: MOVF FC1,W |
166 |
00FA: MOVF FC1,W |
| 179 |
011A: ANDLW C0 |
167 |
00FC: ANDLW C0 |
| 180 |
011C: IORLW 0F |
168 |
00FE: IORLW 0F |
| 181 |
011E: MOVWF FC1 |
169 |
0100: MOVWF FC1 |
| 182 |
.................... setup_adc(ADC_OFF); |
170 |
.................... setup_adc(ADC_OFF); |
| 183 |
0120: BCF FC2.0 |
171 |
0102: BCF FC2.0 |
| 184 |
.................... setup_psp(PSP_DISABLED); |
172 |
.................... setup_psp(PSP_DISABLED); |
| 185 |
0122: BCF FB0.4 |
173 |
0104: BCF FB0.4 |
| 186 |
.................... setup_spi(SPI_SS_DISABLED); |
174 |
.................... setup_spi(SPI_SS_DISABLED); |
| 187 |
0124: BCF FC6.5 |
175 |
0106: BCF FC6.5 |
| 188 |
0126: BCF F94.7 |
176 |
0108: BCF F94.7 |
| 189 |
0128: BSF F93.0 |
177 |
010A: BSF F93.0 |
| 190 |
012A: BCF F93.1 |
178 |
010C: BCF F93.1 |
| 191 |
012C: MOVLW 01 |
179 |
010E: MOVLW 01 |
| 192 |
012E: MOVWF FC6 |
180 |
0110: MOVWF FC6 |
| 193 |
0130: MOVLW 00 |
181 |
0112: MOVLW 00 |
| 194 |
0132: MOVWF FC7 |
182 |
0114: MOVWF FC7 |
| 195 |
.................... setup_wdt(WDT_OFF); |
183 |
.................... setup_wdt(WDT_OFF); |
| 196 |
0134: BCF FD1.0 |
184 |
0116: BCF FD1.0 |
| 197 |
.................... setup_timer_0(RTCC_INTERNAL|RTCC_DIV_4); |
185 |
.................... setup_timer_0(RTCC_INTERNAL|RTCC_DIV_4); |
| 198 |
0136: MOVLW 81 |
186 |
0118: MOVLW 81 |
| 199 |
0138: MOVWF FD5 |
187 |
011A: MOVWF FD5 |
| 200 |
.................... setup_timer_1(T1_DISABLED); |
188 |
.................... setup_timer_1(T1_DISABLED); |
| 201 |
013A: CLRF FCD |
189 |
011C: CLRF FCD |
| 202 |
.................... setup_timer_2(T2_DISABLED,0,1); |
190 |
.................... setup_timer_2(T2_DISABLED,0,1); |
| 203 |
013C: MOVLW 00 |
191 |
011E: MOVLW 00 |
| 204 |
013E: MOVWF FCA |
192 |
0120: MOVWF FCA |
| 205 |
0140: MOVLW 00 |
193 |
0122: MOVLW 00 |
| 206 |
0142: MOVWF FCB |
194 |
0124: MOVWF FCB |
| 207 |
.................... setup_timer_3(T3_EXTERNAL|T3_DIV_BY_8); |
195 |
.................... setup_timer_3(T3_EXTERNAL|T3_DIV_BY_8); |
| 208 |
0144: MOVLW B7 |
196 |
0126: MOVLW B7 |
| 209 |
0146: MOVWF FB1 |
197 |
0128: MOVWF FB1 |
| 210 |
.................... setup_comparator(NC_NC_NC_NC); |
198 |
.................... setup_comparator(NC_NC_NC_NC); |
| 211 |
0148: MOVLW 07 |
199 |
012A: MOVLW 07 |
| 212 |
014A: MOVWF FB4 |
200 |
012C: MOVWF FB4 |
| 213 |
014C: MOVF F92,W |
201 |
012E: MOVF F92,W |
| 214 |
014E: MOVWF F92 |
202 |
0130: MOVWF F92 |
| 215 |
0150: MOVLW 06 |
203 |
0132: MOVLW 06 |
| 216 |
0152: MOVWF 00 |
204 |
0134: MOVWF 00 |
| 217 |
0154: DECFSZ 00,F |
205 |
0136: DECFSZ 00,F |
| 218 |
0156: BRA 0154 |
206 |
0138: BRA 0136 |
| 219 |
0158: NOP |
207 |
013A: NOP |
| 220 |
015A: MOVF FB4,W |
208 |
013C: MOVF FB4,W |
| 221 |
015C: BCF FA1.6 |
209 |
013E: BCF FA1.6 |
| 222 |
.................... setup_vref(FALSE); |
210 |
.................... setup_vref(FALSE); |
| 223 |
015E: CLRF FB5 |
211 |
0140: CLRF FB5 |
| 224 |
.................... |
212 |
.................... |
| 225 |
.................... set_tris_b(0xFF); |
- |
|
| 226 |
0160: MOVLW FF |
- |
|
| 227 |
0162: MOVWF F93 |
- |
|
| 228 |
.................... port_b_pullups(TRUE); |
213 |
.................... port_b_pullups(TRUE); |
| 229 |
0164: BCF FF1.7 |
214 |
0142: BCF FF1.7 |
| 230 |
.................... |
215 |
.................... |
| 231 |
.................... enable_interrupts(INT_TIMER0); |
216 |
.................... enable_interrupts(INT_TIMER0); |
| 232 |
0166: BSF FF2.5 |
217 |
0144: BSF FF2.5 |
| 233 |
.................... enable_interrupts(INT_RB); |
218 |
.................... // enable_interrupts(INT_RB); |
| 234 |
0168: BSF FF2.3 |
- |
|
| 235 |
.................... enable_interrupts(GLOBAL); |
219 |
.................... enable_interrupts(GLOBAL); |
| 236 |
016A: MOVLW C0 |
220 |
0146: MOVLW C0 |
| 237 |
016C: IORWF FF2,F |
221 |
0148: IORWF FF2,F |
| 238 |
.................... |
222 |
.................... |
| - |
|
223 |
.................... last=input_b(); |
| - |
|
224 |
014A: MOVLW FF |
| - |
|
225 |
014C: MOVWF F93 |
| - |
|
226 |
014E: MOVFF F81,18 |
| - |
|
227 |
.................... |
| 239 |
.................... while(true) |
228 |
.................... while(true) |
| 240 |
.................... { |
229 |
.................... { |
| 241 |
.................... Output_toggle(LED1); |
230 |
.................... Output_toggle(LED1); |
| 242 |
016E: BCF F92.1 |
231 |
0152: BCF F92.1 |
| 243 |
0170: BTG F89.1 |
232 |
0154: BTG F89.1 |
| 244 |
.................... Delay_ms(100); |
233 |
.................... Delay_ms(100); |
| 245 |
0172: MOVLW 64 |
234 |
0156: MOVLW 64 |
| 246 |
0174: MOVWF 18 |
235 |
0158: MOVWF 19 |
| 247 |
0176: BRA 00C6 |
236 |
015A: BRA 00A8 |
| - |
|
237 |
.................... if(last!=Input_b()) output_high(LED2); |
| - |
|
238 |
015C: MOVLW FF |
| - |
|
239 |
015E: MOVWF F93 |
| - |
|
240 |
0160: MOVF F81,W |
| - |
|
241 |
0162: SUBWF 18,W |
| - |
|
242 |
0164: BZ 016A |
| - |
|
243 |
0166: BCF F92.2 |
| - |
|
244 |
0168: BSF F89.2 |
| - |
|
245 |
.................... last=input_b(); |
| - |
|
246 |
016A: MOVLW FF |
| - |
|
247 |
016C: MOVWF F93 |
| - |
|
248 |
016E: MOVFF F81,18 |
| 248 |
.................... } |
249 |
.................... } |
| 249 |
0178: BRA 016E |
250 |
0172: BRA 0152 |
| 250 |
.................... } |
251 |
.................... } |
| 251 |
017A: SLEEP |
252 |
0174: SLEEP |
| 252 |
|
253 |
|
| 253 |
Configuration Fuses: |
254 |
Configuration Fuses: |
| 254 |
Word 1: C83F INTRC_IO IESO FCMEN PLL12 CPUDIV4 USBDIV |
255 |
Word 1: C83F INTRC_IO IESO FCMEN PLL12 CPUDIV4 USBDIV |
| 255 |
Word 2: 0E19 NOBROWNOUT WDT128 NOWDT BORV20 NOPUT NOVREGEN |
256 |
Word 2: 0E19 NOBROWNOUT WDT128 NOWDT BORV20 NOPUT NOVREGEN |
| 256 |
Word 3: 8700 PBADEN CCP2C1 MCLR LPT1OSC |
257 |
Word 3: 8700 PBADEN CCP2C1 MCLR LPT1OSC |