Code:
'--------------------------------------------------------------
' (c) 1999-2000 MCS Electronics
'--------------------------------------------------------------
' file: LCD.BAS
' demo: LCD, CLS, LOWERLINE, SHIFTLCD, SHIFTCURSOR, HOME
' CURSOR, DISPLAY
'--------------------------------------------------------------
$regfile = "m32def.dat"
$crystal = 1000000
'$sim
'REMOVE the above command for the real program !!
'$sim is used fr 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
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2
'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 = 20 * 4 '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 !
Do
Cls 'clear the LCD display
Lcd "Hello world." 'display this at the top line
Waitms 1000
Lowerline 'select the lower line
waitms 1000
Lcd "Shift this." 'display this at the lower line
waitms 1000
For A = 1 To 10
Shiftlcd Right 'shift the text to the right
waitms 1000 'wait a moment
Next
For A = 1 To 10
Shiftlcd Left 'shift the text to the left
waitms 1000 'wait a moment
Next
Locate 2 , 1 'set cursor position
Lcd "*" 'display this
waitms 1000 'wait a moment
Shiftcursor Right 'shift the cursor
Lcd "@" 'display this
waitms 1000 'wait a moment
Home Upper 'select line 1 and return home
Cls
Lcd "Replaced." 'replace the text
waitms 1000 'wait a moment
Cursor Off Noblink 'hide cursor
waitms 1000 'wait a moment
Cursor On Blink 'show cursor
waitms 1000 'wait a moment
Display Off 'turn display off
waitms 1000 'wait a moment
Display On 'turn display on
'-----------------NEW support for 4-line LCD------
Thirdline
Lcd "Line 3"
Fourthline
Lcd "Line 4"
Home Third 'goto home on line three
Home Fourth
Home F 'first letteer also works
Locate 4 , 1 : Lcd "Line 4"
waitms 1000
Loop
'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)
'Deflcdchar 0 , 240 , 224 , 224 , 255 , 254 , 252 , 248 , 240 ' replace ? with number (0-7)
'Cls 'select data RAM
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
Schon mal Danke für die Antworten!
Lesezeichen