PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Digitale Logik-Bausteine mit PIC realisieren



Marco85
04.09.2007, 20:52
Hallo,

ich hätte mal gern gewusst wie man ein PIC-Controller benutzt um zB.: eine RS-Flipflop Schaltung nur mit dem PIC aufbaut. Und wie kann ich zwei Pins UND-Verknüpfen und das ergebnis an einen anderen Pin ausgeben? (z.B.: PIC16F88)
ich dachte immer mit einem µC kann man sowas machen, aber so einfach scheint es dann doch nicht zu sein ;-)
ich programmiere in Assembler.

Beispiel:
-ein Taster an Pin RA0 (RA2 einschalten)
-ein Taster an Pin RA1 (RA2 ausschalten)
-ein Ausgang, RA2

vielen Dank
Marco

Stromi
04.09.2007, 22:13
Geht alles,
Habe mal mit Parsic ein Beispiel gemacht und übersetzen lassen.
Lade dir die Demo von www.parsic.de und spiele mal damit.
Schaue dir auch die anderen Beispiele an.

M@tes
04.09.2007, 22:44
Wie gross sind den mittlerweile die Preisunterschiede?
Wenn uC nicht mehr viel teurer sind als Logikbausteine, wärs eine Überlegung wert, gänzlich auf letzteres zu verzichten.

PICture
05.09.2007, 08:37
Hallo Marco85!

Mit einem PIC kann man ganze sogar kompliezierte Logikschaltungen realisieren z.B. Frequenzzähler, PLL usw.

Das Problem ist, dass es alles softwaremässig "virtuell" ist, also eigentlich keine "echte" Logikbausteine, nur ihre logische Funktionen.

Es gibt am Ein- und Ausgängen nur logische "H=1" oder "L=0" und die zwei Zustände müssen entsprechend benannt bzw. interpretiert werden.

Wenn z.B. für Deinen RS Flip-Flop gedrückte Taste als "0" und am Ausgang eingeschaltet als "1" definiert wird, sieht der virtuelle Flip-Flop als Hauptprogramm z.B. so aus:

Flip_Flop btfss PORTA,0 ; ist die Taste am RA0=0 ? (gedrückt)
bsf PORTA,2 ; wenn ja, RA2 auf "1" setzen, sonst überspringen
btfss PORTA,1 ; ist die Taste am RA1=0 ? (gedrückt)
bcf PORTA,2 ; wenn ja, RA2 auf "0" setzen, sonst überspringen
goto Flip_Flop ; und wieder Tasten prüfen (endlos)

Der PIC muss natürlich vorher konfiguriert und initialisiert werden.

MfG

Hessibaby
05.09.2007, 08:58
Ich sehe aber gerade bei komplexen Schaltungen Timing Probleme.
Denn Interruptserviceroutinen können sehr viel Laufzeit haben.
Deshalb wird ja in zeitkritischen Anwendungen viel mit PLD´s gemacht.
z.B. Die Airbagsteuerung im Auto.
Aber um in die Programmierung der PIC oder AVR einzusteigen ist Logiksumulation bestimmt eine gute Sache.
Gruß

kalledom
05.09.2007, 11:47
So ist es; wenn eine logische Verknüpfung (AND, OR, EXOR, ...) sofort durchgeführt werden muß, dann geht das nicht über einen µC, weil die Software erst die Eingangssignale verarbeiten und den Zustand an einem Ausgang setzen muß. Das dauert Mikro-Sekunden, evtl. Millisekunden.
Für logische Verknüpfungen wird ein GAL genommen, das auch in (GAL-)Assembler programmiert wird, die Ausgangsbedingung aber in wenigen Nano-Sekunden zu Verfügung stellt, so wie ein TTL-Baustein.
Für komplexere Aufgaben ist ein µC die bessere Wahl.