16F877A.H


1
// HEADER FILE
2
#if !defined ICD_DEBUG  &&  !defined ICD2_DEBUG
3
 #pragma chip PIC16F877A, core 14, code 8192, ram 32 : 0x1FF
4
5
#elif defined ICD2_DEBUG
6
 #pragma chip PIC16F877A, core 14, code 0x1F00, ram 32 : 0x1FF
7
 // last 256 locations are reserved for debugging
8
9
 //RESERVED RAM LOCATIONS
10
 char ICD2R1 @ 0x70;
11
 char reservedICD2[11] @ 0x1E5;  // reserved RAM for ICD2
12
13
 #pragma stackLevels 7   // reserve one level for debugging
14
15
#else  /* ICD_DEBUG */
16
 #pragma chip PIC16F877A, core 14, code 0x1F00, ram 32 : 0x1FF
17
 // NOTE: last 256 locations are reserved for debugging
18
19
 //RESERVED RAM LOCATIONS FOR DEBUGGING
20
 #pragma char ICDR1 @ 0x70
21
 #pragma char ICDR2 @ 0x1EB
22
 #pragma char ICDR3 @ 0x1EC
23
 #pragma char ICDR4 @ 0x1ED
24
 #pragma char ICDR5 @ 0x1EE
25
 #pragma char ICDR6 @ 0x1EF
26
27
 #pragma stackLevels 7   // reserve one level for debugging
28
29
 #pragma cdata[0] = /*NOP*/ 0x0000  // startup instruction
30
 #pragma resetVector 1    // change to address 1
31
32
#endif
33
34
#pragma ramdef 0x110 : 0x11F
35
#pragma ramdef 0x190 : 0x19F
36
#pragma ramdef  0x70 : 0x7F mapped_into_all_banks
37
38
#define INT_gen_style
39
#define INT_rambank  0   /* interrupt variables in bank 0 */
40
41
#pragma config_def 0x1111
42
43
#pragma wideConstData
44
45
/* Predefined:
46
  char W;
47
  char INDF, TMR0, PCL, STATUS, FSR, PORTA, PORTB;
48
  char OPTION, TRISA, TRISB;
49
  char PCLATH, INTCON;
50
  bit PS0, PS1, PS2, PSA, T0SE, T0CS, INTEDG, RBPU_;
51
  bit Carry, DC, Zero_, PD, TO, RP0, RP1, IRP;
52
  bit RBIF, INTF, T0IF, RBIE, INTE, T0IE, GIE;
53
  bit PA0, PA1;  // PCLATH
54
*/
55
56
#pragma char PORTC   @ 7
57
#pragma char PORTD   @ 8
58
#pragma char PORTE   @ 9
59
60
#pragma char PIR1    @ 12
61
#pragma char PIR2    @ 13
62
#pragma char TMR1L   @ 14
63
#pragma char TMR1H   @ 15
64
#pragma char T1CON   @ 16
65
#pragma char TMR2    @ 17
66
#pragma char T2CON   @ 18
67
#pragma char SSPBUF  @ 19
68
#pragma char SSPCON  @ 20
69
#pragma char CCPR1L  @ 21
70
#pragma char CCPR1H  @ 22
71
#pragma char CCP1CON @ 23
72
#pragma char RCSTA   @ 24
73
#pragma char TXREG   @ 25
74
#pragma char RCREG   @ 26
75
#pragma char CCPR2L  @ 27
76
#pragma char CCPR2H  @ 28
77
#pragma char CCP2CON @ 29
78
#pragma char ADRESH  @ 30
79
#pragma char ADCON0  @ 31
80
81
#pragma char TRISC   @ 0x87
82
#pragma char TRISD   @ 0x88
83
#pragma char TRISE   @ 0x89
84
85
#pragma char PIE1    @ 0x8C
86
#pragma char PIE2    @ 0x8D
87
#pragma char PCON    @ 0x8E
88
89
#pragma char SSPCON2 @ 0x91
90
#pragma char PR2     @ 0x92
91
#pragma char SSPADD  @ 0x93
92
#pragma char SSPSTAT @ 0x94
93
94
#pragma char TXSTA   @ 0x98
95
#pragma char SPBRG   @ 0x99
96
97
#pragma char CMCON   @ 0x9C
98
#pragma char CVRCON  @ 0x9D
99
#pragma char ADRESL  @ 0x9E
100
#pragma char ADCON1  @ 0x9F
101
102
#pragma char EEDATA  @ 0x10C
103
#pragma char EEADR   @ 0x10D
104
#pragma char EEDATH  @ 0x10E
105
#pragma char EEADRH  @ 0x10F
106
107
#pragma char EECON1  @ 0x18C
108
#pragma char EECON2  @ 0x18D
109
110
111
#pragma bit  PEIE    @ 11.6  mapped_into_all_banks
112
113
#pragma bit  TMR1IF  @ 12.0
114
#pragma bit  TMR2IF  @ 12.1
115
#pragma bit  CCP1IF  @ 12.2
116
#pragma bit  SSPIF   @ 12.3
117
#pragma bit  TXIF    @ 12.4
118
#pragma bit  RCIF    @ 12.5
119
#pragma bit  ADIF    @ 12.6
120
#pragma bit  PSPIF   @ 12.7
121
122
#pragma bit  CCP2IF  @ 13.0
123
#pragma bit  BCLIF   @ 13.3
124
#pragma bit  EEIF    @ 13.4
125
#pragma bit  CMIF    @ 13.6
126
127
#pragma bit  TMR1ON  @ 16.0
128
#pragma bit  TMR1CS  @ 16.1
129
#pragma bit  T1SYNC_ @ 16.2
130
#pragma bit  T1OSCEN @ 16.3
131
#pragma bit  T1CKPS0 @ 16.4
132
#pragma bit  T1CKPS1 @ 16.5
133
134
#pragma bit  T2CKPS0 @ 18.0
135
#pragma bit  T2CKPS1 @ 18.1
136
#pragma bit  TMR2ON  @ 18.2
137
#pragma bit  TOUTPS0 @ 18.3
138
#pragma bit  TOUTPS1 @ 18.4
139
#pragma bit  TOUTPS2 @ 18.5
140
#pragma bit  TOUTPS3 @ 18.6
141
142
#pragma bit  SSPM0   @ 20.0
143
#pragma bit  SSPM1   @ 20.1
144
#pragma bit  SSPM2   @ 20.2
145
#pragma bit  SSPM3   @ 20.3
146
#pragma bit  CKP     @ 20.4
147
#pragma bit  SSPEN   @ 20.5
148
#pragma bit  SSPOV   @ 20.6
149
#pragma bit  WCOL    @ 20.7
150
151
#pragma bit  CCP1M0  @ 23.0
152
#pragma bit  CCP1M1  @ 23.1
153
#pragma bit  CCP1M2  @ 23.2
154
#pragma bit  CCP1M3  @ 23.3
155
#pragma bit  CCP1Y   @ 23.4
156
#pragma bit  CCP1X   @ 23.5
157
158
#pragma bit  RX9D    @ 24.0
159
#pragma bit  OERR    @ 24.1
160
#pragma bit  FERR    @ 24.2
161
#pragma bit  ADDEN   @ 24.3
162
#pragma bit  CREN    @ 24.4
163
#pragma bit  SREN    @ 24.5
164
#pragma bit  RX9     @ 24.6
165
#pragma bit  SPEN    @ 24.7
166
167
#pragma bit  CCP2M0  @ 29.0
168
#pragma bit  CCP2M1  @ 29.1
169
#pragma bit  CCP2M2  @ 29.2
170
#pragma bit  CCP2M3  @ 29.3
171
#pragma bit  CCP2Y   @ 29.4
172
#pragma bit  CCP2X   @ 29.5
173
174
#pragma bit  ADON    @ 31.0
175
#pragma bit  GO      @ 31.2
176
#pragma bit  CHS0    @ 31.3
177
#pragma bit  CHS1    @ 31.4
178
#pragma bit  CHS2    @ 31.5
179
#pragma bit  ADCS0   @ 31.6
180
#pragma bit  ADCS1   @ 31.7
181
182
#pragma bit  PSPMODE @ 0x89.4
183
#pragma bit  IBOV    @ 0x89.5
184
#pragma bit  OBF     @ 0x89.6
185
#pragma bit  IBF     @ 0x89.7
186
187
#pragma bit  TMR1IE  @ 0x8C.0
188
#pragma bit  TMR2IE  @ 0x8C.1
189
#pragma bit  CCP1IE  @ 0x8C.2
190
#pragma bit  SSPIE   @ 0x8C.3
191
#pragma bit  TXIE    @ 0x8C.4
192
#pragma bit  RCIE    @ 0x8C.5
193
#pragma bit  ADIE    @ 0x8C.6
194
#pragma bit  PSPIE   @ 0x8C.7
195
196
#pragma bit  CCP2IE  @ 0x8D.0
197
#pragma bit  BCLIE   @ 0x8D.3
198
#pragma bit  EEIE    @ 0x8D.4
199
#pragma bit  CMIE    @ 0x8D.6
200
201
#pragma bit  BOR_    @ 0x8E.0
202
#pragma bit  POR_    @ 0x8E.1
203
204
#pragma bit  SEN     @ 0x91.0
205
#pragma bit  RSEN    @ 0x91.1
206
#pragma bit  PEN     @ 0x91.2
207
#pragma bit  RCEN    @ 0x91.3
208
#pragma bit  ACKEN   @ 0x91.4
209
#pragma bit  ACKDT   @ 0x91.5
210
#pragma bit  ACKSTAT @ 0x91.6
211
#pragma bit  GCEN    @ 0x91.7
212
213
#pragma bit  BF      @ 0x94.0
214
#pragma bit  UA      @ 0x94.1
215
#pragma bit  RW_     @ 0x94.2
216
#pragma bit  S       @ 0x94.3
217
#pragma bit  P       @ 0x94.4
218
#pragma bit  DA_     @ 0x94.5
219
#pragma bit  CKE     @ 0x94.6
220
#pragma bit  SMP     @ 0x94.7
221
222
#pragma bit  TX9D    @ 0x98.0
223
#pragma bit  TRMT    @ 0x98.1
224
#pragma bit  BRGH    @ 0x98.2
225
#pragma bit  SYNC    @ 0x98.4
226
#pragma bit  TXEN    @ 0x98.5
227
#pragma bit  TX9     @ 0x98.6
228
#pragma bit  CSRC    @ 0x98.7
229
230
#pragma bit  CM0     @ 0x9C.0
231
#pragma bit  CM1     @ 0x9C.1
232
#pragma bit  CM2     @ 0x9C.2
233
#pragma bit  CIS     @ 0x9C.3
234
#pragma bit  C1INV   @ 0x9C.4
235
#pragma bit  C2INV   @ 0x9C.5
236
#pragma bit  C1OUT   @ 0x9C.6
237
#pragma bit  C2OUT   @ 0x9C.7
238
239
#pragma bit  CVR0    @ 0x9D.0
240
#pragma bit  CVR1    @ 0x9D.1
241
#pragma bit  CVR2    @ 0x9D.2
242
#pragma bit  CVR3    @ 0x9D.3
243
#pragma bit  CVRR    @ 0x9D.5
244
#pragma bit  CVROE   @ 0x9D.6
245
#pragma bit  CVREN   @ 0x9D.7
246
247
#pragma bit  PCFG0   @ 0x9F.0
248
#pragma bit  PCFG1   @ 0x9F.1
249
#pragma bit  PCFG2   @ 0x9F.2
250
#pragma bit  PCFG3   @ 0x9F.3
251
#pragma bit  ADCS2   @ 0x9F.6
252
#pragma bit  ADFM    @ 0x9F.7
253
254
#pragma bit  RD      @ 0x18C.0
255
#pragma bit  WR      @ 0x18C.1
256
#pragma bit  WREN    @ 0x18C.2
257
#pragma bit  WRERR   @ 0x18C.3
258
#pragma bit  EEPGD   @ 0x18C.7