Imported Upstream version 2.9.0
[debian/cc1111] / device / include / mcs51 / C8051F020.h
1 /*-------------------------------------------------------------------------
2    Register Declarations for the Cygnal/SiLabs C8051F02x Processor Range
3
4    Copyright (C) 2004 - 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 C8051F020_H
22 #define C8051F020_H
23
24
25 /*  BYTE Registers  */
26 __sfr __at (0x80) P0           ;  /* PORT 0                                                  */
27 __sfr __at (0x81) SP           ;  /* STACK POINTER                                           */
28 __sfr __at (0x82) DPL          ;  /* DATA POINTER - LOW BYTE                                 */
29 __sfr __at (0x83) DPH          ;  /* DATA POINTER - HIGH BYTE                                */
30 __sfr __at (0x84) P4           ;  /* PORT 4                                                  */
31 __sfr __at (0x85) P5           ;  /* PORT 5                                                  */
32 __sfr __at (0x86) P6           ;  /* PORT 6                                                  */
33 __sfr __at (0x87) PCON         ;  /* POWER CONTROL                                           */
34 __sfr __at (0x88) TCON         ;  /* TIMER CONTROL                                           */
35 __sfr __at (0x89) TMOD         ;  /* TIMER MODE                                              */
36 __sfr __at (0x8A) TL0          ;  /* TIMER 0 - LOW BYTE                                      */
37 __sfr __at (0x8B) TL1          ;  /* TIMER 1 - LOW BYTE                                      */
38 __sfr __at (0x8C) TH0          ;  /* TIMER 0 - HIGH BYTE                                     */
39 __sfr __at (0x8D) TH1          ;  /* TIMER 1 - HIGH BYTE                                     */
40 __sfr __at (0x8E) CKCON        ;  /* CLOCK CONTROL                                           */
41 __sfr __at (0x8F) PSCTL        ;  /* PROGRAM STORE R/W CONTROL                               */
42 __sfr __at (0x90) P1           ;  /* PORT 1                                                  */
43 __sfr __at (0x91) TMR3CN       ;  /* TIMER 3 CONTROL                                         */
44 __sfr __at (0x92) TMR3RLL      ;  /* TIMER 3 RELOAD REGISTER - LOW BYTE                      */
45 __sfr __at (0x93) TMR3RLH      ;  /* TIMER 3 RELOAD REGISTER - HIGH BYTE                     */
46 __sfr __at (0x94) TMR3L        ;  /* TIMER 3 - LOW BYTE                                      */
47 __sfr __at (0x95) TMR3H        ;  /* TIMER 3 - HIGH BYTE                                     */
48 __sfr __at (0x96) P7           ;  /* PORT 7                                                  */
49 __sfr __at (0x98) SCON         ;  /* UART0 CONTROL                                           */
50 __sfr __at (0x98) SCON0        ;  /* UART0 CONTROL                                           */
51 __sfr __at (0x99) SBUF         ;  /* UART0 BUFFER                                            */
52 __sfr __at (0x99) SBUF0        ;  /* UART0 BUFFER                                            */
53 __sfr __at (0x9A) SPI0CFG      ;  /* SERIAL PERIPHERAL INTERFACE 0 CONFIGURATION             */
54 __sfr __at (0x9B) SPI0DAT      ;  /* SERIAL PERIPHERAL INTERFACE 0 DATA                      */
55 __sfr __at (0x9C) ADC1         ;  /* ADC 1 DATA                                              */
56 __sfr __at (0x9D) SPI0CKR      ;  /* SERIAL PERIPHERAL INTERFACE 0 CLOCK RATE CONTROL        */
57 __sfr __at (0x9E) CPT0CN       ;  /* COMPARATOR 0 CONTROL                                    */
58 __sfr __at (0x9F) CPT1CN       ;  /* COMPARATOR 1 CONTROL                                    */
59 __sfr __at (0xA0) P2           ;  /* PORT 2                                                  */
60 __sfr __at (0xA1) EMI0TC       ;  /* External Memory Timing Control                          */
61 __sfr __at (0xA3) EMI0CF       ;  /* EMIF CONFIGURATION                                      */
62 __sfr __at (0xA4) PRT0CF       ;  /* PORT 0 CONFIGURATION                                    */
63 __sfr __at (0xA4) P0MDOUT      ;  /* PORT 0 OUTPUT MODE CONFIGURATION                        */
64 __sfr __at (0xA5) PRT1CF       ;  /* PORT 1 CONFIGURATION                                    */
65 __sfr __at (0xA5) P1MDOUT      ;  /* PORT 1 OUTPUT MODE CONFIGURATION                        */
66 __sfr __at (0xA6) PRT2CF       ;  /* PORT 2 CONFIGURATION                                    */
67 __sfr __at (0xA6) P2MDOUT      ;  /* PORT 2 OUTPUT MODE CONFIGURATION                        */
68 __sfr __at (0xA7) PRT3CF       ;  /* PORT 3 CONFIGURATION                                    */
69 __sfr __at (0xA7) P3MDOUT      ;  /* PORT 3 OUTPUT MODE CONFIGURATION                        */
70 __sfr __at (0xA8) IE           ;  /* INTERRUPT ENABLE                                        */
71 __sfr __at (0xA9) SADDR0       ;  /* UART0 Slave Address                                     */
72 __sfr __at (0xAA) ADC1CN       ;  /* ADC 1 CONTROL                                           */
73 __sfr __at (0xAB) ADC1CF       ;  /* ADC 1 CONFIGURATION                                     */
74 __sfr __at (0xAC) AMX1SL       ;  /* ADC 1 MUX CHANNEL SELECTION                             */
75 __sfr __at (0xAD) P3IF         ;  /* PORT 3 EXTERNAL INTERRUPT FLAGS                         */
76 __sfr __at (0xAE) SADEN1       ;  /* UART1 Slave Address Enable                              */
77 __sfr __at (0xAF) EMI0CN       ;  /* EXTERNAL MEMORY INTERFACE CONTROL                       */
78 __sfr __at (0xAF) _XPAGE       ;  /* XDATA/PDATA PAGE                                        */
79 __sfr __at (0xB0) P3           ;  /* PORT 3                                                  */
80 __sfr __at (0xB1) OSCXCN       ;  /* EXTERNAL OSCILLATOR CONTROL                             */
81 __sfr __at (0xB2) OSCICN       ;  /* INTERNAL OSCILLATOR CONTROL                             */
82 __sfr __at (0xB5) P74OUT       ;  /* PORT 4 THROUGH 7 OUTPUT MODE CONFIGURATION              */
83 __sfr __at (0xB6) FLSCL        ;  /* FLASH MEMORY TIMING PRESCALER                           */
84 __sfr __at (0xB7) FLACL        ;  /* FLASH ACESS LIMIT                                       */
85 __sfr __at (0xB8) IP           ;  /* INTERRUPT PRIORITY                                      */
86 __sfr __at (0xB9) SADEN0       ;  /* UART0 Slave Address Enable                              */
87 __sfr __at (0xBA) AMX0CF       ;  /* ADC 0 MUX CONFIGURATION                                 */
88 __sfr __at (0xBB) AMX0SL       ;  /* ADC 0 MUX CHANNEL SELECTION                             */
89 __sfr __at (0xBC) ADC0CF       ;  /* ADC 0 CONFIGURATION                                     */
90 __sfr __at (0xBD) P1MDIN       ;  /* PORT 1 Input Mode                                       */
91 __sfr __at (0xBE) ADC0L        ;  /* ADC 0 DATA - LOW BYTE                                   */
92 __sfr __at (0xBF) ADC0H        ;  /* ADC 0 DATA - HIGH BYTE                                  */
93 __sfr __at (0xC0) SMB0CN       ;  /* SMBUS 0 CONTROL                                         */
94 __sfr __at (0xC1) SMB0STA      ;  /* SMBUS 0 STATUS                                          */
95 __sfr __at (0xC2) SMB0DAT      ;  /* SMBUS 0 DATA                                            */
96 __sfr __at (0xC3) SMB0ADR      ;  /* SMBUS 0 SLAVE ADDRESS                                   */
97 __sfr __at (0xC4) ADC0GTL      ;  /* ADC 0 GREATER-THAN REGISTER - LOW BYTE                  */
98 __sfr __at (0xC5) ADC0GTH      ;  /* ADC 0 GREATER-THAN REGISTER - HIGH BYTE                 */
99 __sfr __at (0xC6) ADC0LTL      ;  /* ADC 0 LESS-THAN REGISTER - LOW BYTE                     */
100 __sfr __at (0xC7) ADC0LTH      ;  /* ADC 0 LESS-THAN REGISTER - HIGH BYTE                    */
101 __sfr __at (0xC8) T2CON        ;  /* TIMER 2 CONTROL                                         */
102 __sfr __at (0xC9) T4CON        ;  /* TIMER 4 CONTROL                                         */
103 __sfr __at (0xCA) RCAP2L       ;  /* TIMER 2 CAPTURE REGISTER - LOW BYTE                     */
104 __sfr __at (0xCB) RCAP2H       ;  /* TIMER 2 CAPTURE REGISTER - HIGH BYTE                    */
105 __sfr __at (0xCC) TL2          ;  /* TIMER 2 - LOW BYTE                                      */
106 __sfr __at (0xCD) TH2          ;  /* TIMER 2 - HIGH BYTE                                     */
107 __sfr __at (0xCF) SMB0CR       ;  /* SMBUS 0 CLOCK RATE                                      */
108 __sfr __at (0xD0) PSW          ;  /* PROGRAM STATUS WORD                                     */
109 __sfr __at (0xD1) REF0CN       ;  /* VOLTAGE REFERENCE 0 CONTROL                             */
110 __sfr __at (0xD2) DAC0L        ;  /* DAC 0 REGISTER - LOW BYTE                               */
111 __sfr __at (0xD3) DAC0H        ;  /* DAC 0 REGISTER - HIGH BYTE                              */
112 __sfr __at (0xD4) DAC0CN       ;  /* DAC 0 CONTROL                                           */
113 __sfr __at (0xD5) DAC1L        ;  /* DAC 1 REGISTER - LOW BYTE                               */
114 __sfr __at (0xD6) DAC1H        ;  /* DAC 1 REGISTER - HIGH BYTE                              */
115 __sfr __at (0xD7) DAC1CN       ;  /* DAC 1 CONTROL                                           */
116 __sfr __at (0xD8) PCA0CN       ;  /* PCA 0 COUNTER CONTROL                                   */
117 __sfr __at (0xD9) PCA0MD       ;  /* PCA 0 COUNTER MODE                                      */
118 __sfr __at (0xDA) PCA0CPM0     ;  /* CONTROL REGISTER FOR PCA 0 MODULE 0                     */
119 __sfr __at (0xDB) PCA0CPM1     ;  /* CONTROL REGISTER FOR PCA 0 MODULE 1                     */
120 __sfr __at (0xDC) PCA0CPM2     ;  /* CONTROL REGISTER FOR PCA 0 MODULE 2                     */
121 __sfr __at (0xDD) PCA0CPM3     ;  /* CONTROL REGISTER FOR PCA 0 MODULE 3                     */
122 __sfr __at (0xDE) PCA0CPM4     ;  /* CONTROL REGISTER FOR PCA 0 MODULE 4                     */
123 __sfr __at (0xE0) ACC          ;  /* ACCUMULATOR                                             */
124 __sfr __at (0xE1) XBR0         ;  /* DIGITAL CROSSBAR CONFIGURATION REGISTER 0               */
125 __sfr __at (0xE2) XBR1         ;  /* DIGITAL CROSSBAR CONFIGURATION REGISTER 1               */
126 __sfr __at (0xE3) XBR2         ;  /* DIGITAL CROSSBAR CONFIGURATION REGISTER 2               */
127 __sfr __at (0xE4) RCAP4L       ;  /* TIMER 4 CAPTURE REGISTER - LOW BYTE                     */
128 __sfr __at (0xE5) RCAP4H       ;  /* TIMER 4 CAPTURE REGISTER - HIGH BYTE                    */
129 __sfr __at (0xE6) EIE1         ;  /* EXTERNAL INTERRUPT ENABLE 1                             */
130 __sfr __at (0xE7) EIE2         ;  /* EXTERNAL INTERRUPT ENABLE 2                             */
131 __sfr __at (0xE8) ADC0CN       ;  /* ADC 0 CONTROL                                           */
132 __sfr __at (0xE9) PCA0L        ;  /* PCA 0 TIMER - LOW BYTE                                  */
133 __sfr __at (0xEA) PCA0CPL0     ;  /* CAPTURE/COMPARE REGISTER FOR PCA 0 MODULE 0 - LOW BYTE  */
134 __sfr __at (0xEB) PCA0CPL1     ;  /* CAPTURE/COMPARE REGISTER FOR PCA 0 MODULE 1 - LOW BYTE  */
135 __sfr __at (0xEC) PCA0CPL2     ;  /* CAPTURE/COMPARE REGISTER FOR PCA 0 MODULE 2 - LOW BYTE  */
136 __sfr __at (0xED) PCA0CPL3     ;  /* CAPTURE/COMPARE REGISTER FOR PCA 0 MODULE 3 - LOW BYTE  */
137 __sfr __at (0xEE) PCA0CPL4     ;  /* CAPTURE/COMPARE REGISTER FOR PCA 0 MODULE 4 - LOW BYTE  */
138 __sfr __at (0xEF) RSTSRC       ;  /* RESET SOURCE                                            */
139 __sfr __at (0xF0) B            ;  /* B REGISTER                                              */
140 __sfr __at (0xF1) SCON1        ;  /* UART1 CONTROL                                           */
141 __sfr __at (0xF2) SBUF1        ;  /* UART1 DATA                                              */
142 __sfr __at (0xF3) SADDR1       ;  /* UART1 Slave Address                                     */
143 __sfr __at (0xF4) TL4          ;  /* TIMER 4 DATA - LOW BYTE                                 */
144 __sfr __at (0xF5) TH4          ;  /* TIMER 4 DATA - HIGH BYTE                                */
145 __sfr __at (0xF6) EIP1         ;  /* EXTERNAL INTERRUPT PRIORITY REGISTER 1                  */
146 __sfr __at (0xF7) EIP2         ;  /* EXTERNAL INTERRUPT PRIORITY REGISTER 2                  */
147 __sfr __at (0xF8) SPI0CN       ;  /* SERIAL PERIPHERAL INTERFACE 0 CONTROL                   */
148 __sfr __at (0xF9) PCA0H        ;  /* PCA 0 TIMER - HIGH BYTE                                 */
149 __sfr __at (0xFA) PCA0CPH0     ;  /* CAPTURE/COMPARE REGISTER FOR PCA 0 MODULE 0 - HIGH BYTE */
150 __sfr __at (0xFB) PCA0CPH1     ;  /* CAPTURE/COMPARE REGISTER FOR PCA 0 MODULE 1 - HIGH BYTE */
151 __sfr __at (0xFC) PCA0CPH2     ;  /* CAPTURE/COMPARE REGISTER FOR PCA 0 MODULE 2 - HIGH BYTE */
152 __sfr __at (0xFD) PCA0CPH3     ;  /* CAPTURE/COMPARE REGISTER FOR PCA 0 MODULE 3 - HIGH BYTE */
153 __sfr __at (0xFE) PCA0CPH4     ;  /* CAPTURE/COMPARE REGISTER FOR PCA 0 MODULE 4 - HIGH BYTE */
154 __sfr __at (0xFF) WDTCN        ;  /* WATCHDOG TIMER CONTROL                                  */
155
156
157 /*  WORD/DWORD Registers  */
158
159 __sfr16 __at (0x8C8A) TMR0     ;  /* TIMER 0 COUNTER                                         */
160 __sfr16 __at (0x8D8B) TMR1     ;  /* TIMER 1 COUNTER                                         */
161 __sfr16 __at (0xCDCC) TMR2     ;  /* TIMER 2 COUNTER                                         */
162 __sfr16 __at (0xCBCA) RCAP2    ;  /* TIMER 2 CAPTURE REGISTER WORD                           */
163 __sfr16 __at (0x9594) TMR3     ;  /* TIMER 3 COUNTER                                         */
164 __sfr16 __at (0x9392) TMR3RL   ;  /* TIMER 3 CAPTURE REGISTER WORD                           */
165 __sfr16 __at (0xF5F4) TMR4     ;  /* TIMER 4 COUNTER                                         */
166 __sfr16 __at (0xE5E4) RCAP4    ;  /* TIMER 4 CAPTURE REGISTER WORD                           */
167 __sfr16 __at (0xBFBE) ADC0     ;  /* ADC 0 DATA WORD                                         */
168 __sfr16 __at (0xC5C4) ADC0GT   ;  /* ADC 0 GREATER-THAN REGISTER WORD                        */
169 __sfr16 __at (0xC7C6) ADC0LT   ;  /* ADC 0 LESS-THAN REGISTER WORD                           */
170 __sfr16 __at (0xD3D2) DAC0     ;  /* DAC 0 REGISTER WORD                                     */
171 __sfr16 __at (0xD6D5) DAC1     ;  /* DAC 1 REGISTER WORD                                     */
172 __sfr16 __at (0xF9E9) PCA0     ;  /* PCA COUNTER                                             */
173 __sfr16 __at (0xFAEA) PCA0CP0  ;  /* PCA CAPTURE 0 WORD                                      */
174 __sfr16 __at (0xFBEB) PCA0CP1  ;  /* PCA CAPTURE 1 WORD                                      */
175 __sfr16 __at (0xFCEC) PCA0CP2  ;  /* PCA CAPTURE 2 WORD                                      */
176 __sfr16 __at (0xFDED) PCA0CP3  ;  /* PCA CAPTURE 3 WORD                                      */
177 __sfr16 __at (0xFEEE) PCA0CP4  ;  /* PCA CAPTURE 4 WORD                                      */
178
179
180 /*  BIT Registers  */
181
182 /*  P0  0x80 */
183 __sbit __at (0x80) P0_0        ;
184 __sbit __at (0x81) P0_1        ;
185 __sbit __at (0x82) P0_2        ;
186 __sbit __at (0x83) P0_3        ;
187 __sbit __at (0x84) P0_4        ;
188 __sbit __at (0x85) P0_5        ;
189 __sbit __at (0x86) P0_6        ;
190 __sbit __at (0x87) P0_7        ;
191
192 /*  TCON  0x88 */
193 __sbit __at (0x88) IT0         ;  /* EXT. INTERRUPT 0 TYPE                                   */
194 __sbit __at (0x89) IE0         ;  /* EXT. INTERRUPT 0 EDGE FLAG                              */
195 __sbit __at (0x8A) IT1         ;  /* EXT. INTERRUPT 1 TYPE                                   */
196 __sbit __at (0x8B) IE1         ;  /* EXT. INTERRUPT 1 EDGE FLAG                              */
197 __sbit __at (0x8C) TR0         ;  /* TIMER 0 ON/OFF CONTROL                                  */
198 __sbit __at (0x8D) TF0         ;  /* TIMER 0 OVERFLOW FLAG                                   */
199 __sbit __at (0x8E) TR1         ;  /* TIMER 1 ON/OFF CONTROL                                  */
200 __sbit __at (0x8F) TF1         ;  /* TIMER 1 OVERFLOW FLAG                                   */
201
202 /*  P1  0x90 */
203 __sbit __at (0x90) P1_0        ;
204 __sbit __at (0x91) P1_1        ;
205 __sbit __at (0x92) P1_2        ;
206 __sbit __at (0x93) P1_3        ;
207 __sbit __at (0x94) P1_4        ;
208 __sbit __at (0x95) P1_5        ;
209 __sbit __at (0x96) P1_6        ;
210 __sbit __at (0x97) P1_7        ;
211
212 /*  SCON  0x98 */
213 __sbit __at (0x98) RI          ;  /* SCON.0 - RECEIVE INTERRUPT FLAG                         */
214 __sbit __at (0x98) RI0         ;  /* SCON.0 - RECEIVE INTERRUPT FLAG                         */
215 __sbit __at (0x99) TI          ;  /* SCON.1 - TRANSMIT INTERRUPT FLAG                        */
216 __sbit __at (0x99) TI0         ;  /* SCON.1 - TRANSMIT INTERRUPT FLAG                        */
217 __sbit __at (0x9A) RB8         ;  /* SCON.2 - RECEIVE BIT 8                                  */
218 __sbit __at (0x9A) RB80        ;  /* SCON.2 - RECEIVE BIT 8                                  */
219 __sbit __at (0x9B) TB8         ;  /* SCON.3 - TRANSMIT BIT 8                                 */
220 __sbit __at (0x9B) TB80        ;  /* SCON.3 - TRANSMIT BIT 8                                 */
221 __sbit __at (0x9C) REN         ;  /* SCON.4 - RECEIVE ENABLE                                 */
222 __sbit __at (0x9C) REN0        ;  /* SCON.4 - RECEIVE ENABLE                                 */
223 __sbit __at (0x9D) SM2         ;  /* SCON.5 - MULTIPROCESSOR COMMUNICATION ENABLE            */
224 __sbit __at (0x9D) SM20        ;  /* SCON.5 - MULTIPROCESSOR COMMUNICATION ENABLE            */
225 __sbit __at (0x9D) MCE0        ;  /* SCON.5 - MULTIPROCESSOR COMMUNICATION ENABLE            */
226 __sbit __at (0x9E) SM1         ;  /* SCON.6 - SERIAL MODE CONTROL BIT 1                      */
227 __sbit __at (0x9E) SM10        ;  /* SCON.6 - SERIAL MODE CONTROL BIT 1                      */
228 __sbit __at (0x9F) SM0         ;  /* SCON.7 - SERIAL MODE CONTROL BIT 0                      */
229 __sbit __at (0x9F) SM00        ;  /* SCON.7 - SERIAL MODE CONTROL BIT 0                      */
230 __sbit __at (0x9F) S0MODE      ;  /* SCON.7 - SERIAL MODE CONTROL BIT 0                      */
231
232 /*  P2  0xA0 */
233 __sbit __at (0xA0) P2_0        ;
234 __sbit __at (0xA1) P2_1        ;
235 __sbit __at (0xA2) P2_2        ;
236 __sbit __at (0xA3) P2_3        ;
237 __sbit __at (0xA4) P2_4        ;
238 __sbit __at (0xA5) P2_5        ;
239 __sbit __at (0xA6) P2_6        ;
240 __sbit __at (0xA7) P2_7        ;
241
242 /*  IE  0xA8 */
243 __sbit __at (0xA8) EX0         ;  /* EXTERNAL INTERRUPT 0 ENABLE                             */
244 __sbit __at (0xA9) ET0         ;  /* TIMER 0 INTERRUPT ENABLE                                */
245 __sbit __at (0xAA) EX1         ;  /* EXTERNAL INTERRUPT 1 ENABLE                             */
246 __sbit __at (0xAB) ET1         ;  /* TIMER 1 INTERRUPT ENABLE                                */
247 __sbit __at (0xAC) ES0         ;  /* SERIAL PORT 0 INTERRUPT ENABLE                          */
248 __sbit __at (0xAC) ES          ;  /* SERIAL PORT 0 INTERRUPT ENABLE                          */
249 __sbit __at (0xAD) ET2         ;  /* TIMER 2 INTERRUPT ENABLE                                */
250 __sbit __at (0xAF) EA          ;  /* GLOBAL INTERRUPT ENABLE                                 */
251
252 /*  P3  0xB0 */
253 __sbit __at (0xB0) P3_0        ;
254 __sbit __at (0xB1) P3_1        ;
255 __sbit __at (0xB2) P3_2        ;
256 __sbit __at (0xB3) P3_3        ;
257 __sbit __at (0xB4) P3_4        ;
258 __sbit __at (0xB5) P3_5        ;
259 __sbit __at (0xB6) P3_6        ;
260 __sbit __at (0xB7) P3_7        ;
261
262 /*  IP  0xB8 */
263 __sbit __at (0xB8) PX0         ;  /* EXTERNAL INTERRUPT 0 PRIORITY                           */
264 __sbit __at (0xB9) PT0         ;  /* TIMER 0 PRIORITY                                        */
265 __sbit __at (0xBA) PX1         ;  /* EXTERNAL INTERRUPT 1 PRIORITY                           */
266 __sbit __at (0xBB) PT1         ;  /* TIMER 1 PRIORITY                                        */
267 __sbit __at (0xBC) PS0         ;  /* SERIAL PORT PRIORITY                                    */
268 __sbit __at (0xBC) PS          ;  /* SERIAL PORT PRIORITY                                    */
269 __sbit __at (0xBD) PT2         ;  /* TIMER 2 PRIORITY                                        */
270
271 /*  SMB0CN  0xC0 */
272 __sbit __at (0xC0) SMBTOE      ;  /* SMBUS 0 TIMEOUT ENABLE                                  */
273 __sbit __at (0xC1) SMBFTE      ;  /* SMBUS 0 FREE TIMER ENABLE                               */
274 __sbit __at (0xC2) AA          ;  /* SMBUS 0 ASSERT/ACKNOWLEDGE FLAG                         */
275 __sbit __at (0xC3) SI          ;  /* SMBUS 0 INTERRUPT PENDING FLAG                          */
276 __sbit __at (0xC4) STO         ;  /* SMBUS 0 STOP FLAG                                       */
277 __sbit __at (0xC5) STA         ;  /* SMBUS 0 START FLAG                                      */
278 __sbit __at (0xC6) ENSMB       ;  /* SMBUS 0 ENABLE                                          */
279 __sbit __at (0xC7) BUSY        ;  /* SMBUS 0 BUSY                                            */
280
281 /*  T2CON  0xC8 */
282 __sbit __at (0xC8) CPRL2       ;  /* CAPTURE OR RELOAD SELECT                                */
283 __sbit __at (0xC9) CT2         ;  /* TIMER OR COUNTER SELECT                                 */
284 __sbit __at (0xCA) TR2         ;  /* TIMER 2 ON/OFF CONTROL                                  */
285 __sbit __at (0xCB) EXEN2       ;  /* TIMER 2 EXTERNAL ENABLE FLAG                            */
286 __sbit __at (0xCC) TCLK        ;  /* TRANSMIT CLOCK FLAG                                     */
287 __sbit __at (0xCD) RCLK        ;  /* RECEIVE CLOCK FLAG                                      */
288 __sbit __at (0xCE) EXF2        ;  /* EXTERNAL FLAG                                           */
289 __sbit __at (0xCF) TF2         ;  /* TIMER 2 OVERFLOW FLAG                                   */
290
291 /*  PSW  0xD0 */
292 __sbit __at (0xD0) P           ;  /* ACCUMULATOR PARITY FLAG                                 */
293 __sbit __at (0xD1) F1          ;  /* USER FLAG 1                                             */
294 __sbit __at (0xD2) OV          ;  /* OVERFLOW FLAG                                           */
295 __sbit __at (0xD3) RS0         ;  /* REGISTER BANK SELECT 0                                  */
296 __sbit __at (0xD4) RS1         ;  /* REGISTER BANK SELECT 1                                  */
297 __sbit __at (0xD5) F0          ;  /* USER FLAG 0                                             */
298 __sbit __at (0xD6) AC          ;  /* AUXILIARY CARRY FLAG                                    */
299 __sbit __at (0xD7) CY          ;  /* CARRY FLAG                                              */
300
301 /*  PCA0CN  0xD8H */
302 __sbit __at (0xD8) CCF0        ;  /* PCA 0 MODULE 0 INTERRUPT FLAG                           */
303 __sbit __at (0xD9) CCF1        ;  /* PCA 0 MODULE 1 INTERRUPT FLAG                           */
304 __sbit __at (0xDA) CCF2        ;  /* PCA 0 MODULE 2 INTERRUPT FLAG                           */
305 __sbit __at (0xDB) CCF3        ;  /* PCA 0 MODULE 3 INTERRUPT FLAG                           */
306 __sbit __at (0xDC) CCF4        ;  /* PCA 0 MODULE 4 INTERRUPT FLAG                           */
307 __sbit __at (0xDE) CR          ;  /* PCA 0 COUNTER RUN CONTROL BIT                           */
308 __sbit __at (0xDF) CF          ;  /* PCA 0 COUNTER OVERFLOW FLAG                             */
309
310 /*  ADC0CN  0xE8H */
311 __sbit __at (0xE8) ADLJST      ;  /* ADC 0 RIGHT JUSTIFY DATA BIT                            */
312 __sbit __at (0xE8) AD0LJST     ;  /* ADC 0 RIGHT JUSTIFY DATA BIT                            */
313 __sbit __at (0xE9) ADWINT      ;  /* ADC 0 WINDOW COMPARE INTERRUPT FLAG                     */
314 __sbit __at (0xE9) AD0WINT     ;  /* ADC 0 WINDOW COMPARE INTERRUPT FLAG                     */
315 __sbit __at (0xEA) ADSTM0      ;  /* ADC 0 START OF CONVERSION MODE BIT 0                    */
316 __sbit __at (0xEA) AD0CM0      ;  /* ADC 0 START OF CONVERSION MODE BIT 0                    */
317 __sbit __at (0xEB) ADSTM1      ;  /* ADC 0 START OF CONVERSION MODE BIT 1                    */
318 __sbit __at (0xEB) AD0CM1      ;  /* ADC 0 START OF CONVERSION MODE BIT 1                    */
319 __sbit __at (0xEC) ADBUSY      ;  /* ADC 0 BUSY FLAG                                         */
320 __sbit __at (0xEC) AD0BUSY     ;  /* ADC 0 BUSY FLAG                                         */
321 __sbit __at (0xED) ADCINT      ;  /* ADC 0 CONVERISION COMPLETE INTERRUPT FLAG               */
322 __sbit __at (0xED) AD0INT      ;  /* ADC 0 CONVERISION COMPLETE INTERRUPT FLAG               */
323 __sbit __at (0xEE) ADCTM       ;  /* ADC 0 TRACK MODE                                        */
324 __sbit __at (0xEE) AD0TM       ;  /* ADC 0 TRACK MODE                                        */
325 __sbit __at (0xEF) ADCEN       ;  /* ADC 0 ENABLE                                            */
326 __sbit __at (0xEF) AD0EN       ;  /* ADC 0 ENABLE                                            */
327
328 /*  SPI0CN  0xF8H */
329 __sbit __at (0xF8) SPIEN       ;  /* SPI 0 SPI ENABLE                                        */
330 __sbit __at (0xF9) MSTEN       ;  /* SPI 0 MASTER ENABLE                                     */
331 __sbit __at (0xFA) SLVSEL      ;  /* SPI 0 SLAVE SELECT                                      */
332 __sbit __at (0xFB) TXBSY       ;  /* SPI 0 TX BUSY FLAG                                      */
333 __sbit __at (0xFC) RXOVRN      ;  /* SPI 0 RX OVERRUN FLAG                                   */
334 __sbit __at (0xFD) MODF        ;  /* SPI 0 MODE FAULT FLAG                                   */
335 __sbit __at (0xFE) WCOL        ;  /* SPI 0 WRITE COLLISION FLAG                              */
336 __sbit __at (0xFF) SPIF        ;  /* SPI 0 INTERRUPT FLAG                                    */
337
338
339 /* Predefined SFR Bit Masks */
340
341 #define PCON_IDLE         0x01    /* PCON                                */
342 #define PCON_STOP         0x02    /* PCON                                */
343 #define PCON_SMOD0        0x80    /* PCON                                */
344 #define TF3               0x80    /* TMR3CN                              */
345 #define CPFIF             0x10    /* CPTnCN                              */
346 #define CPRIF             0x20    /* CPTnCN                              */
347 #define CPOUT             0x40    /* CPTnCN                              */
348 #define TR4               0x04    /* T4CON                               */
349 #define TF4               0x80    /* T4CON                               */
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 PORSF             0x02    /* RSTSRC                              */
359 #define SWRSF             0x10    /* RSTSRC                              */
360 #define RI1               0x01    /* SCON1                               */
361 #define TI1               0x02    /* SCON1                               */
362 #define RB81              0x04    /* SCON1                               */
363 #define TB81              0x08    /* SCON1                               */
364 #define REN1              0x10    /* SCON1                               */
365 #define SM21              0x20    /* SCON1                               */
366 #define SM11              0x40    /* SCON1                               */
367 #define SM01              0x80    /* SCON1                               */
368
369 #endif