⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lst

📁 Simple Timer/Counter application for cock fighting
💻 LST
📖 第 1 页 / 共 4 页
字号:
$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 + -