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
|