1753f00ed6d7aed730ac3483d015164a60e84ad7
[fw/sdcc] / device / include / mcs51 / P89LPC932.h
1 /*--------------------------------------------------------------------------\r
2 P89LPC932.H\r
3 (English)\r
4 This header allows to use the microcontroler Philips P89LPC932\r
5 with the compiler SDCC.\r
6 \r
7 Copyright (c) 2005 Omar Espinosa--e-mail: opiedrahita2003 AT yahoo.com.\r
8 \r
9    This library is free software; you can redistribute it and/or\r
10    modify it under the terms of the GNU Lesser General Public\r
11    License as published by the Free Software Foundation; either\r
12    version 2.1 of the License, or (at your option) any later version.\r
13 \r
14    This library is distributed in the hope that it will be useful,\r
15    but WITHOUT ANY WARRANTY; without even the implied warranty of\r
16    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
17    Lesser General Public License for more details.\r
18 \r
19    You should have received a copy of the GNU Lesser General Public\r
20    License along with this library; if not, write to the Free Software\r
21    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
22 \r
23 (Spanish-EspaƱol)\r
24 Archivo encabezador para el ucontrolador Philips P89LPC932.\r
25 Derechos de copy (DC) 2005.  OMAR ESPINOSA P.  E-mail: opiedrahita2003 AT yahoo.com\r
26 Uso libre\r
27 --------------------------------------------------------------------------*/\r
28 #ifndef __REG932_H__\r
29 #define __REG932_H__\r
30 \r
31 /*  BYTE Registers  */\r
32 __sfr __at (0x80) P0     ;\r
33 __sfr __at (0x90) P1     ;\r
34 __sfr __at (0xA0) P2     ;\r
35 __sfr __at (0xB0) P3     ;\r
36 __sfr __at (0xD0) PSW    ;\r
37 __sfr __at (0xE0) ACC    ;\r
38 __sfr __at (0xF0) B      ;\r
39 __sfr __at (0x81) SP     ;\r
40 __sfr __at (0x82) DPL    ;\r
41 __sfr __at (0x83) DPH    ;\r
42 __sfr __at (0x87) PCON   ;\r
43 __sfr __at (0x88) TCON   ;\r
44 __sfr __at (0x89) TMOD   ;\r
45 __sfr __at (0x8A) TL0    ;\r
46 __sfr __at (0x8B) TL1    ;\r
47 __sfr __at (0x8C) TH0    ;\r
48 __sfr __at (0x8D) TH1    ;\r
49 __sfr __at (0xA8) IEN0   ;\r
50 __sfr __at (0xB8) IP0    ;\r
51 __sfr __at (0x98) SCON   ;\r
52 __sfr __at (0x99) SBUF   ;\r
53 \r
54 \r
55 __sfr __at (0xA2) AUXR1  ;\r
56 __sfr __at (0xA9) SADDR  ;\r
57 __sfr __at (0xB9) SADEN  ;\r
58 __sfr __at (0xCC) TL2    ;\r
59 __sfr __at (0xCD) TH2    ;\r
60 __sfr __at (0xBE) BRGR0  ;\r
61 __sfr __at (0xBF) BRGR1  ;\r
62 __sfr __at (0xBD) BRGCON ;\r
63 __sfr __at (0xEA) CCCRA  ;\r
64 __sfr __at (0xEB) CCCRB  ;\r
65 __sfr __at (0xEC) CCCRC  ;\r
66 __sfr __at (0xED) CCCRD  ;\r
67 __sfr __at (0xAC) CMP1   ;\r
68 __sfr __at (0xAD) CMP2   ;\r
69 __sfr __at (0xF1) DEECON ;\r
70 __sfr __at (0xF2) DEEDAT ;\r
71 __sfr __at (0xF3) DEEADR ;\r
72 __sfr __at (0x95) DIVM   ;\r
73 __sfr __at (0xDB) I2ADR  ;\r
74 __sfr __at (0xD8) I2CON  ;\r
75 __sfr __at (0xDA) I2DAT  ;\r
76 __sfr __at (0xDD) I2SCLH ;\r
77 __sfr __at (0xDC) I2SCLL ;\r
78 __sfr __at (0xD9) I2STAT ;\r
79 __sfr __at (0xAB) ICRAH  ;\r
80 __sfr __at (0xAA) ICRAL  ;\r
81 __sfr __at (0xAF) ICRBH  ;\r
82 __sfr __at (0xAE) ICRBL  ;\r
83 __sfr __at (0xE8) IEN1   ;\r
84 __sfr __at (0xF8) IP1    ;\r
85 __sfr __at (0xF7) IP1H   ;\r
86 __sfr __at (0x94) KBCON  ;\r
87 __sfr __at (0x86) KBMASK ;\r
88 __sfr __at (0x93) KBPATN ;\r
89 __sfr __at (0xEF) OCRAH  ;\r
90 __sfr __at (0xEE) OCRAL  ;\r
91 __sfr __at (0xFB) OCRBH  ;\r
92 __sfr __at (0xFA) OCRBL  ;\r
93 __sfr __at (0xFD) OCRCH  ;\r
94 __sfr __at (0xFC) OCRCL  ;\r
95 __sfr __at (0xFF) OCRDH  ;\r
96 __sfr __at (0xFE) OCRDL  ;\r
97 __sfr __at (0x84) P0M1   ;\r
98 __sfr __at (0x85) P0M2   ;\r
99 __sfr __at (0x91) P1M1   ;\r
100 __sfr __at (0x92) P1M2   ;\r
101 __sfr __at (0xA4) P2M1   ;\r
102 __sfr __at (0xA5) P2M2   ;\r
103 __sfr __at (0xB1) P3M1   ;\r
104 __sfr __at (0xB2) P3M2   ;\r
105 __sfr __at (0xB5) PCONA  ;\r
106 __sfr __at (0xF6) PT0AD  ;\r
107 __sfr __at (0xDF) RSTSRC ;\r
108 __sfr __at (0xD1) RTCCON ;\r
109 __sfr __at (0xD2) RTCH   ;\r
110 __sfr __at (0xD3) RTCL   ;\r
111 __sfr __at (0xBA) SSTAT  ;\r
112 __sfr __at (0xE2) SPCTL  ;\r
113 __sfr __at (0xE1) SPSTAT ;\r
114 __sfr __at (0xE3) SPDAT  ;\r
115 __sfr __at (0x8F) TAMOD  ;\r
116 __sfr __at (0xC8) TCR20  ;\r
117 __sfr __at (0xF9) TCR21  ;\r
118 __sfr __at (0xC9) TICR2  ;\r
119 __sfr __at (0xE9) TIFR2  ;\r
120 __sfr __at (0xDE) TISE2  ;\r
121 __sfr __at (0xCF) TOR2H  ;\r
122 __sfr __at (0xCE) TOR2L  ;\r
123 __sfr __at (0xCB) TPCR2H ;\r
124 __sfr __at (0xCA) TPCR2L ;\r
125 __sfr __at (0x96) TRIM   ;\r
126 __sfr __at (0xA7) WDCON  ;\r
127 __sfr __at (0xC1) WDL    ;\r
128 __sfr __at (0xC2) WFEED1 ;\r
129 __sfr __at (0xC3) WFEED2 ;\r
130 __sfr __at (0xB7) IP0H   ;\r
131 \r
132 /*  BIT Registers  */\r
133 /*  PSW   */\r
134 __sbit __at (0xD7)    PSW_7;\r
135 __sbit __at (0xD6)    PSW_6;\r
136 __sbit __at (0xD5)    PSW_5;\r
137 __sbit __at (0xD4)    PSW_4;\r
138 __sbit __at (0xD3)    PSW_3;\r
139 __sbit __at (0xD2)    PSW_2;\r
140 __sbit __at (0xD1)    PSW_1;\r
141 __sbit __at (0xD0)    PSW_0;\r
142 \r
143 #define CY      PSW_7\r
144 #define AC      PSW_6\r
145 #define F0      PSW_5\r
146 #define RS1     PSW_4\r
147 #define RS0     PSW_3\r
148 #define OV      PSW_2\r
149 #define F1      PSW_1\r
150 #define P       PSW_0\r
151 \r
152 /*  TCON  */\r
153 __sbit __at (0x8F)    TCON_7;\r
154 __sbit __at (0x8E)    TCON_6;\r
155 __sbit __at (0x8D)    TCON_5;\r
156 __sbit __at (0x8C)    TCON_4;\r
157 __sbit __at (0x8B)    TCON_3;\r
158 __sbit __at (0x8A)    TCON_2;\r
159 __sbit __at (0x89)    TCON_1;\r
160 __sbit __at (0x88)    TCON_0;\r
161 \r
162 #define  TF1    TCON_7\r
163 #define  TR1    TCON_6\r
164 #define  TF0    TCON_5\r
165 #define  TR0    TCON_4\r
166 #define  IE1    TCON_3\r
167 #define  IT1    TCON_2\r
168 #define  IE0    TCON_1\r
169 #define  IT0    TCON_0\r
170 \r
171 /*  IEN0   */\r
172 __sbit __at (0xAF)    IEN0_7;\r
173 __sbit __at (0xAE)    IEN0_6;\r
174 __sbit __at (0xAD)    IEN0_5;\r
175 __sbit __at (0xAC)    IEN0_4; // alternatively "ESR"\r
176 __sbit __at (0xAC)    IEN0_4;\r
177 __sbit __at (0xAB)    IEN0_3;\r
178 __sbit __at (0xAA)    IEN0_2;\r
179 __sbit __at (0xA9)    IEN0_1;\r
180 __sbit __at (0xA8)    IEN0_0;\r
181 \r
182 #define  EA     IEN0_7\r
183 #define  EWDRT  IEN0_6\r
184 #define  EBO    IEN0_5\r
185 #define  ES     IEN0_4  // alternatively "ESR"\r
186 #define  ESR    IEN0_4\r
187 #define  ET1    IEN0_3\r
188 #define  EX1    IEN0_2\r
189 #define  ET0    IEN0_1\r
190 #define  EX0    IEN0_0\r
191 \r
192 /*  IEN1   */\r
193 __sbit __at (0xEF)   IEN1_7;\r
194 __sbit __at (0xEE)   IEN1_6;\r
195 __sbit __at (0xEC)   IEN1_4;\r
196 __sbit __at (0xEB)   IEN1_3;\r
197 __sbit __at (0xEA)   IEN1_2;\r
198 __sbit __at (0xE9)   IEN1_1;\r
199 __sbit __at (0xE8)   IEN1_0;\r
200 \r
201 #define  EIEE   IEN1_7\r
202 #define  EST    IEN1_6\r
203 #define  ECCU   IEN1_4\r
204 #define  ESPI   IEN1_3\r
205 #define  EC     IEN1_2\r
206 #define  EKBI   IEN1_1\r
207 #define  EI2C   IEN1_0\r
208 \r
209 /*  IP0   */\r
210 __sbit __at (0xBE)    IP0_6;\r
211 __sbit __at (0xBD)    IP0_5;\r
212 __sbit __at (0xBC)    IP0_4; // alternatively "PSR"\r
213 __sbit __at (0xBC)    IP0_4;\r
214 __sbit __at (0xBB)    IP0_3;\r
215 __sbit __at (0xBA)    IP0_2;\r
216 __sbit __at (0xB9)    IP0_1;\r
217 __sbit __at (0xB8)    IP0_0;\r
218 \r
219 #define  PWDRT  IP0_6\r
220 #define  PB0    IP0_5\r
221 #define  PS     IP0_4 // alternatively "PSR"\r
222 #define  PSR    IP0_4\r
223 #define  PT1    IP0_3\r
224 #define  PX1    IP0_2\r
225 #define  PT0    IP0_1\r
226 #define  PX0    IP0_0\r
227 \r
228 /*  SCON  */\r
229 __sbit __at (0x9F)    SCON_7; // alternatively "FE"\r
230 __sbit __at (0x9E)    SCON_6;\r
231 __sbit __at (0x9D)    SCON_5;\r
232 __sbit __at (0x9C)    SCON_4;\r
233 __sbit __at (0x9B)    SCON_3;\r
234 __sbit __at (0x9A)    SCON_2;\r
235 __sbit __at (0x99)    SCON_1;\r
236 __sbit __at (0x98)    SCON_0;\r
237 \r
238 #define  SM0    SCON_7 // alternatively "FE"\r
239 #define  FE     SCON_7\r
240 #define  SM1    SCON_6\r
241 #define  SM2    SCON_5\r
242 #define  REN    SCON_4\r
243 #define  TB8    SCON_3\r
244 #define  RB8    SCON_2\r
245 #define  TI     SCON_1\r
246 #define  RI     SCON_0\r
247 \r
248 /*  I2CON  */\r
249 __sbit __at (0xDE)    I2CON_6;\r
250 __sbit __at (0xDD)    I2CON_5;\r
251 __sbit __at (0xDC)    I2CON_4;\r
252 __sbit __at (0xDB)    I2CON_3;\r
253 __sbit __at (0xDA)    I2CON_2;\r
254 __sbit __at (0xD8)    I2CON_0;\r
255 \r
256 #define  I2EN   I2CON_6;\r
257 #define  STA    I2CON_5;\r
258 #define  STO    I2CON_4;\r
259 #define  SI     I2CON_3;\r
260 #define  AA     I2CON_2;\r
261 #define  CRSEL  I2CON_0;\r
262 \r
263 /*  P0  */\r
264 __sbit __at (0x87)    P0_7;\r
265 __sbit __at (0x86)    P0_6; // alternatively "CMP1"\r
266 __sbit __at (0x85)    P0_5;\r
267 __sbit __at (0x84)    P0_4;\r
268 __sbit __at (0x83)    P0_3;\r
269 __sbit __at (0x82)    P0_2;\r
270 __sbit __at (0x81)    P0_1;\r
271 __sbit __at (0x80)    P0_0; // alternatively "CMP2"\r
272 \r
273 #define  KB7    P0_7  // alternatively "T1"\r
274 #define  T1     P0_7\r
275 #define  KB6    P0_6  // alternatively "CMP1"\r
276 #define  CMP1   P0_6\r
277 #define  KB5    P0_5\r
278 #define  KB4    P0_4\r
279 #define  KB3    P0_3\r
280 #define  KB2    P0_2\r
281 #define  KB1    P0_1\r
282 #define  KB0    P0_0  // alternatively "CMP2"\r
283 #define  CMP2   P0_0\r
284 \r
285 /*  P1  */\r
286 __sbit __at (0x97)    P1_7;\r
287 __sbit __at (0x96)    P1_6;\r
288 __sbit __at (0x95)    P1_5;\r
289 __sbit __at (0x94)    P1_4;\r
290 __sbit __at (0x93)    P1_3;\r
291 __sbit __at (0x92)    P1_2;\r
292 __sbit __at (0x91)    P1_1;\r
293 __sbit __at (0x90)    P1_0;\r
294 \r
295 #define  OCC    P1_7\r
296 #define  OCB    P1_6\r
297 #define  RST    P1_5\r
298 #define  INT1   P1_4\r
299 #define  INT0   P1_3 // alternatively "SDA"\r
300 #define  SDA    P1_3\r
301 #define  T0     P1_2 // alternatively "SCL"\r
302 #define  SCL    P1_2\r
303 #define  RxD    P1_1\r
304 #define  TxD    P1_0\r
305 \r
306 /*  P2  */\r
307 __sbit __at (0xA7)    P2_7;\r
308 __sbit __at (0xA6)    P2_6;\r
309 __sbit __at (0xA5)    P2_5;\r
310 __sbit __at (0xA4)    P2_4;\r
311 __sbit __at (0xA3)    P2_3;\r
312 __sbit __at (0xA2)    P2_2;\r
313 __sbit __at (0xA1)    P2_1;\r
314 __sbit __at (0xA0)    P2_0;\r
315 \r
316 #define  ICA    P2_7\r
317 #define  OCA    P2_6\r
318 #define  SPICLK P2_5\r
319 #define  SS     P2_4\r
320 #define  MISO   P2_3\r
321 #define  MOSI   P2_2\r
322 #define  OCD    P2_1\r
323 #define  ICB    P2_0\r
324 \r
325 /*  P3  */\r
326 __sbit __at (0xB1)    P3_1;\r
327 __sbit __at (0xB0)    P3_0;\r
328 \r
329 #define  XTAL1  P3_1\r
330 #define  XTAL2  P3_0\r
331 \r
332 /* TCR20 */\r
333 __sbit __at (0xCF)    TCR20_7;\r
334 __sbit __at (0xCE)    TCR20_6;\r
335 __sbit __at (0xCD)    TCR20_5;\r
336 __sbit __at (0xCC)    TCR20_4;\r
337 __sbit __at (0xCB)    TCR20_3;\r
338 __sbit __at (0xCA)    TCR20_2;\r
339 __sbit __at (0xC9)    TCR20_1;\r
340 __sbit __at (0xC8)    TCR20_0;\r
341 \r
342 #define  PLLEN  TCR20_7\r
343 #define  HLTRN  TCR20_6\r
344 #define  HLTEN  TCR20_5\r
345 #define  ALTCD  TCR20_4\r
346 #define  ALTAB  TCR20_3\r
347 #define  TDIR2  TCR20_2\r
348 #define  TMOD21 TCR20_1\r
349 #define  TMOD20 TCR20_0\r
350 \r
351 #endif\r