zondag 3 juni 2012

teller met schuifrigister

Main:                                                                  Schijven:


In de calculation plaatsen we de data van de getallen die hexadecimaal ingevoerd zijn. Hierna komt de oneindige lus om het programma constant te laten lopen. Bij de volgende calculation wordt de teller terug op 0 gezet. Dit gebeurt nadat de teller de volgende loop 10000 keer overlopen heeft. In deze loop staat er als eerste een calculation. Hierin selecteren we de duizendtallen door: D0 = (tel /1000) MOD 10. Dan komen we in de macro 'schuiven' terecht. Hier wordt de data eerst ingeschreven en dan wordt er een loop 8 maal overlopen. Het 8 maal overlopen komt doordat we 7 segmenten hebben en een decimaal punt. De variable bitje is de data en moet dus een 1 krijgen. Deze variable wordt dan naar poort A0 gestuurd. In de calculation zeggen we dat variable seg7 een plaats naar rechts moet opschuiven. Dit wijst op het volgende segment. Als klok gebruiken we poort A1 die we eerst een "1" sturen en daarna een "0". Als dit 8 maal overlopen is dan komen we terug in het hoofdprogramma waar we door gaan. Het volgende display is zijn de honderdtallen. Dit kunnen we selecteren door de calculation: D1 = (tel/100) MOD 10. Daarna komen we terug in de macro 'schuiven' die we terug 8 maal overlopen. Dit doen we ook nog is voor de tientallen, calculation: D2 = (tel/10) MOD 10 en voor de eenheden, calculation: D3 = tel MOD 10.
 Voorbeeld:
 Binaire code van 2 is:

a
b
c
d
e
f
g
dp
0
0
1
0
0
1
0
1

Als eerste moeten we  de laatste bit schrijven, het decimaal punt. Dit komt doordat we het altijd laten doorschuiven en als alles ingeschreven staat, staat de eerst bit op de laatste plaats.
 Tijdsdiagram:

















Grafische voorstelling doorschuiven van de segmenten:


Geen opmerkingen:

Een reactie posten