1 /*--------------------------------------------------------------------------
\r
4 This header allows to use the microcontroler Philips P89c51RD2
\r
5 with the compiler SDCC.
\r
7 Copyright (c) 2005 Omar Espinosa--e-mail: opiedrahita2003 AT yahoo.com.
\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
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
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
24 Archivo encabezador para el ucontrolador Philips P89c51RD2.
\r
25 Derechos de copy (DC) 2005. OMAR ESPINOSA P. E-mail: opiedrahita2003 AT yahoo.com
\r
27 --------------------------------------------------------------------------*/
\r
29 #ifndef __P89c51RD2_H__
\r
30 #define __P89c51RD2_H__
\r
32 /* BYTE Registers */
\r
33 __sfr __at (0x80) P0 ;
\r
34 __sfr __at (0x90) P1 ;
\r
35 __sfr __at (0xA0) P2 ;
\r
36 __sfr __at (0xB0) P3 ;
\r
37 __sfr __at (0xD0) PSW ;
\r
38 __sfr __at (0xE0) ACC ;
\r
39 __sfr __at (0xF0) B ;
\r
40 __sfr __at (0x81) SP ;
\r
41 __sfr __at (0x82) DPL ;
\r
42 __sfr __at (0x83) DPH ;
\r
43 __sfr __at (0x87) PCON ;
\r
44 __sfr __at (0x88) TCON ;
\r
45 __sfr __at (0x89) TMOD ;
\r
46 __sfr __at (0x8A) TL0 ;
\r
47 __sfr __at (0x8B) TL1 ;
\r
48 __sfr __at (0x8C) TH0 ;
\r
49 __sfr __at (0x8D) TH1 ;
\r
50 __sfr __at (0xA8) IE ;
\r
51 __sfr __at (0xB8) IP ;
\r
52 __sfr __at (0x98) SCON ;
\r
53 __sfr __at (0x99) SBUF ;
\r
55 /* 80C51Fx/Rx Extensions */
\r
56 __sfr __at (0x8E) AUXR ;
\r
57 __sfr __at (0xA2) AUXR1 ;
\r
58 __sfr __at (0xA9) SADDR ;
\r
59 __sfr __at (0xB7) IPH ;
\r
60 __sfr __at (0xB9) SADEN ;
\r
61 __sfr __at (0xC8) T2CON ;
\r
62 __sfr __at (0xC9) T2MOD ;
\r
63 __sfr __at (0xCA) RCAP2L ;
\r
64 __sfr __at (0xCB) RCAP2H ;
\r
65 __sfr __at (0xCC) TL2 ;
\r
66 __sfr __at (0xCD) TH2 ;
\r
67 __sfr __at (0xD8) CCON ;
\r
68 __sfr __at (0xD9) CMOD ;
\r
69 __sfr __at (0xDA) CCAPM0 ;
\r
70 __sfr __at (0xDB) CCAPM1 ;
\r
71 __sfr __at (0xDC) CCAPM2 ;
\r
72 __sfr __at (0xDD) CCAPM3 ;
\r
73 __sfr __at (0xDE) CCAPM4 ;
\r
74 __sfr __at (0xE9) CL ;
\r
75 __sfr __at (0xEA) CCAP0L ;
\r
76 __sfr __at (0xEB) CCAP1L ;
\r
77 __sfr __at (0xEC) CCAP2L ;
\r
78 __sfr __at (0xED) CCAP3L ;
\r
79 __sfr __at (0xEE) CCAP4L ;
\r
80 __sfr __at (0xF9) CH ;
\r
81 __sfr __at (0xFA) CCAP0H ;
\r
82 __sfr __at (0xFB) CCAP1H ;
\r
83 __sfr __at (0xFC) CCAP2H ;
\r
84 __sfr __at (0xFD) CCAP3H ;
\r
85 __sfr __at (0xFE) CCAP4H ;
\r
91 __sbit __at (0xD7) PSW_7;
\r
92 __sbit __at (0xD6) PSW_6;
\r
93 __sbit __at (0xD5) PSW_5;
\r
94 __sbit __at (0xD4) PSW_4;
\r
95 __sbit __at (0xD3) PSW_3;
\r
96 __sbit __at (0xD2) PSW_2;
\r
97 __sbit __at (0xD0) PSW_0;
\r
108 __sbit __at (0x8F) TCON_7;
\r
109 __sbit __at (0x8E) TCON_6;
\r
110 __sbit __at (0x8D) TCON_5;
\r
111 __sbit __at (0x8C) TCON_4;
\r
112 __sbit __at (0x8B) TCON_3;
\r
113 __sbit __at (0x8A) TCON_2;
\r
114 __sbit __at (0x89) TCON_1;
\r
115 __sbit __at (0x88) TCON_0;
\r
127 __sbit __at (0xAF) IE_7;
\r
128 __sbit __at (0xAE) IE_6;
\r
129 __sbit __at (0xAD) IE_5;
\r
130 __sbit __at (0xAC) IE_4;
\r
131 __sbit __at (0xAB) IE_3;
\r
132 __sbit __at (0xAA) IE_2;
\r
133 __sbit __at (0xA9) IE_1;
\r
134 __sbit __at (0xA8) IE_0;
\r
146 __sbit __at (0xBE) IP_6;
\r
147 __sbit __at (0xBD) IP_5;
\r
148 __sbit __at (0xBC) IP_4;
\r
149 __sbit __at (0xBB) IP_3;
\r
150 __sbit __at (0xBA) IP_2;
\r
151 __sbit __at (0xB9) IP_1;
\r
152 __sbit __at (0xB8) IP_0;
\r
163 __sbit __at (0xB7) P3_7;
\r
164 __sbit __at (0xB6) P3_6;
\r
165 __sbit __at (0xB5) P3_5;
\r
166 __sbit __at (0xB4) P3_4;
\r
167 __sbit __at (0xB3) P3_3;
\r
168 __sbit __at (0xB2) P3_2;
\r
169 __sbit __at (0xB1) P3_1;
\r
170 __sbit __at (0xB0) P3_0;
\r
182 __sbit __at (0x9F) SCON_7; // alternatively "FE"
\r
183 __sbit __at (0x9E) SCON_6;
\r
184 __sbit __at (0x9D) SCON_5;
\r
185 __sbit __at (0x9C) SCON_4;
\r
186 __sbit __at (0x9B) SCON_3;
\r
187 __sbit __at (0x9A) SCON_2;
\r
188 __sbit __at (0x99) SCON_1;
\r
189 __sbit __at (0x98) SCON_0;
\r
191 #define SM0 SCON_7 // alternatively "FE"
\r
202 __sbit __at (0x97) P1_7;
\r
203 __sbit __at (0x96) P1_6;
\r
204 __sbit __at (0x95) P1_5;
\r
205 __sbit __at (0x94) P1_4;
\r
206 __sbit __at (0x93) P1_3;
\r
207 __sbit __at (0x92) P1_2;
\r
208 __sbit __at (0x91) P1_1;
\r
209 __sbit __at (0x90) P1_0;
\r
221 __sbit __at (0xCF) T2CON_7;
\r
222 __sbit __at (0xCE) T2CON_6;
\r
223 __sbit __at (0xCD) T2CON_5;
\r
224 __sbit __at (0xCC) T2CON_4;
\r
225 __sbit __at (0xCB) T2CON_3;
\r
226 __sbit __at (0xCA) T2CON_2;
\r
227 __sbit __at (0xC9) T2CON_1;
\r
228 __sbit __at (0xC8) T2CON_0;
\r
230 #define TF2 T2CON_7
\r
231 #define EXF2 T2CON_6
\r
232 #define RCLK T2CON_5
\r
233 #define TCLK T2CON_4
\r
234 #define EXEN2 T2CON_3
\r
235 #define TR2 T2CON_2
\r
236 #define C_T2 T2CON_1
\r
237 #define CP_RL2 T2CON_0
\r
240 __sbit __at (0xDF) CCON_7;
\r
241 __sbit __at (0xDE) CCON_6;
\r
242 __sbit __at (0xDC) CCON_4;
\r
243 __sbit __at (0xDB) CCON_3;
\r
244 __sbit __at (0xDA) CCON_2;
\r
245 __sbit __at (0xD9) CCON_1;
\r
246 __sbit __at (0xD8) CCON_0;
\r
250 #define CCF4 CCON_4
\r
251 #define CCF3 CCON_3
\r
252 #define CCF2 CCON_2
\r
253 #define CCF1 CCON_1
\r
254 #define CCF0 CCON_0
\r