PIC -registr misto PORTB ?

Jiri Splichal splichal@pulp.cz
Čtvrtek Srpen 30 10:50:12 CEST 2007


Ahoj
mam takovy ( zacatecnicky) dotaz:
zkousim zapojeni s PIC16F628 ,ktere zobrazuje na PORTB stav pomoci LED 
,ale ted v BCD kodu.
Chci ale zobrazovat vysledek jen jednou LED a proto sem naspal toto :
   .
   .
   .
   .
    MOVF    SLA_IND,W
    ADDWF    MAS_IND,W
    ADDWF    MAS_IND,W
    ADDWF    MAS_IND,W
    MOVWF    TEMP
    MOVLW    4*AVER_BASE + D'3'
    SUBWF    TEMP,W

    MOVWF    PRIJMUTO ;bylo PORTB   ;tady by se zobrazil vysledek v BCD 
kodu na PORTB

    GOTO    MOV_BUFFERS

NO_TONE   
    MOVLW dtmf1                                      ;nacte porovnavany kod
    MOVWF    STSW                                ;presune ho do 
pomocneho registru
    MOVFW    PRIJMUTO ;bylo PORTB  ;nacte zobrazeny udaj      
    SUBWF    STSW,W                              ;a oba je porovna
    BZ      UKOL1                                       ;pokud souhlasi 
-provede ukol jinak jde na dalsi mozne....
;-------------------
   MOVLW dtmf2
    MOVWF    STSW         
    MOVFW    PRIJMUTO ;bylo PORTB         
    SUBWF    STSW,W      
    BZ      UKOL2
;--------------------
   MOVLW dtmf3
    MOVWF    STSW       
    MOVLW    PRIJMUTO ;bylo PORTB         
    SUBWF    STSW,W       
    BZ      UKOL3
    GOTO  MOV_BUFFERS
;-----------------------------------------------
UKOL1
   NOP
   CLRF PORTB
   BSF  PORTB,4
   NOP
   GOTO  MOV_BUFFERS
.
.
.
.
(je to samozrejme jen cast) Nacte pozadovany kod BCD a porovna ho se 
stavem na PORTB.
A ted - pokud se pracuje skutecne s PORTB ,tak vse funguje jak ma ,ale 
pokud nahradim PORTB (radne definovanym) registrem PRIJMUTO ,tak uz to 
nedekoduje :-O  Uz na to koukam par dni a vubec to nechapu?
Jak to patri spravne ,aby se nemusely pokazde rozsvecovat i ty LED s BCD 
kodem?
Dedkuji za kazdou radu!

Jirka



Další informace o konferenci Hw-list