Craven
Level-1
- Beiträge
- 1
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Ich hab eine 7-Segmentanzeige in Codesys mit ST programmiert. (bin Anfänger)
Vermutlich habe ich das ein bisschen umständlich gelöst, aber es funktioniert und habe gedacht falls jemand den Code braucht lade ich ihn hier hoch.
Habe folgendes Video als Leitfaden genutzt.
Würde mich über Verbesserungsvorschläge natürlich freuen!
Deklaration:
Ausführung:
Hier noch meine Wahrheitstabelle und die KV-Diagramme:

Vermutlich habe ich das ein bisschen umständlich gelöst, aber es funktioniert und habe gedacht falls jemand den Code braucht lade ich ihn hier hoch.

Habe folgendes Video als Leitfaden genutzt.
Würde mich über Verbesserungsvorschläge natürlich freuen!
Deklaration:
Code:
FUNCTION_BLOCK SevSeg
VAR_INPUT
inVal: INT; //INPUT INT Zahl die umgewandelt wird in 7 Segmente der BCD Anzeige
enable7Seg:BOOL; //Aktivierung des 7Segments
END_VAR
VAR_OUTPUT
END_VAR
VAR
//Deklaration der 7 Segmente
SegA:BOOL;
SegB:BOOL;
SegC:BOOL;
SegD:BOOL;
SegE:BOOL;
SegF:BOOL;
SegG:BOOL;
//INT Zahlen die die einzelnen Bit der Input Variablen darstellen
intA:INT;
intB:INT;
intC:INT;
intD:INT;
//Bit in Boolean
A:BOOL ;
B:BOOL ;
C:BOOL ;
D:BOOL ;
END_VAR
Ausführung:
Code:
//INT in Binärzahl, Input wird umgewandelt in Bit
intD:= inVal / 8;
intC:= (inVal-intD*8) / 4;
intB:= (inVal-intD*8-intC*4) / 2;
intA:= (inVal-intD*8-intC*4-intB*2) / 1;
//INT wird zu BOOL
D:=TO_BOOL(intD);
C:=TO_BOOL(intC);
B:=TO_BOOL(intB);
A:=TO_BOOL(intA);
//Mithilfe Boolschen Algebras, Karnaugh Vaugh Diagramm und
//Wahrheitstabelle bekommt man folgende Fälle für die 7 Segmente.
//Fälle bei der SegA leuchtet
SegA:=
B OR
D OR
(A AND C) OR
(NOT A AND NOT C);
//Fälle bei der SegB leuchtet
SegB:=
NOT C OR
(NOT A AND NOT B)OR
(A AND B);
//Fälle bei der SegC leuchtet
SegC:=
NOT B OR
C OR
A;
//Fälle bei der SegD leuchtet
SegD:=
D OR
(NOT A AND B) OR
(A AND NOT B AND C) OR
(B AND NOT C) OR
(NOT A AND NOT C);
//Fälle bei der SegE leuchtet
SegE:=
(NOT A AND NOT C) OR
(NOT A AND B);
//Fälle bei der SegF leuchtet
SegF:=
D OR
(NOT A AND C) OR
(NOT B AND C) OR
(NOT A AND NOT B);
//Fälle bei der SegG leuchtet
SegG:=
D OR
(NOT A AND B) OR
(NOT B AND C) OR
(B AND NOT C);
Hier noch meine Wahrheitstabelle und die KV-Diagramme:
