Ansteuerung.c


1
// Bibliothek einbinden
2
#include <16F690.h>
3
4
#fuses INTRC_IO,MCLR,NOWDT,BROWNOUT,NOCPD,NOPROTECT,PUT 
5
    
6
#use delay(clock=4000000)
7
#zero_ram            // RAM löschen.
8
9
//////////////////////////////////////////////////////////////////////////////////////////////////
10
// Bytedirektiven                                                                                //
11
//////////////////////////////////////////////////////////////////////////////////////////////////
12
#byte PORTA = 0x05                                                                              //
13
#byte PORTB = 0x06                                                                              //
14
#byte PORTC = 0x07                                                                              //
15
//////////////////////////////////////////////////////////////////////////////////////////////////
16
#bit DI     = PORTA.5                                                                            //
17
#bit RW     = PORTA.4                                                                            //
18
#bit ENABLE = PORTC.5                                                                            //
19
#bit CS2     = PORTC.4                                                                            //
20
#bit CS1     = PORTC.3                                                                            //
21
#bit RESET   = PORTC.6                                                                            //
22
#bit DB7     = PORTB.7                                                                            //
23
#bit DB6     = PORTB.6                                                                            //
24
#bit DB5     = PORTB.5                                                                            //
25
#bit DB4     = PORTB.4                                                                            //
26
#bit DB3     = PORTC.2                                                                            //
27
#bit DB2     = PORTC.1                                                                            //
28
#bit DB1     = PORTC.0                                                                            //
29
#bit DB0    = PORTA.2                                                                            //
30
//////////////////////////////////////////////////////////////////////////////////////////////////
31
32
void send(void)
33
{
34
  delay_ms(20);
35
  ENABLE = 1;
36
  delay_ms(20);
37
  ENABLE = 0;
38
  delay_ms(20);
39
}
40
41
void main(void)
42
{
43
  set_tris_a(0b00000000);
44
  set_tris_b(0b00000000);
45
  set_tris_c(0b00000000);
46
  
47
  PORTA = 0x00;
48
  PORTB = 0x00;
49
  PORTC = 0x00;
50
  
51
  
52
  delay_ms(100);
53
  RESET = 1;
54
  delay_ms(20);
55
  
56
  // Display on
57
  CS1 = 1;
58
  DI = 0;
59
  RW = 0;
60
  DB0 = 1;
61
  DB1 = 1;
62
  DB2 = 1;
63
  DB3 = 1;
64
  DB4 = 1;
65
  DB5 = 1;
66
  DB6 = 0;
67
  DB7 = 0;
68
  send();
69
  
70
  // Start Line
71
  DI = 0;
72
  RW = 0;
73
  DB0 = 0;
74
  DB1 = 0;
75
  DB2 = 0;
76
  DB3 = 0;
77
  DB4 = 0;
78
  DB5 = 0;
79
  DB6 = 1;
80
  DB7 = 1;
81
  send();
82
  
83
  // Start Line
84
  DI = 0;
85
  RW = 0;
86
  DB0 = 0;
87
  DB1 = 0;
88
  DB2 = 0;
89
  DB3 = 0;
90
  DB4 = 0;
91
  DB5 = 0;
92
  DB6 = 1;
93
  DB7 = 1;
94
  send();
95
  
96
  // Page select
97
  DI = 0;
98
  RW = 0;
99
  DB0 = 0;
100
  DB1 = 0;
101
  DB2 = 0;
102
  DB3 = 1;
103
  DB4 = 1;
104
  DB5 = 1;
105
  DB6 = 0;
106
  DB7 = 1;
107
  send();
108
  
109
  // Column address
110
  DI = 0;
111
  RW = 0;
112
  DB0 = 0;
113
  DB1 = 0;
114
  DB2 = 0;
115
  DB3 = 0;
116
  DB4 = 0;
117
  DB5 = 0;
118
  DB6 = 1;
119
  DB7 = 0;
120
  send();
121
  
122
  // Write on Display
123
  DI = 1;
124
  RW = 0;
125
  DB0 = 1;
126
  DB1 = 1;
127
  DB2 = 1;
128
  DB3 = 1;
129
  DB4 = 1;
130
  DB5 = 1;
131
  DB6 = 1;
132
  DB7 = 1;
133
  send();
134
  
135
  while(1);
136
}