digitale Tore 1,4,5 des MC80515 / 80535

 

 

 

 

 

Was ist ein Tor

 

 

Hardwarebschreibung

 

 

Schreibvorgang (write)

 

 

Lesevorgang, direkt (read)

 

 

Eingangstor zum Lesen initialisieren

 

 

Lesevorgang, indirek (read)

 

 

 

 

Was ist ein Tor
Ein digitales Tor, auch Port genannt, kann man sich als eine Speicherzelle vorstellen, die sowohl vom Computer, als auch von einem äußeren Anwender verändert werden kann. Ändert ein äußerer Anwender z.B. durch Schalter den Zustand dieser Speicherzelle und der Computer liest sie, dann kann er mit den Signalen von außen rechnen, diese verändern und auf sie programmgesteuert reagieren. Ein solches Tor würde man ein Eingangstor nennen.
Nach einer solchen Tätigkeit könnte nun der Computer das Ergebnis seiner Berechnung auf ein zweites Tor zurückschreiben. Da die Signale dieses Tores außen zugänglich sind, würden z.B. außen angeschlossene Leuchtdioden oder Relais darauf reagieren. Dieses Tor wäre ein Ausgangstor.

Normalerweise bestehen Speicherzellen aus einem Byte, also 8 Bits, also 8 Flip-Flop-Schaltungen. Jede Flip-Flop-Schaltung kann durch einen Schalter auf log1 (5V) oder log0 (0V) gesetzt werden. An ein 8Bit-EingangsTor kann man also 8 Schalter anschließen. Umgekehrt gilt gleiches. An einem 8Bit-Ausgangstor können bis zu 8 Relais oder Leuchtdioden angeschlossen werden. Eine log0 (0V) könnte die Relais ausschalten, eine log1 (5V) könnte sie einschalten.

 

 

 

 

 

Alle drei Tore sind 8 Bit breit und können bidirektional betrieben werden. Jedes Bit eines Tores kann unabhängig von den anderen, als Eingang oder Ausgang verwendet werden. Man nennt diesen Umstand, das Tor sei bitadressierbar. Das Bild zeigt das Schaltschema eines Torbits im Inneren des Mikrocontrollers. Am Pin Px.y tritt das Signal aus.



Hardwarebeschreibung:
Jeder der acht Torausgang wird durch ein D-Flipflop gebildet, wie es oben zu sehen ist. In dieses Flipflop kann die CPU mit dem internen Signal WRITE LATCH als Taktsignal, einen Wert über den internen DATENBUS hineinschreiben. Dies geschieht z.B. durch den Befehl mov Px, A der gleich alle 8 FlipFlops des Tores Px mit den 8 Bits des Akkumulators beschreibt. Die CPU kann aber auch jedes einzelne Bit beschreiben, was über den Befehl mov Px.y, C geschehen würde .. C ist in diesem Befehl das CarryFlag .. und als Bitadressierbarkeit bezeichnet wird.

Schreibvorgang (write):
Wurde das FlipFlop auf log 0 gesetzt, erscheint an seinem Ausgang Q1 eine log.1. Diese läßt den Transistor durchschalten. Das Potential am Ausgangspin fällt von High auf Low (Px.y = 0).
Ist der Transistor geschlossen, so erscheint die Spannung Vcc über den 50k Ohm- Widerstand am Pin (Px.y = 1). Das 1-Signal ist wegen des großen Widerstandwertes relativ hochohmig und treibt deswegen nur CMOS-Eingänge.

Lesevorgang, direkt (read):
Neben den Befehlen die in das Flipflop beschreiben, gibt es auch solche die den Torspeicher zum direkten Lesen der externen Signalzustände am Tor Px freigeben. Diese Befehle aktivieren das interne READ PIN- Lesesignal, das über den Treiber, das Torsignal, auf den internen Datenbus durchschaltet. Zu ihnen gehört im Besonderen der Befehl mov A, Px. Durch diesen Befehl würden alle acht externen Signalzustände an den Eingängen (Pins) des Tores x in den Akkumulator übertragen werden.



Eingangstor zum Lesen initialisieren:
Die Tore der Mikrocontroller sind gegenüber anderen Torbausteinen hardwaremäßig sehr einfach aufgebaut. Daraus ergibt sich die Besonderheit, daß die Tore auf ihre Arbeit vorbereitet werden müssen, sie müssen initialisiert werden.
Soll ein TorBit als Eingang benutzt werden, so muß es zuvor per Programm auf log 1 gesetzt werden. Dies kann durch einen Schreibbefehl von einer 1 auf das Tor geschehen. Dadurch sperrt der Transistor im Ausgang des Flipflops. Der Pin geht dann über den internen Pull-Up-Widerstand auf High und kann nun durch ein externes Signal auf Low gezogen werden. Nach einem RESET sind zwar alle Tore auf 1 gesetzt, also Eingänge, ...
aber wenn das Tor zuvor als Ausgang benutzt worden wäre und auf log 0 stünde, so würde ein 1-Signal am Eingang zu einem 'Kurzschluß' über den offenen Transistor gegen GND führen. Das wäre bedenklich, insbesondere dann, wenn anders als oben im Bild kein Schalter, sondern eine niederohmige 5V-Spannungsquelle das 1 Signal erzeugen würde. ...
also Eingänge vor der ersten Benutzung durch einen Scheibbefehl wie mov Px, #0FFh auf log 1 setzen (initialisieren).

Lesevorgang, indirekt (read):
Nicht alle Befehle die einen Lesevorgang am Tor bewirken setzen das READ PIN -Lesesignal. Bei einigen Befehlen wird der Ausgang Q2 des Flipflops gelesen. Dazu wird das interne Signal READ LATCH aktiviert. Dies betrifft verdeckte Lesevorgänge. Diese sind notwendig, wenn der Pin als Ausgang benutzt wird.



Treibt z.B. ein Portpin die Basis eines externen Transistors und wird log 1 in das entsprechende Latch geschrieben, dann ist dieser Transistor durchgeschaltet. Würde die CPU jetzt den Portpin lesen, so würde die Basisspannung des Transistors und somit log 0 zurückgegeben. Liest die CPU jedoch den Ausgang Q des Flipflops anstelle des Signals am Pin, erhält sie den korrekten Wert log 1. Ein Befehl, der einen indirekten Lesevorgang beinhaltet ist z.B der Befehl ANL Px, A. Bei ihm sollen die logischen Setzungen am Tor mit dem Inhalt des Akkumulators durch UND verknüpft und das Resultat zum Tor ausgegeben werden. Damit diese Ausgabe stattfinden kann muß die CPU zunächst das Tor lesen, um dann die geforderte UND-Operation mit dem Akkumulator vornehmen zu können. Dieser verdeckte Lesevorgang benutzt nicht die Signale am PIN, sondern liest den Ausgang Q des Flipflops.

 

 

 

 

www.GoBlack.de