N76E003_iar.h 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681
  1. #ifndef __N76E003_IAR_H__
  2. #define __N76E003_IAR_H__
  3. /*--------------------------------------------------------------------------
  4. N76E003.H
  5. Header file for Nuvoton N76E003 in IAR
  6. --------------------------------------------------------------------------*/
  7. __sfr __no_init volatile union
  8. {
  9. unsigned char P0; /* Port 0 */
  10. struct /* Port 0 */
  11. {
  12. #if 0
  13. unsigned char P00 : 1;
  14. unsigned char P01 : 1;
  15. unsigned char P02 : 1;
  16. unsigned char P03 : 1;
  17. unsigned char P04 : 1;
  18. unsigned char P05 : 1;
  19. unsigned char P06 : 1;
  20. unsigned char P07 : 1;
  21. #endif
  22. unsigned char BIT0 : 1;
  23. unsigned char BIT1 : 1;
  24. unsigned char BIT2 : 1;
  25. unsigned char BIT3 : 1;
  26. unsigned char BIT4 : 1;
  27. unsigned char BIT5 : 1;
  28. unsigned char BIT6 : 1;
  29. unsigned char BIT7 : 1;
  30. } P0_bit;
  31. } @ 0x80;
  32. __sfr __no_init volatile unsigned char SP @ 0x81; /* Stack Pointer */
  33. __sfr __no_init volatile unsigned char DPL @ 0x82; /* Data Pointer Low byte, LSB of DPTR */
  34. __sfr __no_init volatile unsigned char DPH @ 0x83; /* Data Pointer High byte, MSB of DPTR */
  35. __sfr __no_init volatile unsigned char RCTRIM0 @ 0x84;
  36. __sfr __no_init volatile unsigned char RCTRIM1 @ 0x85;
  37. __sfr __no_init volatile unsigned char RWK @ 0x86;
  38. __sfr __no_init volatile unsigned char PCON @ 0x87;
  39. __sfr __no_init volatile union
  40. {
  41. unsigned char TCON; /* Timer Control */
  42. struct /* Timer Control */
  43. {
  44. #if 0
  45. unsigned char IT0 : 1;
  46. unsigned char IE0 : 1;
  47. unsigned char IT1 : 1;
  48. unsigned char IE1 : 1;
  49. unsigned char TR0 : 1;
  50. unsigned char TF0 : 1;
  51. unsigned char TR1 : 1;
  52. unsigned char TF1 : 1;
  53. #endif
  54. unsigned char BIT0 : 1;
  55. unsigned char BIT1 : 1;
  56. unsigned char BIT2 : 1;
  57. unsigned char BIT3 : 1;
  58. unsigned char BIT4 : 1;
  59. unsigned char BIT5 : 1;
  60. unsigned char BIT6 : 1;
  61. unsigned char BIT7 : 1;
  62. } TCON_bit;
  63. } @ 0x88;
  64. __sfr __no_init volatile unsigned char TMOD @ 0x89;
  65. __sfr __no_init volatile unsigned char TL0 @ 0x8A; /* Timer0 Low */
  66. __sfr __no_init volatile unsigned char TL1 @ 0x8B; /* Timer1 Low*/
  67. __sfr __no_init volatile unsigned char TH0 @ 0x8C; /* Timer0 High*/
  68. __sfr __no_init volatile unsigned char TH1 @ 0x8D; /* Timer1 High*/
  69. __sfr __no_init volatile unsigned char CKCON @ 0x8E;
  70. __sfr __no_init volatile unsigned char WKCON @ 0x8F;
  71. __sfr __no_init volatile union
  72. {
  73. unsigned char P1; /* Port 1 */
  74. struct /* Port 1 */
  75. {
  76. #if 0
  77. unsigned char P10 : 1;
  78. unsigned char P11 : 1;
  79. unsigned char P12 : 1;
  80. unsigned char P13 : 1;
  81. unsigned char P14 : 1;
  82. unsigned char P15 : 1;
  83. unsigned char P16 : 1;
  84. unsigned char P17 : 1;
  85. #endif
  86. unsigned char BIT0 : 1;
  87. unsigned char BIT1 : 1;
  88. unsigned char BIT2 : 1;
  89. unsigned char BIT3 : 1;
  90. unsigned char BIT4 : 1;
  91. unsigned char BIT5 : 1;
  92. unsigned char BIT6 : 1;
  93. unsigned char BIT7 : 1;
  94. } P1_bit;
  95. } @ 0x90;
  96. __sfr __no_init volatile unsigned char SFRS @ 0x91; //TA Protection
  97. __sfr __no_init volatile unsigned char CAPCON0 @ 0x92;
  98. __sfr __no_init volatile unsigned char CAPCON1 @ 0x93;
  99. __sfr __no_init volatile unsigned char CAPCON2 @ 0x94;
  100. __sfr __no_init volatile unsigned char CKDIV @ 0x95;
  101. __sfr __no_init volatile unsigned char CKSWT @ 0x96; //TA Protection
  102. __sfr __no_init volatile unsigned char CKEN @ 0x97; //TA Protection
  103. __sfr __no_init volatile union
  104. {
  105. unsigned char SCON; /* Serial Control */
  106. struct /* Serial Control */
  107. {
  108. #if 0
  109. unsigned char RI : 1;
  110. unsigned char TI : 1;
  111. unsigned char RB8 : 1;
  112. unsigned char TB8 : 1;
  113. unsigned char REN : 1;
  114. unsigned char SM2 : 1;
  115. unsigned char SM1 : 1;
  116. unsigned char SM0 : 1;
  117. #endif
  118. unsigned char BIT0 : 1;
  119. unsigned char BIT1 : 1;
  120. unsigned char BIT2 : 1;
  121. unsigned char BIT3 : 1;
  122. unsigned char BIT4 : 1;
  123. unsigned char BIT5 : 1;
  124. unsigned char BIT6 : 1;
  125. unsigned char BIT7 : 1;
  126. } SCON_bit;
  127. } @ 0x98;
  128. __sfr __no_init volatile unsigned char SBUF @ 0x99; /* Serial Data Buffer */
  129. __sfr __no_init volatile unsigned char SBUF_1 @ 0x9A; /* Serial 1 Data Buffer */
  130. __sfr __no_init volatile unsigned char EIE @ 0x9B;
  131. __sfr __no_init volatile unsigned char EIE1 @ 0x9C;
  132. __sfr __no_init volatile unsigned char CHPCON @ 0x9F; //TA Protection
  133. __sfr __no_init volatile union
  134. {
  135. unsigned char P2; /* Port 2 */
  136. struct /* Port 2 */
  137. {
  138. #if 0
  139. unsigned char P20 : 1;
  140. unsigned char P21 : 1;
  141. unsigned char P22 : 1;
  142. unsigned char P23 : 1;
  143. unsigned char P24 : 1;
  144. unsigned char P25 : 1;
  145. unsigned char P26 : 1;
  146. unsigned char P27 : 1;
  147. #endif
  148. unsigned char BIT0 : 1;
  149. unsigned char BIT1 : 1;
  150. unsigned char BIT2 : 1;
  151. unsigned char BIT3 : 1;
  152. unsigned char BIT4 : 1;
  153. unsigned char BIT5 : 1;
  154. unsigned char BIT6 : 1;
  155. unsigned char BIT7 : 1;
  156. } P2_bit;
  157. } @ 0xA0;
  158. __sfr __no_init volatile unsigned char AUXR1 @ 0xA2;
  159. __sfr __no_init volatile unsigned char BODCON0 @ 0xA3; //TA Protection
  160. __sfr __no_init volatile unsigned char IAPTRG @ 0xA4; //TA Protection
  161. __sfr __no_init volatile unsigned char IAPUEN @ 0xA5; //TA Protection
  162. __sfr __no_init volatile unsigned char IAPAL @ 0xA6;
  163. __sfr __no_init volatile unsigned char IAPAH @ 0xA7;
  164. //__sfr __no_init volatile unsigned char IE @ 0xA8;
  165. __sfr __no_init volatile union
  166. {
  167. unsigned char IE; /* Interrupt Enable */
  168. struct /* Interrupt Enable */
  169. {
  170. #if 0
  171. unsigned char EX0 : 1;
  172. unsigned char ET0 : 1;
  173. unsigned char EX1 : 1;
  174. unsigned char ET1 : 1;
  175. unsigned char ES : 1;
  176. unsigned char EBOD : 1;
  177. unsigned char EADC : 1;
  178. unsigned char EA : 1;
  179. #endif
  180. unsigned char BIT0 : 1;
  181. unsigned char BIT1 : 1;
  182. unsigned char BIT2 : 1;
  183. unsigned char BIT3 : 1;
  184. unsigned char BIT4 : 1;
  185. unsigned char BIT5 : 1;
  186. unsigned char BIT6 : 1;
  187. unsigned char BIT7 : 1;
  188. } IE_bit;
  189. } @ 0xA8;
  190. __sfr __no_init volatile unsigned char SADDR @ 0xA9;
  191. __sfr __no_init volatile unsigned char WDCON @ 0xAA; //TA Protection
  192. __sfr __no_init volatile unsigned char BODCON1 @ 0xAB; //TA Protection
  193. __sfr __no_init volatile unsigned char P3M1 @ 0xAC;
  194. __sfr __no_init volatile unsigned char P3S @ 0xAC; //Page1
  195. __sfr __no_init volatile unsigned char P3M2 @ 0xAD;
  196. __sfr __no_init volatile unsigned char P3SR @ 0xAD; //Page1
  197. __sfr __no_init volatile unsigned char IAPFD @ 0xAE;
  198. __sfr __no_init volatile unsigned char IAPCN @ 0xAF;
  199. //__sfr __no_init volatile unsigned char P3 @ 0xB0;
  200. __sfr __no_init volatile union
  201. {
  202. unsigned char P3; /* Port 3 */
  203. struct /* Port 3 */
  204. {
  205. #if 0
  206. unsigned char P30 : 1;
  207. unsigned char P31 : 1;
  208. unsigned char P32 : 1;
  209. unsigned char P33 : 1;
  210. unsigned char P34 : 1;
  211. unsigned char P35 : 1;
  212. unsigned char P36 : 1;
  213. unsigned char P37 : 1;
  214. #endif
  215. unsigned char BIT0 : 1;
  216. unsigned char BIT1 : 1;
  217. unsigned char BIT2 : 1;
  218. unsigned char BIT3 : 1;
  219. unsigned char BIT4 : 1;
  220. unsigned char BIT5 : 1;
  221. unsigned char BIT6 : 1;
  222. unsigned char BIT7 : 1;
  223. } P3_bit;
  224. } @ 0xB0;
  225. __sfr __no_init volatile unsigned char P0M1 @ 0xB1;
  226. __sfr __no_init volatile unsigned char P0S @ 0xB1; //Page1
  227. __sfr __no_init volatile unsigned char P0M2 @ 0xB2;
  228. __sfr __no_init volatile unsigned char P0SR @ 0xB2; //Page1
  229. __sfr __no_init volatile unsigned char P1M1 @ 0xB3;
  230. __sfr __no_init volatile unsigned char P1S @ 0xB3; //Page1
  231. __sfr __no_init volatile unsigned char P1M2 @ 0xB4;
  232. __sfr __no_init volatile unsigned char P1SR @ 0xB4; //Page1
  233. __sfr __no_init volatile unsigned char P2S @ 0xB5;
  234. __sfr __no_init volatile unsigned char IPH @ 0xB7;
  235. __sfr __no_init volatile unsigned char PWMINTC @ 0xB7; //Page1
  236. //__sfr __no_init volatile unsigned char IP @ 0xB8;
  237. __sfr __no_init volatile union
  238. {
  239. unsigned char IP; /* IP */
  240. struct /* IP */
  241. {
  242. #if 0
  243. unsigned char PX0 : 1;
  244. unsigned char PT0 : 1;
  245. unsigned char PX1 : 1;
  246. unsigned char PT1 : 1;
  247. unsigned char PS : 1;
  248. unsigned char PBOD : 1;
  249. unsigned char PADC : 1;
  250. unsigned char : 1;
  251. #endif
  252. unsigned char BIT0 : 1;
  253. unsigned char BIT1 : 1;
  254. unsigned char BIT2 : 1;
  255. unsigned char BIT3 : 1;
  256. unsigned char BIT4 : 1;
  257. unsigned char BIT5 : 1;
  258. unsigned char BIT6 : 1;
  259. unsigned char BIT7 : 1;
  260. } IP_bit;
  261. } @ 0xB8;
  262. __sfr __no_init volatile unsigned char SADEN @ 0xB9;
  263. __sfr __no_init volatile unsigned char SADEN_1 @ 0xBA;
  264. __sfr __no_init volatile unsigned char SADDR_1 @ 0xBB;
  265. __sfr __no_init volatile unsigned char I2DAT @ 0xBC;
  266. __sfr __no_init volatile unsigned char I2STAT @ 0xBD;
  267. __sfr __no_init volatile unsigned char I2CLK @ 0xBE;
  268. __sfr __no_init volatile unsigned char I2TOC @ 0xBF;
  269. //__sfr __no_init volatile unsigned I2CON @ 0xC0;
  270. __sfr __no_init volatile union
  271. {
  272. unsigned char I2CON; /* I2CON */
  273. struct /* I2CON */
  274. {
  275. #if 0
  276. unsigned char I2CPX : 1;
  277. unsigned char : 1;
  278. unsigned char AA : 1;
  279. unsigned char SI : 1;
  280. unsigned char STO : 1;
  281. unsigned char STA : 1;
  282. unsigned char I2CEN : 1;
  283. unsigned char : 1;
  284. #endif
  285. unsigned char BIT0 : 1;
  286. unsigned char BIT1 : 1;
  287. unsigned char BIT2 : 1;
  288. unsigned char BIT3 : 1;
  289. unsigned char BIT4 : 1;
  290. unsigned char BIT5 : 1;
  291. unsigned char BIT6 : 1;
  292. unsigned char BIT7 : 1;
  293. } I2CON_bit;
  294. } @ 0xC0;
  295. __sfr __no_init volatile unsigned char I2ADDR @ 0xC1;
  296. __sfr __no_init volatile unsigned char ADCRL @ 0xC2;
  297. __sfr __no_init volatile unsigned char ADCRH @ 0xC3;
  298. __sfr __no_init volatile unsigned char T3CON @ 0xC4;
  299. __sfr __no_init volatile unsigned char PWM4H @ 0xC4; //Page1
  300. __sfr __no_init volatile unsigned char RL3 @ 0xC5;
  301. __sfr __no_init volatile unsigned char PWM5H @ 0xC5; //Page1
  302. __sfr __no_init volatile unsigned char RH3 @ 0xC6;
  303. __sfr __no_init volatile unsigned char PIOCON1 @ 0xC6; //Page1
  304. __sfr __no_init volatile unsigned char TA @ 0xC7;
  305. __sfr __no_init volatile union
  306. {
  307. unsigned char T2CON; /* Timer 2 Control */
  308. struct /* Timer 2 Control */
  309. {
  310. #if 0
  311. unsigned char CM_RL2 : 1;
  312. unsigned char : 1;
  313. unsigned char TR2: 1;
  314. unsigned char : 1;
  315. unsigned char : 1;
  316. unsigned char : 1;
  317. unsigned char : 1;
  318. unsigned char TF2: 1;
  319. #endif
  320. unsigned char BIT0 : 1;
  321. unsigned char BIT1 : 1;
  322. unsigned char BIT2 : 1;
  323. unsigned char BIT3 : 1;
  324. unsigned char BIT4 : 1;
  325. unsigned char BIT5 : 1;
  326. unsigned char BIT6 : 1;
  327. unsigned char BIT7 : 1;
  328. } T2CON_bit;
  329. } @ 0xC8;
  330. __sfr __no_init volatile unsigned char T2MOD @ 0xC9;
  331. __sfr __no_init volatile unsigned char RCMP2L @ 0xCA;
  332. __sfr __no_init volatile unsigned char RCMP2H @ 0xCB;
  333. __sfr __no_init volatile unsigned char TL2 @ 0xCC; /* Timer2 Low */
  334. __sfr __no_init volatile unsigned char PWM4L @ 0xCC; //Page1
  335. __sfr __no_init volatile unsigned char TH2 @ 0xCD;
  336. __sfr __no_init volatile unsigned char PWM5L @ 0xCD; //Page1
  337. __sfr __no_init volatile unsigned char ADCMPL @ 0xCE;
  338. __sfr __no_init volatile unsigned char ADCMPH @ 0xCF;
  339. __sfr __no_init volatile union
  340. {
  341. unsigned char PSW; /* Program Status Word */
  342. struct /* Program Status Word */
  343. {
  344. #if 0
  345. unsigned char P : 1;
  346. unsigned char F1 : 1;
  347. unsigned char OV : 1;
  348. unsigned char RS0 : 1;
  349. unsigned char RS1 : 1;
  350. unsigned char F0 : 1;
  351. unsigned char AC : 1;
  352. unsigned char CY : 1;
  353. #endif
  354. unsigned char BIT0 : 1;
  355. unsigned char BIT1 : 1;
  356. unsigned char BIT2 : 1;
  357. unsigned char BIT3 : 1;
  358. unsigned char BIT4 : 1;
  359. unsigned char BIT5 : 1;
  360. unsigned char BIT6 : 1;
  361. unsigned char BIT7 : 1;
  362. } PSW_bit;
  363. } @ 0xD0;
  364. __sfr __no_init volatile unsigned char PWMPH @ 0xD1;
  365. __sfr __no_init volatile unsigned char PWM0H @ 0xD2;
  366. __sfr __no_init volatile unsigned char PWM1H @ 0xD3;
  367. __sfr __no_init volatile unsigned char PWM2H @ 0xD4;
  368. __sfr __no_init volatile unsigned char PWM3H @ 0xD5;
  369. __sfr __no_init volatile unsigned char PNP @ 0xD6;
  370. __sfr __no_init volatile unsigned char FBD @ 0xD7;
  371. //__sfr __no_init volatile unsigned char PWMCON0 @ 0xD8;
  372. __sfr __no_init volatile union
  373. {
  374. unsigned char PWMCON0; /* PWMCON0 */
  375. struct /* PWMCON0 */
  376. {
  377. #if 0
  378. unsigned char : 1;
  379. unsigned char : 1;
  380. unsigned char : 1;
  381. unsigned char : 1;
  382. unsigned char CLRPWM : 1;
  383. unsigned char PWMF : 1;
  384. unsigned char LOAD : 1;
  385. unsigned char PWMRUN : 1;
  386. #endif
  387. unsigned char BIT0 : 1;
  388. unsigned char BIT1 : 1;
  389. unsigned char BIT2 : 1;
  390. unsigned char BIT3 : 1;
  391. unsigned char BIT4 : 1;
  392. unsigned char BIT5 : 1;
  393. unsigned char BIT6 : 1;
  394. unsigned char BIT7 : 1;
  395. } PWMCON0_bit;
  396. } @ 0xD8;
  397. __sfr __no_init volatile unsigned char PWMPL @ 0xD9;
  398. __sfr __no_init volatile unsigned char PWM0L @ 0xDA;
  399. __sfr __no_init volatile unsigned char PWM1L @ 0xDB;
  400. __sfr __no_init volatile unsigned char PWM2L @ 0xDC;
  401. __sfr __no_init volatile unsigned char PWM3L @ 0xDD;
  402. __sfr __no_init volatile unsigned char PIOCON0 @ 0xDE;
  403. __sfr __no_init volatile unsigned char PWMCON1 @ 0xDF;
  404. __sfr __no_init volatile union
  405. {
  406. unsigned char ACC; /* Accumulator */
  407. struct /* Accumulator */
  408. {
  409. #if 0
  410. unsigned char ACC0 : 1;
  411. unsigned char ACC1 : 1;
  412. unsigned char ACC2 : 1;
  413. unsigned char ACC3 : 1;
  414. unsigned char ACC4 : 1;
  415. unsigned char ACC5 : 1;
  416. unsigned char ACC6 : 1;
  417. unsigned char ACC7 : 1;
  418. #endif
  419. unsigned char BIT0 : 1;
  420. unsigned char BIT1 : 1;
  421. unsigned char BIT2 : 1;
  422. unsigned char BIT3 : 1;
  423. unsigned char BIT4 : 1;
  424. unsigned char BIT5 : 1;
  425. unsigned char BIT6 : 1;
  426. unsigned char BIT7 : 1;
  427. } ACC_bit;
  428. } @ 0xE0;
  429. __sfr __no_init volatile unsigned char ADCCON1 @ 0xE1;
  430. __sfr __no_init volatile unsigned char ADCCON2 @ 0xE2;
  431. __sfr __no_init volatile unsigned char ADCDLY @ 0xE3;
  432. __sfr __no_init volatile unsigned char C0L @ 0xE4;
  433. __sfr __no_init volatile unsigned char C0H @ 0xE5;
  434. __sfr __no_init volatile unsigned char C1L @ 0xE6;
  435. __sfr __no_init volatile unsigned char C1H @ 0xE7;
  436. //__sfr __no_init volatile unsigned char ADCCON0 @ 0xE8;
  437. __sfr __no_init volatile union
  438. {
  439. unsigned char ADCCON0; /* ADCCON0 */
  440. struct /* ADCCON0 */
  441. {
  442. #if 0
  443. unsigned char ADCHS0 : 1;
  444. unsigned char ADCHS1 : 1;
  445. unsigned char ADCHS2 : 1;
  446. unsigned char ADCHS3 : 1;
  447. unsigned char ETGSEL0 : 1;
  448. unsigned char ETGSEL1 : 1;
  449. unsigned char ADCS : 1;
  450. unsigned char ADCF : 1;
  451. #endif
  452. unsigned char BIT0 : 1;
  453. unsigned char BIT1 : 1;
  454. unsigned char BIT2 : 1;
  455. unsigned char BIT3 : 1;
  456. unsigned char BIT4 : 1;
  457. unsigned char BIT5 : 1;
  458. unsigned char BIT6 : 1;
  459. unsigned char BIT7 : 1;
  460. } ADCCON0_bit;
  461. } @ 0xE8;
  462. __sfr __no_init volatile unsigned char PICON @ 0xE9;
  463. __sfr __no_init volatile unsigned char PINEN @ 0xEA;
  464. __sfr __no_init volatile unsigned char PIPEN @ 0xEB;
  465. __sfr __no_init volatile unsigned char PIF @ 0xEC;
  466. __sfr __no_init volatile unsigned char C2L @ 0xED;
  467. __sfr __no_init volatile unsigned char C2H @ 0xEE;
  468. __sfr __no_init volatile unsigned char EIP @ 0xEF;
  469. __sfr __no_init volatile union
  470. {
  471. unsigned char B; /* B Register */
  472. struct /* B Register */
  473. {
  474. #if 0
  475. unsigned char B0 : 1;
  476. unsigned char B1 : 1;
  477. unsigned char B2 : 1;
  478. unsigned char B3 : 1;
  479. unsigned char B4 : 1;
  480. unsigned char B5 : 1;
  481. unsigned char B6 : 1;
  482. unsigned char B7 : 1;
  483. #endif
  484. unsigned char BIT0 : 1;
  485. unsigned char BIT1 : 1;
  486. unsigned char BIT2 : 1;
  487. unsigned char BIT3 : 1;
  488. unsigned char BIT4 : 1;
  489. unsigned char BIT5 : 1;
  490. unsigned char BIT6 : 1;
  491. unsigned char BIT7 : 1;
  492. } B_bit;
  493. } @ 0xF0;
  494. __sfr __no_init volatile unsigned char CAPCON3 @ 0xF1;
  495. __sfr __no_init volatile unsigned char CAPCON4 @ 0xF2;
  496. __sfr __no_init volatile unsigned char SPCR @ 0xF3;
  497. __sfr __no_init volatile unsigned char SPCR2 @ 0xF3; //Page1
  498. __sfr __no_init volatile unsigned char SPSR @ 0xF4;
  499. __sfr __no_init volatile unsigned char SPDR @ 0xF5;
  500. __sfr __no_init volatile unsigned char AINDIDS @ 0xF6;
  501. __sfr __no_init volatile unsigned char EIPH @ 0xF7;
  502. //__sfr __no_init volatile unsigned char SCON_1 @ 0xF8;
  503. __sfr __no_init volatile union
  504. {
  505. unsigned char SCON_1 ; /* SCON_1 Register */
  506. struct /* SCON_1 Register */
  507. {
  508. #if 0
  509. unsigned char RI_1 : 1;
  510. unsigned char TI_1 : 1;
  511. unsigned char RB8_1 : 1;
  512. unsigned char TB8_1 : 1;
  513. unsigned char REN_1 : 1;
  514. unsigned char SM2_1 : 1;
  515. unsigned char SM1_1 : 1;
  516. unsigned char FE_1 : 1;
  517. #endif
  518. unsigned char BIT0 : 1;
  519. unsigned char BIT1 : 1;
  520. unsigned char BIT2 : 1;
  521. unsigned char BIT3 : 1;
  522. unsigned char BIT4 : 1;
  523. unsigned char BIT5 : 1;
  524. unsigned char BIT6 : 1;
  525. unsigned char BIT7 : 1;
  526. } SCON_1_bit;
  527. } @ 0xF8;
  528. __sfr __no_init volatile unsigned char PDTEN @ 0xF9; //TA Protection
  529. __sfr __no_init volatile unsigned char PDTCNT @ 0xFA; //TA Protection
  530. __sfr __no_init volatile unsigned char PMEN @ 0xFB;
  531. __sfr __no_init volatile unsigned char PMD @ 0xFC;
  532. __sfr __no_init volatile unsigned char EIP1 @ 0xFE;
  533. __sfr __no_init volatile unsigned char EIPH1 @ 0xFF;
  534. /* BIT Registers */
  535. /* SCON_1 */
  536. #define SM0_1 SCON_1_bit.BIT7
  537. #define FE_1 SCON_1_bit.BIT7
  538. #define SM1_1 SCON_1_bit.BIT6
  539. #define SM2_1 SCON_1_bit.BIT5
  540. #define REN_1 SCON_1_bit.BIT4
  541. #define TB8_1 SCON_1_bit.BIT3
  542. #define RB8_1 SCON_1_bit.BIT2
  543. #define TI_1 SCON_1_bit.BIT1
  544. #define RI_1 SCON_1_bit.BIT0
  545. /* ADCCON0 */
  546. #define ADCF ADCCON0_bit.BIT7
  547. #define ADCS ADCCON0_bit.BIT6
  548. #define ETGSEL1 ADCCON0_bit.BIT5
  549. #define ETGSEL0 ADCCON0_bit.BIT4
  550. #define ADCHS3 ADCCON0_bit.BIT3
  551. #define ADCHS2 ADCCON0_bit.BIT2
  552. #define ADCHS1 ADCCON0_bit.BIT1
  553. #define ADCHS0 ADCCON0_bit.BIT0
  554. /* PWMCON0 */
  555. #define PWMRUN PWMCON0_bit.BIT7
  556. #define LOAD PWMCON0_bit.BIT6
  557. #define PWMF PWMCON0_bit.BIT5
  558. #define CLRPWM PWMCON0_bit.BIT4
  559. /* T2CON */
  560. #define TF2 T2CON_bit.BIT7
  561. #define TR2 T2CON_bit.BIT2
  562. #define CM_RL2 T2CON_bit.BIT0
  563. /* I2CON */
  564. #define I2CEN I2CON_bit.BIT6
  565. #define STA I2CON_bit.BIT5
  566. #define STO I2CON_bit.BIT4
  567. #define SI I2CON_bit.BIT3
  568. #define AA I2CON_bit.BIT2
  569. #define I2CPX I2CON_bit.BIT0
  570. /* IP */
  571. #define PADC IP_bit.BIT6
  572. #define PBOD IP_bit.BIT5
  573. #define PS IP_bit.BIT4
  574. #define PT1 IP_bit.BIT3
  575. #define PX1 IP_bit.BIT2
  576. #define PT0 IP_bit.BIT1
  577. #define PX0 IP_bit.BIT0
  578. /* P3 */
  579. #define P30 P3_bit.BIT0
  580. /* IE */
  581. #define EA IE_bit.BIT7
  582. #define EADC IE_bit.BIT6
  583. #define EBOD IE_bit.BIT5
  584. #define ES IE_bit.BIT4
  585. #define ET1 IE_bit.BIT3
  586. #define EX1 IE_bit.BIT2
  587. #define ET0 IE_bit.BIT1
  588. #define EX0 IE_bit.BIT0
  589. /* P2 */
  590. #define P20 P2_bit.BIT0
  591. /* SCON */
  592. #define SM0 SCON_bit.BIT7
  593. #define FE SCON_bit.BIT7
  594. #define SM1 SCON_bit.BIT6
  595. #define SM2 SCON_bit.BIT5
  596. #define REN SCON_bit.BIT4
  597. #define TB8 SCON_bit.BIT3
  598. #define RB8 SCON_bit.BIT2
  599. #define TI SCON_bit.BIT1
  600. #define RI SCON_bit.BIT0
  601. /* P1 */
  602. #define P17 P1_bit.BIT7
  603. #define P16 P1_bit.BIT6
  604. #define TXD_1 P1_bit.BIT6
  605. #define P15 P1_bit.BIT5
  606. #define P14 P1_bit.BIT4
  607. #define SDA P1_bit.BIT4
  608. #define P13 P1_bit.BIT3
  609. #define SCL P1_bit.BIT3
  610. #define P12 P1_bit.BIT2
  611. #define P11 P1_bit.BIT1
  612. #define P10 P1_bit.BIT0
  613. /* TCON */
  614. #define TF1 TCON_bit.BIT7
  615. #define TR1 TCON_bit.BIT6
  616. #define TF0 TCON_bit.BIT5
  617. #define TR0 TCON_bit.BIT4
  618. #define IE1 TCON_bit.BIT3
  619. #define IT1 TCON_bit.BIT2
  620. #define IE0 TCON_bit.BIT1
  621. #define IT0 TCON_bit.BIT0
  622. /* P0 */
  623. #define P07 P0_bit.BIT7
  624. #define RXD P0_bit.BIT7
  625. #define P06 P0_bit.BIT6
  626. #define TXD P0_bit.BIT6
  627. #define P05 P0_bit.BIT5
  628. #define P04 P0_bit.BIT4
  629. #define STADC P0_bit.BIT4
  630. #define P03 P0_bit.BIT3
  631. #define P02 P0_bit.BIT2
  632. #define RXD_1 P0_bit.BIT2
  633. #define P01 P0_bit.BIT1
  634. #define MISO P0_bit.BIT1
  635. #define P00 P0_bit.BIT0
  636. #define MOSI P0_bit.BIT0
  637. #endif