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

📄 main.mil

📁 Simple Timer/Counter application for cock fighting
💻 MIL
📖 第 1 页 / 共 2 页
字号:
_increment_up_time:
  begin
//main.c,27 :: 		up_time[5]++;
	_up_time+5 <-  _up_time+5 + 1
	_up_time+5 <- _up_time+5
//main.c,28 :: 		if (up_time[5] == 10)
	if ( _up_time+5 != 10) then goto L_increment_up_time_0
//main.c,30 :: 		up_time[5] = 0;
	_up_time+5 <- 0
//main.c,31 :: 		up_time[4]++;
	_up_time+4 <-  _up_time+4 + 1
	_up_time+4 <- _up_time+4
//main.c,32 :: 		if (up_time[4] == 10)
	if ( _up_time+4 != 10) then goto L_increment_up_time_1
//main.c,34 :: 		up_time[4] = 0;
	_up_time+4 <- 0
//main.c,35 :: 		up_time[3]++;
	_up_time+3 <-  _up_time+3 + 1
	_up_time+3 <- _up_time+3
//main.c,36 :: 		if (up_time[3] == 10)
	if ( _up_time+3 != 10) then goto L_increment_up_time_2
//main.c,38 :: 		up_time[3] = 0;
	_up_time+3 <- 0
//main.c,39 :: 		up_time[2]++;
	_up_time+2 <-  _up_time+2 + 1
	_up_time+2 <- _up_time+2
//main.c,40 :: 		if (up_time[2] == 6)
	if ( _up_time+2 != 6) then goto L_increment_up_time_3
//main.c,42 :: 		up_time[2] = 0;
	_up_time+2 <- 0
//main.c,43 :: 		up_time[1]++;
	_up_time+1 <-  _up_time+1 + 1
	_up_time+1 <- _up_time+1
//main.c,44 :: 		if (up_time[1] == 10)
	if ( _up_time+1 != 10) then goto L_increment_up_time_4
//main.c,46 :: 		up_time[1] = 0;
	_up_time+1 <- 0
//main.c,47 :: 		up_time[0]++;
	_up_time <-  _up_time + 1
	_up_time <- _up_time
//main.c,48 :: 		}
L_increment_up_time_4:
//main.c,49 :: 		}
L_increment_up_time_3:
//main.c,50 :: 		}
L_increment_up_time_2:
//main.c,51 :: 		}
L_increment_up_time_1:
//main.c,52 :: 		}
L_increment_up_time_0:
  end

_decrement_down_time:
  begin
//main.c,57 :: 		down_time[5]--;
	_down_time+5 <-  _down_time+5 - 1
	_down_time+5 <- _down_time+5
//main.c,58 :: 		if (down_time[5] == 255)
	if ( _down_time+5 != 255) then goto L_decrement_down_time_5
//main.c,60 :: 		down_time[5] = 9;
	_down_time+5 <- 9
//main.c,61 :: 		down_time[4]--;
	_down_time+4 <-  _down_time+4 - 1
	_down_time+4 <- _down_time+4
//main.c,62 :: 		if (down_time[4] == 255)
	if ( _down_time+4 != 255) then goto L_decrement_down_time_6
//main.c,64 :: 		down_time[4] = 9;
	_down_time+4 <- 9
//main.c,65 :: 		down_time[3]--;
	_down_time+3 <-  _down_time+3 - 1
	_down_time+3 <- _down_time+3
//main.c,66 :: 		if (down_time[3] == 255)
	if ( _down_time+3 != 255) then goto L_decrement_down_time_7
//main.c,68 :: 		down_time[3] = 9;
	_down_time+3 <- 9
//main.c,69 :: 		down_time[2]--;
	_down_time+2 <-  _down_time+2 - 1
	_down_time+2 <- _down_time+2
//main.c,70 :: 		if (down_time[2] == 255)
	if ( _down_time+2 != 255) then goto L_decrement_down_time_8
//main.c,72 :: 		down_time[2] = 5;
	_down_time+2 <- 5
//main.c,73 :: 		down_time[1]--;
	_down_time+1 <-  _down_time+1 - 1
	_down_time+1 <- _down_time+1
//main.c,74 :: 		if (down_time[1] == 255)
	if ( _down_time+1 != 255) then goto L_decrement_down_time_9
//main.c,76 :: 		down_time[1] = 9;
	_down_time+1 <- 9
//main.c,77 :: 		down_time[0]--;
	_down_time <-  _down_time - 1
	_down_time <- _down_time
//main.c,78 :: 		}
L_decrement_down_time_9:
//main.c,79 :: 		}
L_decrement_down_time_8:
//main.c,80 :: 		}
L_decrement_down_time_7:
//main.c,81 :: 		}
L_decrement_down_time_6:
//main.c,82 :: 		}
L_decrement_down_time_5:
  end

_interrupt:
  begin
//main.c,88 :: 		TMR0 = 0;
	TMR0 <- 0
//main.c,89 :: 		if (INTCON.T0IF)
	if (!INTCON) then goto L_interrupt_10
//main.c,91 :: 		time_count++;
	_time_count <-  _time_count + 1
	_time_count <- _time_count
//main.c,92 :: 		if (time_count == 38)
	if ( _time_count != 38) then goto L_interrupt_11
//main.c,94 :: 		time_count = 0;
	_time_count <- 0
//main.c,95 :: 		lapsed_count++;
	_lapsed_count <-  _lapsed_count + 1
	_lapsed_count <- _lapsed_count
//main.c,96 :: 		increment_up_time();
	CALL _increment_up_time
//main.c,97 :: 		decrement_down_time();
	CALL _decrement_down_time
//main.c,98 :: 		if (lapsed_count >= 60000)
	if ( _lapsed_count < 60000) then goto L_interrupt_12
//main.c,100 :: 		INTCON.T0IE = 0;
	INTCON <-  INTCON & -33
//main.c,101 :: 		flag.f1 = 1; // enable lapsed flag
	_flag <-  _flag | 2
//main.c,102 :: 		}
L_interrupt_12:
//main.c,103 :: 		}
L_interrupt_11:
//main.c,104 :: 		}
L_interrupt_10:
//main.c,105 :: 		INTCON.T0IF = 0;
	INTCON <-  INTCON & -5
  end

_mask:
  begin
//main.c,111 :: 		switch (num)
	goto	L_mask_13
//main.c,113 :: 		case 0 : return 0xf6;
L_mask_15:
	STACK_0 <- 246
	return
//main.c,114 :: 		case 1 : return 0x60;
L_mask_16:
	STACK_0 <- 96
	return
//main.c,115 :: 		case 2 : return 0xba;
L_mask_17:
	STACK_0 <- 186
	return
//main.c,116 :: 		case 3 : return 0xf8;
L_mask_18:
	STACK_0 <- 248
	return
//main.c,117 :: 		case 4 : return 0x6c;
L_mask_19:
	STACK_0 <- 108
	return
//main.c,118 :: 		case 5 : return 0xdc;
L_mask_20:
	STACK_0 <- 220
	return
//main.c,119 :: 		case 6 : return 0xde;
L_mask_21:
	STACK_0 <- 222
	return
//main.c,120 :: 		case 7 : return 0x70;
L_mask_22:
	STACK_0 <- 112
	return
//main.c,121 :: 		case 8 : return 0xfe;
L_mask_23:
	STACK_0 <- 254
	return
//main.c,122 :: 		case 9 : return 0xfc;
L_mask_24:
	STACK_0 <- 252
	return
//main.c,123 :: 		case 11 : return 0x1e;
L_mask_25:
	STACK_0 <- 30
	return
//main.c,124 :: 		}
L_mask_13:
	if ( FARG_mask+0 = 0) then goto L_mask_15
	if ( FARG_mask+0 = 1) then goto L_mask_16
	if ( FARG_mask+0 = 2) then goto L_mask_17
	if ( FARG_mask+0 = 3) then goto L_mask_18
	if ( FARG_mask+0 = 4) then goto L_mask_19
	if ( FARG_mask+0 = 5) then goto L_mask_20
	if ( FARG_mask+0 = 6) then goto L_mask_21
	if ( FARG_mask+0 = 7) then goto L_mask_22
	if ( FARG_mask+0 = 8) then goto L_mask_23
	if ( FARG_mask+0 = 9) then goto L_mask_24
	if ( FARG_mask+0 = 11) then goto L_mask_25
L_mask_14:
  end

_Short_delay:
  begin
//main.c,129 :: 		Delay_us(500);
	asm: MOVLW	166
	asm: MOVWF	STACK_10
	asm: DECFSZ	STACK_10,F
	asm: GOTO	$-1
	asm: nop
  end

_offset_up_time:
  begin
//main.c,135 :: 		PORTB = mask (up_time[5]); //load millisecond value to PORTB
	FARG_mask+0 <- _up_time+5
	CALL _mask
	PORTB <- STACK_0
//main.c,136 :: 		PORTA = PORTA | 0x05; //enable the display of ones millisecond
	PORTA <-  PORTA | 5
	PORTA <- PORTA
//main.c,137 :: 		Short_delay();
	CALL _Short_delay
//main.c,138 :: 		PORTB = 0;
	PORTB <- 0
//main.c,139 :: 		PORTA = PORTA & 0xff; //disable the display
	PORTA <-  PORTA & 255
	PORTA <- PORTA
//main.c,141 :: 		PORTB = mask (up_time[4]);
	FARG_mask+0 <- _up_time+4
	CALL _mask
	PORTB <- STACK_0
//main.c,142 :: 		PORTA = PORTA | 0x01; //enable the display of ones millisecond
	PORTA <-  PORTA | 1
	PORTA <- PORTA
//main.c,143 :: 		Short_delay();
	CALL _Short_delay
//main.c,144 :: 		PORTB = 0;
	PORTB <- 0
//main.c,145 :: 		PORTA = PORTA & 0xff; //disable the display
	PORTA <-  PORTA & 255
	PORTA <- PORTA
//main.c,147 :: 		PORTB = mask (up_time[3]);
	FARG_mask+0 <- _up_time+3
	CALL _mask
	PORTB <- STACK_0
//main.c,148 :: 		PORTA = PORTA | 0x06; //enable the display of ones millisecond
	PORTA <-  PORTA | 6
	PORTA <- PORTA
//main.c,149 :: 		Short_delay();
	CALL _Short_delay
//main.c,150 :: 		PORTB = 0;
	PORTB <- 0
//main.c,151 :: 		PORTA = PORTA & 0xff; //disable the display
	PORTA <-  PORTA & 255
	PORTA <- PORTA
//main.c,153 :: 		PORTB = mask (up_time[2]);
	FARG_mask+0 <- _up_time+2
	CALL _mask
	PORTB <- STACK_0
//main.c,154 :: 		PORTA = PORTA | 0x03; //enable the display of ones millisecond
	PORTA <-  PORTA | 3
	PORTA <- PORTA
//main.c,155 :: 		Short_delay();
	CALL _Short_delay
//main.c,156 :: 		PORTB = 0;
	PORTB <- 0
//main.c,157 :: 		PORTA = PORTA & 0xff; //disable the display
	PORTA <-  PORTA & 255
	PORTA <- PORTA
//main.c,159 :: 		PORTB = mask(up_time[1]);
	FARG_mask+0 <- _up_time+1
	CALL _mask
	PORTB <- STACK_0
//main.c,160 :: 		PORTA = PORTA | 0x04; //enable the display of ones millisecond
	PORTA <-  PORTA | 4
	PORTA <- PORTA
//main.c,161 :: 		Short_delay();
	CALL _Short_delay
//main.c,162 :: 		PORTB = 0;
	PORTB <- 0
//main.c,163 :: 		PORTA = PORTA & 0xff; //disable the display
	PORTA <-  PORTA & 255
	PORTA <- PORTA
//main.c,165 :: 		if (up_time[0] == 0)Short_delay();
	if ( _up_time != 0) then goto L_offset_up_time_26
	CALL _Short_delay
	goto	L_offset_up_time_27
L_offset_up_time_26:
//main.c,168 :: 		PORTA = PORTA | 0x02; //enable the display of ones millisecond
	PORTA <-  PORTA | 2
	PORTA <- PORTA
//main.c,169 :: 		Short_delay();
	CALL _Short_delay
//main.c,170 :: 		PORTA = PORTA & 0xff; //disable the display
	PORTA <-  PORTA & 255
	PORTA <- PORTA
//main.c,171 :: 		}
L_offset_up_time_27:
  end

_offset_down_time:
  begin
//main.c,176 :: 		PORTB = mask (down_time[5]); //load millisecond value to PORTB
	FARG_mask+0 <- _down_time+5
	CALL _mask
	PORTB <- STACK_0
//main.c,177 :: 		PORTA = PORTA | 0x05; //enable the display of ones millisecond
	PORTA <-  PORTA | 5
	PORTA <- PORTA
//main.c,178 :: 		Short_delay();
	CALL _Short_delay
//main.c,179 :: 		PORTB = 0;
	PORTB <- 0
//main.c,180 :: 		PORTA = PORTA & 0xff; //disable the display
	PORTA <-  PORTA & 255
	PORTA <- PORTA
//main.c,182 :: 		PORTB = mask (down_time[4]);
	FARG_mask+0 <- _down_time+4
	CALL _mask
	PORTB <- STACK_0
//main.c,183 :: 		PORTA = PORTA | 0x01; //enable the display of ones millisecond
	PORTA <-  PORTA | 1
	PORTA <- PORTA
//main.c,184 :: 		Short_delay();
	CALL _Short_delay
//main.c,185 :: 		PORTB = 0;
	PORTB <- 0
//main.c,186 :: 		PORTA = PORTA & 0xff; //disable the display
	PORTA <-  PORTA & 255
	PORTA <- PORTA
//main.c,188 :: 		PORTB = mask (down_time[3]);
	FARG_mask+0 <- _down_time+3
	CALL _mask
	PORTB <- STACK_0
//main.c,189 :: 		PORTA = PORTA | 0x06; //enable the display of ones millisecond
	PORTA <-  PORTA | 6
	PORTA <- PORTA
//main.c,190 :: 		Short_delay();
	CALL _Short_delay
//main.c,191 :: 		PORTB = 0;
	PORTB <- 0
//main.c,192 :: 		PORTA = PORTA & 0xff; //disable the display
	PORTA <-  PORTA & 255
	PORTA <- PORTA
//main.c,194 :: 		PORTB = mask (down_time[2]);
	FARG_mask+0 <- _down_time+2
	CALL _mask
	PORTB <- STACK_0
//main.c,195 :: 		PORTA = PORTA | 0x03; //enable the display of ones millisecond
	PORTA <-  PORTA | 3
	PORTA <- PORTA
//main.c,196 :: 		Short_delay();
	CALL _Short_delay
//main.c,197 :: 		PORTB = 0;
	PORTB <- 0
//main.c,198 :: 		PORTA = PORTA & 0xff; //disable the display
	PORTA <-  PORTA & 255
	PORTA <- PORTA
//main.c,200 :: 		PORTB = mask(down_time[1]);
	FARG_mask+0 <- _down_time+1
	CALL _mask
	PORTB <- STACK_0
//main.c,201 :: 		PORTA = PORTA | 0x04; //enable the display of ones millisecond
	PORTA <-  PORTA | 4
	PORTA <- PORTA
//main.c,202 :: 		Short_delay();
	CALL _Short_delay
//main.c,203 :: 		PORTB = 0;
	PORTB <- 0
//main.c,204 :: 		PORTA = PORTA & 0xff; //disable the display
	PORTA <-  PORTA & 255
	PORTA <- PORTA
//main.c,206 :: 		if (down_time[0]== 0)Short_delay();
	if ( _down_time != 0) then goto L_offset_down_time_28
	CALL _Short_delay
	goto	L_offset_down_time_29
L_offset_down_time_28:
//main.c,209 :: 		PORTA = PORTA | 0x02; //enable the display of ones millisecond
	PORTA <-  PORTA | 2
	PORTA <- PORTA
//main.c,210 :: 		Short_delay();
	CALL _Short_delay
//main.c,211 :: 		PORTA = PORTA & 0xff; //disable the display
	PORTA <-  PORTA & 255
	PORTA <- PORTA
//main.c,212 :: 		}
L_offset_down_time_29:
  end

_offset_up_time2:
  begin
//main.c,217 :: 		PORTB = mask (up_time[5]); //load millisecond value to PORTB
	FARG_mask+0 <- _up_time+5
	CALL _mask
	PORTB <- STACK_0
//main.c,218 :: 		PORTA = PORTA | 0x0d; //enable the display of ones millisecond
	PORTA <-  PORTA | 13
	PORTA <- PORTA
//main.c,219 :: 		Short_delay();
	CALL _Short_delay
//main.c,220 :: 		PORTB = 0;
	PORTB <- 0
//main.c,221 :: 		PORTA = PORTA & 0xff; //disable the display
	PORTA <-  PORTA & 255
	PORTA <- PORTA
//main.c,223 :: 		PORTB = mask (up_time[4]);
	FARG_mask+0 <- _up_time+4
	CALL _mask
	PORTB <- STACK_0
//main.c,224 :: 		PORTA = PORTA | 0x09; //enable the display of ones millisecond
	PORTA <-  PORTA | 9
	PORTA <- PORTA
//main.c,225 :: 		Short_delay();
	CALL _Short_delay
//main.c,226 :: 		PORTB = 0;
	PORTB <- 0
//main.c,227 :: 		PORTA = PORTA & 0xff; //disable the display
	PORTA <-  PORTA & 255
	PORTA <- PORTA
//main.c,229 :: 		PORTB = mask (up_time[3]);
	FARG_mask+0 <- _up_time+3
	CALL _mask
	PORTB <- STACK_0
//main.c,230 :: 		PORTA = PORTA | 0x0e; //enable the display of ones millisecond
	PORTA <-  PORTA | 14
	PORTA <- PORTA
//main.c,231 :: 		Short_delay();
	CALL _Short_delay
//main.c,232 :: 		PORTB = 0;
	PORTB <- 0
//main.c,233 :: 		PORTA = PORTA & 0xff; //disable the display
	PORTA <-  PORTA & 255
	PORTA <- PORTA
//main.c,235 :: 		PORTB = mask (up_time[2]);
	FARG_mask+0 <- _up_time+2
	CALL _mask
	PORTB <- STACK_0
//main.c,236 :: 		PORTA = PORTA | 0x0b; //enable the display of ones millisecond
	PORTA <-  PORTA | 11
	PORTA <- PORTA
//main.c,237 :: 		Short_delay();
	CALL _Short_delay
//main.c,238 :: 		PORTB = 0;
	PORTB <- 0
//main.c,239 :: 		PORTA = PORTA & 0xff; //disable the display
	PORTA <-  PORTA & 255
	PORTA <- PORTA
//main.c,241 :: 		PORTB = mask(up_time[1]);
	FARG_mask+0 <- _up_time+1
	CALL _mask
	PORTB <- STACK_0
//main.c,242 :: 		PORTA = PORTA | 0x0c; //enable the display of ones millisecond
	PORTA <-  PORTA | 12
	PORTA <- PORTA
//main.c,243 :: 		Short_delay();
	CALL _Short_delay
//main.c,244 :: 		PORTB = 0;
	PORTB <- 0
//main.c,245 :: 		PORTA = PORTA & 0xff; //disable the display
	PORTA <-  PORTA & 255
	PORTA <- PORTA
//main.c,247 :: 		if (up_time[0] == 0)Short_delay();
	if ( _up_time != 0) then goto L_offset_up_time2_30
	CALL _Short_delay
	goto	L_offset_up_time2_31
L_offset_up_time2_30:
//main.c,250 :: 		PORTA = PORTA | 0x0a; //enable the display of ones millisecond
	PORTA <-  PORTA | 10
	PORTA <- PORTA
//main.c,251 :: 		Short_delay();
	CALL _Short_delay
//main.c,252 :: 		PORTA = PORTA & 0xff; //disable the display
	PORTA <-  PORTA & 255
	PORTA <- PORTA
//main.c,253 :: 		}
L_offset_up_time2_31:
  end

_offset_down_time2:
  begin
//main.c,259 :: 		PORTB = mask (down_time[5]); //load millisecond value to PORTB
	FARG_mask+0 <- _down_time+5
	CALL _mask
	PORTB <- STACK_0
//main.c,260 :: 		PORTA = PORTA | 0x0d; //enable the display of ones millisecond
	PORTA <-  PORTA | 13
	PORTA <- PORTA
//main.c,261 :: 		Short_delay();
	CALL _Short_delay
//main.c,262 :: 		PORTB = 0;
	PORTB <- 0
//main.c,263 :: 		PORTA = PORTA & 0xff; //disable the display
	PORTA <-  PORTA & 255
	PORTA <- PORTA
//main.c,265 :: 		PORTB = mask (down_time[4]);
	FARG_mask+0 <- _down_time+4
	CALL _mask
	PORTB <- STACK_0
//main.c,266 :: 		PORTA = PORTA | 0x09; //enable the display of ones millisecond
	PORTA <-  PORTA | 9
	PORTA <- PORTA
//main.c,267 :: 		Short_delay();
	CALL _Short_delay
//main.c,268 :: 		PORTB = 0;
	PORTB <- 0
//main.c,269 :: 		PORTA = PORTA & 0xff; //disable the display
	PORTA <-  PORTA & 255
	PORTA <- PORTA
//main.c,271 :: 		PORTB = mask (down_time[3]);
	FARG_mask+0 <- _down_time+3
	CALL _mask
	PORTB <- STACK_0
//main.c,272 :: 		PORTA = PORTA | 0x0e; //enable the display of ones millisecond
	PORTA <-  PORTA | 14
	PORTA <- PORTA
//main.c,273 :: 		Short_delay();
	CALL _Short_delay

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -