home | area personale         schemi | tutorial | robotica | pic micro | recensioni         forum | chat irc         faq | contatti         store | Ordina PCB
username
password
cerca

 
FORUM: Pic Micro
Tutto quanto riguarda questi microprocessori... progetti, suggerimenti, aiuti, discussioni...ecc


pic16f628a uscita alta bassa o hi-Z
     
Autore Messaggio opzioni
acilde




una ogni 10 livelli


postato il:
30.03.2021, alle ore 15:55
pic16f628a uscita alta bassa o hi-Z 

ho scritto qualche riga di codice per comandare un' uscita nei tre stati
comandata da tre ingressi.
A seconda di che ingrsso va alto, l'uscita la dovrei mandare alta , bassa, o in alta impedenza.
ho provato con un simulatore , simulide-0.4.14 ma non si comporta come mi aspettavo.
Sbaglio io o il simulatore ha un bug? posso vedere i registri PORTA TRISA e sembrano giusti, ma i led non si accendono e spengono come mi aspettavo se mando alto uno alla volta i tre ingressi con sequenze diverse.
I led sono collegati in antiparallelo tra RA7 e il centro di un partitore (con due R da 220 ohm) collegato tra 5V e massa in modo da avere 2,5V

ingressi:RA4 RA5 RA6
uscita RA7

sequenza 1:mando alto uno alla volta
1) RA6
2) RA5
3) RA4

i led FUNZIONANO come previsto
1)spenti(RA7 hi-Z)
2) led acceso (RA7 L)
3) led acceso (RA7 H)

sequenza 2:mando alto uno alla volta
1) RA5
2) RA6
3) RA4
i led NON funzionano come previsto
1) led acceso (RA7 L)
2) spenti(RA7 hi-Z)
3) led acceso (RA7 L) <?????

 ;SET pin RA6 high , low , hiZ

;ver.  25/03/2021 
;05h = address GPIO



 list      p=16f628a   ;list directive to define processor
   #include "p16f628a.inc"   ;processor specific variable definitions


__CONFIG _INTRC_OSC_NOCLKOUT & _PWRTE_OFF & _WDT_OFF & _MCLRE_OFF

RADIX DEC
     


   org   0
   GOTO START
   
START 
banksel PORTA 
CLRF    PORTA      ;Initialize PORTA by
;setting
;output data latches
MOVLW   0x07       ;Turn comparators off and
MOVWF   CMCON      ;enable pins for I/O 
;functions

banksel TRISA
movlw   b'01110000'      ; PORTA 0111 0000 (output pin 3,15,16)  input  PORTA (pin 17,18,1,2,4 )
movwf   TRISA

banksel TRISB
movlw   b'00000000'    ;LED  PORTB 0000 0000  (output pin 6,7,8,9,10,11,12,13)  
movwf   TRISB


banksel TRISA
bsf TRISA, 7

LABEL_TRESTATI

LABEL_RA7_H  ; test RA4
banksel PORTA
btfss  PORTA, 4 ;if RA4 = H set PORTA
goto  LABEL_RA7_L ;else test RA5
  ; set PORTA
banksel TRISA
bcf TRISA, 7 ;RA7 = out
banksel PORTA
bcf PORTA, 0 ; RA0= L
bcf PORTA, 1 ; RA1= L
bsf PORTA, 2 ; RA2= H
bsf PORTA, 7 ; RA7= H




LABEL_RA7_L  ; test RA5
banksel PORTA
btfss  PORTA, 5 ;if RA5 = H set PORTA
goto  LABEL_RA7_hiZ
  ; set PORTA
banksel TRISA
bcf TRISA, 7
banksel PORTA
bcf PORTA, 7 ; RA7= L
bsf PORTA, 0 ; RA0= H
bcf PORTA, 1 ; RA1= L
bcf PORTA, 2 ; RA2= L


LABEL_RA7_hiZ
banksel PORTA
btfss  PORTA, 6 ;if RA6 = H set PORTA
goto  LABEL_TRESTATI
  ; set PORTA
banksel TRISA
bsf TRISA, 7
banksel PORTA
bcf PORTA, 0 ; RA0= L
bsf PORTA, 1 ; RA1= H
bcf PORTA, 2 ; RA2= L
bsf PORTA, 7 ; RA1= H

goto LABEL_TRESTATI
;-------------------------------------------------

   end  



clikka sulle mie stelline per vedere i miei progetti
I motori di ricerca sono tuoi amici( G0o9\e non proprio...) , usarli prima di chiedere non sarebbe male.
La terra è l'aereo che ci trasporta nel cielo
ma dal quale non possiamo scendere (almeno per ora) , perchè danneggiarlo?
rcc.roberto



[pagine pubblicate]

postato il:
30.03.2021, alle ore 18:15
Intanto prova mettere dopo ogni sezione un goto LABEL_TRESTATI e vedi come si comporta
rcc.roberto



[pagine pubblicate]

postato il:
30.03.2021, alle ore 18:16
Gli ingressi hanno una resistenza verso massa?
acilde




una ogni 10 livelli


postato il:
30.03.2021, alle ore 18:30
rcc.roberto:
Gli ingressi hanno una resistenza verso massa?


hanno ogni uno la resistenza a massa ,
provato
goto LABEL_TRESTATI
stesso problema



clikka sulle mie stelline per vedere i miei progetti
I motori di ricerca sono tuoi amici( G0o9\e non proprio...) , usarli prima di chiedere non sarebbe male.
La terra è l'aereo che ci trasporta nel cielo
ma dal quale non possiamo scendere (almeno per ora) , perchè danneggiarlo?
acilde




una ogni 10 livelli


postato il:
03.04.2021, alle ore 19:02
interessante con un simulatore diverso sarebbe vedere se è simulide che ha un bug, qualcuno, per piacere, potrebbe fare una simulatina al codice ?



clikka sulle mie stelline per vedere i miei progetti
I motori di ricerca sono tuoi amici( G0o9\e non proprio...) , usarli prima di chiedere non sarebbe male.
La terra è l'aereo che ci trasporta nel cielo
ma dal quale non possiamo scendere (almeno per ora) , perchè danneggiarlo?
caccamo2





postato il:
03.04.2021, alle ore 19:28
prova nel mondo reale, i simulatori di microcontrollori non sono affidabili


...
acilde




una ogni 10 livelli


postato il:
06.04.2021, alle ore 13:54

Schema del circuito ecco il link



clikka sulle mie stelline per vedere i miei progetti
I motori di ricerca sono tuoi amici( G0o9\e non proprio...) , usarli prima di chiedere non sarebbe male.
La terra è l'aereo che ci trasporta nel cielo
ma dal quale non possiamo scendere (almeno per ora) , perchè danneggiarlo?
acilde




una ogni 10 livelli


postato il:
06.04.2021, alle ore 14:00
Attenzione:
quello postato sopra è quello che sembra funzionare con il nuovo firmware
e ha dei collegamenti diversi.



clikka sulle mie stelline per vedere i miei progetti
I motori di ricerca sono tuoi amici( G0o9\e non proprio...) , usarli prima di chiedere non sarebbe male.
La terra è l'aereo che ci trasporta nel cielo
ma dal quale non possiamo scendere (almeno per ora) , perchè danneggiarlo?
acilde




una ogni 10 livelli


postato il:
06.04.2021, alle ore 14:15

QUESTA


si riferisce al codice scritto sopra ( che postandolo si è perso i TAB...)



clikka sulle mie stelline per vedere i miei progetti
I motori di ricerca sono tuoi amici( G0o9\e non proprio...) , usarli prima di chiedere non sarebbe male.
La terra è l'aereo che ci trasporta nel cielo
ma dal quale non possiamo scendere (almeno per ora) , perchè danneggiarlo?
primok




una ogni 100 livelli
una ogni 10 livelli


postato il:
06.04.2021, alle ore 17:56
Il tuo codice provato con proteus funziona.





Più piccola è la mente più grande è la presunzione.
segui questo thread con grixFC, per questa funzione devi aver installato il software grixFC

torna su
     

Come utente anonimo puoi leggere il contenuto di questo forum ma per aprire una discussione
o per partecipare ad una discussione esistente devi essere registrato ed accedere al sito




 







 
 
indietro | homepage | torna su copyright © 2004/2024 GRIX.IT - La community dell'elettronica Amatoriale