ingresso digitale per il PIC16F877 PORT A

Y

yllongboy

Guest
Hi there ..
qualcuno potrebbe aiutarmi con il mio problema ....
im tentando di inviare dati sulla porta A del PIC16F877
ma non succede nulla ...ecco il mio codice di esempio ....p = 16F877 list
# include <p16f877.inc>__CONFIG _CP_OFF & _WDT_OFF & _BODEN_ON & _PWRTE_ON & _XT_OSC & _WRT_ENABLE_ON & _LVP_ON & _DEBUG_OFF & _CPD_OFFORG 0x00inizioCLRWBSF STATUS, RP0MOVLW 0x06
MOVWF ADCON1
MOVLW 0X00
movwf TRISA
BCF STATUS, RP0LOOP

MOVLW 0xFF
MOVWF PORTA
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
movlw 0x00
movwf porta
GOTO LOOP
END

.....questa è solo una semplice lampeggio dei led ...solo per vedere se potevo davvero inviare i dati alla porta A

 
yllongboy ha scritto:

Hi there ..

qualcuno potrebbe aiutarmi con il mio problema ....

im tentando di inviare dati sulla porta A del PIC16F877

ma non succede nulla ...
ecco il mio codice di esempio ....p = 16F877 list

# include <p16f877.inc>__CONFIG _CP_OFF & _WDT_OFF & _BODEN_ON & _PWRTE_ON & _XT_OSC & _WRT_ENABLE_ON & _LVP_ON & _DEBUG_OFF & _CPD_OFFORG 0x00inizioCLRWBSF STATUS, RP0MOVLW 0x06

MOVWF ADCON1

MOVLW 0X00

movwf TRISA

BCF STATUS, RP0LOOPMOVLW 0xFF

MOVWF PORTA

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

movlw 0x00

movwf porta

GOTO LOOP

END

 
la ringrazio per la posted rply .....
....Ho già seguito tutte le istruzioni di cui sopra e sembra che ancora non funziona ....non ho potuto ottenere alcuna uscita dal porto Un modo come tutte le altre porte ...
...qualcuno può aiutarmi a risolvere il problema.Sarebbe meglio se ci sarebbe stato un campione in esecuzione circuito ..
...
thank you ...

 
Salve,
Credo che si dovrebbe cercare di mantenere LVP off se si nota usando.

secondo il codice di sconto di tempo per yor ha portato solo due o tre cicli di istruzione a 4MHz esso è pari a 3 micro secondi.I Gus è necessario 250milliseconds atleast il tempo fuori per vedere un LED lampeggiante.
Grazie

 
yllongboy ha scritto:

la ringrazio per la posted rply .....

....
Ho già seguito tutte le istruzioni di cui sopra e sembra che ancora non funziona ....
non ho potuto ottenere alcuna uscita dal porto Un modo come tutte le altre porte ...

...
qualcuno può aiutarmi a risolvere il problema.
Sarebbe meglio se ci sarebbe stato un campione in esecuzione circuito ..

...

thank you ...
 
salve,
Se si utilizza 16F877A tutte le porte saranno in modalità di input.
devi cambiare in modalità out put, altrimenti il vostro pic potrebbe danneggiare.
Ci sono quattro problemi che ho trovato nel vostro codice.

1, quando si utilizza LVP_ON devi abbattere pin LVP
2, tris di comando dovrebbe essere in lettera maiuscola TRISA
3, comando porta dovrebbe anche nel capitale PORTA
4, utilizzare un certo ritardo apprezzabile tra cambiando le porte in modo che si può identificare.

Nota: TRY PORTB PORTC PRIMA O POI MOVE TO PORTA

Provare questo codice
Codice:

p = 16F877 list

# include <p16f877.inc>__CONFIG _CP_OFF & _WDT_OFF & _BODEN_ON & _PWRTE_ON & _XT_OSC & _WRT_ENABLE_ON & _LVP_OFF & _DEBUG_OFF & _CPD_OFFVARIABLE_DECLARATIONSCBLOCK 0x20

DELAY_L

DELAY_M

DELAY_H

ENDCORG 0x00INITIALISE_PORTS

Banksel PORTA

clrf PORTA

clrf PORTB

clrf PORTC

clrf PORTD

clrf PORTE

Banksel TRISA

clrf TRISA

clrf TRISB

clrf TRISC

clrf TRISD

clrf TRISE

Banksel ADCON1

movlw b'00000110 '

movwf ADCON1

Banksel PORTASTARTLOOPMOVLW 0xFF

MOVWF PORTA

call DELAY350MS

movlw 0x00

movwf PORTA

call DELAY350MS

GOTO LOOP

;##################

DELAY350MS

movlw 0xFF

movwf DELAY_L

movwf DELAY_M

movlw 0x09

movwf DELAY_H

AGAIN

decfsz DELAY_L

goto again

decfsz DELAY_M

goto again

decfsz DELAY_H

goto again

ritorno

END
 
grazie per la .. rplyPosso avere un circuito su questo .. unoHo già provato, ma sembra che il mio lavoro a circuito doesnt ...Penso che il mio problema è ora sul lato hardware ..
si poteva pubblicare un circuito ..
grazie ..

 

Welcome to EDABoard.com

Sponsor

Back
Top