BS2p + Graphic LCD 128x64 Simple Project
Hello, all;
This project uses BasicStamp 2P (also you can use PIC MCU) to interface with a GLCD Display and JP SerGLCD Module. Code used is standard PBasic 2.5, it should work on most BasicStamp chips.
Components:
1) Basic Stamp 2P
Manufactory: http://www.parallax.com
Datasheet: http://www.parallax.com/tabid/440/Default.aspx
2) Graphic LCD 128x64
Manufactory: http://www.circuit-ed.com/128x64-BLWH-TOUCHSCREEN-GLCD--P146C8.aspx
Datasheet: http://circuit-ed.com/uplds/GDM12864B.pdf
3) JP SerGLCD Module
Manufactory: http://www.jianpingusa.com/jpserglcd12864.asp
Datasheet: http://www.jianpingusa.com/datasheet/JPSerGLCDUserManual12864.pdf
4) Project video link:
http://www.youtube.com/watch?v=t4Fnp99DRNk
··
5) Projrct Code:
·
Have fun!
Visit OldSpring Website for detail:· http://oldspring.110mb.com/Index.html
OldSpring
·
·
Post Edited (OldSpring) : 3/8/2010 6:23:33 PM GMT
This project uses BasicStamp 2P (also you can use PIC MCU) to interface with a GLCD Display and JP SerGLCD Module. Code used is standard PBasic 2.5, it should work on most BasicStamp chips.
Components:
1) Basic Stamp 2P
Manufactory: http://www.parallax.com
Datasheet: http://www.parallax.com/tabid/440/Default.aspx
2) Graphic LCD 128x64
Manufactory: http://www.circuit-ed.com/128x64-BLWH-TOUCHSCREEN-GLCD--P146C8.aspx
Datasheet: http://circuit-ed.com/uplds/GDM12864B.pdf
3) JP SerGLCD Module
Manufactory: http://www.jianpingusa.com/jpserglcd12864.asp
Datasheet: http://www.jianpingusa.com/datasheet/JPSerGLCDUserManual12864.pdf
4) Project video link:
http://www.youtube.com/watch?v=t4Fnp99DRNk
··
5) Projrct Code:
'=========================================================
' File........OldSpring GLCD 128x64 Simple Project.BSP
' Purpose.....BS2P + GLCD Display + Serial GLCD Module
' Auther......OldSpring
' Email.......oldsprings@yahoo.com
' WebSite.....http://oldspring.110mb.com
' Code........Mar 8, 2010
'========================================================
' {$STAMP BS2p}
' {$PBASIC 2.5}
SOUT PIN 0 ' Serial output to Rx
S_IN PIN 1 ' Serial input to Tx
x VAR Byte
x1 VAR Byte
x2 VAR Byte
y1 VAR Byte
y2 VAR Byte
idx VAR Byte
#SELECT $STAMP
#CASE BS2, BS2E, BS2PE
T1200 CON 813
T2400 CON 396
T4800 CON 188
T9600 CON 84
T19K2 CON 32
T38K4 CON 6
#CASE BS2SX, BS2P
T1200 CON 2063
T2400 CON 1021
T4800 CON 500
T9600 CON 240
T19K2 CON 110
T38K4 CON 45
#CASE BS2PX
T1200 CON 3313
T2400 CON 1646
T480 CON 813
T9600 CON 396
T19K2 CON 188
T38K4 CON 84
#ENDSELECT
Inverted CON $4000
Baud CON T19K2 '+ Inverted
'==============================================================
' Main program
'==============================================================
Main:
PAUSE 1000
GOSUB CleanScreen
idx = 1 'Set font #1
GOSUB SetFont
GOSUB text0
GOSUB SetFont
GOSUB text1
idx = 3 'Set font #3
GOSUB SetFont
GOSUB oldspring
x1 = 0
y1 = 0
x2 = 127
y2 = 63
GOSUB Draw_Round_Rectang
x1 = 1
y1 = 1
x2 = 126
y2 = 62
GOSUB Draw_Round_Rectang
x1 = 14
y1 = 12
x2 = 112
y2 = 31
GOSUB Draw_Rectang
x1 = 15
y1 = 13
x2 = 97
y2 = 18
GOSUB Invert
x1 = 15
y1 = 13
x2 = 97
y2 = 18
GOSUB Shift_Hor
GOSUB CleanScreen
x1 = 14
y1 = 12
x2 = 112
y2 = 31
GOSUB Draw_Rectang
GOSUB oldspring
PAUSE 1000
GOSUB shift_Y
END
'=========================== Draw Round Rectang ========================
Draw_Round_Rectang:
PAUSE 100
SEROUT SOUT, Baud, [noparse][[/noparse]$57] 'Round Rectang function
SEROUT SOUT, Baud, [noparse][[/noparse]x1] 'x1
SEROUT SOUT, Baud, [noparse][[/noparse]y1] 'y1
SEROUT SOUT, Baud, [noparse][[/noparse]x2] 'x2
SEROUT SOUT, Baud, [noparse][[/noparse]y2] 'y2
SEROUT SOUT, Baud, [noparse][[/noparse]1]
SEROUT SOUT, Baud, [noparse][[/noparse]250]
PAUSE 100
RETURN
'============================= Draw Rectang ============================
Draw_Rectang:
PAUSE 100
SEROUT SOUT, Baud, [noparse][[/noparse]$56] 'Rectang function
SEROUT SOUT, Baud, [noparse][[/noparse]x1] 'x1
SEROUT SOUT, Baud, [noparse][[/noparse]y1] 'y1
SEROUT SOUT, Baud, [noparse][[/noparse]x2] 'x2
SEROUT SOUT, Baud, [noparse][[/noparse]y2] 'y2
SEROUT SOUT, Baud, [noparse][[/noparse]1]
SEROUT SOUT, Baud, [noparse][[/noparse]250]
PAUSE 100
RETURN
'================================ Invert ===============================
Invert:
PAUSE 100
FOR idx = 0 TO 8
SEROUT SOUT, Baud, [noparse][[/noparse]$27] 'Invert function
SEROUT SOUT, Baud, [noparse][[/noparse]x1] 'x1
SEROUT SOUT, Baud, [noparse][[/noparse]y1] 'y1
SEROUT SOUT, Baud, [noparse][[/noparse]x2] 'w
SEROUT SOUT, Baud, [noparse][[/noparse]y2] 'h
SEROUT SOUT, Baud, [noparse][[/noparse]250]
PAUSE 1000
NEXT
PAUSE 100
RETURN
'=========================== Clean Screen ==============================
CleanScreen:
SEROUT SOUT, Baud, [noparse][[/noparse]$23]
SEROUT SOUT, Baud, [noparse][[/noparse]0]
SEROUT SOUT, Baud, [noparse][[/noparse]250]
PAUSE 100
RETURN
'============================= Set Font ================================
SetFont:
SEROUT SOUT, Baud, [noparse][[/noparse]$24]
SEROUT SOUT, Baud, [noparse][[/noparse]idx]
SEROUT SOUT, Baud, [noparse][[/noparse]250]
PAUSE 100
RETURN
'=========================== Screen Text0 ===============================
Text0:
SEROUT SOUT, Baud, [noparse][[/noparse]$2B]
SEROUT SOUT, Baud, [noparse][[/noparse]1]
SEROUT SOUT, Baud, [noparse][[/noparse]"by OldSpring"]
SEROUT SOUT, Baud, [noparse][[/noparse]250]
PAUSE 100
SEROUT SOUT, Baud, [noparse][[/noparse]$5F]
SEROUT SOUT, Baud, [noparse][[/noparse]30]
SEROUT SOUT, Baud, [noparse][[/noparse]48]
SEROUT SOUT, Baud, [noparse][[/noparse]1]
SEROUT SOUT, Baud, [noparse][[/noparse]1]
SEROUT SOUT, Baud, [noparse][[/noparse]250]
PAUSE 100
RETURN
'=========================== Screen Text1 ===============================
Text1:
SEROUT SOUT, Baud, [noparse][[/noparse]$2B]
SEROUT SOUT, Baud, [noparse][[/noparse]1]
SEROUT SOUT, Baud, [noparse][[/noparse]"GLCD Simple Project"]
SEROUT SOUT, Baud, [noparse][[/noparse]250]
PAUSE 100
SEROUT SOUT, Baud, [noparse][[/noparse]$5F]
SEROUT SOUT, Baud, [noparse][[/noparse]8]
SEROUT SOUT, Baud, [noparse][[/noparse]38]
SEROUT SOUT, Baud, [noparse][[/noparse]1]
SEROUT SOUT, Baud, [noparse][[/noparse]1]
SEROUT SOUT, Baud, [noparse][[/noparse]250]
PAUSE 100
RETURN
'=========================== OldSpring Screen ===============================
OldSpring:
SEROUT SOUT, Baud, [noparse][[/noparse]$2B]
SEROUT SOUT, Baud, [noparse][[/noparse]1]
SEROUT SOUT, Baud, [noparse][[/noparse]"OldSpring"]
SEROUT SOUT, Baud, [noparse][[/noparse]250]
PAUSE 100
SEROUT SOUT, Baud, [noparse][[/noparse]$5F]
SEROUT SOUT, Baud, [noparse][[/noparse]25]
SEROUT SOUT, Baud, [noparse][[/noparse]15]
SEROUT SOUT, Baud, [noparse][[/noparse]1]
SEROUT SOUT, Baud, [noparse][[/noparse]1]
SEROUT SOUT, Baud, [noparse][[/noparse]250]
PAUSE 100
RETURN
'=========================== Shift Hor ===============================
Shift_Hor:
PAUSE 100
FOR idx = 0 TO 96
SEROUT SOUT, Baud, [noparse][[/noparse]$26]
SEROUT SOUT, Baud, [noparse][[/noparse]x1 + idx]
SEROUT SOUT, Baud, [noparse][[/noparse]y1]
SEROUT SOUT, Baud, [noparse][[/noparse]x2 - idx]
SEROUT SOUT, Baud, [noparse][[/noparse]y2]
SEROUT SOUT, Baud, [noparse][[/noparse]1] 'Move text to Right side
SEROUT SOUT, Baud, [noparse][[/noparse]250]
PAUSE 100
NEXT
PAUSE 1000
RETURN
'=========================== Shift Y ===============================
Shift_Y:
PAUSE 100
FOR idx = 63 TO 32
SEROUT SOUT, Baud, [noparse][[/noparse]$25]
SEROUT SOUT, Baud, [noparse][[/noparse]idx] 'Move picture down
SEROUT SOUT, Baud, [noparse][[/noparse]250]
PAUSE 100
NEXT
PAUSE 1000
FOR idx = 32 TO 76
SEROUT SOUT, Baud, [noparse][[/noparse]$25]
SEROUT SOUT, Baud, [noparse][[/noparse]idx] 'Move picture up
SEROUT SOUT, Baud, [noparse][[/noparse]250]
PAUSE 100
NEXT
PAUSE 1000
SEROUT SOUT, Baud, [noparse][[/noparse]$25]
SEROUT SOUT, Baud, [noparse][[/noparse]0] 'Back to original position
SEROUT SOUT, Baud, [noparse][[/noparse]250]
RETURN
·
Have fun!
Visit OldSpring Website for detail:· http://oldspring.110mb.com/Index.html
OldSpring
·
·
Post Edited (OldSpring) : 3/8/2010 6:23:33 PM GMT




