[ Milos992 @ 22.01.2014. 14:35 ] @
Pozdrav, preradio sam kod koji je bio napisan za digitalni sat sa PIC16F84A, sada pokazuje heksadecimalno vreme, jedino imam problem jer ne znam kako da ogranicim kod minuta da mi broji samo do 59. Program ima 3 podprograma (sekunde, minuti, sati). U digitalnom je to bilo lako odradjeno, ako neko moze da pogleda kod bio bih zahvalan. Code: INCR INCF S1,1 MOVF S1,0 BCF STATUS,Z XORLW .16 BTFSS STATUS,Z RETURN CLRF S1 INCF S10,1 MOVF S10,0 BCF STATUS,Z XORLW .4 BTFSS STATUS,Z RETURN CLRF S10 INCR_SM INCF M1,1 MOVF M1,0 BCF STATUS,Z XORLW .16 BTFSS STATUS,Z RETURN CLRF M1 INCF M10,1 MOVF M10,0 BCF STATUS,Z XORLW .4 BTFSS STATUS,Z RETURN CLRF M10 INCR_SH INCF H1 SWAPF H10,0 ADDWF H1,0 BCF STATUS,Z XORLW 18h BTFSS STATUS,Z GOTO $+4 CLRF H1 CLRF H10 RETURN MOVF H1,0 BCF STATUS,Z XORLW .16 BTFSS STATUS,Z RETURN CLRF H1 INCF H10,1 RETURN ISR BCF INTCON,GIE MOVWF WHAT SWAPF STATUS,0 MOVWF QSTAT BCF INTCON,T0IF MOVLW .5 MOVWF TMR0 INCF DEL0,1 MOVF DEL0,0 ANDLW B'01111111' BCF STATUS,Z XORLW .125 BTFSS STATUS,Z GOTO LABLE BTFSS DEL0,7 GOTO $+.5 CLRF DEL0 CALL INCR GOTO LABLE GOTO LABLE BTFSS DEL0,7 GOTO $+.5 CLRF DEL0 BCF DP ; DECIMAL POINT CALL INCR GOTO LABLE MOVLW .200 ; DECIMAL POINT DELAY SETTING MOVWF DEL0 ;DECIMAL POINT BSF DP LABLE SWAPF QSTAT,0 MOVWF STATUS SWAPF WHAT,1 SWAPF WHAT,0 BSF INTCON,GIE RETFIE KEY BSF OPTION_REG,7 BCF INTCON,GIE BSF STATUS,RP0 MOVLW B'11101111' MOVWF TRISB BCF STATUS,RP0 MOVLW B'00000000' MOVWF PORTB CALL DELAY02 ; ********************************** SM1 BTFSC PORTB,1 ; SET MINITUS GOTO SH1 CALL INCR_SM GOTO KEYX ;*********************************** ;*********************************** SH1 CALL DELAY02 BTFSC PORTB,2 ; SET HOUR GOTO KEYDE CALL INCR_SH ;*********************************** KEYX BSF STATUS,RP0 CLRF TRISB BCF STATUS,RP0 MOVLW .100 MOVWF DEL02 CALL SCAN DECFSZ DEL02,1 GOTO $-.2 BSF INTCON,GIE BCF OPTION_REG,7 RETURN KEYDE BSF STATUS,RP0 CLRF TRISB BCF STATUS,RP0 BSF INTCON,GIE BCF OPTION_REG,7 RETURN MAIN CLRF S1 CLRF S10 CLRF M1 CLRF M10 CLRF H1 CLRF H10 CLRF DEL CLRF DEL0 CLRF DEL01 CLRF DEL02 CLRF WHAT CLRF QSTAT BSF STATUS,RP0 CLRF TRISB CLRF TRISA MOVLW B'00000011' MOVWF OPTION_REG BSF INTCON,T0IE BSF INTCON,GIE BCF STATUS,RP0 CALL SCAN CALL KEY GOTO $-.2 |