Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 5

Source Code

'****************************************************************
'* Name
: Tasmia.BAS
'* Author : Mustafa H. Abyad
'* Date
: 30/3/2009
'* Notes
:Displaying a picture " "
'****************************************************************
;************* Initializations***************************************
Device 16F877
XTAL 4
TRISC=%00000000
TRISD=%00000000
PORTC=$00
PORTD=$00
Symbol
Symbol
Symbol
Symbol
Symbol
Dim
Dim
Dim
Dim
Dim

D=PORTD
; D=data
DI=PORTC.3 ;Data/Instruction (1=Data & 0=instruction)
clk=PORTC.2 ;Enable of GLCD (clock -ve edge)
CS1=PORTC.1
CS2=PORTC.0

P As Byte
L As Byte
I As Byte
L1 As Byte
ADDRESS As

;page number (0:7)


; Line number (0:63)
;
Byte ;

;************ Main program***************************************


D=$3f
; display ON (3F is constant from GLCD datasheet)
GoSub S_INS
GoSub DRAW_page0and1
GoSub DRAW_page2and3
GoSub DRAW_page4and5
GoSub DRAW_page6and7
Stop
;**************Subroutines***************************************
DRAW_page0and1:
CS1=0
;1ST page 1ST half
CS2=1
P=0
GoSub S_INSP
L=0
GoSub S_INSL
For I = 0 To 63 Step 1
D = CRead ADDRESS1 + I
GoSub S_DATA
Next
CS1=1
;1ST page 2nd half
CS2=0
P=0
GoSub S_INSP
L=0
GoSub S_INSL
For I = 64 To 127 Step 1
D = CRead ADDRESS1 + I
GoSub S_DATA
Next
CS1=0
;2ND page 1ST half
CS2=1

For I = 128 To 191


D = CRead ADDRESS1
GoSub S_DATA
Next
CS1=1
CS2=0
For I = 192 To 255
D = CRead ADDRESS1
GoSub S_DATA
Next
Return

Step 1
+ I
;2ND page 2ND half
Step 1
+ I

DRAW_page2and3:
CS1=0
CS2=1
For I = 0 To 63 Step 1
D = CRead ADDRESS2 + I
GoSub S_DATA
Next
CS1=1
CS2=0
For I = 64 To 127 Step 1
D = CRead ADDRESS2 + I
GoSub S_DATA
Next
CS1=0
CS2=1
For I = 128 To 191 Step 1
D = CRead ADDRESS2 + I
GoSub S_DATA
Next
CS1=1
CS2=0
For I = 192 To 255 Step 1
D = CRead ADDRESS2 + I
GoSub S_DATA
Next
Return
DRAW_page4and5:
CS1=0
CS2=1
P=4
GoSub S_INSP
For I = 0 To 63 Step 1
D = CRead ADDRESS3 + I
GoSub S_DATA
Next
CS1=1
CS2=0
P=4
GoSub S_INSP
For I = 64 To 127 Step 1
D = CRead ADDRESS3 + I
GoSub S_DATA
Next
CS1=0
CS2=1
For I = 128 To 191 Step 1
D = CRead ADDRESS3 + I
GoSub S_DATA

;3rd page 1ST half

;3rd page 2nd half

;4th page 1ST half

;4th page 2ND half

;5th page 1ST half

;5th page 2nd half

;6th page 1ST half

Next
CS1=1
CS2=0
For I = 192 To 255 Step 1
D = CRead ADDRESS3 + I
GoSub S_DATA
Next
Return
DRAW_page6and7:
CS1=0
CS2=1
For I = 0 To 63 Step 1
D = CRead ADDRESS4 + I
GoSub S_DATA
Next
CS1=1
CS2=0
For I = 64 To 127 Step 1
D = CRead ADDRESS4 + I
GoSub S_DATA
Next
CS1=0
CS2=1
For I = 128 To 191 Step 1
D = CRead ADDRESS4 + I
GoSub S_DATA
Next
CS1=1
CS2=0
For I = 192 To 255 Step 1
D = CRead ADDRESS4 + I
GoSub S_DATA
Next
Return

;6th page 2ND half

;7th page 1ST half

;7th page 2nd half

;8th page 1ST half

;8th page 2ND half

S_DATA:
DI=1
DelayMS 1.5
clk=1
DelayMS 1.5
clk=0
Return

;Send data to LCD Ram

S_INSL:
CS1=0
CS2=1
D = L + %01000000
DI=0
DelayMS 1.5
clk=1
DelayMS 1.5
clk=0
Return

; Send line number

S_INSP:
D = P + %10111000
(1011 1XXX)
DI=0
DelayMS 1.5
clk=1

; x address (1011 1XXX)

; Send page number


; y address (01XX XXXX) d = L + %01000000

; x address

DelayMS 1.5
clk=0
Return
S_INS:;Send instruction to LCD
DI=0
DelayMS 1.5
clk=1
DelayMS 1.5
clk=0
Return
;********************* Image 128X64 pixels**************************************
ADDRESS1:
CData 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
CData 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
CData 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
CData 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
CData 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
CData 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
CData 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
CData 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
CData
CData
CData
CData
CData
CData
CData
CData

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x80,0xC0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xE0,0xE0,0xE0,
0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x70,0xF8,0xF8,0xF8,0xF0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

ADDRESS2:
CData 0xE0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xE0,0x00,0x00,
CData 0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xF0,0xF0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
CData 0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,
CData 0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
CData 0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0xE0,0xF0,0xF0,0xE0,0x00,0x00,0x00,0x00,0x00,
CData 0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xC0,0xC0,
CData 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xF0,0xF0,0xF0,0xE0,0xC0,0x00,0x00,
CData 0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
CData
CData
CData
CData
CData
CData
CData
CData

0xFF,0xFF,0xFF,0xE3,0xC1,0x80,0x80,0x80,0xC1,0xE3,0xFF,0xFF,0xFF,0xFF,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,
0xFF,0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0xE0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xE0,0xF8,0xFE,0xFF,0xFF,0x1F,0x3F,0xFF,0xFF,0xFD,0xF0,0xC0,0x00,0x00,0x00,
0x00,0x00,0x00,0x3E,0xFF,0xFF,0xFF,0xFF,0xF0,0xF0,0xE0,0x80,0x07,0xFF,0xFF,0xFF,
0xFF,0xFC,0xF8,0xF0,0xE0,0xE0,0xF0,0xF0,0xF0,0xFF,0xFF,0x7F,0x7F,0xFF,0xF8,0xF0,
0xF0,0xF0,0xF0,0xF0,0xFF,0xFF,0x7F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

ADDRESS3:
CData 0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x7F,0xFF,0xFF,0xFF,0xE0,0x80,
CData 0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0xFF,0xFF,0xFF,0xFE,0xF8,0xE0,0x80,0x00,0x00,
CData 0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,
CData 0xFF,0x00,0x00,0x00,0x00,0x00,0x0F,0x3F,0xFF,0xFF,0xFC,0xF0,0xC0,0x80,0x00,0x00,
CData 0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0xC0,0x80,0xC3,0xFF,0xFF,0xFF,0xFF,0x7E,0xF8,
CData 0xF8,0x7C,0x7E,0x3F,0x1F,0x0F,0x07,0x03,0x03,0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
CData 0x07,0x00,0x01,0x03,0x03,0x03,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,
CData 0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

CData
CData
CData
CData
CData
CData
CData
CData

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x0F,0x1F,0x3F,
0x3F,0x3C,0x3C,0x3E,0x3F,0x1F,0x0F,0x07,0x03,0x01,0x07,0x07,0x0F,0x1F,0x1F,0x1E,
0x1E,0x1E,0x1E,0x1F,0x1F,0x1F,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x1F,0x1F,
0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x07,0x0F,0x1F,0x1F,0x1E,
0x1E,0x1F,0x1F,0x0F,0x0F,0x07,0x07,0x07,0x07,0x07,0x07,0x03,0x01,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xF0,0xF8,0xF8,0x7C,
0x7C,0x3E,0x3F,0x3F,0xFE,0xFC,0xF8,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

ADDRESS4:
CData 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
CData 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
CData 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
CData 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
CData 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
CData 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
CData 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x7F,0xFF,0xF8,
CData 0xF0,0xF0,0xF0,0xF0,0xFF,0xFF,0x7F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
CData
CData
CData
CData
CData
CData
CData
CData

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

You might also like