ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 12.06.2025

Просмотров: 8229

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

© 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

page -357-


© 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

page -358-


© 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

page -359-


© MCS Electronics, 1995-2007

'+5V

+5V

'GND

GND

'V0

V0

'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

page -360-