?? main.asm
字號(hào):
;main.c,142 :: PORTA = PORTA | 0x01; //enable the display of ones millisecond
$021B $1405 BSF PORTA, 0
;main.c,143 :: Short_delay();
$021C $20CF CALL _Short_delay
;main.c,144 :: PORTB = 0;
$021D $0186 CLRF PORTB, 1
;main.c,145 :: PORTA = PORTA & 0xff; //disable the display
$021E $30FF MOVLW 255
$021F $0585 ANDWF PORTA, 1
;main.c,147 :: PORTB = mask (up_time[3]);
$0220 $0823 MOVF _up_time+3, 0
$0221 $00BA MOVWF FARG_mask+0
$0222 $207C CALL _mask
$0223 $1303 BCF STATUS, RP1
$0224 $1283 BCF STATUS, RP0
$0225 $0870 MOVF STACK_0, 0
$0226 $0086 MOVWF PORTB
;main.c,148 :: PORTA = PORTA | 0x06; //enable the display of ones millisecond
$0227 $3006 MOVLW 6
$0228 $0485 IORWF PORTA, 1
;main.c,149 :: Short_delay();
$0229 $20CF CALL _Short_delay
;main.c,150 :: PORTB = 0;
$022A $0186 CLRF PORTB, 1
;main.c,151 :: PORTA = PORTA & 0xff; //disable the display
$022B $30FF MOVLW 255
$022C $0585 ANDWF PORTA, 1
;main.c,153 :: PORTB = mask (up_time[2]);
$022D $0822 MOVF _up_time+2, 0
$022E $00BA MOVWF FARG_mask+0
$022F $207C CALL _mask
$0230 $1303 BCF STATUS, RP1
$0231 $1283 BCF STATUS, RP0
$0232 $0870 MOVF STACK_0, 0
$0233 $0086 MOVWF PORTB
;main.c,154 :: PORTA = PORTA | 0x03; //enable the display of ones millisecond
$0234 $3003 MOVLW 3
$0235 $0485 IORWF PORTA, 1
;main.c,155 :: Short_delay();
$0236 $20CF CALL _Short_delay
;main.c,156 :: PORTB = 0;
$0237 $0186 CLRF PORTB, 1
;main.c,157 :: PORTA = PORTA & 0xff; //disable the display
$0238 $30FF MOVLW 255
$0239 $0585 ANDWF PORTA, 1
;main.c,159 :: PORTB = mask(up_time[1]);
$023A $0821 MOVF _up_time+1, 0
$023B $00BA MOVWF FARG_mask+0
$023C $207C CALL _mask
$023D $1303 BCF STATUS, RP1
$023E $1283 BCF STATUS, RP0
$023F $0870 MOVF STACK_0, 0
$0240 $0086 MOVWF PORTB
;main.c,160 :: PORTA = PORTA | 0x04; //enable the display of ones millisecond
$0241 $1505 BSF PORTA, 2
;main.c,161 :: Short_delay();
$0242 $20CF CALL _Short_delay
;main.c,162 :: PORTB = 0;
$0243 $0186 CLRF PORTB, 1
;main.c,163 :: PORTA = PORTA & 0xff; //disable the display
$0244 $30FF MOVLW 255
$0245 $0585 ANDWF PORTA, 1
;main.c,165 :: if (up_time[0] == 0)Short_delay();
$0246 $0820 MOVF _up_time, 0
$0247 $3A00 XORLW 0
$0248 $1D03 BTFSS STATUS, Z
$0249 $2A4C GOTO L_offset_up_time_26
$024A $20CF CALL _Short_delay
$024B $2A52 GOTO L_offset_up_time_27
$024C $ L_offset_up_time_26:
;main.c,168 :: PORTA = PORTA | 0x02; //enable the display of ones millisecond
$024C $1303 BCF STATUS, RP1
$024D $1283 BCF STATUS, RP0
$024E $1485 BSF PORTA, 1
;main.c,169 :: Short_delay();
$024F $20CF CALL _Short_delay
;main.c,170 :: PORTA = PORTA & 0xff; //disable the display
$0250 $30FF MOVLW 255
$0251 $0585 ANDWF PORTA, 1
;main.c,171 :: }
$0252 $ L_offset_up_time_27:
;main.c,172 :: }
$0252 $0008 RETURN
$0253 $ _offset_down_time:
;main.c,174 :: void offset_down_time() // displays the requested time
;main.c,176 :: PORTB = mask (down_time[5]); //load millisecond value to PORTB
$0253 $1303 BCF STATUS, RP1
$0254 $1283 BCF STATUS, RP0
$0255 $082B MOVF _down_time+5, 0
$0256 $00BA MOVWF FARG_mask+0
$0257 $207C CALL _mask
$0258 $1303 BCF STATUS, RP1
$0259 $1283 BCF STATUS, RP0
$025A $0870 MOVF STACK_0, 0
$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:
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -