PIC 12F675 Eingänge

Gast #1423332
Lesenswert?

Hallo,

Ich bin gerade mit dem 12F675 und dem Buch PICs für Einsteiger 
angefangen.
Nun habe ich die Frage, ob ich auch anstatt des GPIO,3 auch z.B. GPIO,0 
mit dem Taster benutzen kann und wenn nicht warum das nicht geht.
Ich hoffe auf Hilfe ;-)
Wenn sowas schonmal erklärt wurde, könnt ihr auch einfach den link 
posten.

Danke der Marco
Gast #1423366
Lesenswert?

Ich hab was einfaches:

    bsf     STATUS,RP0
    call   0x3FF
    movwf   OSCCAL

    movlw  B'00001111'
    movwf  TRISIO
    clrf  ANSEL
    bcf     STATUS,RP0

    clrf  INTCON
    clrf  GPIO

HAUPT
    btfsc  GPIO,0
    goto  HAUPT

    bsf    GPIO,4
WARTE0
    btfss  GPIO,0
    goto  WARTE0
WARTE1
    btfsc  GPIO,0
    goto  WARTE1

    bcf    GPIO,4
WARTE2
    btfss  GPIO,0
    goto  WARTE2

    goto  HAUPT

    end

Statt das die LED angeht, wenn ich den Taster gedrückt hab, leuchtet 
diese durchgehend.
#1423506
Lesenswert?

Hallo,
bin zwar nicht der PIC - Kenner, aber ich glaube der Fehler liegt in 
deiner Initialisierung.
Port 0 und 3 als Eingang (Port 3 kann nur Input) und restliche Ports als 
Ausgang würde ich so initialisieren.

bcf     STATUS,PRO    ;Bank 0
    clrf   GPIO      ;Initialisierung GPIO
    movlw  07h      ;GP 0-2
    movwf  CMCON    ;auf I/O setzen
bsf     STATUS,RPO    ;Bank 1
    clrf   ANSEL    ;Digital I/O
    movlw  09h      ;GP 0 und 3 als Input und
    movwf  TRISIO    ;restliche als Output

Ich hoffe es ist nicht totaler Mist den ich schreibe. Wie gesagt kein 
PIC - Profi und schon garnicht in Assembler.
Evtl. hilft es dir ja.
Gast #1423524
Lesenswert?

@ Joachim:

Danke für die Antwort, werde ich morgen ausprobieren und werde dann noch 
mal posten.

@ Claus:

- WDT ist deaktiviert
- Der Port 0 wird mit Spannung versorgt und wird dann durch das Tasten 
auf Masse gezogen...also soll der auf eine abfallende Flanke reagieren.
So Funktioniert das mit dem Port 3 halt auch :-)
Gast #1423529
Lesenswert?

Hallo, das geht, GP3 ist nur input, und wird deshalb gerne auch für 
Switches hergenommen. Nicht alle Pins gehe, GP0 geht, aber nicht alle 
Pins haben
einschaltbare pull-ups. Natürlich geht es sonst auch, aber nur mit 
externem
Widerstand.
Gast #1424078
Lesenswert?

Ich hab im Anhang mal meinen Quellcode. Ist mit MPLAB geschrieben.
Es soll so funktionieren:

Wenn ich den Taster am GP3 gedrückt halte soll LED1 blinken, drücke ich 
den Taster kurz blinkt die LED1 3 mal.

Wenn ich dann den anderen Taster an GP0 gedrückt halte soll LED2 
blinken, drücke ich den Taster kurz blinkt LED2 3 mal.

Wenn ich nur GP3 im Quellcode habe funktioniert es. Nehme ich den GP0 
mit rein blinkt LED2 durchgehend.

Vielleicht hat ja jemand eine Lösung :-).
Angehängte Dateien:
Gast #1424271
Lesenswert?

Deinen Relais fehlen die Freilaufdioden. So ist das ne Art elektrischer 
Stuhl für Halbleiter.

Sollen Ports digital sein müssen glaub ich die Komparator und 
Analogeingänge abgeschaltet werden.
Gast #1424279
Lesenswert?

und...

werden die Ports vermutlich nicht genug Power liefern um die Relais zu 
treiben.

Der Pic wird vermutlich ziemlich warm.

Warum nimmst du nicht einfach nen LED Verwiderstand (z.B. 330 Ohm gg 
Plus)?

Das spart die 3 Volt Versorgung und die Relais.
Gast #1424299
Lesenswert?

hmmm die Relais schalten und der PIC wird auch nicht sonderlich warm, da 
der die Relais ja kurz schaltet.

Das Stimmt schon das ich mir die Relais sparen kann aber wenn ich jetzt 
z.B. einen Lüfter mit 12V anschließen möchte geht das nicht mit dem PIC. 
Am Relais aber, kann ich bis zu ich weiß nicht wieviel Volt dran hängen. 
:-)
Deswegen die zusätzliche Versorgung ;-)

Aber trotzdem danke für den Tip
#1424407
Lesenswert?

Wo hast du denn diese Schaltung her?

Folgende Fehler springen sofort ins Auge:

1. Relais direkt am PIC
   - geht nur, wenn diese wenig Strom (<20mA) ziehen
   - besser IMMER (gerade als Anfänger!) einen Transistor
2. keine Freilaufdioden an den Relais
   - das zerschießt dir über kurz oder lang den PIC
3. Relais über 2 Port-Pins angestreuert
   - das ist Unfug!
4. Beschaltung der Taster
   - der Pull-Up (R gegen Vdd) ist viel zu niedrig nimm 4,7 kOhm
5. die Leuchtdioden
   - brauchen IMMER, (bis auf gaaanz wenige Ausnahmen) einen
     Vorwiderstand, auch 3 Volt sind schon zu viel, selbst wenn
     sie die vielleicht ein paar Minuten, höchstens wenige Stunden
     überleben sollten

Tip:

Schaue dir mal andere Schaltungen an, wie das so gemacht wird und welche 
Werte für die Bauteile dort verwendet werden.

http://www.sprut.de/
http://www.holger-klabunde.de/

Da findest du VIELE Tips um als Anfänger mit PICs nicht auf die Nase zu 
fallen, und auch ein paar Schaltungsbeispiele zur Orientierung.

HTH
#1424479
Lesenswert?

Die Schaltung hab ich in mühevollen 30 sekunden selbst entworfen ;-)

1. Das Relais hat einen ungefähren Schaltstrom von 10mA...Transistoren 
kann ich natürlich auch benutzen (werde ich auch machen)

2. Freilaufdioden: hab ich einfach nicht dran gedacht und ehrlich gesagt 
wollte ich einfach nur schnell testen :-) und hab die Platine dann 
geätzt :-)

3. Geht auch über einen ? Muss ich das andere Beinchen vom Relais dann 
an Masse hängen ?

4. Widerstand oder Widerstände lassen sich schnell umlöten zum test

5. Das ist auch richtig...ich hab die Dinger an einem Netzteil wo sich 
Spannung und Strom begrenzen lassen aber es ist auch kein problem welche 
vorzulöten :-)

Die links werde ich mir auf jeden Fall angucken.
Das problem, dass der Taster nicht Funktioniert besteht leider immer 
noch, aber ein GROßES DANKE an alle.

Gruß der Marco
#1424670
Lesenswert?

Hey ich habs hinbekommen :-)

bsf  STATUS,RP0

clrf  ANSEL

movlw  B'00001100'
movwf  TRISIO

bcf  STATUS,RP0

movlw  B'00000111'
movwf  CMCON

clrf  GPIO

Initialisiere den PIC so...so wie Joachim die schon weiter oben gepostet 
hat nur umgedreht wenn man so will.

Und um das Layout oder sonstige sachen auf der Platine kann ich mich 
jetzt kümmern ;-)

Nochmals VIELEN DANK für die HILFE

Gruß Marco
#1424742
Lesenswert?

Marco Hinrichs schrieb:
> Doch die Steuerung funktioniert auch mit den beiden 100 Ohm Widerständen
> und so wie jetzt bei mir mit dem 4,7k

Nur fließen bei 100 Ohm über den Taster, wenn er gedrückt wird, 50 mA 
nach Masse! Das ist einfach mal völlig falsch dimensioniert, ganz egal 
ob es nun in einem Buch steht! ;-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren