LCD Dog-Grafik Display 160x104 hat jemand Zeichensatz ? Kategorie: Programmierung Basic (von Ernst H. - 21.11.2010 17:00) | ||
| ||
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 ? '******************************************************************************* '* * '* 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 | ||
Antwort schreiben Antworten: Re: LCD Dog-Grafik Display 160x104 hat jemand Zeichensatz ? (von jo - 22.11.2010 13:36) Re: LCD Dog-Grafik Display 160x104 hat jemand Zeichensatz ? (von jo - 22.11.2010 15:57) Re: LCD Dog-Grafik Display 160x104 hat jemand Zeichensatz ? (von Ernst H. - 22.11.2010 17:06) Re: LCD Dog-Grafik Display 160x104 hat jemand Zeichensatz ? (von jo - 22.11.2010 17:59) Re: LCD Dog-Grafik Display 160x104 hat jemand Zeichensatz ? (von Ernst H. - 22.11.2010 19:56) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum