Upload
tobias-brouwer
View
213
Download
0
Embed Size (px)
Citation preview
behoort bij open leertaak OT 8.4.2
© friesland college 2000
Parallel naar serieel omzetting
Parallel naar serieel omzetting
Parallel naar serieel omzettingParallel naar serieel omzetting
Voer eerst het programma serieel naar parallel uit.
In dit programma gaan we zien hoe parallelle informatie omgezet kan worden tot een serieel signaal.
Dit gebeurt b.v. in de PC waar een parallelle waarde verzonden wordt via de seriële poort en eventueel via een MODEM naar een andere PC, het Internet, of iets dergelijks
Parallel naar serieel omzettingParallel naar serieel omzetting
Om een parallelle informatie om te zetten gebruiken we weer een schuifregister. Voor het gemak zijn hier 4 flipflops gebruikt. Het kunnen er ook 8 of meer zijn.We herkennen het schuifregister: J en K zijn aangesloten op Q en /Q
J
K
J
K
J
K
J
K
klok ingang
Parallel naar serieel omzettingParallel naar serieel omzetting
De flipflops hebben nu direct werkende SET en RESET ingangen
J
K
J
K
J
K
J
K
klok ingang
Parallelle ingang
SET INGANGEN
RESET INGANGEN
/S /S /S /S
/R /R /R /R
Parallel naar serieel omzettingParallel naar serieel omzetting
De /SET en /RESET ingangen worden actief bij een logische 0
J
K
J
K
J
K
J
K
klok ingang
/S /S /S /S
/R /R /R /R
Parallel naar serieel omzettingParallel naar serieel omzetting
Een 0 op een /SET ingang SET de flipflop direct. Dit is onafhankelijk van de toestand van de klokingang.We noemen dit een a-synchrone ingang
J
K
J
K
J
K
J
K
klok ingang
/S /S /S /S
/R /R /R /R
FF wordt geset
Parallel naar serieel omzettingParallel naar serieel omzetting
Een 0 op een /RESET ingang RESET de flipflop direct. Dit is ook onafhankelijk van de toestand van de klokingang.Ook dit is een a-synchrone ingang
J
K
J
K
J
K
J
K
klok ingang
/S /S /S /S
/R /R /R /R
FF wordt gereset
Parallel naar serieel omzettingParallel naar serieel omzetting
We voorzien de schakeling van een centrale reset. Hier voorgesteld als een drukknop, maar in werkelijkheid een digitaal signaal
J
K
J
K
J
K
J
K
klok ingangreset
Parallel naar serieel omzettingParallel naar serieel omzetting
Sluiten we de drukknop, dan worden alle registers gereset.
J
K
J
K
J
K
J
K
klok ingangreset
Parallel naar serieel omzettingParallel naar serieel omzetting
Openen we de reset schakelaar, dan blijven de flipflops gereset.
J
K
J
K
J
K
J
K
klok ingangreset
Parallel naar serieel omzettingParallel naar serieel omzetting
De J en K ingang van de eerste flipflop spelen geen belangrijke rol. We maken J=0 en K=1
J
K
J
K
J
K
J
K
klok ingangreset
Vcc
Parallel naar serieel omzettingParallel naar serieel omzetting
Om het register parallel te laden sluiten we de bovenstaande schakeling aan.
J
K
J
K
J
K
J
K
klok ingang
D
&
C
&
B
&
A
&
load puls
Parallelle ingang
reset
Vcc
Parallel naar serieel omzettingParallel naar serieel omzetting
Bovendien moeten we ervoor zorgen dat tijdens een loadpuls het kloksignaal wordt tegengehouden. Hiervoor zorgt de INVERTER en de EN poort.
J
K
J
K
J
K
J
K
klok ingang
D
&
&
C
&
B
&
A
&
load puls
Parallelle ingang
&
reset
Vcc
Parallel naar serieel omzettingParallel naar serieel omzetting
Het schema is bijna klaar. De Q uitgang van de rechter flipflop (LS-bit) vormt de seriële uitgang.
J
K
J
K
J
K
J
K
klok ingang
D
&
&
C
&
B
&
A
&
load puls
Parallelle ingang
&
seriële uitgang
reset
Vcc
We gaan nu stap voor stap zien hoe de schakeling werkt aan de hand van een timingdiagram.
J
K
J
K
J
K
J
K
klok ingang
D
&
&
C
&
B
&
A
&
load puls
Parallelle ingang
&
seriële uitgang
load puls
seriële uitgang
klok ingang
reset
reset
Vcc
De parallelle waarde die serieel verzonden moet worden is 1010B. D is de MSB en A de LSB.
J
K
J
K
J
K
J
K
klok ingang
D=1
&
&
C=0
&
B=1
&
A=0
&
load puls
Parallelle ingang
&
seriële uitgang
load puls
seriële uitgang
klok ingang
reset
reset
?
Vcc
De gele balk in het timingdiagram geeft steeds het moment aan waarover de uitleg gaat.
J
K
J
K
J
K
J
K
klok ingang
D=1
&
&
C=0
&
B=1
&
A=0
&
load puls
Parallelle ingang
&
seriële uitgang
load puls
seriële uitgang
klok ingang
reset
reset
?
Vcc
Er wordt een resetpuls gegeven. Alle flipflops worden gereset
J
K
J
K
J
K
J
K
klok ingang
D=1
&
&
C=0
&
B=1
&
A=0
&
load puls
Parallelle ingang
&
seriële uitgang
load puls
seriële uitgang
klok ingang
reset
reset
?
Vcc
De resetpuls is voorbij.
J
K
J
K
J
K
J
K
klok ingang
D=1
&
&
C=0
&
B=1
&
A=0
&
load puls
Parallelle ingang
&
seriële uitgang
load puls
seriële uitgang
klok ingang
reset
reset
?
Vcc
Nu wordt er een parallel-load puls gegeven. De setingangen van 2 flipflops worden laag (en dus actief)
J
K
J
K
J
K
J
K
klok ingang
D=1
&
&
C=0
&
B=1
&
A=0
&
load puls
Parallelle ingang
&
seriële uitgang
load puls
seriële uitgang
klok ingang
reset
reset
?
Vcc
De parallelle waarde wordt overgenomen door de flipflops. We noemen dit “parallel load”
J
K
J
K
J
K
J
K
klok ingang
D=1
&
&
C=0
&
B=1
&
A=0
&
load puls
Parallelle ingang
&
seriële uitgang
load puls
seriële uitgang
klok ingang
reset
reset
?
(1) (1)(0) (0)
Vcc
De load puls is voorbij. De geheugens blijven geset. Op de seriële uitgang staat een 0, deze komt van ingang A. Let goed op de ingangen J en K van elke flipflop voordat de eerste klokpuls komt.
J
K
J
K
J
K
J
K
klok ingang
D=1
&
&
C=0
&
B=1
&
A=0
&
load puls
Parallelle ingang
&
seriële uitgang
load puls
seriële uitgang
klok ingang
reset
reset
?
(1) (1)(0) (0)
Vcc
A
De eerste klokpuls wordt gegeven. De informatie schuift op de opgaande flank van de klok naar rechts. Op de seriële uitgang komt de waarde van ingang B te staan (1).
J
K
J
K
J
K
J
K
klok ingang
D=1
&
&
C=0
&
B=1
&
A=0
&
load puls
Parallelle ingang
&
seriële uitgang
load puls
seriële uitgang
klok ingang
reset
reset
?
(1) (1)(0)(0)
Vcc
BA
Als de klokpuls voorbij is, verandert de seriële uitgang niet
J
K
J
K
J
K
J
K
klok ingang
D=1
&
&
C=0
&
B=1
&
A=0
&
load puls
Parallelle ingang
&
seriële uitgang
load puls
seriële uitgang
klok ingang
reset
reset
?
(1) (1)(0)(0)
Vcc
BA
De tweede klokpuls wordt gegeven. De informatie schuift op de opgaande flank van de klok weer naar rechts. Op de seriële uitgang verschijnt de oorspronkelijke waarde van ingang C (0).
J
K
J
K
J
K
J
K
klok ingang
D=1
&
&
C=0
&
B=1
&
A=0
&
load puls
Parallelle ingang
&
seriële uitgang
load puls
seriële uitgang
klok ingang
reset
reset
?
(1)(0)(0)
Vcc
BA
(0)
C
Als de klokpuls voorbij is, verandert de seriële uitgang niet
J
K
J
K
J
K
J
K
klok ingang
D=1
&
&
C=0
&
B=1
&
A=0
&
load puls
Parallelle ingang
&
seriële uitgang
load puls
seriële uitgang
klok ingang
reset
reset
?
(1)(0)(0)
Vcc
BA
(0)
C
De derde klokpuls wordt gegeven. De informatie schuift op de opgaande flank van de klok weer naar rechts. Op de seriële uitgang verschijnt de oorspronkelijke waarde van ingang D (1).
J
K
J
K
J
K
J
K
klok ingang
D=1
&
&
C=0
&
B=1
&
A=0
&
load puls
Parallelle ingang
&
seriële uitgang
load puls
seriële uitgang
klok ingang
reset
reset
?
(1)(0)(0)
Vcc
BA
(0)
C D
Als de klokpuls voorbij is, verandert de seriële uitgang niet
J
K
J
K
J
K
J
K
klok ingang
D=1
&
&
C=0
&
B=1
&
A=0
&
load puls
Parallelle ingang
&
seriële uitgang
load puls
seriële uitgang
klok ingang
reset
reset
?
(1)(0)(0)
Vcc
BA
(0)
C D
Na de vierde klokpuls is het schuifregister volledig leeg geschoven en is ook de seriële uitgang laag.
J
K
J
K
J
K
J
K
klok ingang
D=1
&
&
C=0
&
B=1
&
A=0
&
load puls
Parallelle ingang
&
seriële uitgang
load puls
seriële uitgang
klok ingang
reset
reset
?
(0)(0)
Vcc
BA
(0)
C D
(0)
Het signaal op de seriële uitgang geeft de waarde 1010 weer. Let op: de LSB wordt altijd eerst verzonden!
J
K
J
K
J
K
J
K
klok ingang
D=1
&
&
C=0
&
B=1
&
A=0
&
load puls
Parallelle ingang
&
seriële uitgang
load puls
seriële uitgang
klok ingang
reset
reset
?
(0)(0)
Vcc
BA
(0)
C D
(0)
Dit is het laatste scherm van dit instructieprogramma
stoppen
tijddiagramnogmaals