|
© MCS Electronics, 1995-2007 |
$swstack = 10 |
' default use 10 |
for the SW stack |
' default use 40 |
$framesize = 40 |
for the frame space |
|
$sim
'REMOVE the above command for the real program !! '$sim is used for faster simulation
'note : tested in PIN mode with 4-bit
'Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = Portb.4 , E = Portb.5 , Rs = Portb.6
Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Portc.7 , Rs = Portc.6
'These settings are for the STK200 in PIN mode
'Connect only DB4 to DB7 of the LCD to the LCD connector of the STK D4-D7 'Connect the E-line of the LCD to A15 (PORTC.7) and NOT to the E line of the LCD connector
'Connect the RS, V0, GND and =5V of the LCD to the STK LCD connector
Rem with the config lcdpin statement you can override the compiler settings
Dim A As Byte
Config Lcd = 16 * 2 'configure lcd screen
'other options are 16 * 4 and 20 * 4, 20 * 2 , 16 * 1a 'When you dont include this option 16 * 2 is assumed
'16 * 1a is intended for 16 character displays with split addresses over 2 lines
'$LCD = address will turn LCD into 8-bit databus mode |
|
' |
use this with uP with external RAM and/or ROM |
|
' |
because it aint need the port pins ! |
|
Cls |
|
'clear the LCD |
display |
|
'display this at |
Lcd "Hello world." |
the top line |
|
Wait 1 |
|
'select the lower |
Lowerline |
line |
|
|
Wait 1 |
|
'display this at |
Lcd "Shift this." |
the lower line |
|
Wait 1 |
|
|
For A = 1 To 10 |
'shift the text to |
Shiftlcd Right |
the right |
'wait a moment |
Wait 1 |
Next |
|
|
For A = 1 To 10 |
'shift the text to |
Shiftlcd Left |
the left |
'wait a moment |
Wait 1 |
Next |
|
|
Locate 2 , 1 |
'set cursor |
position |
|
© MCS Electronics, 1995-2007 |
|
|
Lcd "*" |
'display this |
Wait 1 |
'wait a moment |
Shiftcursor Right |
'shift the cursor |
Lcd "@" |
'display this |
Wait 1 |
'wait a moment |
Home Upper |
'select line 1 and |
return home |
'replace the text |
Lcd "Replaced." |
Wait 1 |
'wait a moment |
Cursor Off Noblink |
'hide cursor |
Wait 1 |
'wait a moment |
Cursor On Blink |
'show cursor |
Wait 1 |
'wait a moment |
Display Off |
'turn display off |
Wait 1 |
'wait a moment |
Display On |
'turn display on |
'-----------------NEW support for 4-line LCD------ |
|
|
Thirdline |
|
|
Lcd "Line 3" |
|
|
Fourthline |
|
|
Lcd "Line 4" |
'goto home on line |
Home Third |
three |
|
|
Home Fourth |
'first letteer |
Home F |
also works |
|
|
Locate 4 , 1 : Lcd "Line 4" |
|
|
Wait 1 |
|
|
'Now lets build a special character |
|
|
'the first number is the characternumber (0-7) |
|
|
'The other numbers are the rowvalues |
|
|
'Use the LCD tool to insert this line |
|
|
Deflcdchar 1 , 225 , 227 , 226 , 226 , 226 , 242 , 234 , 228 |
' replace ? |
with number (0-7) |
|
' replace ? |
Deflcdchar 0 , 240 , 224 , 224 , 255 , 254 , 252 , 248 , 240 |
with number (0-7) |
'select data RAM |
Cls |
Rem it is important that a CLS is following the deflcdchar statements because it will set the controller back in datamode
Lcd Chr(0) ; Chr(1) |
'print the special |
character |
|
'----------------- |
Now use an internal routine ------------ |
_temp1 = 1 |
'value into ACC |
!rCall _write_lcd |
'put it on LCD |
End |
|
Example2
'-------------------------------------------------------------- |
EADOG-M163.bas |
' |
' |
Demonstration for EADOG 163 display |
' |
(c) 1995-2006, MCS Electronics |
'-------------------------------------------------------------- |
|
' |
|
$regfile= "M8515.dat" $crystal= 4000000
'I used the following settings
'Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0 'CONNECT vin TO 5 VOLT
© MCS Electronics, 1995-2007
ConfigLcd = 16 * 3,Chipset = Dogm163v5 |
'16*3 type LCD display |
'other options for chipset are DOG163V3 for 3Volt operation |
|
'Config Lcd = 16 * 3 , Chipset = Dogm163v3 , Contrast = &H702 |
'16*3 type LCD display |
'The CONTRAST can be specified when the default value is not what you need |
'The EADOG-M162 is also supported : |
|
|
'Chipset params for the DOGM162 : DOG162V5, DOG162V3 |
|
Cls |
'Dit maakt het scherm leeg |
|
Locate 1,1:Lcd "Hello World" |
|
|
|
Locate 2,1:Lcd "line 2" |
|
|
|
Locate 3,1:Lcd "line 3" |
|
|
|
End |
|
|
|
CONFIG LCDBUS
Action
Configures the LCD data bus and overrides the compiler setting.
Syntax
CONFIG LCDBUS = constant
Remarks
Constant 4 for 4-bit operation, 8 for 8-bit mode (default)
Use this statement together with the $LCD = address statement.
When you use the LCD display in the bus mode the default is to connect all the data lines. With the 4-bit mode, you only have to connect data lines d7-d4.
See also
CONFIG LCD
Example
'-------------------------------------------------------------- |
(c) 1995-2005 MCS Electronics |
' |
'-------------------------------------------------------------- |
|
'file: LCD.BAS
'demo: LCD, CLS, LOWERLINE, SHIFTLCD, SHIFTCURSOR, HOME
'CURSOR, DISPLAY
'--------------------------------------------------------------
'note : tested in bus mode with 4-bit on the STK200
'LCD |
- STK200 |
'------------------- |
D4 |
'D4 |
'D5 |
D5 |
'D6 |
D6 |
'D7 |
D7 |
'WR |
WR |
'E |
E |
'RS |
RS |
© MCS Electronics, 1995-2007
'D0-D3 are not connected since 4 bit bus mode is used!
'Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = Portb.4 , E = Portb.5 , Rs = Portb.6
Rem with the config lcdpin statement you can override the compiler settings
$regfile = "8515def.dat" $lcd = &HC000
$lcdrs = &H8000 Config Lcdbus = 4
Dim A As Byte
Config Lcd = 16 * 2 'configure lcd screen
'other options are 16 * 2 , 16 * 4 and 20 * 4, 20 * 2 , 16 * 1a 'When you dont include this option 16 * 2 is assumed
'16 * 1a is intended for 16 character displays with split addresses over 2 lines
'$LCD = address will turn LCD into 8-bit databus mode |
|
' |
use this with uP with external RAM and/or ROM |
|
' |
because it aint need the port pins ! |
|
Cls |
|
'clear the LCD |
display |
|
'display this at |
Lcd "Hello world." |
the top line |
|
Wait 1 |
|
'select the lower |
Lowerline |
line |
|
|
Wait 1 |
|
'display this at |
Lcd "Shift this." |
the lower line |
|
Wait 1 |
|
|
For A = 1 To 10 |
'shift the text to |
Shiftlcd Right |
the right |
'wait a moment |
Wait 1 |
Next |
|
|
For A = 1 To 10 |
'shift the text to |
Shiftlcd Left |
the left |
'wait a moment |
Wait 1 |
Next |
|
|
Locate 2 , 1 |
'set cursor |
position |
'display this |
Lcd "*" |
|
Wait 1 |
|
'wait a moment |
Shiftcursor Right |
'shift the cursor |
Lcd "@" |
|
'display this |
Wait 1 |
|
'wait a moment |
Home Upper |
'select line 1 and |
return home |
'replace the text |
Lcd "Replaced." |
Wait 1 |
|
'wait a moment |
Cursor Off Noblink |
'hide cursor |