?? main.lst
字號:
$025B $0086 MOVWF PORTB
;main.c,177 :: PORTA = PORTA | 0x05; //enable the display of ones millisecond
$025C $3005 MOVLW 5
$025D $0485 IORWF PORTA, 1
;main.c,178 :: Short_delay();
$025E $20CF CALL _Short_delay
;main.c,179 :: PORTB = 0;
$025F $0186 CLRF PORTB, 1
;main.c,180 :: PORTA = PORTA & 0xff; //disable the display
$0260 $30FF MOVLW 255
$0261 $0585 ANDWF PORTA, 1
;main.c,182 :: PORTB = mask (down_time[4]);
$0262 $082A MOVF _down_time+4, 0
$0263 $00BA MOVWF FARG_mask+0
$0264 $207C CALL _mask
$0265 $1303 BCF STATUS, RP1
$0266 $1283 BCF STATUS, RP0
$0267 $0870 MOVF STACK_0, 0
$0268 $0086 MOVWF PORTB
;main.c,183 :: PORTA = PORTA | 0x01; //enable the display of ones millisecond
$0269 $1405 BSF PORTA, 0
;main.c,184 :: Short_delay();
$026A $20CF CALL _Short_delay
;main.c,185 :: PORTB = 0;
$026B $0186 CLRF PORTB, 1
;main.c,186 :: PORTA = PORTA & 0xff; //disable the display
$026C $30FF MOVLW 255
$026D $0585 ANDWF PORTA, 1
;main.c,188 :: PORTB = mask (down_time[3]);
$026E $0829 MOVF _down_time+3, 0
$026F $00BA MOVWF FARG_mask+0
$0270 $207C CALL _mask
$0271 $1303 BCF STATUS, RP1
$0272 $1283 BCF STATUS, RP0
$0273 $0870 MOVF STACK_0, 0
$0274 $0086 MOVWF PORTB
;main.c,189 :: PORTA = PORTA | 0x06; //enable the display of ones millisecond
$0275 $3006 MOVLW 6
$0276 $0485 IORWF PORTA, 1
;main.c,190 :: Short_delay();
$0277 $20CF CALL _Short_delay
;main.c,191 :: PORTB = 0;
$0278 $0186 CLRF PORTB, 1
;main.c,192 :: PORTA = PORTA & 0xff; //disable the display
$0279 $30FF MOVLW 255
$027A $0585 ANDWF PORTA, 1
;main.c,194 :: PORTB = mask (down_time[2]);
$027B $0828 MOVF _down_time+2, 0
$027C $00BA MOVWF FARG_mask+0
$027D $207C CALL _mask
$027E $1303 BCF STATUS, RP1
$027F $1283 BCF STATUS, RP0
$0280 $0870 MOVF STACK_0, 0
$0281 $0086 MOVWF PORTB
;main.c,195 :: PORTA = PORTA | 0x03; //enable the display of ones millisecond
$0282 $3003 MOVLW 3
$0283 $0485 IORWF PORTA, 1
;main.c,196 :: Short_delay();
$0284 $20CF CALL _Short_delay
;main.c,197 :: PORTB = 0;
$0285 $0186 CLRF PORTB, 1
;main.c,198 :: PORTA = PORTA & 0xff; //disable the display
$0286 $30FF MOVLW 255
$0287 $0585 ANDWF PORTA, 1
;main.c,200 :: PORTB = mask(down_time[1]);
$0288 $0827 MOVF _down_time+1, 0
$0289 $00BA MOVWF FARG_mask+0
$028A $207C CALL _mask
$028B $1303 BCF STATUS, RP1
$028C $1283 BCF STATUS, RP0
$028D $0870 MOVF STACK_0, 0
$028E $0086 MOVWF PORTB
;main.c,201 :: PORTA = PORTA | 0x04; //enable the display of ones millisecond
$028F $1505 BSF PORTA, 2
;main.c,202 :: Short_delay();
$0290 $20CF CALL _Short_delay
;main.c,203 :: PORTB = 0;
$0291 $0186 CLRF PORTB, 1
;main.c,204 :: PORTA = PORTA & 0xff; //disable the display
$0292 $30FF MOVLW 255
$0293 $0585 ANDWF PORTA, 1
;main.c,206 :: if (down_time[0]== 0)Short_delay();
$0294 $0826 MOVF _down_time, 0
$0295 $3A00 XORLW 0
$0296 $1D03 BTFSS STATUS, Z
$0297 $2A9A GOTO L_offset_down_time_28
$0298 $20CF CALL _Short_delay
$0299 $2AA0 GOTO L_offset_down_time_29
$029A $ L_offset_down_time_28:
;main.c,209 :: PORTA = PORTA | 0x02; //enable the display of ones millisecond
$029A $1303 BCF STATUS, RP1
$029B $1283 BCF STATUS, RP0
$029C $1485 BSF PORTA, 1
;main.c,210 :: Short_delay();
$029D $20CF CALL _Short_delay
;main.c,211 :: PORTA = PORTA & 0xff; //disable the display
$029E $30FF MOVLW 255
$029F $0585 ANDWF PORTA, 1
;main.c,212 :: }
$02A0 $ L_offset_down_time_29:
;main.c,213 :: }
$02A0 $0008 RETURN
$02A1 $ _alarm:
;main.c,321 :: void alarm()
;main.c,323 :: delay = 2000;
$02A1 $30D0 MOVLW 208
$02A2 $1303 BCF STATUS, RP1
$02A3 $1283 BCF STATUS, RP0
$02A4 $00B1 MOVWF _delay
$02A5 $3007 MOVLW 7
$02A6 $00B2 MOVWF _delay+1
;main.c,324 :: do {
$02A7 $ L_alarm_34:
;main.c,325 :: if (!flag.f0)
$02A7 $1303 BCF STATUS, RP1
$02A8 $1283 BCF STATUS, RP0
$02A9 $182F BTFSC _flag, 0
$02AA $2AAC GOTO L_alarm_36
;main.c,327 :: offset_up_time2();
$02AB $20FB CALL _offset_up_time2
;main.c,328 :: }
$02AC $ L_alarm_36:
;main.c,329 :: if (flag.f0)
$02AC $1303 BCF STATUS, RP1
$02AD $1283 BCF STATUS, RP0
$02AE $1C2F BTFSS _flag, 0
$02AF $2AB1 GOTO L_alarm_37
;main.c,331 :: offset_down_time2();
$02B0 $214C CALL _offset_down_time2
;main.c,332 :: }
$02B1 $ L_alarm_37:
;main.c,333 :: delay--;
$02B1 $3001 MOVLW 1
$02B2 $1303 BCF STATUS, RP1
$02B3 $1283 BCF STATUS, RP0
$02B4 $02B1 SUBWF _delay, 1
$02B5 $1C03 BTFSS STATUS, C
$02B6 $03B2 DECF _delay+1, 1
;main.c,334 :: } while (delay > 0);
$02B7 $0832 MOVF _delay+1, 0
$02B8 $3C00 SUBLW 0
$02B9 $1D03 BTFSS STATUS, Z
$02BA $2ABD GOTO L_alarm_80
$02BB $0831 MOVF _delay, 0
$02BC $3C00 SUBLW 0
$02BD $ L_alarm_80:
$02BD $1C03 BTFSS STATUS, C
$02BE $2AA7 GOTO L_alarm_34
$02BF $ L_alarm_35:
;main.c,335 :: PORTA.F3 = 0;
$02BF $1303 BCF STATUS, RP1
$02C0 $1283 BCF STATUS, RP0
$02C1 $1185 BCF PORTA, 3
;main.c,336 :: }
$02C2 $0008 RETURN
$02C3 $ _main:
;main.c,358 :: void main ()
;main.c,360 :: PORTA = 0; // clear porta
$02C3 $1303 BCF STATUS, RP1
$02C4 $1283 BCF STATUS, RP0
$02C5 $0185 CLRF PORTA, 1
;main.c,361 :: PORTB = 0; // clear portb
$02C6 $0186 CLRF PORTB, 1
;main.c,362 :: TRISA = 0x30; // PORTA <4:5> as inputs the rest as outputs
$02C7 $3030 MOVLW 48
$02C8 $1683 BSF STATUS, RP0
$02C9 $0085 MOVWF TRISA
;main.c,363 :: TRISB = 0; // make PORTB as outputs
$02CA $0186 CLRF TRISB, 1
;main.c,364 :: PORTA = 0x07; // initialize the multiplexer
$02CB $3007 MOVLW 7
$02CC $1283 BCF STATUS, RP0
$02CD $0085 MOVWF PORTA
;main.c,365 :: PORTB = 0; // clear portb
$02CE $0186 CLRF PORTB, 1
;main.c,366 :: OPTION_REG = 0x08; // used WDT for the prescale at 1:1
$02CF $3008 MOVLW 8
$02D0 $1683 BSF STATUS, RP0
$02D1 $0081 MOVWF OPTION_REG
;main.c,367 :: INTCON.GIE = 1; // enable global interrupts
$02D2 $178B BSF INTCON, 7
;main.c,368 :: load_default_values(); // intialize registers
$02D3 $219D CALL _load_default_values
;main.c,369 :: flag.f0 = 0; // set default mode as up counter
$02D4 $102F BCF _flag, 0
;main.c,370 :: flag.f1 = 0; // clear lapsed flag
$02D5 $10AF BCF _flag, 1
;main.c,371 :: oem_limit(); // for safety purposes value must be set manually
$02D6 $21AD CALL _oem_limit
;main.c,374 :: delay = 3;
$02D7 $3003 MOVLW 3
$02D8 $1283 BCF STATUS, RP0
$02D9 $00B1 MOVWF _delay
$02DA $3000 MOVLW 0
$02DB $00B2 MOVWF _delay+1
;main.c,375 :: do {
$02DC $ L_main_42:
;main.c,376 :: repitition = 250;
$02DC $30FA MOVLW 250
$02DD $1303 BCF STATUS, RP1
$02DE $1283 BCF STATUS, RP0
$02DF $00B3 MOVWF _repitition
$02E0 $01B4 CLRF _repitition+1
;main.c,377 :: do {
$02E1 $ L_main_44:
;main.c,378 :: PORTB = mask (11); //load millisecond value to PORTB
$02E1 $300B MOVLW 11
$02E2 $1303 BCF STATUS, RP1
$02E3 $1283 BCF STATUS, RP0
$02E4 $00BA MOVWF FARG_mask+0
$02E5 $207C CALL _mask
$02E6 $1303 BCF STATUS, RP1
$02E7 $1283 BCF STATUS, RP0
$02E8 $0870 MOVF STACK_0, 0
$02E9 $0086 MOVWF PORTB
;main.c,379 :: PORTA = PORTA | 0x01; //enable the display of ones millisecond
$02EA $1405 BSF PORTA, 0
;main.c,380 :: Short_delay();
$02EB $20CF CALL _Short_delay
;main.c,381 :: PORTB = 0;
$02EC $0186 CLRF PORTB, 1
;main.c,382 :: PORTA = PORTA & 0xff; //disable the display
$02ED $30FF MOVLW 255
$02EE $0585 ANDWF PORTA, 1
;main.c,383 :: PORTB = mask (1); //load millisecond value to PORTB
$02EF $3001 MOVLW 1
$02F0 $00BA MOVWF FARG_mask+0
$02F1 $207C CALL _mask
$02F2 $1303 BCF STATUS, RP1
$02F3 $1283 BCF STATUS, RP0
$02F4 $0870 MOVF STACK_0, 0
$02F5 $0086 MOVWF PORTB
;main.c,384 :: PORTA = PORTA | 0x05; //enable the display of ones millisecond
$02F6 $3005 MOVLW 5
$02F7 $0485 IORWF PORTA, 1
;main.c,385 :: Short_delay();
$02F8 $20CF CALL _Short_delay
;main.c,386 :: PORTB = 0;
$02F9 $0186 CLRF PORTB, 1
;main.c,387 :: PORTA = PORTA & 0xff; //disable the display
$02FA $30FF MOVLW 255
$02FB $0585 ANDWF PORTA, 1
;main.c,388 :: repitition--;
$02FC $3001 MOVLW 1
$02FD $02B3 SUBWF _repitition, 1
$02FE $1C03 BTFSS STATUS, C
$02FF $03B4 DECF _repitition+1, 1
;main.c,389 :: } while (repitition > 0);
$0300 $0834 MOVF _repitition+1, 0
$0301 $3C00 SUBLW 0
$0302 $1D03 BTFSS STATUS, Z
$0303 $2B06 GOTO L_main_81
$0304 $0833 MOVF _repitition, 0
$0305 $3C00 SUBLW 0
$0306 $ L_main_81:
$0306 $1C03 BTFSS STATUS, C
$0307 $2AE1 GOTO L_main_44
$0308 $ L_main_45:
;main.c,390 :: Delay_sec();
$0308 $21E3 CALL _Delay_sec
;main.c,391 :: delay--;
$0309 $3001 MOVLW 1
$030A $1303 BCF STATUS, RP1
$030B $1283 BCF STATUS, RP0
$030C $02B1 SUBWF _delay, 1
$030D $1C03 BTFSS STATUS, C
$030E $03B2 DECF _delay+1, 1
;main.c,392 :: } while (delay > 0); //repeat until delay is zero
$030F $0832 MOVF _delay+1, 0
$0310 $3C00 SUBLW 0
$0311 $1D03 BTFSS STATUS, Z
$0312 $2B15 GOTO L_main_82
$0313 $0831 MOVF _delay, 0
$0314 $3C00 SUBLW 0
$0315 $ L_main_82:
$0315 $1C03 BTFSS STATUS, C
$0316 $2ADC GOTO L_main_42
$0317 $ L_main_43:
;main.c,394 :: while (1)
$0317 $ L_main_46:
;main.c,396 :: if (!flag.f0) offset_up_time();
$0317 $1303 BCF STATUS, RP1
$0318 $1283 BCF STATUS, RP0
$0319 $182F BTFSC _flag, 0
$031A $2B1C GOTO L_main_48
$031B $2205 CALL _offset_up_time
$031C $ L_main_48:
;main.c,397 :: if (flag.f0) offset_down_time();
$031C $1303 BCF STATUS, RP1
$031D $1283 BCF STATUS, RP0
$031E $1C2F BTFSS _flag, 0
$031F $2B21 GOTO L_main_49
$0320 $2253 CALL _offset_down_time
$0321 $ L_main_49:
;main.c,399 :: if ((PORTA & 0x30) == 0x30)// change mode button has been triggered
$0321 $3030 MOVLW 48
$0322 $1303 BCF STATUS, RP1
$0323 $1283 BCF STATUS, RP0
$0324 $0505 ANDWF PORTA, 0
$0325 $00F1 MOVWF STACK_1
$0326 $0871 MOVF STACK_1, 0
$0327 $3A30 XORLW 48
$0328 $1D03 BTFSS STATUS, Z
$0329 $2BB3 GOTO L_main_50
;main.c,401 :: if (!INTCON.T0IE) // if the timer is off
$032A $1A8B BTFSC INTCON, 5
$032B $2BB3 GOTO L_main_51
;main.c,403 :: delay = 3;
$032C $3003 MOVLW 3
$032D $00B1 MOVWF _delay
$032E $3000 MOVLW 0
$032F $00B2 MOVWF _delay+1
;main.c,404 :: if (!flag.f0)
$0330 $182F BTFSC _flag, 0
$0331 $2B6F GOTO L_main_52
;main.c,406 :: flag.f0 = 1; //change mode as down counter
$0332 $142F BSF _flag, 0
;main.c,407 :: do {
$0333 $ L_main_53:
;main.c,408 :: repitition = 250;
$0333 $30FA MOVLW 250
$0334 $1303 BCF STATUS, RP1
$0335 $1283 BCF STATUS, RP0
$0336 $00B3 MOVWF _repitition
$0337 $01B4 CLRF _repitition+1
;main.c,409 :: do {
$0338 $ L_main_55:
;main.c,410 :: PORTB = mask (11); //load millisecond value to PORTB
$0338 $300B MOVLW 11
$0339 $1303 BCF STATUS, RP1
$033A $1283 BCF STATUS, RP0
$033B $00BA MOVWF FARG_mask+0
$033C $207C CALL _mask
$033D $1303 BCF STATUS, RP1
$033E $1283 BCF STATUS, RP0
$033F $0870 MOVF STACK_0, 0
$0340 $0086 MOVWF PORTB
;main.c,411 :: PORTA = PORTA | 0x01; //enable the display of ones millisecond
$0341 $1405 BSF PORTA, 0
;main.c,412 :: Short_delay();
$0342 $20CF CALL _Short_delay
;main.c,413 :: PORTB = 0;
$0343 $0186 CLRF PORTB, 1
;main.c,414 :: PORTA = PORTA & 0xff; //disable the display
$0344 $30FF MOVLW 255
$0345 $0585 ANDWF PORTA, 1
;main.c,415 :: PORTB = mask (2); //load millisecond value to PORTB
$0346 $3002 MOVLW 2
$0347 $00BA MOVWF FARG_mask+0
$0348 $207C CALL _mask
$0349 $1303 BCF STATUS, RP1
$034A $1283 BCF STATUS, RP0
$034B $0870 MOVF STACK_0, 0
$034C $0086 MOVWF PORTB
;main.c,416 :: PORTA = PORTA | 0x05; //enable the display of ones millisecond
$034D $3005 MOVLW 5
$034E $0485 IORWF PORTA, 1
;main.c,417 :: Short_delay();
$034F $20CF CALL _Short_delay
;main.c,418 :: PORTB = 0;
$0350 $0186 CLRF PORTB, 1
;main.c,419 :: PORTA = PORTA & 0xff; //disable the display
$0351 $30FF MOVLW 255
$0352 $0585 ANDWF PORTA, 1
;main.c,420 :: repitition--;
$0353 $3001 MOVLW 1
$0354 $02B3 SUBWF _repitition, 1
$0355 $1C03 BTFSS STATUS, C
$0356 $03B4 DECF _repitition+1, 1
;main.c,421 :: } while (repitition > 0);
$0357 $0834 MOVF _repitition+1, 0
$0358 $3C00 SUBLW 0
$0359 $1D03 BTFSS STATUS, Z
$035A $2B5D GOTO L_main_83
$035B $0833 MOVF _repitition, 0
$035C $3C00 SUBLW 0
$035D $ L_main_83:
$035D $1C03 BTFSS STATUS, C
$035E $2B38 GOTO L_main_55
$035F $ L_main_56:
;main.c,422 :: Delay_sec();
$035F $21E3 CALL _Delay_sec
;main.c,423 :: delay--;
$0360 $3001 MOVLW 1
$0361 $1303 BCF STATUS, RP1
$0362 $1283 BCF STATUS, RP0
$0363 $02B1 SUBWF _delay, 1
$0364 $1C03 BTFSS STATUS, C
$0365 $03B2 DECF _delay+1, 1
;main.c,424 :: } while (delay > 0);
$0366 $0832 MOVF _delay+1, 0
$0367 $3C00 SUBLW 0
$0368 $1D03 BTFSS STATUS, Z
$0369 $2B6C GOTO L_main_84
$036A $0831 MOVF _delay, 0
$036B $3C00 SUBLW 0
$036C $ L_main_84:
$036C $1C03 BTFSS STATUS, C
$036D $2B33 GOTO L_main_53
$036E $ L_main_54:
;main.c,425 :: goto exit1
$036E $2BAF GOTO ___main_exit1
;main.c,426 :: }
$036F $ L_main_52:
;main.c,427 :: if (flag.f0)
$036F $1303 BCF STATUS, RP1
$0370 $1283 BCF STATUS, RP0
$0371 $1C2F BTFSS _flag, 0
$0372 $2BAF GOTO L_main_57
;main.c,429 :: flag.f0 = 0; //change mode as up counter
$0373 $102F BCF _flag, 0
;main.c,430 :: do {
$0374 $ L_main_58:
;main.c,431 :: repitition = 250;
$0374 $30FA MOVLW 250
$0375 $1303 BCF STATUS, RP1
$0376 $1283 BCF STATUS, RP0
$0377 $00B3 MOVWF _repitition
$0378 $01B4 CLRF _repitition+1
;main.c,432 :: do {
$0379 $ L_main_60:
;main.c,433 :: PORTB = mask (11); //load millisecond value to PORTB
$0379 $300B MOVLW 11
$037A $1303 BCF STATUS, RP1
$037B $1283 BCF STATUS, RP0
$037C $00BA MOVWF FARG_mask+0
$037D $207C CALL _mask
$037E $1303 BCF STATUS, RP1
$037F $1283 BCF STATUS, RP0
$0380 $0870 MOVF STACK_0, 0
$0381 $0086 MOVWF PORTB
;main.c,434 :: PORTA = PORTA | 0x01; //enable the display of ones millisecond
$0382 $1405 BSF PORTA, 0
;main.c,435 :: Short_delay();
$0383 $20CF CALL _Short_delay
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -