Imported Upstream version 2.9.0
[debian/cc1111] / device / include / mcs51 / C8051F410.h
1 /*-------------------------------------------------------------------------
2    Register Declarations for the SiLabs C8051F41x Processor Range
3
4    Copyright (C) 2006 - Maarten Brock, sourceforge.brock@dse.nl
5
6    This library is free software; you can redistribute it and/or
7    modify it under the terms of the GNU Lesser General Public
8    License as published by the Free Software Foundation; either
9    version 2.1 of the License, or (at your option) any later version.
10
11    This library is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14    Lesser General Public License for more details.
15
16    You should have received a copy of the GNU Lesser General Public
17    License along with this library; if not, write to the Free Software
18    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 -------------------------------------------------------------------------*/
20
21 #ifndef C8051F410_H
22 #define C8051F410_H
23
24
25 /*  BYTE Registers  */
26
27 __sfr __at (0x80) P0           ;  /* PORT 0                                        */
28 __sfr __at (0x81) SP           ;  /* STACK POINTER                                 */
29 __sfr __at (0x82) DPL          ;  /* DATA POINTER - LOW BYTE                       */
30 __sfr __at (0x83) DPH          ;  /* DATA POINTER - HIGH BYTE                      */
31 __sfr __at (0x84) CRC0CN       ;  /* CRC 0 CONTROL                                 */
32 __sfr __at (0x85) CRC0IN       ;  /* CRC 0 DATA INPUT                              */
33 __sfr __at (0x86) CRC0DAT      ;  /* CRC 0 DATA OUTPUT                             */
34 __sfr __at (0x87) PCON         ;  /* POWER CONTROL                                 */
35 __sfr __at (0x88) TCON         ;  /* TIMER CONTROL                                 */
36 __sfr __at (0x89) TMOD         ;  /* TIMER MODE                                    */
37 __sfr __at (0x8A) TL0          ;  /* TIMER 0 - LOW BYTE                            */
38 __sfr __at (0x8B) TL1          ;  /* TIMER 1 - LOW BYTE                            */
39 __sfr __at (0x8C) TH0          ;  /* TIMER 0 - HIGH BYTE                           */
40 __sfr __at (0x8D) TH1          ;  /* TIMER 1 - HIGH BYTE                           */
41 __sfr __at (0x8E) CKCON        ;  /* CLOCK CONTROL                                 */
42 __sfr __at (0x8F) PSCTL        ;  /* PROGRAM STORE R/W CONTROL                     */
43 __sfr __at (0x90) P1           ;  /* PORT 1                                        */
44 __sfr __at (0x91) TMR3CN       ;  /* TIMER 3 CONTROL                               */
45 __sfr __at (0x92) TMR3RLL      ;  /* TIMER 3 CAPTURE REGISTER - LOW BYTE           */
46 __sfr __at (0x93) TMR3RLH      ;  /* TIMER 3 CAPTURE REGISTER - HIGH BYTE          */
47 __sfr __at (0x94) TMR3L        ;  /* TIMER 3 - LOW BYTE                            */
48 __sfr __at (0x95) TMR3H        ;  /* TIMER 3 - HIGH BYTE                           */
49 __sfr __at (0x96) IDA0L        ;  /* CURRENT MODE DAC 0 - LOW BYTE                 */
50 __sfr __at (0x97) IDA0H        ;  /* CURRENT MODE DAC 0 - HIGH BYTE                */
51 __sfr __at (0x98) SCON         ;  /* SERIAL PORT CONTROL                           */
52 __sfr __at (0x98) SCON0        ;  /* SERIAL PORT CONTROL                           */
53 __sfr __at (0x99) SBUF         ;  /* SERIAL PORT BUFFER                            */
54 __sfr __at (0x99) SBUF0        ;  /* SERIAL PORT BUFFER                            */
55 __sfr __at (0x9A) CPT1CN       ;  /* COMPARATOR 1 CONTROL                          */
56 __sfr __at (0x9B) CPT0CN       ;  /* COMPARATOR 0 CONTROL                          */
57 __sfr __at (0x9C) CPT1MD       ;  /* COMPARATOR 1 MODE SELECTION                   */
58 __sfr __at (0x9D) CPT0MD       ;  /* COMPARATOR 0 MODE SELECTION                   */
59 __sfr __at (0x9E) CPT1MX       ;  /* COMPARATOR 1 MUX SELECTION                    */
60 __sfr __at (0x9F) CPT0MX       ;  /* COMPARATOR 0 MUX SELECTION                    */
61 __sfr __at (0xA0) P2           ;  /* PORT 2                                        */
62 __sfr __at (0xA1) SPI0CFG      ;  /* SPI0 CONFIGURATION                            */
63 __sfr __at (0xA2) SPI0CKR      ;  /* SPI0 CLOCK RATE CONTROL                       */
64 __sfr __at (0xA3) SPI0DAT      ;  /* SPI0 DATA                                     */
65 __sfr __at (0xA4) P0MDOUT      ;  /* PORT 0 OUTPUT MODE CONFIGURATION              */
66 __sfr __at (0xA5) P1MDOUT      ;  /* PORT 1 OUTPUT MODE CONFIGURATION              */
67 __sfr __at (0xA6) P2MDOUT      ;  /* PORT 2 OUTPUT MODE CONFIGURATION              */
68 __sfr __at (0xA8) IE           ;  /* INTERRUPT ENABLE                              */
69 __sfr __at (0xA9) CLKSEL       ;  /* SYSTEM CLOCK SELECT                           */
70 __sfr __at (0xAA) EMI0CN       ;  /* EXTERNAL MEMORY INTERFACE CONTROL             */
71 __sfr __at (0xAA) _XPAGE       ;  /* XDATA/PDATA PAGE                              */
72 __sfr __at (0xAB) CLKMUL       ;  /* CLOCK MULTIPLIER                              */
73 __sfr __at (0xAC) RTC0ADR      ;  /* SMARTCLOCK ADDRESS                            */
74 __sfr __at (0xAD) RTC0DAT      ;  /* SMARTCLOCK DATA                               */
75 __sfr __at (0xAE) RTC0KEY      ;  /* SMARTCLOCK LOCK AND KEY                       */
76 __sfr __at (0xAF) ONESHOT      ;  /* FLASH ONESHOT PERIOD                          */
77 __sfr __at (0xB0) P0ODEN       ;  /* PORT 0 OVERDRIVE                              */
78 __sfr __at (0xB1) OSCXCN       ;  /* EXTERNAL OSCILLATOR CONTROL                   */
79 __sfr __at (0xB2) OSCICN       ;  /* INTERNAL OSCILLATOR CONTROL                   */
80 __sfr __at (0xB3) OSCICL       ;  /* INTERNAL OSCILLATOR CALIBRATION               */
81 __sfr __at (0xB5) IDA1CN       ;  /* CURRENT MODE DAC 1 - CONTROL                  */
82 __sfr __at (0xB6) FLSCL        ;  /* FLASH MEMORY TIMING PRESCALER                 */
83 __sfr __at (0xB7) FLKEY        ;  /* FLASH ACESS LIMIT                             */
84 __sfr __at (0xB8) IP           ;  /* INTERRUPT PRIORITY                            */
85 __sfr __at (0xB9) IDA0CN       ;  /* CURRENT MODE DAC 0 - CONTROL                  */
86 __sfr __at (0xBA) ADC0TK       ;  /* ADC 0 TRACKING MODE SELECT                    */
87 __sfr __at (0xBB) ADC0MX       ;  /* ADC 0 CHANNEL SELECT                          */
88 __sfr __at (0xBC) ADC0CF       ;  /* ADC 0 CONFIGURATION                           */
89 __sfr __at (0xBD) ADC0L        ;  /* ADC 0 DATA WORD LSB                           */
90 __sfr __at (0xBE) ADC0H        ;  /* ADC 0 DATA WORD MSB                           */
91 __sfr __at (0xBF) P1MASK       ;  /* PORT 1 MASK                                   */
92 __sfr __at (0xC0) SMB0CN       ;  /* SMBUS CONTROL                                 */
93 __sfr __at (0xC1) SMB0CF       ;  /* SMBUS CONFIGURATION                           */
94 __sfr __at (0xC2) SMB0DAT      ;  /* SMBUS DATA                                    */
95 __sfr __at (0xC3) ADC0GTL      ;  /* ADC 0 GREATER-THAN LOW BYTE                   */
96 __sfr __at (0xC4) ADC0GTH      ;  /* ADC 0 GREATER-THAN HIGH BYTE                  */
97 __sfr __at (0xC5) ADC0LTL      ;  /* ADC 0 LESS-THAN LOW BYTE                      */
98 __sfr __at (0xC6) ADC0LTH      ;  /* ADC 0 LESS-THAN HIGH BYTE                     */
99 __sfr __at (0xC7) P0MASK       ;  /* PORT 0 MASK                                   */
100 __sfr __at (0xC8) T2CON        ;  /* TIMER 2 CONTROL                               */
101 __sfr __at (0xC8) TMR2CN       ;  /* TIMER 2 CONTROL                               */
102 __sfr __at (0xC9) REG0CN       ;  /* VOLTAGE REGULATOR CONTROL                     */
103 __sfr __at (0xCA) RCAP2L       ;  /* TIMER 2 CAPTURE REGISTER - LOW BYTE           */
104 __sfr __at (0xCA) TMR2RLL      ;  /* TIMER 2 CAPTURE REGISTER - LOW BYTE           */
105 __sfr __at (0xCB) RCAP2H       ;  /* TIMER 2 CAPTURE REGISTER - HIGH BYTE          */
106 __sfr __at (0xCB) TMR2RLH      ;  /* TIMER 2 CAPTURE REGISTER - HIGH BYTE          */
107 __sfr __at (0xCC) TL2          ;  /* TIMER 2 - LOW BYTE                            */
108 __sfr __at (0xCC) TMR2L        ;  /* TIMER 2 - LOW BYTE                            */
109 __sfr __at (0xCD) TH2          ;  /* TIMER 2 - HIGH BYTE                           */
110 __sfr __at (0xCD) TMR2H        ;  /* TIMER 2 - HIGH BYTE                           */
111 __sfr __at (0xCE) PCA0CPM5     ;  /* PCA MODULE 5 MODE REGISTER                    */
112 __sfr __at (0xCF) P1MAT        ;  /* PORT 1 MATCH                                  */
113 __sfr __at (0xD0) PSW          ;  /* PROGRAM STATUS WORD                           */
114 __sfr __at (0xD1) REF0CN       ;  /* VOLTAGE REFERENCE 0 CONTROL                   */
115 __sfr __at (0xD2) PCA0CPL5     ;  /* PCA CAPTURE 5 LOW                             */
116 __sfr __at (0xD3) PCA0CPH5     ;  /* PCA CAPTURE 5 HIGH                            */
117 __sfr __at (0xD4) P0SKIP       ;  /* PORT 0 SKIP                                   */
118 __sfr __at (0xD5) P1SKIP       ;  /* PORT 1 SKIP                                   */
119 __sfr __at (0xD6) P2SKIP       ;  /* PORT 2 SKIP                                   */
120 __sfr __at (0xD7) P0MAT        ;  /* PORT 0 MATCH                                  */
121 __sfr __at (0xD8) PCA0CN       ;  /* PCA CONTROL                                   */
122 __sfr __at (0xD9) PCA0MD       ;  /* PCA MODE                                      */
123 __sfr __at (0xDA) PCA0CPM0     ;  /* PCA MODULE 0 MODE REGISTER                    */
124 __sfr __at (0xDB) PCA0CPM1     ;  /* PCA MODULE 1 MODE REGISTER                    */
125 __sfr __at (0xDC) PCA0CPM2     ;  /* PCA MODULE 2 MODE REGISTER                    */
126 __sfr __at (0xDD) PCA0CPM3     ;  /* PCA MODULE 3 MODE REGISTER                    */
127 __sfr __at (0xDE) PCA0CPM4     ;  /* PCA MODULE 4 MODE REGISTER                    */
128 __sfr __at (0xDF) CRC0FLIP     ;  /* CRC 0 BIT FLIP                                */
129 __sfr __at (0xE0) ACC          ;  /* ACCUMULATOR                                   */
130 __sfr __at (0xE1) XBR0         ;  /* PORT MUX CONFIGURATION REGISTER 0             */
131 __sfr __at (0xE2) XBR1         ;  /* PORT MUX CONFIGURATION REGISTER 1             */
132 __sfr __at (0xE3) PFE0CN       ;  /* PREFETCH ENGINE CONTROL                       */
133 __sfr __at (0xE4) IT01CF       ;  /* INT0/INT1 CONFIGURATION REGISTER              */
134 __sfr __at (0xE4) INT01CF      ;  /* INT0/INT1 CONFIGURATION REGISTER              */
135 __sfr __at (0xE6) EIE1         ;  /* EXTERNAL INTERRUPT ENABLE 1                   */
136 __sfr __at (0xE7) EIE2         ;  /* EXTERNAL INTERRUPT ENABLE 2                   */
137 __sfr __at (0xE8) ADC0CN       ;  /* ADC 0 CONTROL                                 */
138 __sfr __at (0xE9) PCA0CPL1     ;  /* PCA CAPTURE 1 LOW                             */
139 __sfr __at (0xEA) PCA0CPH1     ;  /* PCA CAPTURE 1 HIGH                            */
140 __sfr __at (0xEB) PCA0CPL2     ;  /* PCA CAPTURE 2 LOW                             */
141 __sfr __at (0xEC) PCA0CPH2     ;  /* PCA CAPTURE 2 HIGH                            */
142 __sfr __at (0xED) PCA0CPL3     ;  /* PCA CAPTURE 3 LOW                             */
143 __sfr __at (0xEE) PCA0CPH3     ;  /* PCA CAPTURE 3 HIGH                            */
144 __sfr __at (0xEF) RSTSRC       ;  /* RESET SOURCE                                  */
145 __sfr __at (0xF0) B            ;  /* B REGISTER                                    */
146 __sfr __at (0xF1) P0MODE       ;  /* PORT 0 INPUT MODE CONFIGURATION               */
147 __sfr __at (0xF1) P0MDIN       ;  /* PORT 0 INPUT MODE CONFIGURATION               */
148 __sfr __at (0xF2) P1MODE       ;  /* PORT 1 INPUT MODE CONFIGURATION               */
149 __sfr __at (0xF2) P1MDIN       ;  /* PORT 1 INPUT MODE CONFIGURATION               */
150 __sfr __at (0xF3) P2MODE       ;  /* PORT 2 INPUT MODE CONFIGURATION               */
151 __sfr __at (0xF3) P2MDIN       ;  /* PORT 2 INPUT MODE CONFIGURATION               */
152 __sfr __at (0xF4) IDA1L        ;  /* CURRENT MODE DAC 1 - LOW BYTE                 */
153 __sfr __at (0xF5) IDA1H        ;  /* CURRENT MODE DAC 1 - HIGH BYTE                */
154 __sfr __at (0xF6) EIP1         ;  /* EXTERNAL INTERRUPT PRIORITY REGISTER 1        */
155 __sfr __at (0xF7) EIP2         ;  /* EXTERNAL INTERRUPT PRIORITY REGISTER 2        */
156 __sfr __at (0xF8) SPI0CN       ;  /* SPI0 CONTROL                                  */
157 __sfr __at (0xF9) PCA0L        ;  /* PCA COUNTER LOW                               */
158 __sfr __at (0xFA) PCA0H        ;  /* PCA COUNTER HIGH                              */
159 __sfr __at (0xFB) PCA0CPL0     ;  /* PCA CAPTURE 0 LOW                             */
160 __sfr __at (0xFC) PCA0CPH0     ;  /* PCA CAPTURE 0 HIGH                            */
161 __sfr __at (0xFD) PCA0CPL4     ;  /* PCA CAPTURE 4 LOW                             */
162 __sfr __at (0xFE) PCA0CPH4     ;  /* PCA CAPTURE 4 HIGH                            */
163 __sfr __at (0xFF) VDM0CN       ;  /* VDD MONITOR CONTROL                           */
164
165
166 /*  WORD/DWORD Registers  */
167
168 __sfr16 __at (0x8C8A) TMR0     ;  /* TIMER 0 COUNTER                               */
169 __sfr16 __at (0x8D8B) TMR1     ;  /* TIMER 1 COUNTER                               */
170 __sfr16 __at (0xCDCC) TMR2     ;  /* TIMER 2 COUNTER                               */
171 __sfr16 __at (0xCBCA) RCAP2    ;  /* TIMER 2 CAPTURE REGISTER WORD                 */
172 __sfr16 __at (0xCBCA) TMR2RL   ;  /* TIMER 2 CAPTURE REGISTER WORD                 */
173 __sfr16 __at (0x9594) TMR3     ;  /* TIMER 3 COUNTER                               */
174 __sfr16 __at (0x9392) TMR3RL   ;  /* TIMER 3 CAPTURE REGISTER WORD                 */
175 __sfr16 __at (0x9796) IDA0     ;  /* CURRENT MODE DAC 0 DATA WORD                  */
176 __sfr16 __at (0xF5F4) IDA1     ;  /* CURRENT MODE DAC 1 DATA WORD                  */
177 __sfr16 __at (0xBEBD) ADC0     ;  /* ADC 0 DATA WORD                               */
178 __sfr16 __at (0xC4C3) ADC0GT   ;  /* ADC 0 GREATER-THAN REGISTER WORD              */
179 __sfr16 __at (0xC6C5) ADC0LT   ;  /* ADC 0 LESS-THAN REGISTER WORD                 */
180 __sfr16 __at (0xFAF9) PCA0     ;  /* PCA COUNTER                                   */
181 __sfr16 __at (0xFCFB) PCA0CP0  ;  /* PCA CAPTURE 0 WORD                            */
182 __sfr16 __at (0xEAE9) PCA0CP1  ;  /* PCA CAPTURE 1 WORD                            */
183 __sfr16 __at (0xECEB) PCA0CP2  ;  /* PCA CAPTURE 2 WORD                            */
184 __sfr16 __at (0xEEED) PCA0CP3  ;  /* PCA CAPTURE 3 WORD                            */
185 __sfr16 __at (0xFEFD) PCA0CP4  ;  /* PCA CAPTURE 4 WORD                            */
186 __sfr16 __at (0xD3D2) PCA0CP5  ;  /* PCA CAPTURE 5 WORD                            */
187
188
189 /*  BIT Registers  */
190
191 /*  P0  0x80 */
192 __sbit __at (0x80) P0_0        ;
193 __sbit __at (0x81) P0_1        ;
194 __sbit __at (0x82) P0_2        ;
195 __sbit __at (0x83) P0_3        ;
196 __sbit __at (0x84) P0_4        ;
197 __sbit __at (0x85) P0_5        ;
198 __sbit __at (0x86) P0_6        ;
199 __sbit __at (0x87) P0_7        ;
200
201 /*  TCON  0x88 */
202 __sbit __at (0x88) IT0         ;  /* TCON.0 - EXT. INTERRUPT 0 TYPE                */
203 __sbit __at (0x89) IE0         ;  /* TCON.1 - EXT. INTERRUPT 0 EDGE FLAG           */
204 __sbit __at (0x8A) IT1         ;  /* TCON.2 - EXT. INTERRUPT 1 TYPE                */
205 __sbit __at (0x8B) IE1         ;  /* TCON.3 - EXT. INTERRUPT 1 EDGE FLAG           */
206 __sbit __at (0x8C) TR0         ;  /* TCON.4 - TIMER 0 ON/OFF CONTROL               */
207 __sbit __at (0x8D) TF0         ;  /* TCON.5 - TIMER 0 OVERFLOW FLAG                */
208 __sbit __at (0x8E) TR1         ;  /* TCON.6 - TIMER 1 ON/OFF CONTROL               */
209 __sbit __at (0x8F) TF1         ;  /* TCON.7 - TIMER 1 OVERFLOW FLAG                */
210
211 /*  P1  0x90 */
212 __sbit __at (0x90) P1_0        ;
213 __sbit __at (0x91) P1_1        ;
214 __sbit __at (0x92) P1_2        ;
215 __sbit __at (0x93) P1_3        ;
216 __sbit __at (0x94) P1_4        ;
217 __sbit __at (0x95) P1_5        ;
218 __sbit __at (0x96) P1_6        ;
219 __sbit __at (0x97) P1_7        ;
220
221 /*  SCON  0x98 */
222 __sbit __at (0x98) RI          ;  /* SCON.0 - RECEIVE INTERRUPT FLAG               */
223 __sbit __at (0x98) RI0         ;  /* SCON.0 - RECEIVE INTERRUPT FLAG               */
224 __sbit __at (0x99) TI          ;  /* SCON.1 - TRANSMIT INTERRUPT FLAG              */
225 __sbit __at (0x99) TI0         ;  /* SCON.1 - TRANSMIT INTERRUPT FLAG              */
226 __sbit __at (0x9A) RB8         ;  /* SCON.2 - RECEIVE BIT 8                        */
227 __sbit __at (0x9A) RB80        ;  /* SCON.2 - RECEIVE BIT 8                        */
228 __sbit __at (0x9B) TB8         ;  /* SCON.3 - TRANSMIT BIT 8                       */
229 __sbit __at (0x9B) TB80        ;  /* SCON.3 - TRANSMIT BIT 8                       */
230 __sbit __at (0x9C) REN         ;  /* SCON.4 - RECEIVE ENABLE                       */
231 __sbit __at (0x9C) REN0        ;  /* SCON.4 - RECEIVE ENABLE                       */
232 __sbit __at (0x9D) SM2         ;  /* SCON.5 - MULTIPROCESSOR COMMUNICATION ENABLE  */
233 __sbit __at (0x9D) MCE0        ;  /* SCON.5 - MULTIPROCESSOR COMMUNICATION ENABLE  */
234 __sbit __at (0x9F) SM0         ;  /* SCON.7 - SERIAL MODE CONTROL BIT 0            */
235 __sbit __at (0x9F) S0MODE      ;  /* SCON.7 - SERIAL MODE CONTROL BIT 0            */
236
237 /*  P2  0xA0 */
238 __sbit __at (0xA0) P2_0        ;
239 __sbit __at (0xA1) P2_1        ;
240 __sbit __at (0xA2) P2_2        ;
241 __sbit __at (0xA3) P2_3        ;
242 __sbit __at (0xA4) P2_4        ;
243 __sbit __at (0xA5) P2_5        ;
244 __sbit __at (0xA6) P2_6        ;
245 __sbit __at (0xA7) P2_7        ;
246
247 /*  IE  0xA8 */
248 __sbit __at (0xA8) EX0         ;  /* IE.0 - EXTERNAL INTERRUPT 0 ENABLE            */
249 __sbit __at (0xA9) ET0         ;  /* IE.1 - TIMER 0 INTERRUPT ENABLE               */
250 __sbit __at (0xAA) EX1         ;  /* IE.2 - EXTERNAL INTERRUPT 1 ENABLE            */
251 __sbit __at (0xAB) ET1         ;  /* IE.3 - TIMER 1 INTERRUPT ENABLE               */
252 __sbit __at (0xAC) ES          ;  /* IE.4 - SERIAL PORT INTERRUPT ENABLE           */
253 __sbit __at (0xAC) ES0         ;  /* IE.4 - SERIAL PORT INTERRUPT ENABLE           */
254 __sbit __at (0xAD) ET2         ;  /* IE.5 - TIMER 2 INTERRUPT ENABLE               */
255 __sbit __at (0xAE) ESPI0       ;  /* IE.6 - SPI0 INTERRUPT ENABLE                  */
256 __sbit __at (0xAF) EA          ;  /* IE.7 - GLOBAL INTERRUPT ENABLE                */
257
258 /*  P0ODEN  0xB0 */
259 __sbit __at (0xB0) P0OD_0      ;  /* P0ODEN.0 - PORT0.0 OVERDRIVE ENABLE           */
260 __sbit __at (0xB1) P0OD_1      ;  /* P0ODEN.1 - PORT0.1 OVERDRIVE ENABLE           */
261 __sbit __at (0xB2) P0OD_2      ;  /* P0ODEN.2 - PORT0.2 OVERDRIVE ENABLE           */
262 __sbit __at (0xB3) P0OD_3      ;  /* P0ODEN.3 - PORT0.3 OVERDRIVE ENABLE           */
263 __sbit __at (0xB4) P0OD_4      ;  /* P0ODEN.4 - PORT0.4 OVERDRIVE ENABLE           */
264 __sbit __at (0xB5) P0OD_5      ;  /* P0ODEN.5 - PORT0.5 OVERDRIVE ENABLE           */
265 __sbit __at (0xB6) P0OD_6      ;  /* P0ODEN.6 - PORT0.6 OVERDRIVE ENABLE           */
266 __sbit __at (0xB7) P0OD_7      ;  /* P0ODEN.7 - PORT0.7 OVERDRIVE ENABLE           */
267
268 /*  IP  0xB8 */
269 __sbit __at (0xB8) PX0         ;  /* IP.0 - EXTERNAL INTERRUPT 0 PRIORITY          */
270 __sbit __at (0xB9) PT0         ;  /* IP.1 - TIMER 0 PRIORITY                       */
271 __sbit __at (0xBA) PX1         ;  /* IP.2 - EXTERNAL INTERRUPT 1 PRIORITY          */
272 __sbit __at (0xBB) PT1         ;  /* IP.3 - TIMER 1 PRIORITY                       */
273 __sbit __at (0xBC) PS          ;  /* IP.4 - SERIAL PORT PRIORITY                   */
274 __sbit __at (0xBC) PS0         ;  /* IP.4 - SERIAL PORT PRIORITY                   */
275 __sbit __at (0xBD) PT2         ;  /* IP.5 - TIMER 2 PRIORITY                       */
276 __sbit __at (0xBE) PSPI0       ;  /* IP.6 - SPI0 PRIORITY                          */
277
278 /*  SMB0CN  0xC0 */
279 __sbit __at (0xC0) SI          ;  /* SMB0CN.0 - SMBUS 0 INTERRUPT PENDING FLAG     */
280 __sbit __at (0xC1) ACK         ;  /* SMB0CN.1 - SMBUS 0 ACKNOWLEDGE FLAG           */
281 __sbit __at (0xC2) ARBLOST     ;  /* SMB0CN.2 - SMBUS 0 ARBITRATION LOST INDICATOR */
282 __sbit __at (0xC3) ACKRQ       ;  /* SMB0CN.3 - SMBUS 0 ACKNOWLEDGE REQUEST        */
283 __sbit __at (0xC4) STO         ;  /* SMB0CN.4 - SMBUS 0 STOP FLAG                  */
284 __sbit __at (0xC5) STA         ;  /* SMB0CN.5 - SMBUS 0 START FLAG                 */
285 __sbit __at (0xC6) TXMODE      ;  /* SMB0CN.6 - SMBUS 0 TRANSMIT MODE INDICATOR    */
286 __sbit __at (0xC7) MASTER      ;  /* SMB0CN.7 - SMBUS 0 MASTER/SLAVE INDICATOR     */
287
288 /*  TMR2CN  0xC8 */
289 __sbit __at (0xC8) T2XCLK      ;  /* TMR2CN.0 - TIMER 2 EXTERNAL CLOCK SELECT      */
290 __sbit __at (0xC9) T2RCLK      ;  /* TMR2CN.1 - TIMER 2 CAPTURE MODE               */
291 __sbit __at (0xCA) TR2         ;  /* TMR2CN.2 - TIMER 2 ON/OFF CONTROL             */
292 __sbit __at (0xCB) T2SPLIT     ;  /* TMR2CN.3 - TIMER 2 SPLIT MODE ENABLE          */
293 __sbit __at (0xCD) TF2CEN      ;  /* TMR2CN.5 - TIMER 2 LOW-FREQ OSC CAPTURE ENABLE*/
294 __sbit __at (0xCD) TF2LEN      ;  /* TMR2CN.5 - TIMER 2 LOW BYTE INTERRUPT ENABLE  */
295 __sbit __at (0xCE) TF2L        ;  /* TMR2CN.6 - TIMER 2 LOW BYTE OVERFLOW FLAG     */
296 __sbit __at (0xCF) TF2         ;  /* TMR2CN.7 - TIMER 2 OVERFLOW FLAG              */
297 __sbit __at (0xCF) TF2H        ;  /* TMR2CN.7 - TIMER 2 HIGH BYTE OVERFLOW FLAG    */
298
299 /*  PSW  0xD0 */
300 __sbit __at (0xD0) PARITY      ;  /* PSW.0 - ACCUMULATOR PARITY FLAG               */
301 __sbit __at (0xD1) F1          ;  /* PSW.1 - FLAG 1                                */
302 __sbit __at (0xD2) OV          ;  /* PSW.2 - OVERFLOW FLAG                         */
303 __sbit __at (0xD3) RS0         ;  /* PSW.3 - REGISTER BANK SELECT 0                */
304 __sbit __at (0xD4) RS1         ;  /* PSW.4 - REGISTER BANK SELECT 1                */
305 __sbit __at (0xD5) F0          ;  /* PSW.5 - FLAG 0                                */
306 __sbit __at (0xD6) AC          ;  /* PSW.6 - AUXILIARY CARRY FLAG                  */
307 __sbit __at (0xD7) CY          ;  /* PSW.7 - CARRY FLAG                            */
308
309 /*  PCA0CN  0xD8 */
310 __sbit __at (0xD8) CCF0        ;  /* PCA0CN.0 - PCA MODULE 0 CAPTURE/COMPARE FLAG  */
311 __sbit __at (0xD9) CCF1        ;  /* PCA0CN.1 - PCA MODULE 1 CAPTURE/COMPARE FLAG  */
312 __sbit __at (0xDA) CCF2        ;  /* PCA0CN.2 - PCA MODULE 2 CAPTURE/COMPARE FLAG  */
313 __sbit __at (0xDB) CCF3        ;  /* PCA0CN.3 - PCA MODULE 3 CAPTURE/COMPARE FLAG  */
314 __sbit __at (0xDC) CCF4        ;  /* PCA0CN.4 - PCA MODULE 4 CAPTURE/COMPARE FLAG  */
315 __sbit __at (0xDD) CCF5        ;  /* PCA0CN.5 - PCA MODULE 5 CAPTURE/COMPARE FLAG  */
316 __sbit __at (0xDE) CR          ;  /* PCA0CN.6 - PCA COUNTER/TIMER RUN CONTROL      */
317 __sbit __at (0xDF) CF          ;  /* PCA0CN.7 - PCA COUNTER/TIMER OVERFLOW FLAG    */
318
319 /*  ADC0CN  0xE8 */
320 __sbit __at (0xE8) AD0CM0      ;  /* ADC0CN.0 - ADC 0 START OF CONV. MODE BIT 0    */
321 __sbit __at (0xE9) AD0CM1      ;  /* ADC0CN.1 - ADC 0 START OF CONV. MODE BIT 1    */
322 __sbit __at (0xEA) AD0LJST     ;  /* ADC0CN.2 - ADC 0 LEFT JUSTIFY SELECT          */
323 __sbit __at (0xEB) AD0WINT     ;  /* ADC0CN.3 - ADC 0 WINDOW COMPARE INT. FLAG     */
324 __sbit __at (0xEC) AD0BUSY     ;  /* ADC0CN.4 - ADC 0 BUSY FLAG                    */
325 __sbit __at (0xED) AD0INT      ;  /* ADC0CN.5 - ADC 0 CONV. COMPLETE INT. FLAG     */
326 __sbit __at (0xEE) BURSTEN     ;  /* ADC0CN.6 - ADC 0 BURST MODE ENABLE            */
327 __sbit __at (0xEF) AD0EN       ;  /* ADC0CN.7 - ADC 0 ENABLE                       */
328
329 /*  SPI0CN  0xF8 */
330 __sbit __at (0xF8) SPIEN       ;  /* SPI0CN.0 - SPI0 ENABLE                        */
331 __sbit __at (0xF9) TXBMT       ;  /* SPI0CN.1 - TRANSMIT BUFFER EMPTY              */
332 __sbit __at (0xFA) NSSMD0      ;  /* SPI0CN.2 - SLAVE SELECT MODE BIT 0            */
333 __sbit __at (0xFB) NSSMD1      ;  /* SPI0CN.3 - SLAVE SELECT MODE BIT 1            */
334 __sbit __at (0xFC) RXOVRN      ;  /* SPI0CN.4 - RECEIVE OVERRUN FLAG               */
335 __sbit __at (0xFD) MODF        ;  /* SPI0CN.5 - MODE FAULT FLAG                    */
336 __sbit __at (0xFE) WCOL        ;  /* SPI0CN.6 - WRITE COLLISION FLAG               */
337 __sbit __at (0xFF) SPIF        ;  /* SPI0CN.7 - SPI0 INTERRUPT FLAG                */
338
339
340 /* Predefined SFR Bit Masks */
341
342 #define PCON_IDLE         0x01    /* PCON                                */
343 #define PCON_STOP         0x02    /* PCON                                */
344 #define T1M               0x08    /* CKCON                               */
345 #define PSWE              0x01    /* PSCTL                               */
346 #define PSEE              0x02    /* PSCTL                               */
347 #define ECP0              0x20    /* EIE1                                */
348 #define PORSF             0x02    /* RSTSRC                              */
349 #define SWRSF             0x10    /* RSTSRC                              */
350 #define ECCF              0x01    /* PCA0CPMn                            */
351 #define PWM               0x02    /* PCA0CPMn                            */
352 #define TOG               0x04    /* PCA0CPMn                            */
353 #define MAT               0x08    /* PCA0CPMn                            */
354 #define CAPN              0x10    /* PCA0CPMn                            */
355 #define CAPP              0x20    /* PCA0CPMn                            */
356 #define ECOM              0x40    /* PCA0CPMn                            */
357 #define PWM16             0x80    /* PCA0CPMn                            */
358 #define CP0E              0x10    /* XBR0                                */
359 #define CP0OEN            0x10    /* XBR0                                */
360 #define CP0AE             0x20    /* XBR0                                */
361 #define CP0AOEN           0x20    /* XBR0                                */
362
363 /* Interrupts */
364
365 #define INT_EXT0          0       // External Interrupt 0
366 #define INT_TIMER0        1       // Timer0 Overflow
367 #define INT_EXT1          2       // External Interrupt 1
368 #define INT_TIMER1        3       // Timer1 Overflow
369 #define INT_UART0         4       // Serial Port 0
370 #define INT_TIMER2        5       // Timer2 Overflow
371 #define INT_SPI0          6       // Serial Peripheral Interface 0
372 #define INT_SMBUS0        7       // SMBus0 Interface
373 #define INT_RTC0          8       // RTC0 Interface
374 #define INT_ADC0_WINDOW   9       // ADC0 Window Comparison
375 #define INT_ADC0_EOC      10      // ADC0 End Of Conversion
376 #define INT_PCA0          11      // PCA0 Peripheral
377 #define INT_COMPARATOR0   12      // Comparator0
378 #define INT_COMPARATOR1   13      // Comparator1
379 #define INT_TIMER3        14      // Timer3 Overflow
380 #define INT_VREG_DROPOUT  15      // VREG dropout
381 #define INT_PORT_MATCH    16      // Port Match
382
383 #endif