Hallo, ich möchte an meinen µ einen 8255 zur Porterweiterung anschließen. Weiß jemand, wie man diesen Programmieren kann. Hat jemand dafür Beispiele in C? Kennt jemand eine entsprechende Webseite? mfG Digger
Ich habe den das letzte Mal vor mehreren Jahren programmiert. Kann mal suchen, müßte irgendwelche Beispiele finden. Allerdings in 8085-Assembler. Wenn Dir das was nützt melde Dich. Ich kann mich daran erinnern, daß der 8255 drei Ports mit 8 Bit hat, die Du als Ein- oder Ausgänge programmieren kannst. Jeder dieser Port hat eine eigene Adresse, die meiner Meinung nach, fortlaufend ist. An die 4. Adresse mußt Du das Steuerwort reinschreiben. Hiermit wird festgelegt, ob die Ports Ein/Ausgänge sind. Wenn ich mich richtig erinnere, ist der Port C teilbar in 2 x 4 Bit. Hier auch wieder individuell festzulegen ob Eingang oder Ausgang. Mit dem Reset-Signal werden alle Ports als Eingänge zurückgesetzt. Die Eingänge RD/WR, mit denen festgelegt wird, ob der 8255 Daten liest oder schreibt sind Low-Aktiv. Wie bereits gesagt, alle Angaben unter Vorbehalt, da aus der Erinnerung gekramt.
Hallo, vielen Dank für die schnelle Antwort. Wenn Du noch was finden kannst... Aber bitte nur, wenn es keine Umstände macht. Vielen Dank Digger
Hallo Digger, wie du vielleicht schon weißt, benimmt sich der 8255 wie ein Speicher. D.h. du schließt 8 Datenleitungen, Schreib- und Leseleitung an, und baust einen kleinen "Adressdekonder", der das CE-Signal (Chip Enable) erzeugt. An einen AVR kannst du ihn auf zwei Arten anschließen: 1.) Als (externen) Speicher, dies funktioniert nicht mit allen AVR's. Dazu brauchst du ein sogenanntes "XRAM" Interface. z.B. der AT90S8515 hat eins. An dieses XRAM-Interface schliesst du ein Latch an, um die 8 Datenleitungen und die unteren 8 Adressleitungen zu bekommen ... 2.) Du kannst ihn aber auch an ganz gewöhliche Portleitungen anschließen. Dabei musst du aber alle Steuersignale selber erzeugen ... Des weiteren benötigst du ein Datenblatt ... Gruß Matthias
Hallo Digger, es stellt sich die Frage, ob die Lösung mit dem 8255 etwas bringt, denn von den ohnehin schon knappen Portleitungen gehen ja nochmal einige (D0-D7, IOW, IOR, A0, A1, ...) für die Ansteuerung des 8255 verloren. D.h. der 8255 bringt zwar 24 Portleitungen, unterm Strich sind es jedoch nur 12 Leitungen mehr. Falls Deine µC-Anwendung nicht so zeitkritisch ist, kommt auch eine Lösung mit Schieberegistern mit Latches (74HC49?) in Frage. So lassen sich beispielsweise 24 weitere Ausgänge realisieren, die allerdings nur 3 Leitungen zur Ansteuerung benötigen. Bei den Eingängen verhält es sich ähnlich. In dem Beitrag hier findest Du noch einige weitere nützliche Informationen zu dem Thema: http://www.engineerbob.com/articles/digio.pdf Siegfried
Hallo, oder Du benutzt die I2C Schnittstelle der AVR's und pro 8 I/O Leitungen einen PCF8574 (kostet 2 Pins SLC/SDA). Da der PCF8574 auch noch einen INT-Ausgang hat kannst Du bei Eingangsänderungen einen Interrupt am AVR auslösen. Gruß Jörg
Hallo Digger, habe Dir mal unten einen kleinen Auszug aus einem Assembler-Programm gepostet. Wie Dir bereits von Matthias geschrieben wurde, brauchst Du unbedingt ein Datenblatt. Finde mein Handbuch über alle 8XXX Typen im Moment nicht da ich mit dem Teil schon länger nichts mehr gemacht habe. Früher gab es das mal von Siemens und nannte sich uP-Bausteine Peripherie oder so ähnlich. Dort waren alle Bausteine wie der alle Peripherie-Bausteine die zu den Prozessoren 8080/8085 gehörten, ausführlichst beschrieben. Daher nur das was ich in meinem Sammelsurium noch finden konnte: D0-D7 Datenbus (Zweiweg) RESET Rücksetzeingang CS Bausteinauswahl (Low-Aktiv) RD Leseeingang (Low-Aktiv) WR Schreibeingang (Low-Aktiv) A0,A1 Kanaladresse Pa0 - Pa7 Kanal A (Bit 0 - 7) Pb0 - Pb7 Kanal B (Bit 0 - 7) Pc0 - Pc7 Kanal C (Bit 0 - 7) Der 8255 kann in drei Betriebsarten arbeiten: Betriebsart 0: Einfache Ein/Ausgabe Betriebsart 1: Getastete Ein/Ausgabe Betriebsart 2: Zweiwegbus Es sind jeweils 12 Ports in einer Gruppe in der jeweiligen Betriebsart zu programmieren. Zur Gruppe A gehören Port A und Port C, höherwertige Bits (C7 - C4) Zur Gruppe B gehören Port B und Port C, niderwertige Bits (C3 - C0) Das Steuerwort besteht aus 8 Bit und hat folgendes Format: D7 - Betriebsartenkennzeichen 1 = aktiv D5/6 - Wahl der Betriebsart Gruppe A 00 = Betriebsart 0 01 = Betriebsart 1 1X = Betriebsart 2 D4 - Port A 1 = Eingabe 0 = Ausgabe Gruppe A D3 - Port C höherwertige Bits 1 = Eingabe 0 = Ausgabe Gruppe A D2 - Wahl der Betriebsart Gruppe B 0 = Betriebsart 0 1 = Betriebsart 1 D1 - Port B 1 = Eingabe 0 = Ausgabe Gruppe B D0 - Port C niederwertige Bits 1 = Eingabe 0 = Ausgabe Gruppe B cseg porta1 equ 80h portb1 equ porta1+1 portc1 equ porta1+2 str1 equ porta1+3 porta2 equ 60h portb2 equ porta2+1 portc2 equ porta2+2 str2 equ porta2+3 ; ********************** Initialisierung *********************************** init: mvi a,80h ; 8255/1 in Betriebsart 0, alle Ports Ausgaenge out str1 ; Port A und C fuer LCD, Port B fuer Tastatur mvi a,83h ; 8255/2 Port A, obere 4 Bits Port C Ausgaenge out str2 ; fuer Drucker, Port B Eingang fuer Tastatur mvi a,83h ; 8255/3 alle Ports Ausgaenge A3-A5 Steuerung out str3 ; der Zaehler Ich hatte allerdings (wie meine Vorschreiber) von Anfang an meine Zweifel ob der 8085 für einen Controller das richtige ist. Aber ich weiss ja nicht, was Du damit machen willst, vielleicht ist es ja doch die Lösung die Du brauchst (Betriebsart 2?)
Hallo, ich habe das bzw. die Bücher, die Andreas beschreibt: - "Mikrocomputer Bausteine - Mikroprozessor-System SAB 8085" von 1980/81 - "Mikrocomputer Bausteine - Peripherie" von 1979/80 falls wirklich der Bedarf besteht, bzw. sich keine Datenblätter im Internet finden lassen, kann ich die Seiten (41!) scannen ... Gruß Matthias
Wow, ich bin überwältigt!! Vielen Dank für die zahlreichen, guten Antworten!! Klasse! Digger
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.