Siemens S65
s65_pinout
S65 Montageboard

Um die ersten Gehversuche mit dem Display Siemens S65 zu unternehmen , wurde ein Montageboard einschließlich Pegelwandlerplatine entwickelt.

Dabei fand eine Kunststoffplatte aus dem Baumarkt Anwendung.

Das Pegelwandlerboard beinhaltet eine Ladungspumpe um für die Hintergrundbeleuchtung die Spannung bereitzustellen.

Nun ist nur eine Spannungsversorgung mit 5V notwendig.

 

Für den ersten Funktionstest wurde ein Bascom-Testprogramm entworfen

'###############################################################################
'#                                                                             #
'#  Siemens S65 Testprogramm mit Frequenzerzeugung für Ladungspumpe ©                    #
'#                                                                              #
'###############################################################################
'
'Ansteuerung für das Siemens-Display S65 mit der Anfangsnummer LS020...
'Copyright Martin Kuehn 1.Nov.2005
'martin-k@xmail.net

'-------------------------------------------------------------------------------
'Geändert von Wigbert Picht
'
'Es wurde beim m8 die Ports B0 Bis B5 verwendet
'Grün hinterlegte Ports sind die ursprünglichen
'
'Elektro-Picht@gmx.de
'
'
'    !!!Diese Software ist nur für den privaten Gebrauch bestimmt!!!
'    !!!Kommerzielle Anwendungen bedürfen meiner Zustimmung!!!
'  °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
'
'-------------------------------------------------------------------------------

'Code basiert auf Reengineering von Christian Kranz
' http://www.superkranz.de/christian/S65_Display/DisplayIndex.html

'Pinbelegung, Rückseite Display, Anschluss auf linker Seite
'Auflistung von oben nach unten

'RS    B0'C0
'Reset  B5'D7
'CS    B2'C2
'CLK   B3'C4
'DAT   B4'C6
'45 Khz  B1
'Vcc   3 Volt (max. 3.3 Volt, min. etwa 2.4 Volt)
'GND
'Vdigital 3 Volt, kann aber auch 1.8 Volt betragen, habe ich mit Vcc verbunden
'LED+   etwa 10.5 Volt, 20 mA (max 30 mA)
'LED- (GND)

'Da es sich hier um keine SPI-Ansteuerung handelt, können alle Pins beliebig
'ausgetauscht werden.
'Wichtig ist, dass beim Compilieren die korrekte Taktfrequenz angegeben wird
'Code wurde mit Atmega128L 8 MHz getestet

'###############################################################################
'
$regfile = "m8def.dat "                   'Controllertyp
$crystal = 9216000                     'Quarzfrequenz

'Ddrc = &B00011111                      'Port C als Output
'Ddrd = &B11111111                      'Port D als Output
Ddrb = &B00111111

Dim A As Word , B As Word , R As Byte , F As Word , T As Byte


'###############################################################################
'XXXXXX Frequenz 45 Khz für Displaybeleuchtung mit Timer XXXXX
'###############################################################################

Config Timer1 = Timer , Compare A = Toggle , Prescale = 1 , Clear Timer = 1
Compare1a = 100

'###############################################################################



'###############################################################################
'    Start der S65-Ansteuerung
'###############################################################################
Anfang:
Portb.5 = 1                         'Portd.7 = 1
Waitms 10
Portb.5 = 0                         'Portd.7 = 0                         'Reset
Portb.2 = 1                         'Portc.2 = 1
Portb.3 = 1                         'Portc.4 = 1
Portb.4 = 1                         'Portc.6 = 1
Portb.0 = 1                         'Portc.0 = 1

Waitms 1
Portb.5 = 1                         'Portd.7 = 1                         'Reset Ende
Waitms 10


Portb.2 = 1                         'Portc.2 = 1                         'CS select, Start
Waitms 1
Portb.0 = 1                         'Portc.0 = 1                         'RS high, Command

' Displayinitialisierung

Restore Init1
For R = 1 To 12
Read A
Gosub 16
Next

Waitms 7                          'diese Zeit ist sehr wichtig, sollte keinesfalls unterschritten werden

Restore Init2
For R = 1 To 23
Read A
Gosub 16
Next




'########################
'Farbverläufe erzeugen
'########################

'Blau malen

A = &HEF90
Gosub 16
A = &H0500                         ' 00 => Bild wird von oben nach unten gemalt
Gosub 16
A = &H0800                         'x1
Gosub 16
A = &H092B                         'x2
Gosub 16
A = &H0A00                         'y1
Gosub 16
A = &H0BAF                         'y2
Gosub 16

Portb.0 = 0                         'Portc.0 = 0                         ' RS auf low setzen für Bilddaten
F = 0

For T = 1 To 32                       '32 Farbabstufungen schwarz => blau
For R = 1 To 88                       '2 Zeilen gleiche Farbe
A = F
Gosub 16
Next R
F = F + 1
Next T

F = 31

For T = 1 To 32                       '32 Farbabstufungen blau => weiss
For R = 1 To 88                       '2 Zeilen gleiche Farbe
A = F
Gosub 16
Next R
F = F + 2112
Next T

Portb.0 = 1                         'Portc.0 = 1



'Grün malen

A = &HEF90
Gosub 16
A = &H0500
Gosub 16
A = &H082C                         'x1
Gosub 16
A = &H0957                         'x2
Gosub 16
A = &H0A00                         'y1
Gosub 16
A = &H0BAF                         'y2
Gosub 16


Portb.0 = 0                         'Portc.0 = 0
F = 0

For T = 1 To 32
For R = 1 To 88
A = F
Gosub 16
Next R
F = F + 64
Next T

F = 2016

For T = 1 To 32
For R = 1 To 88
A = F
Gosub 16
Next R
F = F + 2049
Next T

Portb.2 = 1                         'Portc.2 = 1
Portb.0 = 1                         'Portc.0 = 1



'Rot malen

A = &HEF90
Gosub 16
A = &H0500
Gosub 16
A = &H0858                         'x1
Gosub 16
A = &H0983                         'x2
Gosub 16
A = &H0A00                         'y1
Gosub 16
A = &H0BAF                         'y2
Gosub 16

Portb.0 = 0                         'Portc.0 = 0
F = 0

For T = 1 To 32
For R = 1 To 88
A = F
Gosub 16
Next R
F = F + 2048
Next T

F = 63488

For T = 1 To 32
For R = 1 To 88
A = F
Gosub 16
Next R
F = F + 65
Next T

Portb.0 = 1                         'Portc.0 = 1



' Schwarz => weiss

A = &HEF90
Gosub 16
A = &H0504                         ' 04 => Bild wird von links nach rechts gemalt
Gosub 16
A = &H0800                         'x1
Gosub 16
A = &H0983                         'x2
Gosub 16
A = &H0A80                         'y1
Gosub 16
A = &H0BAF                         'y2
Gosub 16

Portb.0 = 0                         'Portc.0 = 0
F = 0

For T = 1 To 32                       '32 Farbabstufungen schwarz => weiss
For R = 1 To 192                      '2 Zeilen gleiche Farbe
A = F
Gosub 16
Next R
F = F + 2113
Next T

Portb.0 = 1                         'Portc.0 = 1




' cyan

A = &HEF90
Gosub 16
A = &H0504                         ' 04 => Bild wird von links nach rechts gemalt
Gosub 16
A = &H0880                         'x1
Gosub 16
A = &H0983                         'x2
Gosub 16
A = &H0A80                         'y1
Gosub 16
A = &H0B8F                         'y2
Gosub 16

Portb.0 = 0                         'Portc.0 = 0

For R = 1 To 64
A = 2047
Gosub 16
Next R

Portb.0 = 1                         'Portc.0 = 1



' magenta

A = &HEF90
Gosub 16
A = &H0504                         ' 04 => Bild wird von links nach rechts gemalt
Gosub 16
A = &H0880                         'x1
Gosub 16
A = &H0983                         'x2
Gosub 16
A = &H0A90                         'y1
Gosub 16
A = &H0B9F                         'y2
Gosub 16

Portb.0 = 0                         'Portc.0 = 0

For R = 1 To 64
A = 64241
Gosub 16
Next R

Portb.0 = 1                         'Portc.0 = 1



' gelb

A = &HEF90
Gosub 16
A = &H0504                         ' 04 => Bild wird von links nach rechts gemalt
Gosub 16
A = &H0880                         'x1
Gosub 16
A = &H0983                         'x2
Gosub 16
A = &H0AA0                         'y1
Gosub 16
A = &H0BAF                         'y2
Gosub 16

Portb.0 = 0                         'Portc.0 = 0

For R = 1 To 64
A = 65504
Gosub 16
Next R

Portb.0 = 1                         'Portc.0 = 1


Do                             'Schleife da Timer
'Powerdown
Loop
End



16:
Portb.2 = 0                         'Portc.2 = 0
Shiftout Portb.4 , Portb.3 , A , A             'Portc.6 , Portc.4
Portb.2 = 1                         'Portc.2 = 1
Return





Init1:
Data &HFDFD% , &HFDFD%,
Data &HEF00%,
Data &HEE04% , &H1B04%,
Data &HFEFE% , &HFEFE%,
Data &HEF90% , &H4A04% , &H7F3F% , &HEE04% , &H4306%

Init2:
Data &HEF90% , &H0983% , &H0800% , &H0BAF% , &H0A00% , &H0500% , &H0600% , &H0700%,
Data &HEF00%,
Data &HEE0C%,
Data &HEF90% , &H0080%,
Data &HEFB0% , &H4902%,
Data &HEF00%,
Data &H7F01% , &HE181%,
Data &HE202%,
Data &HE276%,
Data &HE183%,
Data &H8001%,
Data &HEF90%,
Data &H0000%

Bascomcode im Downloadbereich

[Siemens S65]