Regcc01.h


1
/**********************  C51 definitions for T89C51CC01 *******************/
2
#ifndef _regcc51_h_
3
#define _regcc51_h_
4
5
sfr   P0      = 0x80;
6
7
sfr   SP      = 0x81;
8
9
sfr   DPL     = 0x82;
10
11
sfr   DPH     = 0x83;
12
sfr16  DPTR   = 0x82;
13
14
sfr   PCON    = 0x87;
15
#define SMOD_   0x80
16
17
sfr   TCON    = 0x88;
18
sbit   IT0     = 0x88;
19
sbit   IE0     = 0x89;
20
sbit   IT1     = 0x8A;
21
sbit   IE1     = 0x8B;
22
sbit   TR0     = 0x8C;
23
#define  TR0_  0x10
24
sbit   TF0     = 0x8D;
25
#define  TF0_  0x20
26
sbit   TR1     = 0x8E;
27
#define TR1_  0x40
28
sbit   TF1     = 0x8F;
29
#define  TF1_  0x80
30
31
sfr   TMOD    = 0x89;
32
#define  T0_M0_  1
33
#define  T0_M1_  2
34
#define  T0_CT_  4
35
#define  T0_GA_  8
36
#define  T1_M0_  0x10
37
#define T1_M1_  0x20
38
#define  T1_CT_  0x40
39
#define  T1_GA_  0x80
40
41
sfr   TL0     = 0x8A;
42
43
sfr   TL1     = 0x8B;
44
45
sfr   TH0     = 0x8C;
46
47
sfr   TH1     = 0x8D;
48
49
sfr  AUXR  = 0x8E;
50
#define A0_  0x01
51
#define EXTRAM_  0x02
52
#define XRS0_  0x04
53
#define XRS1_  0x08
54
#define M0_  0x20
55
56
sfr  CKCON  = 0x8F;
57
#define  X2_  1
58
#define  T0X2_  2
59
#define  T1X2_  4
60
#define  T2X2_  8
61
#define  SIX2_  0x10
62
#define PCAX2_  0x20
63
#define  WDX2_  0x40
64
#define  CANX2_  0x80
65
66
sfr   P1      = 0x90;
67
68
sfr   SCON    = 0x98;
69
sbit   RI      = 0x98;
70
sbit   TI      = 0x99;
71
#define TI_  0x02
72
sbit   RB8     = 0x9A;
73
sbit   TB8     = 0x9B;
74
sbit   REN     = 0x9C;
75
#define REN_   0x10
76
sbit   SM2     = 0x9D;
77
#define  SM2_  0x20
78
sbit   SM1     = 0x9E;
79
#define  SM1_  0x40
80
sbit   SM0     = 0x9F;
81
sbit   FE     = 0x9F;
82
#define SM0_  0x80
83
84
sfr   SBUF    = 0x99;
85
86
sfr   CANGIT   = 0x9B;
87
#define CANGIT_CANIT_    0x80
88
#define CANGIT_OVRTIM_         0x20
89
#define CANGIT_OVRBUF_    0x10
90
#define CANGIT_SERG_    0x08
91
#define CANGIT_CERG_    0x04
92
#define CANGIT_FERG_    0x02
93
#define CANGIT_AERG_    0x01
94
95
sfr   CANTEC   = 0x9C;
96
sfr   CANREC   = 0x9D;
97
98
sfr   P2      = 0xA0;
99
100
sfr   CANTCON = 0xA1;
101
102
sfr   AUXR1     = 0xA2;
103
#define AUXR1_DPS_  0x01
104
#define AUXR1_ENBOOT_  0x20
105
106
sfr   CANMSG   = 0xA3;
107
108
sfr   CANTTCL  = 0xA4;
109
sfr   CANTTCH = 0xA5;
110
sfr   WDTRST  = 0xA6;
111
sfr   WDTPRG  = 0xA7;
112
113
sfr   IE      = 0xA8;
114
sfr   IEN0     = 0xA8;
115
sbit   EX0     = 0xA8;
116
#define EX0_   1
117
sbit   ET0     = 0xA9;
118
#define ET0_   2
119
sbit  EX1     = 0xAA;
120
#define EX1_   4
121
sbit   ET1     = 0xAB;
122
#define ET1_   8
123
sbit   ES      = 0xAC;
124
#define ES_   0x10
125
sbit   ET2      = 0xAD;
126
#define ET2_   0x20
127
sbit   EPCA    = 0xAE;
128
#define EPCA_   0x40
129
sbit   EA      = 0xAF;
130
#define EA_   0x80
131
132
133
sfr   SADDR  = 0xA9;
134
135
sfr   CANGSTA    = 0xAA;
136
#define CANGSTA_OVFG_  0x40
137
#define CANGSTA_TBSY_  0x10
138
#define CANGSTA_RBSY_  0x08
139
#define CANGSTA_ENFG_  0x04
140
#define CANGSTA_BOFF_  0x02
141
#define CANGSTA_ERRP_  0x01
142
143
sfr     CANGCON      = 0xAB;
144
#define CANGCON_ABRQ_    0x80
145
#define CANGCON_OVRQ_    0x40
146
#define CANGCON_TTC_    0x20
147
#define CANGCON_SYNCTTC_  0x10
148
#define CANGCON_AUTBAUD_  0x08
149
#define CANGCON_ENA_      0x02
150
#define CANGCON_GRES_     0x01
151
152
153
sfr   CANTIML  = 0xAC;
154
sfr   CANTIMH  = 0xAD;
155
sfr   CANSTMPL= 0xAE;
156
sfr   CANSTMPH= 0xAF;
157
158
sfr   P3      = 0xB0;
159
sbit   RXD     = 0xB0;
160
sbit   TXD     = 0xB1;
161
sbit   INT0    = 0xB2;
162
sbit   INT1    = 0xB3;
163
sbit   T0      = 0xB4;
164
sbit   T1      = 0xB5;
165
sbit   WR      = 0xB6;
166
sbit   RD      = 0xB7;
167
168
sfr  CANPAGE  = 0xB1;
169
170
sfr  CANSTCH  = 0xB2;
171
#define CANSTCH_DLCW_  0x80
172
#define CANSTCH_TXOK_  0x40
173
#define CANSTCH_RXOK_  0x20
174
#define CANSTCH_BERR_  0x10
175
#define CANSTCH_SERR_  0x08
176
#define CANSTCH_CERR_  0x04
177
#define CANSTCH_FERR_  0x02
178
#define CANSTCH_AERR_  0x01
179
180
sfr  CANCONCH       = 0xB3;
181
#define CANCONCH_IDE_  0x10
182
#define CANCONCH_DLC_  0x0F
183
#define CANCONCH_CONF_ 0xC0
184
#define DLC_MAX      8
185
#define CANCONCH_DISABLE_  0x00
186
#define CANCONCH_TRANSMITTER_  0x40
187
#define CANCONCH_RECEIVER_  0x80
188
#define CANCONCH_RECEIVER_BUFFER_  0xC0
189
190
sfr  CANBT1    = 0xB4;
191
#define CAN_PRESCALER_MIN  0
192
#define CAN_PRESCALER_MAX  63
193
194
sfr  CANBT2    = 0xB5;
195
#define CANBT2_SJW_  0x60
196
#define CANBT2_PRS_  0x0E
197
#define CAN_SJW_MIN  0
198
#define CAN_SJW_MAX  3
199
#define CAN_PRS_MIN  0
200
#define CAN_PRS_MAX  7
201
202
sfr  CANBT3    = 0xB6;
203
#define CANBT3_PHS2_ 0x70
204
#define CANBT3_PHS1_ 0x0E
205
#define CAN_PHS2_MIN 0
206
#define CAN_PHS2_MAX 7
207
#define CAN_PHS1_MIN 0
208
#define CAN_PHS1_MAX 7
209
210
sfr  IPH0  = 0xB7;
211
212
sfr   IP      = 0xB8;
213
sfr     IPL0  = 0xB8;
214
sbit   PX0     = 0xB8;
215
sbit   PT0     = 0xB9;
216
sbit   PX1     = 0xBA;
217
sbit   PT1     = 0xBB;
218
sbit   PS      = 0xBC;
219
220
sfr  SADEN  = 0xB9;
221
222
sfr     CANSIT1 = 0xBA;
223
sfr     CANSIT2 = 0xBB;
224
sfr     CANIDT1 = 0xBC;
225
sfr     CANIDT2 = 0xBD;
226
sfr     CANIDT3 = 0xBE;
227
sfr     CANIDT4 = 0xBF;
228
#define MSK_CANIDT4_RTRTAG 0x04
229
230
sfr  P4  = 0xC0;
231
sbit  TXDC  = 0xC0;
232
sbit  RXDC  = 0xC1;
233
234
sfr  CANGIE    = 0xC1;
235
#define CANGIE_ENRX_  0x20
236
#define CANGIE_ENTX_  0x10
237
#define CANGIE_ENERCH_  0x08
238
#define CANGIE_ENBUF_   0x04
239
#define CANGIE_ENERG_   0x02
240
241
sfr  CANIE1    = 0xC2;
242
sfr  CANIE2    = 0xC3;
243
sfr  CANIDM1    = 0xC4;
244
sfr  CANIDM2    = 0xC5;
245
sfr  CANIDM3    = 0xC6;
246
247
sfr  CANIDM4    = 0xC7;
248
#define CANIDM4_RTRMSK_ 0x04
249
#define CANIDM4_IDEMSK_ 0x01
250
251
sfr  T2CON    = 0xC8;
252
sbit  CP_RL2    = 0xC8;
253
#define  CP_RL2_    0x01
254
sbit  C_T2    = 0xC9;
255
#define  C_T2_    0x02
256
sbit  TR2    = 0xCA;
257
#define  TR2_    0x04
258
sbit  EXEN2    = 0xCB;
259
#define  EXEN2_    0x08
260
sbit  TCLK    = 0xCC;
261
#define  TCLK_    0x10
262
sbit  RCLK    = 0xCD;
263
#define  RCLK_    0x20
264
sbit  EXF2    = 0xCE;
265
#define  EXF2_    0x40
266
sbit  TF2    = 0xCF;
267
#define  TF2_    0x80
268
269
sfr  T2MOD  = 0xC9;
270
sfr  RCAP2L  = 0xCA;
271
sfr  RCAP2H  = 0xCB;
272
sfr16  RCAP2W  = 0xCA;
273
sfr  TL2  = 0xCC;
274
sfr  TH2  = 0xCD;
275
sfr16  T2W  = 0xCC;
276
sfr  CANEN1  = 0xCE;
277
sfr  CANEN2  = 0xCF;
278
279
sfr   PSW     = 0xD0;
280
sbit  P       = 0xD0;
281
sbit   F1      = 0xD1;
282
sbit   OV      = 0xD2;
283
sbit   RS0     = 0xD3;
284
sbit   RS1     = 0xD4;
285
sbit   F0      = 0xD5;
286
sbit   AC      = 0xD6;
287
sbit   CY      = 0xD7;
288
289
sfr  FCON    = 0xD1;
290
#define FCON_FBUSY_  0x01
291
#define FCON_FMOD_  0x06
292
#define FCON_FPS_  0x08
293
#define FCON_FPL_  0xF0
294
295
sfr  EECON    = 0xD2;
296
#define EECON_EEBUSY_  0x01
297
#define EECON_EEE_  0x02
298
#define EECON_EEPL_  0xF0
299
300
sfr     CCON  = 0xD8;
301
sbit    CF  = 0xDF;
302
sbit    CR  = 0xDE;
303
sbit    CCF4  = 0xDC;
304
sbit    CCF3  = 0xDB;
305
sbit    CCF2  = 0xDA;
306
sbit    CCF1  = 0xD9;
307
sbit    CCF0  = 0xD8;
308
309
sfr     CMOD    = 0xD9;
310
sfr     CCAPM0    = 0xDA;
311
sfr     CCAPM1    = 0xDB;
312
sfr     CCAPM2    = 0xDC;
313
sfr     CCAPM3    = 0xDD;
314
sfr     CCAPM4    = 0xDE;
315
316
sfr  ACC       = 0xE0;
317
318
sfr     IEN1    = 0xE8;
319
sbit    ECAN    = 0xE8;
320
sbit    EADC    = 0xE9;
321
sbit    ETIM    = 0xEA;
322
323
sfr     CL    = 0xE9;
324
sfr     CCAP0L    = 0xEA;
325
sfr     CCAP1L    = 0xEB;
326
sfr     CCAP2L    = 0xEC;
327
sfr     CCAP3L    = 0xED;
328
sfr     CCAP4L    = 0xEE;
329
330
sfr  B         = 0xF0;
331
332
sfr  ADCLK    = 0xF2;
333
334
sfr  ADCON    = 0xF3;
335
#define ADCON_PSIDLE_  0x40
336
#define ADCON_ADEN_  0x20
337
#define ADCON_ADEOC_  0x10
338
#define ADCON_ADSST_  0x08
339
#define ADCON_SCH_  0x07
340
341
sfr  ADDL    = 0xF4;
342
#define ADDL_UTILS  0x03
343
344
sfr  ADDH    = 0xF5;
345
sfr  ADCF    = 0xF6;
346
sfr  IPH1    = 0xF7;
347
sfr  IPL1    = 0xF8;
348
sfr     CH    = 0xF9;
349
sfr     CCAP0H    = 0xFA;
350
sfr     CCAP1H    = 0xFB;
351
sfr     CCAP2H    = 0xFC;
352
sfr     CCAP3H    = 0xFD;
353
sfr     CCAP4H    = 0xFE;
354
355
/****************************** Interrupt sources ***********************/
356
357
#define INT_EX0    0
358
#define INT_T0    1  // Interrupt timer 0
359
#define INT_EX1    2
360
#define INT_T1    3
361
#define INT_UART  4
362
#define  INT_T2    5
363
#define  INT_PCA    6
364
#define  INT_CAN    7
365
#define  INT_ADC    8
366
#define  INT_CANT  9
367
368
#endif