TIL311 Hexadecimaal Display
Aansturen van een Texas Instruments TIL311 hexadecimaal LED display
De TIL311 datasheet.
Korte beschrijving:

Op deze pagina vind je een aantal voorbeelden omtrent het aansturen van een TIL311 hexadecimaal dot-LED-display. De TIL311 werd in 1972 ontwikkeld door Texas Instruments, het is een display met geintegreerde TTL logika, heeft een 4-bit databus, dus met weinig verbindingen in staat om elk hexadecimaal getal (0 - F) weer te geven, wat betekent, ook alle decimale getallen (0 - 9) Door een microcontroller erop aan te sluiten kun je bijv. verschillende grootheden weergeven of andere mogelijkheden, zoals temperatuur (bijv. 2 display's), een rondeteller, een elektronische dobbelsteen, enz. Hier een eenvoudig schema van een TIL311 aangesloten op een AVR microcontroller.

Voorbeeld 1: Een TIL311 direkt aangesloten op een AVR
Aansluitgegevens:

PIN 1 LED VOEDING
PIN 2 DATA INGANG B
PIN 3 DATA INGANG A
PIN 4 LINKER DECIMALE PUNT KATHODE
PIN 5 HOUD INGANG
PIN 6 GEEN FUNKTIE
PIN 7 GEMEENSCHAPPELIJKE MASSA
PIN 8 DOOF INGANG
PIN 9 GEEN FUNKTIE
PIN 10 RECHTER DECIMALE PUNT KATHODE
PIN 11 GEEN FUNKTIE
PIN 12 DATA INGANG D
PIN 13 DATA INGANG C
PIN 14 LOGIKA VOEDING, Vcc
Hoe programmeer je de AVR:

Om de TIL311 te laten werken moet je een 4-bit getal aanbieden (16 waarden -> 6=hex, 10=deci) op de data ingangen. In dit voorbeeld gebruik ik de eerste nibble (een nibble is halve byte, 1 byte zijn 8-bit's) van PORTB van een AT90S1200. Wil je bijvoorbeeld het getal 8 afbeelden, dan moet je een bit hoog maken op de D ingang van de TIL311, D heeft de binare waarde 8 (D=8, 1000 binair):

ldi display, 0x08
out PORTB, display

Met maar een paar regels assembleertaal kun je de TIL311 tot leven wekken. Het volgende voorbeeld is een decimale opteller met twee TIL311's.


Voorbeeld 2: Twee TIL311's direkt aangesloten op een AT90S1200
Vervolg...

Het verloop van het tellen gaat als volgt: 00 -> 01 -> 02, enz. wanneer je de 10 bereikt moet de eerste nibble op 0 springen, daarna zal ie zo verder tellen: 11 -> 12 -> 13, enz. Start eerst het tellen:

inc display

Op dit moment staat de teller op 01. Is de waarde 10? Zo ja verhoog dan de 2de nibble, zo niet blijf de eerste nibble doortellen, zoals dit:

cpi display, 0x0A
brne showCount

De 2de nibble is precies andersom:

cpi display, 0xA0
brne showCount

Wanneer je de 99 bereikt kun je EE laten afbeelden (error of overflow) simpelweg zo:

ldi display, 0xEE.

Vergeet er niet vertraging in te zetten anders zie je het tellen niet verlopen:

out PORTB, display
ldi temp, 2
rcall longDelay
rjmp upCount


Tweecijferige opteller:

In dit voorbeeld heb ik twee TIL311's aan een Atmel AT90S1200 aangesloten, en er een opteller (00 - 99) van gemaakt. De TIL311 is oude (1972) technologie, en heeft zodoende veel stroom nodig, 1 puntje = 20mA, dus bij het nummer 88 is de stroom op z'n maximum, en is 28x 20mA = 560mA, hierdoor zullen de display's behoorlijk warm worden. Ik heb hier PORTB gebruikt, dit maakt de software vrij simpel. Gebruik de 'doof' ingang tussen het aanbieden van de data, dit maakt het telverloop wat strakker. Het volgende voorbeeldje laat zien hoe je een opteller kan maken met AVR assembleertaal.