我正在使用PIC 18F4520开发一个秒表,四个7段LEDS显示器和一个按钮矩阵(实际上我只使用了16个按钮,但仍然是矩阵按钮)。
我需要无论何时按下特定按钮,秒表都会开始或停止计数,但是当它停止时,它需要显示前一次和当前时间之间的差异。例如:前一个是25秒,当前是30,所以程序必须显示5。
看起来很简单,但我不知道如何使用4个变量。 (每个7段LED需要4个)
像这样:
unit_second - first 7-segment display
tens_second - second 7-segment display
unit_minute - third 7-segment display
tens_minute - fourth 7-segment display
这是我的问题:
如何使用4个变量减去时间?
我尝试对每个变量使用SUBFW,但发生了错误
ATUALIZA ; MAIN LOOP
TSTFSZ X ; ( if x = 1 will start showing the current count )
BRA MOSTRAREAL ;(SHOW CURRENT TIME ON DISPLAY)
PULA3
BRA BOTAO1 ;( ANOTHER BUTTON FUCTION - CLEAR TIMER )
VOLTA
MOVLW B'11111111'
MOVWF TRISD
MOVLW B'11111011'
MOVWF PORTB
BTFSC PORTD,0 ; heres the button in question
BRA PULA2
NADA
BTFSC PORTD,0
BRA BOTAO
BRA NADA
BOTAO
TSTFSZ X ;( if timer stoped will subtract the previous with the current)
BRA PULA4
MOVF DIF1,W ;
SUBWF UNI_SEGUNDO,W ;
MOVWF DIF1 ; here's the part that i need to fix
MOVF DIF2,W ;
SUBWF DEZ_SEGUNDO,W ;
MOVWF DIF2 ;
PULA4
BTG X,0 ; ( START-STOP FUCTION , x=0 - stop x=1 start )
MOVF UNI_SEGUNDO,W
MOVWF TEMP
PULA2
MOVLW B'00000000'
MOVWF TRISD
TSTFSZ X ; (if timer stoped will show the difference )
BRA CALCULO ; (counting function)
CLRF TEMP
BRA MOSTRADIF ; (show the difference function)
所以这就是全部。我不知道如何继续这里,我只需要这个来完成我的项目。