~arcachofo/simulide/1.1.0

« back to all changes in this revision

Viewing changes to resources/examples/Pic/ks0108_p16f877a/KS0108_16f877a.gcb

  • Committer: arcachofo
  • Date: 2021-01-01 14:23:42 UTC
  • Revision ID: arcachofo@simulide.com-20210101142342-ozfljnll44g5lbl3
Initial Commit 0.5.15-RC3

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
'''A demonstration program for GCGB and GCB.
 
2
'''--------------------------------------------------------------------------------------------------------------------------------
 
3
'''This program is a simple GLCD demonstration of the KS0108 GLCD capabilities.
 
4
'''This program draws lines, boxes, circles and prints strings and numbers.
 
5
'''The GLCD is connected to the microprocessor as shown in the hardware section of this code.
 
6
'''@author      EvanV with works of ChuckH
 
7
'''@licence     GPL
 
8
'''@version     1.2c
 
9
'''@date        22.12.14
 
10
'''********************************************************************************
 
11
 
 
12
  #chip 16f877a,16
 
13
 
 
14
  #include <glcd.h>
 
15
  #define GLCD_TYPE GLCD_TYPE_KS0108               ' This is the Default value, not required.
 
16
 
 
17
 
 
18
  #define GLCD_CS1 PORTC.0    'D12 to actually since CS1, CS2 can be reversed on some devices
 
19
  #define GLCD_CS2 PORTC.1
 
20
  #define GLCD_DB0 PORTD.0 'D0 to pin 7 on LCD
 
21
  #define GLCD_DB1 PORTD.1 'D1 to pin 8 on LCD
 
22
  #define GLCD_DB2 PORTD.2 'D2 to pin 9 on LCD
 
23
  #define GLCD_DB3 PORTD.3 'D3 to pin 10 on LCD
 
24
  #define GLCD_DB4 PORTD.4 'D4 to pin 11 on LCD
 
25
  #define GLCD_DB5 PORTD.5 'D5 to pin 12 on LCD
 
26
  #define GLCD_DB6 PORTD.6 'D6 to pin 13 on LCD
 
27
  #define GLCD_DB7 PORTD.7 'D7 to pin 14 on LCD
 
28
 
 
29
  #define GLCD_RS PORTe.0
 
30
  #define GLCD_Enable PORTe.2
 
31
  #define GLCD_RW PORTe.1
 
32
  #define GLCD_RESET PORTC.2
 
33
 
 
34
  ' Changed timing for 32 mhz device
 
35
  #define KS0108ReadDelay    2   ; = 2 normal usage, 6 or above is OK at 32 mhz!
 
36
  #define KS0108WriteDelay   1    ; = 1 normal usage you may get away with 0, 2 or above is OK at 32 mhz!
 
37
  #define KS0108ClockDelay   1     ; = 1 normal usage you may get away with 0, 2 or above is OK at 32 mhz!
 
38
  'change to LED height, this, avoids set the 4 LED signals
 
39
  #define LED_GLCD_HEIGHT GLCD_HEIGHT-1
 
40
 
 
41
; ----- Variables
 
42
  Dim CHAR, XVAR as Byte
 
43
 
 
44
; ----- Main body of program commences here.
 
45
  Start:
 
46
    GLCDCLS
 
47
    
 
48
    'Print Hello
 
49
    GLCDPrint 0,10,"Hello"
 
50
    wait 1 s
 
51
    
 
52
    'Print ASCII #:
 
53
    GLCDPrint 0,10, "ASCII #:"
 
54
    
 
55
    'Draw Box Around ASCII Character
 
56
    Box 18,30,28,40     
 
57
    
 
58
    'Print 0 through 9
 
59
    for char = 15 to 129
 
60
        GLCDPrint 17, 20 , Str(char)
 
61
        GLCDdrawCHAR 20,30, char
 
62
        wait 1 s
 
63
    next
 
64
    
 
65
    'Draw Line using line command
 
66
    line 0,50,127,50
 
67
    for xvar = 0 to 80
 
68
        'draw line using Pset command
 
69
        pset xvar,63,on
 
70
    next 
 
71
    Wait 10 s
 
72
    
 
73
  Goto Start
 
74
end