PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 8 Input leitungen reduzieren auf 1-3 Leitungen



Anubisbot
26.11.2005, 13:00
Hi, habe da ein kleines problem, wo ich keine lösung bisher für finde.

Also ich habe hier ein Modul was 8 Ausgänge hat die für eine sekunde auf High schalten. So nun ist mein Problem das ich a keine 8 eingänge am controler habe und teilweise 2 pins high geleght werden. um so mehr als 8 zustände darzustellen.

Giebts vieleicht ein IC der so was kann also 8 ports überwchen und dann über max 3 Leitungen die Daten zum Pic giebt...

Hilfe...

Pascal
26.11.2005, 13:07
dafür könntest du ein Schieberegister mit parallelem Input und seriellem Output verwenden, genaue Bezeichnung hab ich allerdings nicht im Kopf

ähM_Key
26.11.2005, 13:43
Kommen die 8 Eingänge mit einer One-Hot-Codierung (immer nur 1 von 8 high)? Weil dann könnte man diese durch 3Bit codieren. Ansonsten gibt es ja 256 Kombinationen, die nur seriell, also hintereinander durch 3Bit darstellbar wären...

MK

PICture
27.11.2005, 01:25
Hallo Anubisbot!
Das Problem habe ich auch gehabt und mit einem Schieberegister 74xx166 gelöst. Im Code ist ein Schaltplan und dazugehöriges Unterprogramm (DataRec) für PIC´s. Die 8 Bits werden zuerst mit Load parallel in den Schieberegister geladen, mit dem Clock vom PIC seriell in DTmp7 eingelesen und danach in A6 kopiert. Es werden 3 I/O Pins vom PIC benötigt: _PLE (Load), _CKI (Clock) und _DTI (Data).
MfG


D D D D D D D D
7 6 5 4 3 2 1 0

V V V V V V V V
| | | | | | | |
| | | | | | | |
| | | | | | | |
.-----------------.
| 1 1 1 1 5 4 3 2 |
| 4 2 1 0 15|-------> _PLE zum PIC
| 7|-------> _CKI
| 74xx166 6 13|-------> _DTI
'-----------------'
|
===
GND

DataRec call DatLoad
call DatRec
movf DTmp7,0
movwf A6
return
DatLoad bcf _CKI
bcf _PLE
bsf _CKI
bcf _CKI
bsf _PLE
return
DatRec movlw 7
movwf DTmp1
SRec call CopyDTI
rlf DTmp7,1
bsf _CKI
bcf _CKI
decfsz DTmp1,1
goto SRec
call CopyDTI
return
CopyDTI bcf DTmp7,0
btfsc _DTI
bsf DTmp7,0
return

Anubisbot
27.11.2005, 08:54
Danke erst mal für die Tips, ich glaube die Variante Picture ist die richtiege..

Nur das ich ein picaxe chip habe, und nicht so genau weis wie es dort funktioniert, da ich allgemein noch ein kleiner newbe bin : )

Ich denke es geht so, aber bitte koregiert mich wenn ich falsch liege..

ich bruache2 outports und ein Seriell in Port ?

Load wird high/ low zum daten sammeln
Clock wird high/ low um daten aus dem chip zu holen
Data ist die input leitung als Serielle leitung rein.( schiftin )

Oder bin ich total falsch ???

PICture
27.11.2005, 08:59
Hallo Anubisbot!
Du bist total richtig!
Viel Erfolg! :)
MfG

Anubisbot
27.11.2005, 09:02
Und wo bekomme ich den Chip ????

PICture
27.11.2005, 09:10
Je nach dem welche Logikfamilie Du in Deiner Schaltung schon hast, kannst Du den Chip aus gleichen Familie verwenden. Es gibt 74LS166 (TTL) und 74HC166 oder 74HCT166 (CMOS). Den Chip hat z.B. der Reichelt (am billigsten). Mindestbestellwert 10€.
www.reichelt.de
MfG

Anubisbot
27.11.2005, 09:12
Danke für die Hilfe, werde berichten wie es mir ergangen ist ...

MfG
o:R

PICture
27.11.2005, 09:18
Ich werde das Thema beobachten, aber ich hoffe für Dich auf Erfolg und erwarte keine weitere Fragen.
Viel Spass! :)
MfG

PICture
27.11.2005, 09:46
Ich habe nur die Pins beschriftet, die benutzt sind bzw. dessen Zustand wichtig fur richtige Funktionierung ist. Aber gut dass Du gefragt hast, weil sonst es bei Dir Probleme gäbe, falls Du CMOS nimmst. Ich habe das mit TTL realiesiert, aber beim CMOS darf man kein unangeschlossenes Pin lassen. Deswegen muss noch Pin 9 an Vcc. Pin 1 ist egal, an Vcc oder Gnd. An Pin 8 kommt Gnd und auf 16 Vcc. Jetzt sind schon alle angeschlossen, oder?
MfG

Anubisbot
27.11.2005, 10:03
Jo , gut zu wissen... habe den gerade bei reichelt bestellt und noch ein paar andere sachen da ich ja auf 10 € kommen muss : )

MfG
O.R