1 /*--------------------------------------------------------------------------
4 This header allows to use the microcontroler Philips P89c51RD2
5 with the compiler SDCC.
7 Copyright (c) 2005 Omar Espinosa--e-mail: opiedrahita2003 AT yahoo.com.
9 This library is free software; you can redistribute it and/or
10 modify it under the terms of the GNU Lesser General Public
11 License as published by the Free Software Foundation; either
12 version 2.1 of the License, or (at your option) any later version.
14 This library is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 Lesser General Public License for more details.
19 You should have received a copy of the GNU Lesser General Public
20 License along with this library; if not, write to the Free Software
21 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24 Archivo encabezador para el ucontrolador Philips P89c51RD2.
25 Derechos de copy (DC) 2005. OMAR ESPINOSA P. E-mail: opiedrahita2003 AT yahoo.com
27 --------------------------------------------------------------------------*/
29 #ifndef __P89c51RD2_H__
30 #define __P89c51RD2_H__
33 __sfr
__at (0x80) P0
;
34 __sfr
__at (0x90) P1
;
35 __sfr
__at (0xA0) P2
;
36 __sfr
__at (0xB0) P3
;
37 __sfr
__at (0xD0) PSW
;
38 __sfr
__at (0xE0) ACC
;
40 __sfr
__at (0x81) SP
;
41 __sfr
__at (0x82) DPL
;
42 __sfr
__at (0x83) DPH
;
43 __sfr
__at (0x87) PCON
;
44 __sfr
__at (0x88) TCON
;
45 __sfr
__at (0x89) TMOD
;
46 __sfr
__at (0x8A) TL0
;
47 __sfr
__at (0x8B) TL1
;
48 __sfr
__at (0x8C) TH0
;
49 __sfr
__at (0x8D) TH1
;
50 __sfr
__at (0xA8) IE
;
51 __sfr
__at (0xB8) IP
;
52 __sfr
__at (0x98) SCON
;
53 __sfr
__at (0x99) SBUF
;
55 /* 80C51Fx/Rx Extensions */
56 __sfr
__at (0x8E) AUXR
;
57 __sfr
__at (0xA2) AUXR1
;
58 __sfr
__at (0xA9) SADDR
;
59 __sfr
__at (0xB7) IPH
;
60 __sfr
__at (0xB9) SADEN
;
61 __sfr
__at (0xC8) T2CON
;
62 __sfr
__at (0xC9) T2MOD
;
63 __sfr
__at (0xCA) RCAP2L
;
64 __sfr
__at (0xCB) RCAP2H
;
65 __sfr
__at (0xCC) TL2
;
66 __sfr
__at (0xCD) TH2
;
67 __sfr
__at (0xD8) CCON
;
68 __sfr
__at (0xD9) CMOD
;
69 __sfr
__at (0xDA) CCAPM0
;
70 __sfr
__at (0xDB) CCAPM1
;
71 __sfr
__at (0xDC) CCAPM2
;
72 __sfr
__at (0xDD) CCAPM3
;
73 __sfr
__at (0xDE) CCAPM4
;
74 __sfr
__at (0xE9) CL
;
75 __sfr
__at (0xEA) CCAP0L
;
76 __sfr
__at (0xEB) CCAP1L
;
77 __sfr
__at (0xEC) CCAP2L
;
78 __sfr
__at (0xED) CCAP3L
;
79 __sfr
__at (0xEE) CCAP4L
;
80 __sfr
__at (0xF9) CH
;
81 __sfr
__at (0xFA) CCAP0H
;
82 __sfr
__at (0xFB) CCAP1H
;
83 __sfr
__at (0xFC) CCAP2H
;
84 __sfr
__at (0xFD) CCAP3H
;
85 __sfr
__at (0xFE) CCAP4H
;
91 __sbit
__at (0xD7) PSW_7
;
92 __sbit
__at (0xD6) PSW_6
;
93 __sbit
__at (0xD5) PSW_5
;
94 __sbit
__at (0xD4) PSW_4
;
95 __sbit
__at (0xD3) PSW_3
;
96 __sbit
__at (0xD2) PSW_2
;
97 __sbit
__at (0xD0) PSW_0
;
108 __sbit
__at (0x8F) TCON_7
;
109 __sbit
__at (0x8E) TCON_6
;
110 __sbit
__at (0x8D) TCON_5
;
111 __sbit
__at (0x8C) TCON_4
;
112 __sbit
__at (0x8B) TCON_3
;
113 __sbit
__at (0x8A) TCON_2
;
114 __sbit
__at (0x89) TCON_1
;
115 __sbit
__at (0x88) TCON_0
;
127 __sbit
__at (0xAF) IE_7
;
128 __sbit
__at (0xAE) IE_6
;
129 __sbit
__at (0xAD) IE_5
;
130 __sbit
__at (0xAC) IE_4
;
131 __sbit
__at (0xAB) IE_3
;
132 __sbit
__at (0xAA) IE_2
;
133 __sbit
__at (0xA9) IE_1
;
134 __sbit
__at (0xA8) IE_0
;
146 __sbit
__at (0xBE) IP_6
;
147 __sbit
__at (0xBD) IP_5
;
148 __sbit
__at (0xBC) IP_4
;
149 __sbit
__at (0xBB) IP_3
;
150 __sbit
__at (0xBA) IP_2
;
151 __sbit
__at (0xB9) IP_1
;
152 __sbit
__at (0xB8) IP_0
;
163 __sbit
__at (0xB7) P3_7
;
164 __sbit
__at (0xB6) P3_6
;
165 __sbit
__at (0xB5) P3_5
;
166 __sbit
__at (0xB4) P3_4
;
167 __sbit
__at (0xB3) P3_3
;
168 __sbit
__at (0xB2) P3_2
;
169 __sbit
__at (0xB1) P3_1
;
170 __sbit
__at (0xB0) P3_0
;
182 __sbit
__at (0x9F) SCON_7
; // alternatively "FE"
183 __sbit
__at (0x9E) SCON_6
;
184 __sbit
__at (0x9D) SCON_5
;
185 __sbit
__at (0x9C) SCON_4
;
186 __sbit
__at (0x9B) SCON_3
;
187 __sbit
__at (0x9A) SCON_2
;
188 __sbit
__at (0x99) SCON_1
;
189 __sbit
__at (0x98) SCON_0
;
191 #define SM0 SCON_7 // alternatively "FE"
202 __sbit
__at (0x97) P1_7
;
203 __sbit
__at (0x96) P1_6
;
204 __sbit
__at (0x95) P1_5
;
205 __sbit
__at (0x94) P1_4
;
206 __sbit
__at (0x93) P1_3
;
207 __sbit
__at (0x92) P1_2
;
208 __sbit
__at (0x91) P1_1
;
209 __sbit
__at (0x90) P1_0
;
221 __sbit
__at (0xCF) T2CON_7
;
222 __sbit
__at (0xCE) T2CON_6
;
223 __sbit
__at (0xCD) T2CON_5
;
224 __sbit
__at (0xCC) T2CON_4
;
225 __sbit
__at (0xCB) T2CON_3
;
226 __sbit
__at (0xCA) T2CON_2
;
227 __sbit
__at (0xC9) T2CON_1
;
228 __sbit
__at (0xC8) T2CON_0
;
234 #define EXEN2 T2CON_3
237 #define CP_RL2 T2CON_0
240 __sbit
__at (0xDF) CCON_7
;
241 __sbit
__at (0xDE) CCON_6
;
242 __sbit
__at (0xDC) CCON_4
;
243 __sbit
__at (0xDB) CCON_3
;
244 __sbit
__at (0xDA) CCON_2
;
245 __sbit
__at (0xD9) CCON_1
;
246 __sbit
__at (0xD8) CCON_0
;