Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

PIC16F84 Heksadecimalni sat

[es] :: Elektronika :: Mikrokontroleri :: PIC16F84 Heksadecimalni sat

[ Pregleda: 1479 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Milos992

Član broj: 298531
Poruke: 19
*.ptt.rs.



Profil

icon PIC16F84 Heksadecimalni sat22.01.2014. u 14:35 - pre 124 meseci
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    
 
Odgovor na temu

elektrostudio
Vladimir Pavkovic
SZR Elektrostudio, servis idustrijskih
masina i software developer
Novi Sad

Član broj: 201423
Poruke: 283
*.dynamic.isp.telekom.rs.

Sajt: elektrostudio.com


+25 Profil

icon Re: PIC16F84 Heksadecimalni sat04.02.2014. u 20:22 - pre 124 meseci
Code:
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


Ovde je podprogram za minute, one linije sa XORLW su poredjenje pa to kada se sredi bude sto se zeli
Elektrostudio
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: PIC16F84 Heksadecimalni sat

[ Pregleda: 1479 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.