MGP
LDmicro user.
Dankzij een COer ben ik bezit gekomen van enkele display's die werden verkocht in Rosmalen door CO.
Hieronder staat een beknopte beschrijving van een seriele driver (RS232) voor die display's.(2400,8,N,1)
Elk display heeft zo'n driver (16F628a) nodig, zo kan er in modules gebouwd worden, voor de prijs van een 16F628a (+-2E) moet je het niet laten.
Je kunt de modules gewoon aan elkaar koppelen door de UART- uitgang van de ene te koppelen aan de ingang van de volgende.
Alle karakters schuiven naar links.
Bij de bouw kun je de µC onder het display monteren, smd of dil versie.
Geen kristal nodig, werkt op de interne oscillator van 4Mhz.
Schema
Hex file.
http://users.telenet.be/hlmaster/MGP/HPDL2416_16F628A_driver.hex
Moest er iemand een printje ontwerpen dan ben ik bereid om de outputpinnen te wijzigen in de software om het printontwerp mogelijks te vereenvoudigen.
Sorry, maar de broncode wordt niet vrijgegeven.
Nog vragen?
1, een beetje nuttloos, met 1 uc kun je in principe een paar honderd van die displays aansturen zonder extreem gekke dingen te moeten doen, alle datalijnen parallel, en boven een display of zes heb je iets van een adresdecoder nodig ( in de vorm van een schuifregister bijvoorbeeld ) waarbij je er 8 per register kunt hangen.
2, de broncode in huis houden is een beetje jammer ... zeker gezien het in dit geval niet veel kan voorstellen.
De eigenlijke display code van het lichtkrantje dat op de stand draaide zijn nog geen tien regels.
[Bericht gewijzigd door Sine op (20%)]
maartenbakker
Golden Member
www.elba-elektro.nl | "The mind is a funny thing. Sometimes it needs a good whack on the side of the head to jar things loose."
Waarom wel een hex en geen broncode? Kennelijk is het niet je doel om een monopolie op het systeem te houden, maar je wilt wel graag dat anderen ermee aan de slag gaan en dingen doen zoals printjes maken.
Realiseer je overigens wel dat de broncode zonder meer te reconstrueren (*) is uit een hex-file, dus je jaagt mensen alleen maar onnodig door hoepels.
(*) Nou moet ik zeggen dat de code in dit geval wel lijkt op gecompileerde code, want als het direct in assembler geschreven was had het er een flink stuk compacter en eleganter uitgezien. Letterlijk de broncode achterhalen lukt dus niet, maar er is wel een identiek programma in uit te reconstrueren.
[Bericht gewijzigd door maartenbakker op (30%)]
MGP
LDmicro user.
Datalijnen parallel, adresdecoders .....
Dat kan allemaal wel zijn, maar dat is voor een persoonlijke toepassing gemaakt.
Ik heb dat enkel gepost voor mensen die de gekochte display's aan het werk willen zien (snel) niets meer!
1,15 euro voor een PIC.
Ik begin er al spijt van te krijgen 
maartenbakker
Golden Member
www.elba-elektro.nl | "The mind is a funny thing. Sometimes it needs a good whack on the side of the head to jar things loose."
Tsja, ik ben gewoon benieuwd waarom je zo moeilijk doet over de broncode. Het gaat je niet om het geld of om het intellectueel eigendom, anders had je die hex-file niet ter beschikking gesteld. Ik maak je dus absoluut geen verwijten, want het staat een ieder vrij om op zijn manier zijn steentje bij te dragen en aangezien dat belangeloos is, zouden verwijten of eisen zeker niet op zijn plaats zijn. Vragen, suggesties of commentaar natuurlijk wel.
Waarom je dan spijt moet krijgen is mij een raadsel; als je zo'n zin over de broncode nadrukkelijk in je stukje opneemt, boud gesteld en zonder verklaring, is het krijgen van vragen daarover toch een kwestie van 'wie kaatst kan de bal verwachten'.
Overigens wil ik benadrukken dat het modulaire concept zeker goed gevonden lijkt, en vast ook goed op zijn plaats zou zijn in het grote showtopic! Ik zie de opmerking van Sine meer als 'er zijn meer wegen die naar Rome leiden'.
Precies,
Deze displays zijn namelijk ontworpen om er zo min mogelijk externe componenten bij nodig te hebben.
En met een adresdecoder bedoel ik niet meer dan een 4094 oid, dan kun je met 1 hele controller een zeker 10 displays aansturen. Dan wordt het twee en een halve euro tegen twintig euro.
Sterker nog met een paar extra uitgangen van die pic kun je er ook direct een display of vier aan hangen.
Die opmerking over de code komt uiteraard omdat je meteen al even meegeeft dat je die niet gaat vrijgeven, mij is een raadsel waarom want zoals ik al aangaf .. zoveel is er niet nodig om die displays aan te sturen, sterker nog, dat is alweer iets waarvoor ze ontworpen zijn, je helde decoder en mux zitten er al in.
Roland van Leusden
It's the rule that you live by and die for It's the one thing you can't deny Even though you don't know what the price is. It is justified.
De eigenlijke display code van het lichtkrantje dat op de stand draaide zijn nog geen tien regels.
Word die dan wel vrij gegeven ?
Jahoor ... jullie weten toch, je mag alles van me hebben, behalve ...
De code is ietwat smerig ( want haastwerk en enkel voor een dagje beurs
) dus of je er veel aan hebt ?
Het kan iig simpeler 
Het hele spul is voor een atmega8 geschreven in bascom
portb.1 tot portb.3 = chip enable van de verschillende displays
Portb.5 = !write van alle displays
portc.0 = A0 van alle displays
portc.1 = A1 van alle displays
Portd.0 tot portd.6 = data lijnen van alle displays
$crystal = 8000000
Config Portd = Output
Config Portb = Output
Config Portc = Output
Dim Dispdata As Byte
Dim A As Byte
Dim B As Byte
Dim C As Byte
Dim D As Byte
Dim Char As Byte
Dim Waitloop As Word
Dim Str_input As String * 250 , Scroll As Byte
Dim Str_temp As String * 1 , Str_text As String * 12 , Str_len As Byte
Do
Begin:
'disable write
Portb.5 = 1
'#############################################
Str_input = " ** SIEMENS DL2416T ALPHANUMERIEKE DISPLAYS ** DIRECT UC INTERFACEBAAR ## EET ASCII & VIJF VOLT ## RETRO LED TECH UIT DE 80'S !! NU BIJ CIRCUITSONLINE VOOR SLECHTS VIJF EURO / STUK ... OF DRIE VOOR 12,50 !! **** "
For Scroll = 1 To 235
Str_text = Mid(str_input , Scroll , 12)
Waitms 160 'scroll speed
Gosub Update
Next Scroll
For Waitloop = 0 To 300
Str_text = " 1234567890 "
Gosub Update
Next Waitloop
For Waitloop = 0 To 300
Str_text = "ABCDEFGHIJKL"
Gosub Update
Next Waitloop
For Waitloop = 0 To 300
Str_text = "!@#$%^&*()[]"
Gosub Update
Next Waitloop
For Waitloop = 0 To 300
' 123456789012
Str_text = "-=_+\/,.?'<>"
Gosub Update
Next Waitloop
For Waitloop = 0 To 400
' 123456789012
Str_text = "VIJF EURO/ST"
Gosub Update
Next Waitloop
For Waitloop = 0 To 400
' 123456789012
Str_text = "3 VOOR 12,50"
Gosub Update
Next Waitloop
Loop
Update:
'### OUTPUT TO DISPLAY ###
For A = 1 To 12 'digit 1 to 12
D = 13 - A 'invert digit order ( 1 = far right )
Str_temp = Mid(str_text , D , 1)
Char = Asc(str_temp)
Portd = Char 'ASCII to display
C = A - 1 ' start display count at '0'
If C < 8 Then
If C < 4 Then ' set write enables
B = C
Portb.1 = 0
Portb.2 = 1
Portb.3 = 1
Else
B = C - 4
Portb.1 = 1
Portb.2 = 0
Portb.3 = 1
End If
Else
B = C - 8
Portb.1 = 1
Portb.2 = 1
Portb.3 = 0
End If
Portc = B
Waitus 500
Portb.5 = 0 'write enable
Waitus 500
Portb.5 = 1
Next A