Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > LCD Dog-Grafik Display 160x104 hat jemand Zeichensatz ? > kostet ca 30 Euro offensichtlich ohne einen Zeichensatz > > unten das beigestellte Demo Programm von EPT - aber nur mit wenigen Zeichen > > der Zeichensatzstick kostet 99 Euro - ich brauche aber nur einen Standartzeichensatz ? > > > > > <basic>'******************************************************************************* > '* * > '* This programm for EA DOGM128-6 / ST7565 * > '* 1. send an initialisation code * > '* 2. clears the display * > '* 3. writes "HELLO WORLD" to the first line * > '* * > '* * > '* (c) by EPT Systems GmbH 2009 * > '* * > '******************************************************************************* > > 'SI = Port B3 = Port Bit 19 Datapin (36) at Display > 'CLK = Port B4 = Port Bit 20 Clockpin (37) at Display > 'A0 = Port B5 = Port Bit 21 Initialisationpin (38) at Display > 'CS = Port B7 = Port Bit 23 Chipselectpin (40) at Display > 'Reset = Port B6 = Port Bit 22 Resetpin (39) at Display > > 'Example for 3,3V Single Supply > > #ifdef MEGA32 > #define PORT 2 'Select Port C > #endif > > #ifdef MEGA128 > #define PORT 5 > #endif > > Dim Daten(8) As Integer 'Data Array for converting byte to bit > > > '------------------------------------------------------------------------------ > ' Main Program > ' > Sub main() > > Port_DataDir(PORT,&HFF) 'Input/Output direction: 0=in, 1=out > > ResetHardware() 'Hardwarereset > > Init() 'Display initialisation > > Loeschen() 'Display clear > > Zeichensatz() 'HELLO WORLD output > > End Sub > > Sub ResetHardware() > > Port_WriteBit(22,0) 'Reset (Port B6) to low > Port_WriteBit(22,1) 'Reset (Port B6) to high > > End Sub > > Sub A0_High() > > Port_WriteBit(21,1) 'A0 (Port B5) to high > > End Sub > > Sub A0_Low() > > Port_WriteBit(21,0) 'A0 (Port B5) to low > > End Sub > > Sub CS_Low() > > Port_WriteBit(23,0) 'CS (Port B7) to low (Display get data) > > End Sub > > Sub CS_High() > > Port_WriteBit(23,1) 'CS (Port B7) to high (Display don't get data) > > End Sub > > Sub Daten_schreiben() 'Put Data to SI (Port B3) > Dim i As Integer > > CS_Low() 'Display get data > > For i = 7 To 0 Step -1 'Start with the highest bit > > Port_WriteBit(20,0) 'CLK (Port B4) to Low > > Port_WriteBit(19,Daten(i)) 'Send Data to SI (Port B3) > > Port_WriteBit(20,1) 'CLK (Port B4) to high = Data accept > > Next > > CS_High() 'Display don't get data > > End Sub > > Sub Daten_zerlegen(Daten_Dec As Integer) 'Byte convert to bits > > Dim i As Integer > > For i =0 To 7 'Array clear > Daten(i)=0 > Next > > > If Daten_Dec>=128 Then > Daten(7) =1 > Daten_Dec=Daten_Dec-128 > End If > If Daten_Dec>=64 Then > Daten(6) =1 > Daten_Dec=Daten_Dec-64 > End If > If Daten_Dec>=32 Then > Daten(5) =1 > Daten_Dec=Daten_Dec-32 > End If > If Daten_Dec>=16 Then > Daten(4) =1 > Daten_Dec=Daten_Dec-16 > End If > If Daten_Dec>=8 Then > Daten(3) =1 > Daten_Dec=Daten_Dec-8 > End If > If Daten_Dec>=4 Then > Daten(2) =1 > Daten_Dec=Daten_Dec-4 > End If > If Daten_Dec>=2 Then > Daten(1) =1 > Daten_Dec=Daten_Dec-2 > End If > If Daten_Dec>0 Then > Daten(0) =1 > Daten_Dec=Daten_Dec-1 > End If > > Daten_schreiben() 'Send data to display > > End Sub > > Sub Init() 'Send initialisation data to display > > CS_Low() > A0_Low() 'Initialization > > Daten_zerlegen(64) 'Display Start Line Set > Daten_zerlegen(161) 'ADC reverse(Display Ram Adress) 160=reverse > Daten_zerlegen(192) 'Common Output Mode Select > Daten_zerlegen(166) 'Display normal/reverse 165=reverse > Daten_zerlegen(162) 'Set Bias 1/9 > Daten_zerlegen(47) 'Power Control Set > Daten_zerlegen(248) 'Set Booster to 4x > Daten_zerlegen(0) 'Booster value > Daten_zerlegen(39) 'V0 Voltage Regulator Set > Daten_zerlegen(129) 'Contrast set > Daten_zerlegen(22) 'Contrast value > Daten_zerlegen(173) 'Cursor on/off > Daten_zerlegen(1) 'Flashing mode > > A0_High() 'End Display initialisation > CS_High() 'To reset the internal register > > End Sub > > Sub Displayseite(Zeile As Byte) > > A0_Low() 'Display initialisation > Daten_zerlegen(176+ Zeile) 'Select display page > A0_High() 'End Display initialisation > > End Sub > > Sub Reset() > > A0_Low() 'Display initialisation > Daten_zerlegen(226) 'Internal display reset > A0_High() 'End Display initialisation > > End Sub > > Sub Displaylinie(Linie As Byte) > > A0_Low() 'Display initialisation > Daten_zerlegen(64+ Linie) 'Select display start line > A0_High() 'End Display initialisation > > End Sub > > Sub Displayspalte(Spalte As Byte,Spalte1 As Byte) > > A0_Low() 'Display initialisation > Daten_zerlegen(16+Spalte1) 'Select display column highbyte > Daten_zerlegen(Spalte) 'Select display column lowbyte > A0_High() 'End Display initialisation > > End Sub > > Sub Loeschen() 'Clear display > > Dim i As Integer > Dim Pixel As Byte > Dim Zeile As Byte > > Zeile =0 'Write in Page 0 > Do > Displayseite(Zeile) > Pixel = 0 'No Pixel set > > For i = 0 To 127 'Write Column 0 to 127 with value 0 > > Daten_zerlegen(Pixel) > > Next > > Zeile ++ > Loop While Zeile < 8 'Write in page 0-7 > > Displayseite(0) > Displayspalte(0,0) > 'Displaylinie (0) > > End Sub > > Sub Zeichensatz() > > Dim Daten(88) As Byte > Dim Schleife As Integer > > Schleife = 1 > Display_Aus() 'Display off > > Daten(1)=000 > Daten(2)=127 > Daten(3)=008 > Daten(4)=008 'H > Daten(5)=008 > Daten(6)=127 > Daten(7)=000 > Daten(8)=000 > > Daten(9)=000 > Daten(10)=127 > Daten(11)=073 > Daten(12)=073 'E > Daten(13)=073 > Daten(14)=073 > Daten(15)=000 > Daten(16)=000 > > Daten(17)=000 > Daten(18)=127 > Daten(19)=064 > Daten(20)=064 'L > Daten(21)=064 > Daten(22)=064 > Daten(23)=000 > Daten(24)=000 > > Daten(25)=000 > Daten(26)=127 > Daten(27)=064 > Daten(28)=064 'L > Daten(29)=064 > Daten(30)=064 > Daten(31)=000 > Daten(32)=000 > > Daten(33)=000 > Daten(34)=062 > Daten(35)=065 > Daten(36)=065 'O > Daten(37)=065 > Daten(38)=062 > Daten(39)=000 > Daten(40)=000 > > Daten(41)=000 > Daten(42)=000 > Daten(43)=000 > Daten(44)=000 'Space > Daten(45)=000 > Daten(46)=000 > Daten(47)=000 > Daten(48)=000 > > Daten(49)=000 > Daten(50)=063 > Daten(51)=064 > Daten(52)=048 'W > Daten(53)=064 > Daten(54)=063 > Daten(55)=000 > Daten(56)=000 > > Daten(57)=000 > Daten(58)=062 > Daten(59)=065 > Daten(60)=065 'O > Daten(61)=065 > Daten(62)=062 > Daten(63)=000 > Daten(64)=000 > > Daten(65)=000 > Daten(66)=127 > Daten(67)=009 > Daten(68)=009 'R > Daten(69)=009 > Daten(70)=118 > Daten(71)=000 > Daten(72)=000 > > Daten(73)=000 > Daten(74)=127 > Daten(75)=064 > Daten(76)=064 'L > Daten(77)=064 > Daten(78)=064 > Daten(79)=000 > Daten(80)=000 > > Daten(81)=000 > Daten(82)=127 > Daten(83)=065 > Daten(84)=065 'D > Daten(85)=034 > Daten(86)=028 > Daten(87)=000 > Daten(88)=000 > > Daten(89)=000 > Daten(90)=000 > Daten(91)=000 > Daten(92)=000 'Space > Daten(93)=000 > Daten(94)=000 > Daten(95)=000 > Daten(96)=000 > > For Schleife = 1 To 96 'Put fonts to display > Daten_zerlegen(Daten(Schleife)) > Next > > Display_Ein() 'Display on > > 'Displayseite(0) > 'Displayspalte(0,0) > Displaylinie (0) > > End Sub > > Sub Display_Ein() > > A0_Low() 'Display initialisation > Daten_zerlegen(175) 'Display on > A0_High() 'End Display initialisation > > End Sub > > Sub Display_Aus() > > A0_Low() 'Display initialisation > Daten_zerlegen(174) 'Display off > A0_High() 'End Display initialisation > > End Sub</basic>