Grafikus LCD
Negativ 0...-24V, de a jellemzo az -5...-1V (MAX232-rol leveheto).
A sugoban a bgf kiterjesztesre keress rá, ill a showpic parancsra.
Most írom a GraphLCD fejezetet (is), saját logó, kör, különféle fontok már mennek)))
Éna KS0108-as chipsetet és a T6963C chipet használtam eddig.
Ha kérdés van, írj:) A SED chip kipróba alatt van.
A sugoban a bgf kiterjesztesre keress rá, ill a showpic parancsra.
Most írom a GraphLCD fejezetet (is), saját logó, kör, különféle fontok már mennek)))
Éna KS0108-as chipsetet és a T6963C chipet használtam eddig.
Ha kérdés van, írj:) A SED chip kipróba alatt van.
- Masterfoxx
- DrótVégénSzéndarab
- Hozzászólások: 37
- Csatlakozott: 2006. január 4. szerda, 7:00
Most rendeltem meg a kijelzőt a chipcad-től. A fekete-fehéret (zöldet) csak 2,5 hónap múlva tudnák kiszállítani, ekkor meg már vége lenne a nyáriszünetnek, amikor foglalkoznék vele. Hát "sajnos" meg kellett rendelnem a kék-fehér változatot , Legalább dizájnos lesz a szkóp!
Ez a showpic + a bgf fájl kezelés nem is bonyolult ránézésre!
Nehezebbnek gondoltam. Akkor megrajzolom paintbe a menürenszert, mint valami mobiltelefonon, aztán csak egy keretet kell az ikonok körül mozgatni, amire van a rectangle parancs ha jól tudom .
Ez a showpic + a bgf fájl kezelés nem is bonyolult ránézésre!
Nehezebbnek gondoltam. Akkor megrajzolom paintbe a menürenszert, mint valami mobiltelefonon, aztán csak egy keretet kell az ikonok körül mozgatni, amire van a rectangle parancs ha jól tudom .
- Masterfoxx
- DrótVégénSzéndarab
- Hozzászólások: 37
- Csatlakozott: 2006. január 4. szerda, 7:00
Szia!
Megjött a kijelző, Összeraktam breadboardon, rádobtam a Bascom-os tesztprogramot, átírtam 240*128-ra...
De az eredmény: egy nagy fehér kijelző... valamit biztos elrontottam...
Mindegy, kísérletezek vele...
Megjött a kijelző, Összeraktam breadboardon, rádobtam a Bascom-os tesztprogramot, átírtam 240*128-ra...
De az eredmény: egy nagy fehér kijelző... valamit biztos elrontottam...
Mindegy, kísérletezek vele...
Kód: Egész kijelölése
'First we define that we use a graphic LCD
Config Graphlcd = 240 * 128 , Dataport = Porta , Controlport = Portc , Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 4 , Fs = 5 , Mode = 8
'The dataport is the portname that is connected to the data lines of the LCD
'The controlport is the portname which pins are used to control the lcd
'CE, CD etc. are the pin number of the CONTROLPORT.
' For example CE =2 because it is connected to PORTC.2
'Dim variables (y not used)
Dim X As Byte , Y As Byte
'Clear the screen will both clear text and graph display
Cls
'Other options are :
' CLS TEXT to clear only the text display
' CLS GRAPH to clear only the graphical part
'locate works like the normal LCD locate statement
' LOCATE LINE,COLUMN LINE can be 1-8 and column 0-30
Locate 1 , 1
'Show some text
Lcd "MCS Electronics"
'And some othe text on line 2
Locate 2 , 1 : Lcd "T6963c support"
'wait 1 sec
Wait 1
' draw a line using PSET X,Y, ON/OFF
' PSET on.off param is 0 to clear a pixel and any other value to turn it on
For X = 0 To 140
Pset X , 20 , 255 ' set the pixel
Next
Wait 1
'Now it is time to show a picture
'SHOWPIC X,Y,label
'The label points to a label that holds the image data
'Showpic 0 , 0 , Plaatje
Wait 1
'Cls Text
' clear the text
Do
Loop
End
Na megkerestem a kodot:
Nalam ez megy. Szepen lepesenkint. a kep a TavIR LOGO, de azt nem rakom ide (binary file), de az egeszet a Letöltésekből ( http://avr.tavir.hu/modules.php?name=Do ... load&cid=4 ) a 803. projekt alól letöltheted.
Nalam ez megy. Szepen lepesenkint. a kep a TavIR LOGO, de azt nem rakom ide (binary file), de az egeszet a Letöltésekből ( http://avr.tavir.hu/modules.php?name=Do ... load&cid=4 ) a 803. projekt alól letöltheted.
Kód: Egész kijelölése
'********************************************************************
'* Program nev: Mega16-16.bas *
'* Fordito : BASCOM AVR, (V.1.11.8.1) *
'* Datum : 2006-03-10 *
'* Honlap : http://avr.tavir.hu *
'* *
'* Irta : Cseh Róbert *
'* E-mail : csehrobert @ tavir.hu *
'********************************************************************
'ATMEGA16 mintapanel kiegeszito program Mega Board v3:
'Graph LCD.
'Fuse: External Xtal: 1111:1111
' JTAG : Disable
'
$regfile = "m16def.dat" ' specify the used micro
$crystal = 14745600 ' used crystal frequency
$baud = 9600 ' use baud rate
'some routines to control the display are in the glcdKS108.lib file
'$lib "glcdKS108.lib"
$lib "glcdKS108.lbx"
'we need to include the font files
'Notice that this is a testfont with only numbers defined !
$include "smallfont8x8.font"
'$include "font8x8.font"
'$include "font16x16.font"
Config Pind.4 = Output 'LCD háttérvilágítás
Portd.4 = 1
Print "Cnf"; ' printing will still work as only the receiver pin is disabled
'First we define that we use a graphic LCD
Config Graphlcd = 128 * 64sed , Dataport = Portb , Controlport = Porta , Ce = 1 , Ce2 = 2 , Cd = 5 , Rd = 4 , Reset = 0 , Enable = 3
'The dataport is the portname that is connected to the data lines of the LCD
'The controlport is the portname which pins are used to control the lcd
'CE =CS1 Chip select
'CE2=CS2 Chip select second chip
'CD=Data/instruction
'RD=Read
'RESET = reset
'ENABLE= Chip Enable
'Dim variables (y not used)
Dim X As Byte , Y As Byte
Print "-Cls";
Cls
Wait 1
'specify the font we want to use
Setfont Font8x8
Print "-1";
'You can use locate but the columns have a range from 1-128
'When you want to show somthing on the LCD, use the LDAT command
'LCDAT Y , COL, value
Lcdat 1 , 1 , "123"
'lcdat accepts an additional param for inversing the text
Lcdat 2 , 1 , "123" , 1 ' will inverse the text
'Now use a different font
'Setfont Font8x8
'since the 16*16 font uses 2 rows, show on row 3
'Lcdat 1 , 1 , "2345"
'Lcdat 2 , 56 , "2345656"
Print "-Gr";
Wait 1
Line(0 , 0) -(127 , 64) , 1 'make line
Wait 2
Line(0 , 0) -(127 , 64) , 0 'remove line
For Y = 1 To 20
Circle(30 , 30) , Y , 1
Waitms 100
Next
Wait 1
Glcdcmd &H3E , 1 : Glcdcmd &H3E , 2 ' both displays off
Wait 1
Glcdcmd &H3F , 1 : Glcdcmd &H3F , 2 'both on
'GLCDCMD accepts an additional param to select the chip
'With multiple, GLCDCMD statements, it is best to specify the chip only the first time
Print "-Pic"
Showpic 0 , 0 , Plaatje 'show a comnpressed picture
End 'end program
Plaatje:
'include the picture data
$bgf "tavir.bgf"
A hozzászólást 1 alkalommal szerkesztették, utoljára Robert 2008. július 11. péntek, 13:49-kor.
- Masterfoxx
- DrótVégénSzéndarab
- Hozzászólások: 37
- Csatlakozott: 2006. január 4. szerda, 7:00
Még mindig nem jó
Ha berakok initlcd-t akkor meg hibaüzenet ad.
Az LCD-nek van egy MD2 nevezetű lába: Columns select : "H" 32 columns, "L" 40 columns,
én ezt gnd re kötöttem, de ha H ra rakom akkor se megy...
A bascom jelölései: és az LCD jelölései ahogy én kötöttem
Ce - /CE
Cd - C//D
Wr -R//W
Rd -/RD
Reset -/Reset
Fs -FS
Amit mondtál, hogy töltsek le azzal sajnos nem mentem messzire
Ez T6963C IC-s,
Itt nálam nem kell megadni fontokat?
Ha berakok initlcd-t akkor meg hibaüzenet ad.
Az LCD-nek van egy MD2 nevezetű lába: Columns select : "H" 32 columns, "L" 40 columns,
én ezt gnd re kötöttem, de ha H ra rakom akkor se megy...
A bascom jelölései: és az LCD jelölései ahogy én kötöttem
Ce - /CE
Cd - C//D
Wr -R//W
Rd -/RD
Reset -/Reset
Fs -FS
Amit mondtál, hogy töltsek le azzal sajnos nem mentem messzire
Ez T6963C IC-s,
Itt nálam nem kell megadni fontokat?
Kód: Egész kijelölése
$regfile = "m16def.dat"
Config Graphlcd = 240 * 128 , Dataport = Porta , Controlport = Portc , Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 4 , Fs = 5 , Mode = 8
Cls
Locate 1 , 1
Lcd "EW24D31BMW-test"
Wait 1
Showpic 0 , 0 , Plaatje
Wait 1
Cls Text
Do
Wait 1
Loop
End
Plaatje:
$bgf "test.bgf"
A bekötés a lábmegfeleltetés szerint OK.
az MD csak a belső _fix_ betűkészlet használatakor kell, hogy hányszor hányas betűket használjon. Így Neked a $font nem szükséges.
Nálad a bekötés:
IClab(port ).........LCDláb
PortA.0...7 ......... dataport az LCD-n 0..7
PortC.2 ............. CE (Chip Enable)
PortC.3 ............. Command/Data (C/D)
(a köv kettőt lehet hogy meg kell cserélni!)
PortC.0 ............. Wr/Rd (read/Write?)
PortC.1 .............. Rd
PortC.4 .............. Reset
PortC.5 ............. Font Select
Hülye kérdés: Kontrasztot jól kötötted be? A modul Vee láb és a GND közt a trimmerpoti két vége és a leágazás a V0-ra?
A Vee lábon ott van a -12...24V ?
Én kimérném a lábakat is...
Bascom 1.11.7.4 súgó:
ConfigLCD parancs súgó:
Config GRAPHLCD = type , DATAPORT = port, CONTROLPORT=port , CE = pin , CD = pin , WR = pin, RD=pin, RESET= pin, FS=pin, MODE = mode
Remarks
Type This must be 240 * 64, 128* 128, 128 * 64 , 160 * 48 or 240 * 128. For SED displays use 128 * 64sed or 120* 64SED
Dataport This is the name of the port that is used to put the data on the LCD data pins db0-db7.
PORTA for example.
Controlport This is the name of the port that is used to control the LCD control pins. PORTC for example
Ce The pin number that is used to enable the chip on the LCD.
Cd The pin number that is used to control the CD pin of the display.
WR The pin number that is used to control the /WR pin of the display.
RD The pin number that is used to control the /RD pin of the display.
FS The pin number that is used to control the FS pin of the display.Not needed for SED based displays.
RESET The pin number that is used to control the RESET pin of the display.
MODE The number of columns for use as text display. Use 8 for X-pixels / 8 = 30 columns for a 240 pixel screen. When you specify 6, 240 / 6 = 40 columns can be used.
The following connections were used:
PORTA.0 to PORTA.7 to DB0-DB7 of the LCD
PORTC.5 to FS, font select of LCD
PORTC.2 to CE, chip enable of LCD
PORTC.3 to CD, code/data select of LCD
PORTC.0 to WR of LCD, write
PORTC.1 to RD of LCD, read
PORTC.4 to RESET of LCD, reset LCD
az MD csak a belső _fix_ betűkészlet használatakor kell, hogy hányszor hányas betűket használjon. Így Neked a $font nem szükséges.
Nálad a bekötés:
IClab(port ).........LCDláb
PortA.0...7 ......... dataport az LCD-n 0..7
PortC.2 ............. CE (Chip Enable)
PortC.3 ............. Command/Data (C/D)
(a köv kettőt lehet hogy meg kell cserélni!)
PortC.0 ............. Wr/Rd (read/Write?)
PortC.1 .............. Rd
PortC.4 .............. Reset
PortC.5 ............. Font Select
Hülye kérdés: Kontrasztot jól kötötted be? A modul Vee láb és a GND közt a trimmerpoti két vége és a leágazás a V0-ra?
A Vee lábon ott van a -12...24V ?
Én kimérném a lábakat is...
Bascom 1.11.7.4 súgó:
Kód: Egész kijelölése
'-----------------------------------------------------------------
' (c) 2001-2003 MCS Electronics
' T6963C graphic display support demo 240 * 128
'-----------------------------------------------------------------
'The connections of the LCD used in this demo
'LCD pin connected to
' 1 GND GND
'2 GND GND
'3 +5V +5V
'4 -9V -9V potmeter
'5 /WR PORTC.0
'6 /RD PORTC.1
'7 /CE PORTC.2
'8 C/D PORTC.3
'9 NC not conneted
'10 RESET PORTC.4
'11-18 D0-D7 PA
'19 FS PORTC.5
'20 NC not connected
$crystal = 8000000
'First we define that we use a graphic LCD
' Only 240*64 supported yet
Config Graphlcd = 240 * 128 , Dataport = Porta , Controlport = Portc , Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 4 , Fs = 5 , Mode = 8
'The dataport is the portname that is connected to the data lines of the LCD
'The controlport is the portname which pins are used to control the lcd
'CE, CD etc. are the pin number of the CONTROLPORT.
' For example CE =2 because it is connected to PORTC.2
'mode 8 gives 240 / 8 = 30 columns , mode=6 gives 240 / 6 = 40 columns
'Dim variables (y not used)
Dim X As Byte , Y As Byte
'Clear the screen will both clear text and graph display
Cls
'Other options are :
' CLS TEXT to clear only the text display
' CLS GRAPH to clear only the graphical part
Cursor Off
Wait 1
'locate works like the normal LCD locate statement
' LOCATE LINE,COLUMN LINE can be 1-8 and column 0-30
Locate 1 , 1
'Show some text
Lcd "MCS Electronics"
'And some othe text on line 2
Locate 2 , 1 : Lcd "T6963c support"
Locate 3 , 1 : Lcd "1234567890123456789012345678901234567890"
Locate 16 , 1 : Lcd "write this to the lower line"
Wait 2
Cls Text
'use the new LINE statement to create a box
'LINE(X0,Y0) - (X1,Y1), on/off
Line(0 , 0) -(239 , 127) , 255 ' diagonal line
Line(0 , 127) -(239 , 0) , 255 ' diagonal line
Line(0 , 0) -(240 , 0) , 255 ' horizontal upper line
Line(0 , 127) -(239 , 127) , 255 'horizontal lower line
Line(0 , 0) -(0 , 127) , 255 ' vertical left line
Line(239 , 0) -(239 , 127) , 255 ' vertical right line
Wait 2
' draw a line using PSET X,Y, ON/OFF
' PSET on.off param is 0 to clear a pixel and any other value to turn it on
For X = 0 To 140
Pset X , 20 , 255 ' set the pixel
Next
For X = 0 To 140
Pset X , 127 , 255 ' set the pixel
Next
Wait 2
'circle time
'circle(X,Y), radius, color
'X,y is the middle of the circle,color must be 255 to show a pixel and 0 to clear a pixel
For X = 1 To 10
Circle(20 , 20) , 20 , 255 ' show circle
Wait 1
Circle(20 , 20) , 20 , 0 'remove circle
Wait 1
Next
Wait 2
'Now it is time to show a picture
'SHOWPIC X,Y,label
'The label points to a label that holds the image data
Showpic 0 , 0 , Plaatje
Showpic 0 , 64 , Plaatje ' show 2 since we have a big display
Wait 2
Cls Text ' clear the text
End
'This label holds the mage data
Plaatje:
'$BGF will put the bitmap into the program at this location
$bgf "mcs.bgf"
'You could insert other picture data here
ConfigLCD parancs súgó:
Config GRAPHLCD = type , DATAPORT = port, CONTROLPORT=port , CE = pin , CD = pin , WR = pin, RD=pin, RESET= pin, FS=pin, MODE = mode
Remarks
Type This must be 240 * 64, 128* 128, 128 * 64 , 160 * 48 or 240 * 128. For SED displays use 128 * 64sed or 120* 64SED
Dataport This is the name of the port that is used to put the data on the LCD data pins db0-db7.
PORTA for example.
Controlport This is the name of the port that is used to control the LCD control pins. PORTC for example
Ce The pin number that is used to enable the chip on the LCD.
Cd The pin number that is used to control the CD pin of the display.
WR The pin number that is used to control the /WR pin of the display.
RD The pin number that is used to control the /RD pin of the display.
FS The pin number that is used to control the FS pin of the display.Not needed for SED based displays.
RESET The pin number that is used to control the RESET pin of the display.
MODE The number of columns for use as text display. Use 8 for X-pixels / 8 = 30 columns for a 240 pixel screen. When you specify 6, 240 / 6 = 40 columns can be used.
The following connections were used:
PORTA.0 to PORTA.7 to DB0-DB7 of the LCD
PORTC.5 to FS, font select of LCD
PORTC.2 to CE, chip enable of LCD
PORTC.3 to CD, code/data select of LCD
PORTC.0 to WR of LCD, write
PORTC.1 to RD of LCD, read
PORTC.4 to RESET of LCD, reset LCD
Én beraknék mindan egyes grafuikus LCDre menő utasítás után valami visszajelzést, így tudod hol jár a progi. Én az RS232 kimeneten visszaíroma sor számát holvagyok. Így látom hogy az init, a config, vagy valami más hibázik. Rossz config esetén a CLSbe belehal, és ott mintha lefagyna a program. Ekkor a CE láb szokott elkötve lenni (nálam legalábbis az volt).
- Masterfoxx
- DrótVégénSzéndarab
- Hozzászólások: 37
- Csatlakozott: 2006. január 4. szerda, 7:00
"Rossz konfig esetén a cls-be belehal"
Tehát közben azért ellenőrzi a program hogy van-e kapcsolat az LCDvel?
Holnap majd kipróbálom ezt az RS232 megoldást, már kicsit kifáradtam a kísérletezéssel... Meg elmúlt 10 óra is...
Közben sikerült kiakasztani a kijelzőt egy resettel, hogy összevissza (kínai) karaktereket rajzolgatott ki, és néhány villogott... Legalább be sikerült állítani a kontrasztot, és megnyugodtam, hogy valószínűleg működőképes...
Azelőtt azt hittem hogy alapból bekapcsolás után minden szegmense világít (fehéren), ezért ütközésig feltekertem a kontraszt potit, ekkor kifehéredett teljesen. Késöbb lejebb hajtottam, és amikor kiakadt akkor vettem észre, hogy ez a helyes beállítás
Tehát közben azért ellenőrzi a program hogy van-e kapcsolat az LCDvel?
Holnap majd kipróbálom ezt az RS232 megoldást, már kicsit kifáradtam a kísérletezéssel... Meg elmúlt 10 óra is...
Közben sikerült kiakasztani a kijelzőt egy resettel, hogy összevissza (kínai) karaktereket rajzolgatott ki, és néhány villogott... Legalább be sikerült állítani a kontrasztot, és megnyugodtam, hogy valószínűleg működőképes...
Azelőtt azt hittem hogy alapból bekapcsolás után minden szegmense világít (fehéren), ezért ütközésig feltekertem a kontraszt potit, ekkor kifehéredett teljesen. Késöbb lejebb hajtottam, és amikor kiakadt akkor vettem észre, hogy ez a helyes beállítás
- Masterfoxx
- DrótVégénSzéndarab
- Hozzászólások: 37
- Csatlakozott: 2006. január 4. szerda, 7:00
Szia Róbert!
Köszi a segítséget!
ELINDULT A KIJELZŐ!!!
Végső elkeseredésemben átböngésztem figyelmesen a T6963C adatlapját, és ott megtaláltam a reset áramkört, amit ajánlanak hozzá. Ez egy kondiból meg egy ellenállásból áll. Ráraktam, bekapcsolom, és lesett az állam.
Az elején valamilyen szemcsés kép van, mint a tv-n, aztán cls, aztán jött a szöveg. Késöbb beraktam egy bmpt. Az mondjuk széét volt esve, ekkor a config LCD sorban a mode után nálam 6 volt írva, átírtam vissza 8-ra,
Tökéletesen működik!!
Itt van egy kép róla
>>kép<<
Köszi a segítséget!
ELINDULT A KIJELZŐ!!!
Végső elkeseredésemben átböngésztem figyelmesen a T6963C adatlapját, és ott megtaláltam a reset áramkört, amit ajánlanak hozzá. Ez egy kondiból meg egy ellenállásból áll. Ráraktam, bekapcsolom, és lesett az állam.
Az elején valamilyen szemcsés kép van, mint a tv-n, aztán cls, aztán jött a szöveg. Késöbb beraktam egy bmpt. Az mondjuk széét volt esve, ekkor a config LCD sorban a mode után nálam 6 volt írva, átírtam vissza 8-ra,
Tökéletesen működik!!
Itt van egy kép róla
>>kép<<
Sziasztok!!
Én c programnyelven próbálom életrekelteni a GLCD - met! Végülis sikerült! Letöltöttem hozzá forrásfájlokat, és azok működnek is, kivéve egy függvényt mégpedig amivel pozicionálni lehetne ( GotoXY ), a kérdésem az lenne, hogy a GLCD - t az y tengelyen csak "Laponként" lehet címezni vagy soronként(1 "lap" 8 sor )?
Én c programnyelven próbálom életrekelteni a GLCD - met! Végülis sikerült! Letöltöttem hozzá forrásfájlokat, és azok működnek is, kivéve egy függvényt mégpedig amivel pozicionálni lehetne ( GotoXY ), a kérdésem az lenne, hogy a GLCD - t az y tengelyen csak "Laponként" lehet címezni vagy soronként(1 "lap" 8 sor )?