Explanation:
This demonstration code shows the set of commands supported by GCBASIC.
Demonstration program:
;Chip Settings #chip 16F877a,16 #include <glcd.h> 'Setup the GLCD #Define glcd_rw PORTD.3 'RW pin on LCD #Define glcd_reset PORTD.4 'Reset pin on LCD #Define glcd_cs1 PORTD.1 'CS1, CS2 can be reversed #Define glcd_cs2 PORTD.2 'CS1, CS2 are be reversed #Define glcd_rs PORTD.5 'D/I pin on LCD #Define glcd_enable PORTD.4 'E pin on LCD #Define glcd_db0 PORTB.0 'D0 #Define glcd_db1 PORTB.1 'D1 #Define glcd_db2 PORTB.2 'D2 #Define glcd_db3 PORTB.3 'D3 #Define glcd_db4 PORTB.4 'D4 #Define glcd_db5 PORTB.5 'D5 #Define glcd_db6 PORTB.6 'D6 #Define glcd_db7 PORTB.7 'D7 on LCD 'Specify the type of GLCD #define GLCD_TYPE GLCD_TYPE_KS0108 #define GLCD_WIDTH 128 #define GLCD_HEIGHT 64 #define GLCD_PROTECTOVERRUN wait 1 s GLCDCLS GLCDPrint 0, 1, "GCBASIC " wait 1 s GLCDCLS rrun = 0 dim msg1 as string * 16 do forever GLCDCLS Box 18,30,28,40 Line 0,0,127,63 Line 0,63,127,0 wait 1 s FilledBox 18,30,28,40 wait 1 s GLCDCLS GLCDDrawString 30,0,"ChipMhz@" GLCDDrawString 78,0, str(ChipMhz) Circle(10,10,10,1) 'upper left Circle(117,10,10,1) 'upper right Circle(63,31,10,1) 'center Circle(63,31,20,1) 'center Circle(10,53,10,1) 'lower left Circle(117,53,10,1) 'lower right wait 1 s GLCDDrawString 30,0,"ChipMhz@" GLCDDrawString 78,0, str(ChipMhz) FilledCircle(10,10,10,1) 'upper left FilledCircle(117,10,10,1) 'upper right FilledCircle(63,31,10,1) 'center FilledCircle(63,31,20,1) 'center FilledCircle(10,53,10,1) 'lower left FilledCircle(117,53,10,1) 'lower right wait 1 s GLCDCLS GLCDDrawString 30,0,"ChipMhz@" GLCDDrawString 78,0, str(ChipMhz) Circle(10,0,10,1) 'upper left Circle(117,0,10,1) 'upper right Circle(63,31,10,1) 'center Circle(63,31,20,1) 'center Circle(10,63,10,1) 'lower left Circle(117,63,10,1) 'lower right wait 1 s GLCDCLS GLCDDrawString 0,10,"Hello" 'Print Hello wait 1 s GLCDDrawString 0,10, "ASCII #:" 'Print ASCII #: Box 18,30,28,40 'Draw Box Around ASCII Character for char = 0x30 to 0x39 'Print 0 through 9 GLCDDrawString 16, 20 , Str(char)+" " GLCDdrawCHAR 20, 30, char wait 250 ms next line 0,50,127,50 'Draw Line using line command for xvar = 0 to 80 'Draw line using Pset command pset xvar,63,on next FilledBox 18,30,28,40 'Draw Box Around ASCII Character ' wait 1 s GLCDCLS GLCDDrawString 0,10,"End " wait 1 s GLCDCLS workingGLCDDrawChar: dim gtext as string gtext = "KS0108" for xchar = 1 to gtext(0) 'Print 0 through 9 xxpos = (1+(xchar*6)-6) GLCDDrawChar xxpos , 0 , gtext(xchar) next GLCDDrawString 1, 9, "GCBASIC @2021" GLCDDrawString 1, 18,"GLCD 128*64" GLCDDrawString 1, 27,"Using GLCD.H from GCB" GLCDDrawString 1, 37,"Using GLCD.H GCB@2021" GLCDDrawString 1, 45,"GLCDDrawChar method" GLCDDrawString 1, 54,"Test Routines" wait 1 s GLCDCLS msg1 = "Run = " +str(rrun) rrun++ GLCDPrint 0, 3, msg1 wait 1 s GLCDCLS loop
For more help, see Graphical LCD Demonstration, GLCDCLS, GLCDDrawChar, GLCDPrint, GLCDReadByte, GLCDWriteByte, Pset