Jump to content
Electronics-Lab.com Community

A Serial GLCD 128x64 Simple Project


Recommended Posts

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: Parallax Home
Datasheet: BASIC Stamp Documentation

2) Graphic LCD 128x64
Manufactory: Circuit-ED - Electronic Development ProductsDatasheet: http://circuit-ed.com/uplds/GDM12864B.pdf
3) JP SerGLCD Module
Manufactory: Jianping ElectronicsDatasheet: http://www.jianpingusa.com/datasheet/JPSerGLCDUserManual12864.pdf

Project video :
        http://www.youtube.com/watch?v=t4Fnp99DRNk

Project Pictures:
        os128x642.jpg

        [img width=680 height=509]

        [img width=680 height=509]

Project code:

'=========================================================
' File........OldSpring GLCD 128x64 Simple Project.BSP
' Purpose.....BS2P + Serial GLCD Module
' Auther......OldSpring
' [email protected]
' 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, [$57]    'Round Rectang function
    SEROUT SOUT, Baud, [x1]      'x1
    SEROUT SOUT, Baud, [y1]      'y1
    SEROUT SOUT, Baud, [x2]    'x2
    SEROUT SOUT, Baud, [y2]      'y2
    SEROUT SOUT, Baud, [1]
    SEROUT SOUT, Baud, [250]
    PAUSE 100
    RETURN
'============================= Draw Rectang ============================
    Draw_Rectang:
    PAUSE 100
    SEROUT SOUT, Baud, [$56]    'Rectang function
    SEROUT SOUT, Baud, [x1]      'x1
    SEROUT SOUT, Baud, [y1]      'y1
    SEROUT SOUT, Baud, [x2]      'x2
    SEROUT SOUT, Baud, [y2]      'y2
    SEROUT SOUT, Baud, [1]
    SEROUT SOUT, Baud, [250]
    PAUSE 100
    RETURN

'================================ Invert ===============================
    Invert:
    PAUSE 100
    FOR idx = 0 TO 8
      SEROUT SOUT, Baud, [$27]    'Invert function
      SEROUT SOUT, Baud, [x1]      'x1
      SEROUT SOUT, Baud, [y1]      'y1
      SEROUT SOUT, Baud, [x2]      'w
      SEROUT SOUT, Baud, [y2]      'h
      SEROUT SOUT, Baud, [250]
      PAUSE 1000
    NEXT
    PAUSE 100
    RETURN

'=========================== Clean Screen ==============================
CleanScreen:
    SEROUT SOUT, Baud, [$23]
    SEROUT SOUT, Baud, [0]
    SEROUT SOUT, Baud, [250]
    PAUSE 100
RETURN
'============================= Set Font ================================
SetFont:
    SEROUT SOUT, Baud, [$24]
    SEROUT SOUT, Baud, [idx]
    SEROUT SOUT, Baud, [250]
    PAUSE 100
RETURN
'=========================== Screen Text0 ===============================
Text0:
    SEROUT SOUT, Baud, [$2B]
    SEROUT SOUT, Baud, [1]
    SEROUT SOUT, Baud, ["by OldSpring"]
    SEROUT SOUT, Baud, [250]
    PAUSE 100
    SEROUT SOUT, Baud, [$5F]
    SEROUT SOUT, Baud, [30]
    SEROUT SOUT, Baud, [48]
    SEROUT SOUT, Baud, [1]
    SEROUT SOUT, Baud, [1]
    SEROUT SOUT, Baud, [250]
    PAUSE 100
RETURN
'=========================== Screen Text1 ===============================
Text1:
    SEROUT SOUT, Baud, [$2B]
    SEROUT SOUT, Baud, [1]
    SEROUT SOUT, Baud, ["GLCD Simple Project"]
    SEROUT SOUT, Baud, [250]
    PAUSE 100
    SEROUT SOUT, Baud, [$5F]
    SEROUT SOUT, Baud, [8]
    SEROUT SOUT, Baud, [38]
    SEROUT SOUT, Baud, [1]
    SEROUT SOUT, Baud, [1]
    SEROUT SOUT, Baud, [250]
    PAUSE 100
RETURN
'=========================== OldSpring Screen ===============================
OldSpring:
    SEROUT SOUT, Baud, [$2B]
    SEROUT SOUT, Baud, [1]
    SEROUT SOUT, Baud, ["OldSpring"]
    SEROUT SOUT, Baud, [250]
    PAUSE 100
    SEROUT SOUT, Baud, [$5F]
    SEROUT SOUT, Baud, [25]
    SEROUT SOUT, Baud, [15]
    SEROUT SOUT, Baud, [1]
    SEROUT SOUT, Baud, [1]
    SEROUT SOUT, Baud, [250]
    PAUSE 100
RETURN
'=========================== Shift Hor ===============================
Shift_Hor:
    PAUSE 100
FOR idx = 0 TO 96
    SEROUT SOUT, Baud, [$26]
    SEROUT SOUT, Baud, [x1 + idx]
    SEROUT SOUT, Baud, [y1]
    SEROUT SOUT, Baud, [x2 - idx]
    SEROUT SOUT, Baud, [y2]
    SEROUT SOUT, Baud, [1]    'Move text to Right side
    SEROUT SOUT, Baud, [250]
    PAUSE 100
NEXT
    PAUSE 1000
RETURN

'=========================== Shift Y ===============================
Shift_Y:
    PAUSE 100
FOR idx = 63 TO 32
    SEROUT SOUT, Baud, [$25]
    SEROUT SOUT, Baud, [idx]    'Move picture down
    SEROUT SOUT, Baud, [250]
    PAUSE 100
NEXT
PAUSE 1000
FOR idx = 32 TO 76
    SEROUT SOUT, Baud, [$25]
    SEROUT SOUT, Baud, [idx]    'Move picture up
    SEROUT SOUT, Baud, [250]
    PAUSE 100
NEXT
PAUSE 1000
    SEROUT SOUT, Baud, [$25]
    SEROUT SOUT, Baud, [0]      'Back to original position
    SEROUT SOUT, Baud, [250]
RETURN


Visit my website at: http://oldspring.110mb.com/

Have fun!!!
OldSpring
Link to comment
Share on other sites


Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
  • Create New...