PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PIC16F84A+SN74LS47N - Wie ansteuern?



schally
29.03.2007, 16:28
Hi,
also ich muss für meine Schule ein Abschlussprojekt machen , en Thermometer!
Also nun habe ich folgendes Problem ich habe einen BCD zu 7Segment Decoder den SN74LS47N und 3-7Segment Anzeigen,gemeinsame Anode, die jeweils vom einem Transistor geschaltet werden.
Mein Problem ist nun das ich wenn ich an den BCD Decoder etwas nie etwas richtiges rausbekomme.

Eingänge BCD Decoder

IA verbunden mit PortB,0

IB verbunden mit PortB,1

IC verbunden mit PortB,2

ID verbunden mit PortB,3

/LI,/RBI-/BI,/RBI -->Auf +5V gelegt

wenn ich jetzt eine 1 senden möchte an den BCD Decoder

dann muss es ja so aussehn

BSF PortB,0

oder?

mfg
schally

schally
29.03.2007, 20:52
keiner ne Idee?

kalledom
29.03.2007, 23:21
wenn ich jetzt eine 1 senden möchte an den BCD Decoder, dann muss es ja so aussehn: BSF PortB,0 Für eine 1 schreibst Du 1 in das Register PortB, für eine 2 schreibst Du 2 in das Register PortB, für eine 3 .....
Du hast doch einen 7-Segment-Decoder, der eine binäre Zahl 0...9 in den 7-Segment-Code umwandelt.
Wenn Du die Bits 7...4 des PortB für was anderes benutzt, dann muß der BinärWert 0...9 bit-weise an PortB übergeben werden oder mit den Bits 7...4 per ODER verknüpft werden.
Das eigentliche Problem kommt aber noch.
Du hast 3 Anzeigen, die über 3 Transistoren geschaltet werden.
Dann muß zuerst der BinärWert 0...9 für die erste Ziffer am PortB ausgegeben werden, Transistor für Anzeige 1 ansteuern, nach 1ms wieder ausschalten, Binärwert für Ziffer 2 am PortB ausgeben, Transistor für Anzeige 2 ansteuern, nach 1ms wieder ausschalten, BinärWert für ....

schally
30.03.2007, 15:34
hi
und wie schalte ich die aus weil ich lade mit
MOVLW B'0001';Zahl 1
MOVWF PORTB ;Gebe aus

und wie schalte ich nun die Transistoren aus?
http://steffen-schalhorst.de/HBFI_05c/Abschlussprojekt/Video/Zaehler.AVI
weil so wie auf diesem Video soll es nicht sein sie sollen nach einander laufen!


mfg
schally

kalledom
30.03.2007, 22:17
Bevor ich jetzt mit Rätselraten beginne, möchte ich zuerst den Schaltplan sehen. Denn wie soll ich Dir erklären, wie Du die Transistoren ausschalten sollst, wenn ich nicht weis, wo die angeschlossen sind.
Ich persönlich würde die Zahlen anders an PortB übergeben:

MOVLW D'0' ; Zahl 0
oder MOVLW D'1' ; Zahl 1
....
oder MOVLW D'8' ; Zahl 8
oder MOVLW D'9' ; Zahl 9
MOVWF PORTB ; Ausgeben
Wenn Dir die binäre Schreibweise besser liegt .....

schally
31.03.2007, 18:30
Hi,
hier der Schaltplan

http://steffen-schalhorst.de/HBFI_05c/Abschlussprojekt/ATINF/Schaltplan/pic_thermo.pdf

Transistoren BC557C PNP.

mfg
schally

kalledom
31.03.2007, 22:15
Die Ausgabe-Bits würde ich in einem temporären Register vorbereiten.
1. Zahl 0...9 (von woher auch immer ?) in Temp ablegen
2. Bits 7...4 mit AND 0xF0 auf 1 setzen = alle Anzeigen aus, BI/RB0 an (sonst bleiben später die Segmente dunkel)
3. Anzeigen-Bit 7, 6 oder 5 auf 0 setzen, damit die richtige Anzeige leuchtet
4. Temp ausgeben an PortB
Nach einer Millisekunde für die nächste Anzeige wiederholen.

Ich empfehle die zwei Taster an GND anzuschließen und PullUp-Widerstände zu verwenden (so wie bei Reset).