Also, große unterschiede zwischen den PICs der 12F und 16F Reihe gibt es keine (nur bei den 18F kommen einige neuen Befehle für den 16Bit Core dazu).
Zum Schaltplan würde ich dir noch empfehlen, bei dem Schalter, welcher zwischen Versorgung und Brenner herumschaltet den Pin-3 über einen 10K Widerstand nach Vcc zu ziehen. Ansonsten schwebt der MCLR-Pin des PICs in der Luft.
Noch eine Frage zu der Versorgung beim Brennen. Gehe ich recht in der Annahme, dass der direkt an den Com-Port des PCs kommt? Weil, wenn ja, wird es dem PIC nicht gefallen die +13V (+12V) vom PC an den Vcc zu bekommen. Da muss noch mindestens ein Spannungsteiler dazwischen.
Wenn das nur eine Schnittstelle zwischen dem Board und einem Brenner bildet, vergiss das ganze Zeug oben
Zum programmieren wird es nicht viel zu sagen geben. Der Programmablauf ist ganz einfach:
Start --> test ob SW1 gedrückt ist --> JA --> LED anmachen --> test ob SW2 gedrückt ist --> JA --> LED2 anmachen --> zum Start springen
Du kannst es auf zwei Arten lösen:
1) Ohne interrputs: Eine unendlichschleife schreiben, der dann, je nachdem, welcher Button gedrückt wurde, eines der LED aufleuchten lässt (oder halt was anderes macht).
2) mit interrupts, da setzt du den entsprechenden Port und die Intterupt-Flags und lässt das Hauptprogramm wieder in einer unendlichschleife rtieren. Wenn dann eines der Schalter gedrückt wird, wird das Interrupt aufgerufen und es macht dann seine Aufgabe.Code:movlw B'00000011' movwf GPIO loop_main btfss GPIO,0 call SW2_press btfss GPIO,1 call SW1_press goto loop_main SW2_press do_somthing_usefull return SW1_press bcf GPIO,4 nop return
MfG
Mobius
(dem oben beschriebenen Programm wird keine Garantie auf Funktionstüchtigkeit vergeben)







Zitieren
Lesezeichen