HWB_STC8H.h 56 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896
  1. /**
  2. * @file HWB_STC8H.h
  3. *
  4. * @param Project DEVICE_GENERAL_ATY_LIB
  5. *
  6. * @author ATY
  7. *
  8. * @copyright
  9. * - Copyright 2017 - 2025 MZ-ATY
  10. * - This code follows:
  11. * - MZ-ATY Various Contents Joint Statement -
  12. * <a href="https://mengze.top/MZ-ATY_VCJS">
  13. * https://mengze.top/MZ-ATY_VCJS</a>
  14. * - CC 4.0 BY-NC-SA -
  15. * <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/">
  16. * https://creativecommons.org/licenses/by-nc-sa/4.0/</a>
  17. * - Your use will be deemed to have accepted the terms of this statement.
  18. *
  19. * @brief base defines and functions of STC8H
  20. *
  21. * @version
  22. * - 1_01_230514 > ATY
  23. * -# Preliminary version, first Release
  24. ********************************************************************************
  25. */
  26. #ifndef __HWB_STC8H_H
  27. #define __HWB_STC8H_H
  28. #include "HWB_STC8_BASE.h"
  29. /******************************* For user *************************************/
  30. /******************************************************************************/
  31. // No need include "REG51.H"
  32. SFR(VRTRIM, 0xA6);
  33. SFR(USBCLK, 0xDC);
  34. SFR(ADCCFG, 0xDE);
  35. SFR(IP3, 0xDF);
  36. SFR(P7M1, 0xE1);
  37. SFR(P7M0, 0xE2);
  38. SFR(DPS, 0xE3);
  39. SFR(DPL1, 0xE4);
  40. SFR(DPH1, 0xE5);
  41. SFR(CMPCR1, 0xE6);
  42. SFR(CMPCR2, 0xE7);
  43. SFR(USBDAT, 0xEC);
  44. SFR(IP3H, 0xEE);
  45. SFR(AUXINTIF, 0xEF);
  46. SFR(USBCON, 0xF4);
  47. SFR(IAP_TPS, 0xF5);
  48. SFR(USBADR, 0xFC);
  49. SFR(RSTCFG, 0xFF);
  50. /**
  51. * Set B7 of P_SW2 before read/write the following registers
  52. */
  53. /////////////////////////////////////////////////
  54. //FF00H-FFFFH
  55. /////////////////////////////////////////////////
  56. /////////////////////////////////////////////////
  57. //FE00H-FEFFH
  58. /////////////////////////////////////////////////
  59. #define CLKSEL (*(unsigned char volatile __XDATA *)0xfe00)
  60. #define CLKDIV (*(unsigned char volatile __XDATA *)0xfe01)
  61. #define HIRCCR (*(unsigned char volatile __XDATA *)0xfe02)
  62. #define XOSCCR (*(unsigned char volatile __XDATA *)0xfe03)
  63. #define IRC32KCR (*(unsigned char volatile __XDATA *)0xfe04)
  64. #define MCLKOCR (*(unsigned char volatile __XDATA *)0xfe05)
  65. #define IRCDB (*(unsigned char volatile __XDATA *)0xfe06)
  66. #define IRC48MCR (*(unsigned char volatile __XDATA *)0xfe07)
  67. #define X32KCR (*(unsigned char volatile __XDATA *)0xfe08)
  68. #define P0PU (*(unsigned char volatile __XDATA *)0xfe10)
  69. #define P1PU (*(unsigned char volatile __XDATA *)0xfe11)
  70. #define P2PU (*(unsigned char volatile __XDATA *)0xfe12)
  71. #define P3PU (*(unsigned char volatile __XDATA *)0xfe13)
  72. #define P4PU (*(unsigned char volatile __XDATA *)0xfe14)
  73. #define P5PU (*(unsigned char volatile __XDATA *)0xfe15)
  74. #define P6PU (*(unsigned char volatile __XDATA *)0xfe16)
  75. #define P7PU (*(unsigned char volatile __XDATA *)0xfe17)
  76. #define P0NCS (*(unsigned char volatile __XDATA *)0xfe18)
  77. #define P1NCS (*(unsigned char volatile __XDATA *)0xfe19)
  78. #define P2NCS (*(unsigned char volatile __XDATA *)0xfe1a)
  79. #define P3NCS (*(unsigned char volatile __XDATA *)0xfe1b)
  80. #define P4NCS (*(unsigned char volatile __XDATA *)0xfe1c)
  81. #define P5NCS (*(unsigned char volatile __XDATA *)0xfe1d)
  82. #define P6NCS (*(unsigned char volatile __XDATA *)0xfe1e)
  83. #define P7NCS (*(unsigned char volatile __XDATA *)0xfe1f)
  84. #define P0SR (*(unsigned char volatile __XDATA *)0xfe20)
  85. #define P1SR (*(unsigned char volatile __XDATA *)0xfe21)
  86. #define P2SR (*(unsigned char volatile __XDATA *)0xfe22)
  87. #define P3SR (*(unsigned char volatile __XDATA *)0xfe23)
  88. #define P4SR (*(unsigned char volatile __XDATA *)0xfe24)
  89. #define P5SR (*(unsigned char volatile __XDATA *)0xfe25)
  90. #define P6SR (*(unsigned char volatile __XDATA *)0xfe26)
  91. #define P7SR (*(unsigned char volatile __XDATA *)0xfe27)
  92. #define P0DR (*(unsigned char volatile __XDATA *)0xfe28)
  93. #define P1DR (*(unsigned char volatile __XDATA *)0xfe29)
  94. #define P2DR (*(unsigned char volatile __XDATA *)0xfe2a)
  95. #define P3DR (*(unsigned char volatile __XDATA *)0xfe2b)
  96. #define P4DR (*(unsigned char volatile __XDATA *)0xfe2c)
  97. #define P5DR (*(unsigned char volatile __XDATA *)0xfe2d)
  98. #define P6DR (*(unsigned char volatile __XDATA *)0xfe2e)
  99. #define P7DR (*(unsigned char volatile __XDATA *)0xfe2f)
  100. #define P0IE (*(unsigned char volatile __XDATA *)0xfe30)
  101. #define P1IE (*(unsigned char volatile __XDATA *)0xfe31)
  102. #define P2IE (*(unsigned char volatile __XDATA *)0xfe32)
  103. #define P3IE (*(unsigned char volatile __XDATA *)0xfe33)
  104. #define P4IE (*(unsigned char volatile __XDATA *)0xfe34)
  105. #define P5IE (*(unsigned char volatile __XDATA *)0xfe35)
  106. #define P6IE (*(unsigned char volatile __XDATA *)0xfe36)
  107. #define P7IE (*(unsigned char volatile __XDATA *)0xfe37)
  108. #define LCMIFCFG (*(unsigned char volatile __XDATA *)0xfe50)
  109. #define LCMIFCFG2 (*(unsigned char volatile __XDATA *)0xfe51)
  110. #define LCMIFCR (*(unsigned char volatile __XDATA *)0xfe52)
  111. #define LCMIFSTA (*(unsigned char volatile __XDATA *)0xfe53)
  112. #define LCMIFDATL (*(unsigned char volatile __XDATA *)0xfe54)
  113. #define LCMIFDATH (*(unsigned char volatile __XDATA *)0xfe55)
  114. #define RTCCR (*(unsigned char volatile __XDATA *)0xfe60)
  115. #define RTCCFG (*(unsigned char volatile __XDATA *)0xfe61)
  116. #define RTCIEN (*(unsigned char volatile __XDATA *)0xfe62)
  117. #define RTCIF (*(unsigned char volatile __XDATA *)0xfe63)
  118. #define ALAHOUR (*(unsigned char volatile __XDATA *)0xfe64)
  119. #define ALAMIN (*(unsigned char volatile __XDATA *)0xfe65)
  120. #define ALASEC (*(unsigned char volatile __XDATA *)0xfe66)
  121. #define ALASSEC (*(unsigned char volatile __XDATA *)0xfe67)
  122. #define INIYEAR (*(unsigned char volatile __XDATA *)0xfe68)
  123. #define INIMONTH (*(unsigned char volatile __XDATA *)0xfe69)
  124. #define INIDAY (*(unsigned char volatile __XDATA *)0xfe6a)
  125. #define INIHOUR (*(unsigned char volatile __XDATA *)0xfe6b)
  126. #define INIMIN (*(unsigned char volatile __XDATA *)0xfe6c)
  127. #define INISEC (*(unsigned char volatile __XDATA *)0xfe6d)
  128. #define INISSEC (*(unsigned char volatile __XDATA *)0xfe6e)
  129. #define YEAR (*(unsigned char volatile __XDATA *)0xfe70)
  130. #define MONTH (*(unsigned char volatile __XDATA *)0xfe71)
  131. #define DAY (*(unsigned char volatile __XDATA *)0xfe72)
  132. #define HOUR (*(unsigned char volatile __XDATA *)0xfe73)
  133. #define MIN (*(unsigned char volatile __XDATA *)0xfe74)
  134. #define SEC (*(unsigned char volatile __XDATA *)0xfe75)
  135. #define SSEC (*(unsigned char volatile __XDATA *)0xfe76)
  136. #define I2CCFG (*(unsigned char volatile __XDATA *)0xfe80)
  137. #define I2CMSCR (*(unsigned char volatile __XDATA *)0xfe81)
  138. #define I2CMSST (*(unsigned char volatile __XDATA *)0xfe82)
  139. #define I2CSLCR (*(unsigned char volatile __XDATA *)0xfe83)
  140. #define I2CSLST (*(unsigned char volatile __XDATA *)0xfe84)
  141. #define I2CSLADR (*(unsigned char volatile __XDATA *)0xfe85)
  142. #define I2CTXD (*(unsigned char volatile __XDATA *)0xfe86)
  143. #define I2CRXD (*(unsigned char volatile __XDATA *)0xfe87)
  144. #define I2CMSAUX (*(unsigned char volatile __XDATA *)0xfe88)
  145. #define SPFUNC (*(unsigned char volatile __XDATA *)0xfe98)
  146. #define RSTFLAG (*(unsigned char volatile __XDATA *)0xfe99)
  147. #define TM2PS (*(unsigned char volatile __XDATA *)0xfea2)
  148. #define TM3PS (*(unsigned char volatile __XDATA *)0xfea3)
  149. #define TM4PS (*(unsigned char volatile __XDATA *)0xfea4)
  150. #define ADCTIM (*(unsigned char volatile __XDATA *)0xfea8)
  151. #define T3T4PIN (*(unsigned char volatile __XDATA *)0xfeac)
  152. #define ADCEXCFG (*(unsigned char volatile __XDATA *)0xfead)
  153. #define CMPEXCFG (*(unsigned char volatile __XDATA *)0xfeae)
  154. #define PWM1_ETRPS (*(unsigned char volatile __XDATA *)0xfeb0)
  155. #define PWM1_ENO (*(unsigned char volatile __XDATA *)0xfeb1)
  156. #define PWM1_PS (*(unsigned char volatile __XDATA *)0xfeb2)
  157. #define PWM1_IOAUX (*(unsigned char volatile __XDATA *)0xfeb3)
  158. #define PWM2_ETRPS (*(unsigned char volatile __XDATA *)0xfeb4)
  159. #define PWM2_ENO (*(unsigned char volatile __XDATA *)0xfeb5)
  160. #define PWM2_PS (*(unsigned char volatile __XDATA *)0xfeb6)
  161. #define PWM2_IOAUX (*(unsigned char volatile __XDATA *)0xfeb7)
  162. #define PWM1_CR1 (*(unsigned char volatile __XDATA *)0xfec0)
  163. #define PWM1_CR2 (*(unsigned char volatile __XDATA *)0xfec1)
  164. #define PWM1_SMCR (*(unsigned char volatile __XDATA *)0xfec2)
  165. #define PWM1_ETR (*(unsigned char volatile __XDATA *)0xfec3)
  166. #define PWM1_IER (*(unsigned char volatile __XDATA *)0xfec4)
  167. #define PWM1_SR1 (*(unsigned char volatile __XDATA *)0xfec5)
  168. #define PWM1_SR2 (*(unsigned char volatile __XDATA *)0xfec6)
  169. #define PWM1_EGR (*(unsigned char volatile __XDATA *)0xfec7)
  170. #define PWM1_CCMR1 (*(unsigned char volatile __XDATA *)0xfec8)
  171. #define PWM1_CCMR2 (*(unsigned char volatile __XDATA *)0xfec9)
  172. #define PWM1_CCMR3 (*(unsigned char volatile __XDATA *)0xfeca)
  173. #define PWM1_CCMR4 (*(unsigned char volatile __XDATA *)0xfecb)
  174. #define PWM1_CCER1 (*(unsigned char volatile __XDATA *)0xfecc)
  175. #define PWM1_CCER2 (*(unsigned char volatile __XDATA *)0xfecd)
  176. #define PWM1_CNTR (*(unsigned int volatile __XDATA *)0xfece)
  177. #define PWM1_CNTRH (*(unsigned char volatile __XDATA *)0xfece)
  178. #define PWM1_CNTRL (*(unsigned char volatile __XDATA *)0xfecf)
  179. #define PWM1_PSCR (*(unsigned int volatile __XDATA *)0xfed0)
  180. #define PWM1_PSCRH (*(unsigned char volatile __XDATA *)0xfed0)
  181. #define PWM1_PSCRL (*(unsigned char volatile __XDATA *)0xfed1)
  182. #define PWM1_ARR (*(unsigned int volatile __XDATA *)0xfed2)
  183. #define PWM1_ARRH (*(unsigned char volatile __XDATA *)0xfed2)
  184. #define PWM1_ARRL (*(unsigned char volatile __XDATA *)0xfed3)
  185. #define PWM1_RCR (*(unsigned char volatile __XDATA *)0xfed4)
  186. #define PWM1_CCR1 (*(unsigned int volatile __XDATA *)0xfed5)
  187. #define PWM1_CCR1H (*(unsigned char volatile __XDATA *)0xfed5)
  188. #define PWM1_CCR1L (*(unsigned char volatile __XDATA *)0xfed6)
  189. #define PWM1_CCR2 (*(unsigned int volatile __XDATA *)0xfed7)
  190. #define PWM1_CCR2H (*(unsigned char volatile __XDATA *)0xfed7)
  191. #define PWM1_CCR2L (*(unsigned char volatile __XDATA *)0xfed8)
  192. #define PWM1_CCR3 (*(unsigned int volatile __XDATA *)0xfed9)
  193. #define PWM1_CCR3H (*(unsigned char volatile __XDATA *)0xfed9)
  194. #define PWM1_CCR3L (*(unsigned char volatile __XDATA *)0xfeda)
  195. #define PWM1_CCR4 (*(unsigned int volatile __XDATA *)0xfedb)
  196. #define PWM1_CCR4H (*(unsigned char volatile __XDATA *)0xfedb)
  197. #define PWM1_CCR4L (*(unsigned char volatile __XDATA *)0xfedc)
  198. #define PWM1_BKR (*(unsigned char volatile __XDATA *)0xfedd)
  199. #define PWM1_DTR (*(unsigned char volatile __XDATA *)0xfede)
  200. #define PWM1_OISR (*(unsigned char volatile __XDATA *)0xfedf)
  201. #define PWM2_CR1 (*(unsigned char volatile __XDATA *)0xfee0)
  202. #define PWM2_CR2 (*(unsigned char volatile __XDATA *)0xfee1)
  203. #define PWM2_SMCR (*(unsigned char volatile __XDATA *)0xfee2)
  204. #define PWM2_ETR (*(unsigned char volatile __XDATA *)0xfee3)
  205. #define PWM2_IER (*(unsigned char volatile __XDATA *)0xfee4)
  206. #define PWM2_SR1 (*(unsigned char volatile __XDATA *)0xfee5)
  207. #define PWM2_SR2 (*(unsigned char volatile __XDATA *)0xfee6)
  208. #define PWM2_EGR (*(unsigned char volatile __XDATA *)0xfee7)
  209. #define PWM2_CCMR1 (*(unsigned char volatile __XDATA *)0xfee8)
  210. #define PWM2_CCMR2 (*(unsigned char volatile __XDATA *)0xfee9)
  211. #define PWM2_CCMR3 (*(unsigned char volatile __XDATA *)0xfeea)
  212. #define PWM2_CCMR4 (*(unsigned char volatile __XDATA *)0xfeeb)
  213. #define PWM2_CCER1 (*(unsigned char volatile __XDATA *)0xfeec)
  214. #define PWM2_CCER2 (*(unsigned char volatile __XDATA *)0xfeed)
  215. #define PWM2_CNTR (*(unsigned int volatile __XDATA *)0xfeee)
  216. #define PWM2_CNTRH (*(unsigned char volatile __XDATA *)0xfeee)
  217. #define PWM2_CNTRL (*(unsigned char volatile __XDATA *)0xfeef)
  218. #define PWM2_PSCR (*(unsigned int volatile __XDATA *)0xfef0)
  219. #define PWM2_PSCRH (*(unsigned char volatile __XDATA *)0xfef0)
  220. #define PWM2_PSCRL (*(unsigned char volatile __XDATA *)0xfef1)
  221. #define PWM2_ARR (*(unsigned int volatile __XDATA *)0xfef2)
  222. #define PWM2_ARRH (*(unsigned char volatile __XDATA *)0xfef2)
  223. #define PWM2_ARRL (*(unsigned char volatile __XDATA *)0xfef3)
  224. #define PWM2_RCR (*(unsigned char volatile __XDATA *)0xfef4)
  225. #define PWM2_CCR1 (*(unsigned int volatile __XDATA *)0xfef5)
  226. #define PWM2_CCR1H (*(unsigned char volatile __XDATA *)0xfef5)
  227. #define PWM2_CCR1L (*(unsigned char volatile __XDATA *)0xfef6)
  228. #define PWM2_CCR2 (*(unsigned int volatile __XDATA *)0xfef7)
  229. #define PWM2_CCR2H (*(unsigned char volatile __XDATA *)0xfef7)
  230. #define PWM2_CCR2L (*(unsigned char volatile __XDATA *)0xfef8)
  231. #define PWM2_CCR3 (*(unsigned int volatile __XDATA *)0xfef9)
  232. #define PWM2_CCR3H (*(unsigned char volatile __XDATA *)0xfef9)
  233. #define PWM2_CCR3L (*(unsigned char volatile __XDATA *)0xfefa)
  234. #define PWM2_CCR4 (*(unsigned int volatile __XDATA *)0xfefb)
  235. #define PWM2_CCR4H (*(unsigned char volatile __XDATA *)0xfefb)
  236. #define PWM2_CCR4L (*(unsigned char volatile __XDATA *)0xfefc)
  237. #define PWM2_BKR (*(unsigned char volatile __XDATA *)0xfefd)
  238. #define PWM2_DTR (*(unsigned char volatile __XDATA *)0xfefe)
  239. #define PWM2_OISR (*(unsigned char volatile __XDATA *)0xfeff)
  240. #define PWMA_ETRPS (*(unsigned char volatile __XDATA *)0xfeb0)
  241. #define PWMA_ENO (*(unsigned char volatile __XDATA *)0xfeb1)
  242. #define PWMA_PS (*(unsigned char volatile __XDATA *)0xfeb2)
  243. #define PWMA_IOAUX (*(unsigned char volatile __XDATA *)0xfeb3)
  244. #define PWMB_ETRPS (*(unsigned char volatile __XDATA *)0xfeb4)
  245. #define PWMB_ENO (*(unsigned char volatile __XDATA *)0xfeb5)
  246. #define PWMB_PS (*(unsigned char volatile __XDATA *)0xfeb6)
  247. #define PWMB_IOAUX (*(unsigned char volatile __XDATA *)0xfeb7)
  248. #define PWMA_CR1 (*(unsigned char volatile __XDATA *)0xfec0)
  249. #define PWMA_CR2 (*(unsigned char volatile __XDATA *)0xfec1)
  250. #define PWMA_SMCR (*(unsigned char volatile __XDATA *)0xfec2)
  251. #define PWMA_ETR (*(unsigned char volatile __XDATA *)0xfec3)
  252. #define PWMA_IER (*(unsigned char volatile __XDATA *)0xfec4)
  253. #define PWMA_SR1 (*(unsigned char volatile __XDATA *)0xfec5)
  254. #define PWMA_SR2 (*(unsigned char volatile __XDATA *)0xfec6)
  255. #define PWMA_EGR (*(unsigned char volatile __XDATA *)0xfec7)
  256. #define PWMA_CCMR1 (*(unsigned char volatile __XDATA *)0xfec8)
  257. #define PWMA_CCMR2 (*(unsigned char volatile __XDATA *)0xfec9)
  258. #define PWMA_CCMR3 (*(unsigned char volatile __XDATA *)0xfeca)
  259. #define PWMA_CCMR4 (*(unsigned char volatile __XDATA *)0xfecb)
  260. #define PWMA_CCER1 (*(unsigned char volatile __XDATA *)0xfecc)
  261. #define PWMA_CCER2 (*(unsigned char volatile __XDATA *)0xfecd)
  262. #define PWMA_CNTR (*(unsigned int volatile __XDATA *)0xfece)
  263. #define PWMA_CNTRH (*(unsigned char volatile __XDATA *)0xfece)
  264. #define PWMA_CNTRL (*(unsigned char volatile __XDATA *)0xfecf)
  265. #define PWMA_PSCR (*(unsigned int volatile __XDATA *)0xfed0)
  266. #define PWMA_PSCRH (*(unsigned char volatile __XDATA *)0xfed0)
  267. #define PWMA_PSCRL (*(unsigned char volatile __XDATA *)0xfed1)
  268. #define PWMA_ARR (*(unsigned int volatile __XDATA *)0xfed2)
  269. #define PWMA_ARRH (*(unsigned char volatile __XDATA *)0xfed2)
  270. #define PWMA_ARRL (*(unsigned char volatile __XDATA *)0xfed3)
  271. #define PWMA_RCR (*(unsigned char volatile __XDATA *)0xfed4)
  272. #define PWMA_CCR1 (*(unsigned int volatile __XDATA *)0xfed5)
  273. #define PWMA_CCR1H (*(unsigned char volatile __XDATA *)0xfed5)
  274. #define PWMA_CCR1L (*(unsigned char volatile __XDATA *)0xfed6)
  275. #define PWMA_CCR2 (*(unsigned int volatile __XDATA *)0xfed7)
  276. #define PWMA_CCR2H (*(unsigned char volatile __XDATA *)0xfed7)
  277. #define PWMA_CCR2L (*(unsigned char volatile __XDATA *)0xfed8)
  278. #define PWMA_CCR3 (*(unsigned int volatile __XDATA *)0xfed9)
  279. #define PWMA_CCR3H (*(unsigned char volatile __XDATA *)0xfed9)
  280. #define PWMA_CCR3L (*(unsigned char volatile __XDATA *)0xfeda)
  281. #define PWMA_CCR4 (*(unsigned int volatile __XDATA *)0xfedb)
  282. #define PWMA_CCR4H (*(unsigned char volatile __XDATA *)0xfedb)
  283. #define PWMA_CCR4L (*(unsigned char volatile __XDATA *)0xfedc)
  284. #define PWMA_BKR (*(unsigned char volatile __XDATA *)0xfedd)
  285. #define PWMA_DTR (*(unsigned char volatile __XDATA *)0xfede)
  286. #define PWMA_OISR (*(unsigned char volatile __XDATA *)0xfedf)
  287. #define PWMB_CR1 (*(unsigned char volatile __XDATA *)0xfee0)
  288. #define PWMB_CR2 (*(unsigned char volatile __XDATA *)0xfee1)
  289. #define PWMB_SMCR (*(unsigned char volatile __XDATA *)0xfee2)
  290. #define PWMB_ETR (*(unsigned char volatile __XDATA *)0xfee3)
  291. #define PWMB_IER (*(unsigned char volatile __XDATA *)0xfee4)
  292. #define PWMB_SR1 (*(unsigned char volatile __XDATA *)0xfee5)
  293. #define PWMB_SR2 (*(unsigned char volatile __XDATA *)0xfee6)
  294. #define PWMB_EGR (*(unsigned char volatile __XDATA *)0xfee7)
  295. #define PWMB_CCMR1 (*(unsigned char volatile __XDATA *)0xfee8)
  296. #define PWMB_CCMR2 (*(unsigned char volatile __XDATA *)0xfee9)
  297. #define PWMB_CCMR3 (*(unsigned char volatile __XDATA *)0xfeea)
  298. #define PWMB_CCMR4 (*(unsigned char volatile __XDATA *)0xfeeb)
  299. #define PWMB_CCER1 (*(unsigned char volatile __XDATA *)0xfeec)
  300. #define PWMB_CCER2 (*(unsigned char volatile __XDATA *)0xfeed)
  301. #define PWMB_CNTR (*(unsigned int volatile __XDATA *)0xfeee)
  302. #define PWMB_CNTRH (*(unsigned char volatile __XDATA *)0xfeee)
  303. #define PWMB_CNTRL (*(unsigned char volatile __XDATA *)0xfeef)
  304. #define PWMB_PSCR (*(unsigned int volatile __XDATA *)0xfef0)
  305. #define PWMB_PSCRH (*(unsigned char volatile __XDATA *)0xfef0)
  306. #define PWMB_PSCRL (*(unsigned char volatile __XDATA *)0xfef1)
  307. #define PWMB_ARR (*(unsigned int volatile __XDATA *)0xfef2)
  308. #define PWMB_ARRH (*(unsigned char volatile __XDATA *)0xfef2)
  309. #define PWMB_ARRL (*(unsigned char volatile __XDATA *)0xfef3)
  310. #define PWMB_RCR (*(unsigned char volatile __XDATA *)0xfef4)
  311. #define PWMB_CCR5 (*(unsigned int volatile __XDATA *)0xfef5)
  312. #define PWMB_CCR5H (*(unsigned char volatile __XDATA *)0xfef5)
  313. #define PWMB_CCR5L (*(unsigned char volatile __XDATA *)0xfef6)
  314. #define PWMB_CCR6 (*(unsigned int volatile __XDATA *)0xfef7)
  315. #define PWMB_CCR6H (*(unsigned char volatile __XDATA *)0xfef7)
  316. #define PWMB_CCR6L (*(unsigned char volatile __XDATA *)0xfef8)
  317. #define PWMB_CCR7 (*(unsigned int volatile __XDATA *)0xfef9)
  318. #define PWMB_CCR7H (*(unsigned char volatile __XDATA *)0xfef9)
  319. #define PWMB_CCR7L (*(unsigned char volatile __XDATA *)0xfefa)
  320. #define PWMB_CCR8 (*(unsigned int volatile __XDATA *)0xfefb)
  321. #define PWMB_CCR8H (*(unsigned char volatile __XDATA *)0xfefb)
  322. #define PWMB_CCR8L (*(unsigned char volatile __XDATA *)0xfefc)
  323. #define PWMB_BKR (*(unsigned char volatile __XDATA *)0xfefd)
  324. #define PWMB_DTR (*(unsigned char volatile __XDATA *)0xfefe)
  325. #define PWMB_OISR (*(unsigned char volatile __XDATA *)0xfeff)
  326. /////////////////////////////////////////////////
  327. //FD00H-FDFFH
  328. /////////////////////////////////////////////////
  329. #define P0INTE (*(unsigned char volatile __XDATA *)0xfd00)
  330. #define P1INTE (*(unsigned char volatile __XDATA *)0xfd01)
  331. #define P2INTE (*(unsigned char volatile __XDATA *)0xfd02)
  332. #define P3INTE (*(unsigned char volatile __XDATA *)0xfd03)
  333. #define P4INTE (*(unsigned char volatile __XDATA *)0xfd04)
  334. #define P5INTE (*(unsigned char volatile __XDATA *)0xfd05)
  335. #define P6INTE (*(unsigned char volatile __XDATA *)0xfd06)
  336. #define P7INTE (*(unsigned char volatile __XDATA *)0xfd07)
  337. #define P0INTF (*(unsigned char volatile __XDATA *)0xfd10)
  338. #define P1INTF (*(unsigned char volatile __XDATA *)0xfd11)
  339. #define P2INTF (*(unsigned char volatile __XDATA *)0xfd12)
  340. #define P3INTF (*(unsigned char volatile __XDATA *)0xfd13)
  341. #define P4INTF (*(unsigned char volatile __XDATA *)0xfd14)
  342. #define P5INTF (*(unsigned char volatile __XDATA *)0xfd15)
  343. #define P6INTF (*(unsigned char volatile __XDATA *)0xfd16)
  344. #define P7INTF (*(unsigned char volatile __XDATA *)0xfd17)
  345. #define P0IM0 (*(unsigned char volatile __XDATA *)0xfd20)
  346. #define P1IM0 (*(unsigned char volatile __XDATA *)0xfd21)
  347. #define P2IM0 (*(unsigned char volatile __XDATA *)0xfd22)
  348. #define P3IM0 (*(unsigned char volatile __XDATA *)0xfd23)
  349. #define P4IM0 (*(unsigned char volatile __XDATA *)0xfd24)
  350. #define P5IM0 (*(unsigned char volatile __XDATA *)0xfd25)
  351. #define P6IM0 (*(unsigned char volatile __XDATA *)0xfd26)
  352. #define P7IM0 (*(unsigned char volatile __XDATA *)0xfd27)
  353. #define P0IM1 (*(unsigned char volatile __XDATA *)0xfd30)
  354. #define P1IM1 (*(unsigned char volatile __XDATA *)0xfd31)
  355. #define P2IM1 (*(unsigned char volatile __XDATA *)0xfd32)
  356. #define P3IM1 (*(unsigned char volatile __XDATA *)0xfd33)
  357. #define P4IM1 (*(unsigned char volatile __XDATA *)0xfd34)
  358. #define P5IM1 (*(unsigned char volatile __XDATA *)0xfd35)
  359. #define P6IM1 (*(unsigned char volatile __XDATA *)0xfd36)
  360. #define P7IM1 (*(unsigned char volatile __XDATA *)0xfd37)
  361. #define P0WKUE (*(unsigned char volatile __XDATA *)0xfd40)
  362. #define P1WKUE (*(unsigned char volatile __XDATA *)0xfd41)
  363. #define P2WKUE (*(unsigned char volatile __XDATA *)0xfd42)
  364. #define P3WKUE (*(unsigned char volatile __XDATA *)0xfd43)
  365. #define P4WKUE (*(unsigned char volatile __XDATA *)0xfd44)
  366. #define P5WKUE (*(unsigned char volatile __XDATA *)0xfd45)
  367. #define P6WKUE (*(unsigned char volatile __XDATA *)0xfd46)
  368. #define P7WKUE (*(unsigned char volatile __XDATA *)0xfd47)
  369. #define PIN_IP (*(unsigned char volatile __XDATA *)0xfd60)
  370. #define PIN_IPH (*(unsigned char volatile __XDATA *)0xfd61)
  371. #define CHIPID ( (unsigned char volatile __XDATA *)0xfde0)
  372. #define CHIPID0 (*(unsigned char volatile __XDATA *)0xfde0)
  373. #define CHIPID1 (*(unsigned char volatile __XDATA *)0xfde1)
  374. #define CHIPID2 (*(unsigned char volatile __XDATA *)0xfde2)
  375. #define CHIPID3 (*(unsigned char volatile __XDATA *)0xfde3)
  376. #define CHIPID4 (*(unsigned char volatile __XDATA *)0xfde4)
  377. #define CHIPID5 (*(unsigned char volatile __XDATA *)0xfde5)
  378. #define CHIPID6 (*(unsigned char volatile __XDATA *)0xfde6)
  379. #define CHIPID7 (*(unsigned char volatile __XDATA *)0xfde7)
  380. #define CHIPID8 (*(unsigned char volatile __XDATA *)0xfde8)
  381. #define CHIPID9 (*(unsigned char volatile __XDATA *)0xfde9)
  382. #define CHIPID10 (*(unsigned char volatile __XDATA *)0xfdea)
  383. #define CHIPID11 (*(unsigned char volatile __XDATA *)0xfdeb)
  384. #define CHIPID12 (*(unsigned char volatile __XDATA *)0xfdec)
  385. #define CHIPID13 (*(unsigned char volatile __XDATA *)0xfded)
  386. #define CHIPID14 (*(unsigned char volatile __XDATA *)0xfdee)
  387. #define CHIPID15 (*(unsigned char volatile __XDATA *)0xfdef)
  388. #define CHIPID16 (*(unsigned char volatile __XDATA *)0xfdf0)
  389. #define CHIPID17 (*(unsigned char volatile __XDATA *)0xfdf1)
  390. #define CHIPID18 (*(unsigned char volatile __XDATA *)0xfdf2)
  391. #define CHIPID19 (*(unsigned char volatile __XDATA *)0xfdf3)
  392. #define CHIPID20 (*(unsigned char volatile __XDATA *)0xfdf4)
  393. #define CHIPID21 (*(unsigned char volatile __XDATA *)0xfdf5)
  394. #define CHIPID22 (*(unsigned char volatile __XDATA *)0xfdf6)
  395. #define CHIPID23 (*(unsigned char volatile __XDATA *)0xfdf7)
  396. #define CHIPID24 (*(unsigned char volatile __XDATA *)0xfdf8)
  397. #define CHIPID25 (*(unsigned char volatile __XDATA *)0xfdf9)
  398. #define CHIPID26 (*(unsigned char volatile __XDATA *)0xfdfa)
  399. #define CHIPID27 (*(unsigned char volatile __XDATA *)0xfdfb)
  400. #define CHIPID28 (*(unsigned char volatile __XDATA *)0xfdfc)
  401. #define CHIPID29 (*(unsigned char volatile __XDATA *)0xfdfd)
  402. #define CHIPID30 (*(unsigned char volatile __XDATA *)0xfdfe)
  403. #define CHIPID31 (*(unsigned char volatile __XDATA *)0xfdff)
  404. /////////////////////////////////////////////////
  405. //FC00H-FCFFH
  406. /////////////////////////////////////////////////
  407. #define MD3 (*(unsigned char volatile __XDATA *)0xfcf0)
  408. #define MD2 (*(unsigned char volatile __XDATA *)0xfcf1)
  409. #define MD1 (*(unsigned char volatile __XDATA *)0xfcf2)
  410. #define MD0 (*(unsigned char volatile __XDATA *)0xfcf3)
  411. #define MD5 (*(unsigned char volatile __XDATA *)0xfcf4)
  412. #define MD4 (*(unsigned char volatile __XDATA *)0xfcf5)
  413. #define ARCON (*(unsigned char volatile __XDATA *)0xfcf6)
  414. #define OPCON (*(unsigned char volatile __XDATA *)0xfcf7)
  415. /////////////////////////////////////////////////
  416. //FB00H-FBFFH
  417. /////////////////////////////////////////////////
  418. #define COMEN (*(unsigned char volatile __XDATA *)0xfb00)
  419. #define SEGENL (*(unsigned char volatile __XDATA *)0xfb01)
  420. #define SEGENH (*(unsigned char volatile __XDATA *)0xfb02)
  421. #define LEDCTRL (*(unsigned char volatile __XDATA *)0xfb03)
  422. #define LEDCKS (*(unsigned char volatile __XDATA *)0xfb04)
  423. #define COM0_DA_L (*(unsigned char volatile __XDATA *)0xfb10)
  424. #define COM1_DA_L (*(unsigned char volatile __XDATA *)0xfb11)
  425. #define COM2_DA_L (*(unsigned char volatile __XDATA *)0xfb12)
  426. #define COM3_DA_L (*(unsigned char volatile __XDATA *)0xfb13)
  427. #define COM4_DA_L (*(unsigned char volatile __XDATA *)0xfb14)
  428. #define COM5_DA_L (*(unsigned char volatile __XDATA *)0xfb15)
  429. #define COM6_DA_L (*(unsigned char volatile __XDATA *)0xfb16)
  430. #define COM7_DA_L (*(unsigned char volatile __XDATA *)0xfb17)
  431. #define COM0_DA_H (*(unsigned char volatile __XDATA *)0xfb18)
  432. #define COM1_DA_H (*(unsigned char volatile __XDATA *)0xfb19)
  433. #define COM2_DA_H (*(unsigned char volatile __XDATA *)0xfb1a)
  434. #define COM3_DA_H (*(unsigned char volatile __XDATA *)0xfb1b)
  435. #define COM4_DA_H (*(unsigned char volatile __XDATA *)0xfb1c)
  436. #define COM5_DA_H (*(unsigned char volatile __XDATA *)0xfb1d)
  437. #define COM6_DA_H (*(unsigned char volatile __XDATA *)0xfb1e)
  438. #define COM7_DA_H (*(unsigned char volatile __XDATA *)0xfb1f)
  439. #define COM0_DC_L (*(unsigned char volatile __XDATA *)0xfb20)
  440. #define COM1_DC_L (*(unsigned char volatile __XDATA *)0xfb21)
  441. #define COM2_DC_L (*(unsigned char volatile __XDATA *)0xfb22)
  442. #define COM3_DC_L (*(unsigned char volatile __XDATA *)0xfb23)
  443. #define COM4_DC_L (*(unsigned char volatile __XDATA *)0xfb24)
  444. #define COM5_DC_L (*(unsigned char volatile __XDATA *)0xfb25)
  445. #define COM6_DC_L (*(unsigned char volatile __XDATA *)0xfb26)
  446. #define COM7_DC_L (*(unsigned char volatile __XDATA *)0xfb27)
  447. #define COM0_DC_H (*(unsigned char volatile __XDATA *)0xfb28)
  448. #define COM1_DC_H (*(unsigned char volatile __XDATA *)0xfb29)
  449. #define COM2_DC_H (*(unsigned char volatile __XDATA *)0xfb2a)
  450. #define COM3_DC_H (*(unsigned char volatile __XDATA *)0xfb2b)
  451. #define COM4_DC_H (*(unsigned char volatile __XDATA *)0xfb2c)
  452. #define COM5_DC_H (*(unsigned char volatile __XDATA *)0xfb2d)
  453. #define COM6_DC_H (*(unsigned char volatile __XDATA *)0xfb2e)
  454. #define COM7_DC_H (*(unsigned char volatile __XDATA *)0xfb2f)
  455. #define TSCHEN1 (*(unsigned char volatile __XDATA *)0xfb40)
  456. #define TSCHEN2 (*(unsigned char volatile __XDATA *)0xfb41)
  457. #define TSCFG1 (*(unsigned char volatile __XDATA *)0xfb42)
  458. #define TSCFG2 (*(unsigned char volatile __XDATA *)0xfb43)
  459. #define TSWUTC (*(unsigned char volatile __XDATA *)0xfb44)
  460. #define TSCTRL (*(unsigned char volatile __XDATA *)0xfb45)
  461. #define TSSTA1 (*(unsigned char volatile __XDATA *)0xfb46)
  462. #define TSSTA2 (*(unsigned char volatile __XDATA *)0xfb47)
  463. #define TSRT (*(unsigned char volatile __XDATA *)0xfb48)
  464. #define TSDAT (*(unsigned int volatile __XDATA *)0xfb49)
  465. #define TSDATH (*(unsigned char volatile __XDATA *)0xfb49)
  466. #define TSDATL (*(unsigned char volatile __XDATA *)0xfb4A)
  467. #define TSTH00 (*(unsigned int volatile __XDATA *)0xfb50)
  468. #define TSTH00H (*(unsigned char volatile __XDATA *)0xfb50)
  469. #define TSTH00L (*(unsigned char volatile __XDATA *)0xfb51)
  470. #define TSTH01 (*(unsigned int volatile __XDATA *)0xfb52)
  471. #define TSTH01H (*(unsigned char volatile __XDATA *)0xfb52)
  472. #define TSTH01L (*(unsigned char volatile __XDATA *)0xfb53)
  473. #define TSTH02 (*(unsigned int volatile __XDATA *)0xfb54)
  474. #define TSTH02H (*(unsigned char volatile __XDATA *)0xfb54)
  475. #define TSTH02L (*(unsigned char volatile __XDATA *)0xfb55)
  476. #define TSTH03 (*(unsigned int volatile __XDATA *)0xfb56)
  477. #define TSTH03H (*(unsigned char volatile __XDATA *)0xfb56)
  478. #define TSTH03L (*(unsigned char volatile __XDATA *)0xfb57)
  479. #define TSTH04 (*(unsigned int volatile __XDATA *)0xfb58)
  480. #define TSTH04H (*(unsigned char volatile __XDATA *)0xfb58)
  481. #define TSTH04L (*(unsigned char volatile __XDATA *)0xfb59)
  482. #define TSTH05 (*(unsigned int volatile __XDATA *)0xfb5a)
  483. #define TSTH05H (*(unsigned char volatile __XDATA *)0xfb5a)
  484. #define TSTH05L (*(unsigned char volatile __XDATA *)0xfb5b)
  485. #define TSTH06 (*(unsigned int volatile __XDATA *)0xfb5c)
  486. #define TSTH06H (*(unsigned char volatile __XDATA *)0xfb5c)
  487. #define TSTH06L (*(unsigned char volatile __XDATA *)0xfb5d)
  488. #define TSTH07 (*(unsigned int volatile __XDATA *)0xfb5e)
  489. #define TSTH07H (*(unsigned char volatile __XDATA *)0xfb5e)
  490. #define TSTH07L (*(unsigned char volatile __XDATA *)0xfb5f)
  491. #define TSTH08 (*(unsigned int volatile __XDATA *)0xfb60)
  492. #define TSTH08H (*(unsigned char volatile __XDATA *)0xfb60)
  493. #define TSTH08L (*(unsigned char volatile __XDATA *)0xfb61)
  494. #define TSTH09 (*(unsigned int volatile __XDATA *)0xfb62)
  495. #define TSTH09H (*(unsigned char volatile __XDATA *)0xfb62)
  496. #define TSTH09L (*(unsigned char volatile __XDATA *)0xfb63)
  497. #define TSTH10 (*(unsigned int volatile __XDATA *)0xfb64)
  498. #define TSTH10H (*(unsigned char volatile __XDATA *)0xfb64)
  499. #define TSTH10L (*(unsigned char volatile __XDATA *)0xfb65)
  500. #define TSTH11 (*(unsigned int volatile __XDATA *)0xfb66)
  501. #define TSTH11H (*(unsigned char volatile __XDATA *)0xfb66)
  502. #define TSTH11L (*(unsigned char volatile __XDATA *)0xfb67)
  503. #define TSTH12 (*(unsigned int volatile __XDATA *)0xfb68)
  504. #define TSTH12H (*(unsigned char volatile __XDATA *)0xfb68)
  505. #define TSTH12L (*(unsigned char volatile __XDATA *)0xfb69)
  506. #define TSTH13 (*(unsigned int volatile __XDATA *)0xfb6a)
  507. #define TSTH13H (*(unsigned char volatile __XDATA *)0xfb6a)
  508. #define TSTH13L (*(unsigned char volatile __XDATA *)0xfb6b)
  509. #define TSTH14 (*(unsigned int volatile __XDATA *)0xfb6c)
  510. #define TSTH14H (*(unsigned char volatile __XDATA *)0xfb6c)
  511. #define TSTH14L (*(unsigned char volatile __XDATA *)0xfb6d)
  512. #define TSTH15 (*(unsigned int volatile __XDATA *)0xfb6e)
  513. #define TSTH15H (*(unsigned char volatile __XDATA *)0xfb6e)
  514. #define TSTH15L (*(unsigned char volatile __XDATA *)0xfb6f)
  515. #define LCDCFG (*(unsigned char volatile __XDATA *)0xfb80)
  516. #define LCDCFG2 (*(unsigned char volatile __XDATA *)0xfb81)
  517. #define DBLEN (*(unsigned char volatile __XDATA *)0xfb82)
  518. #define COMLENL (*(unsigned char volatile __XDATA *)0xfb83)
  519. #define COMLENM (*(unsigned char volatile __XDATA *)0xfb84)
  520. #define COMLENH (*(unsigned char volatile __XDATA *)0xfb85)
  521. #define BLINKRATE (*(unsigned char volatile __XDATA *)0xfb86)
  522. #define LCDCR (*(unsigned char volatile __XDATA *)0xfb87)
  523. #define COMON (*(unsigned char volatile __XDATA *)0xfb88)
  524. #define SEGON1 (*(unsigned char volatile __XDATA *)0xfb8a)
  525. #define SEGON2 (*(unsigned char volatile __XDATA *)0xfb8b)
  526. #define SEGON3 (*(unsigned char volatile __XDATA *)0xfb8c)
  527. #define SEGON4 (*(unsigned char volatile __XDATA *)0xfb8d)
  528. #define SEGON5 (*(unsigned char volatile __XDATA *)0xfb8e)
  529. #define C0SEGV0 (*(unsigned char volatile __XDATA *)0xfb90)
  530. #define C0SEGV1 (*(unsigned char volatile __XDATA *)0xfb91)
  531. #define C0SEGV2 (*(unsigned char volatile __XDATA *)0xfb92)
  532. #define C0SEGV3 (*(unsigned char volatile __XDATA *)0xfb93)
  533. #define C0SEGV4 (*(unsigned char volatile __XDATA *)0xfb94)
  534. #define C1SEGV0 (*(unsigned char volatile __XDATA *)0xfb98)
  535. #define C1SEGV1 (*(unsigned char volatile __XDATA *)0xfb99)
  536. #define C1SEGV2 (*(unsigned char volatile __XDATA *)0xfb9a)
  537. #define C1SEGV3 (*(unsigned char volatile __XDATA *)0xfb9b)
  538. #define C1SEGV4 (*(unsigned char volatile __XDATA *)0xfb9c)
  539. #define C2SEGV0 (*(unsigned char volatile __XDATA *)0xfba0)
  540. #define C2SEGV1 (*(unsigned char volatile __XDATA *)0xfba1)
  541. #define C2SEGV2 (*(unsigned char volatile __XDATA *)0xfba2)
  542. #define C2SEGV3 (*(unsigned char volatile __XDATA *)0xfba3)
  543. #define C2SEGV4 (*(unsigned char volatile __XDATA *)0xfba4)
  544. #define C3SEGV0 (*(unsigned char volatile __XDATA *)0xfba8)
  545. #define C3SEGV1 (*(unsigned char volatile __XDATA *)0xfba9)
  546. #define C3SEGV2 (*(unsigned char volatile __XDATA *)0xfbaa)
  547. #define C3SEGV3 (*(unsigned char volatile __XDATA *)0xfbab)
  548. #define C3SEGV4 (*(unsigned char volatile __XDATA *)0xfbac)
  549. /////////////////////////////////////////////////
  550. //FA00H-FAFFH
  551. /////////////////////////////////////////////////
  552. #define DMA_M2M_CFG (*(unsigned char volatile __XDATA *)0xfa00)
  553. #define DMA_M2M_CR (*(unsigned char volatile __XDATA *)0xfa01)
  554. #define DMA_M2M_STA (*(unsigned char volatile __XDATA *)0xfa02)
  555. #define DMA_M2M_AMT (*(unsigned char volatile __XDATA *)0xfa03)
  556. #define DMA_M2M_DONE (*(unsigned char volatile __XDATA *)0xfa04)
  557. #define DMA_M2M_TXAH (*(unsigned char volatile __XDATA *)0xfa05)
  558. #define DMA_M2M_TXAL (*(unsigned char volatile __XDATA *)0xfa06)
  559. #define DMA_M2M_RXAH (*(unsigned char volatile __XDATA *)0xfa07)
  560. #define DMA_M2M_RXAL (*(unsigned char volatile __XDATA *)0xfa08)
  561. #define DMA_ADC_CFG (*(unsigned char volatile __XDATA *)0xfa10)
  562. #define DMA_ADC_CR (*(unsigned char volatile __XDATA *)0xfa11)
  563. #define DMA_ADC_STA (*(unsigned char volatile __XDATA *)0xfa12)
  564. #define DMA_ADC_RXA (*(unsigned int volatile __XDATA *)0xfa17)
  565. #define DMA_ADC_RXAH (*(unsigned char volatile __XDATA *)0xfa17)
  566. #define DMA_ADC_RXAL (*(unsigned char volatile __XDATA *)0xfa18)
  567. #define DMA_ADC_CFG2 (*(unsigned char volatile __XDATA *)0xfa19)
  568. #define DMA_ADC_CHSW0 (*(unsigned char volatile __XDATA *)0xfa1a)
  569. #define DMA_ADC_CHSW1 (*(unsigned char volatile __XDATA *)0xfa1b)
  570. #define DMA_SPI_CFG (*(unsigned char volatile __XDATA *)0xfa20)
  571. #define DMA_SPI_CR (*(unsigned char volatile __XDATA *)0xfa21)
  572. #define DMA_SPI_STA (*(unsigned char volatile __XDATA *)0xfa22)
  573. #define DMA_SPI_AMT (*(unsigned char volatile __XDATA *)0xfa23)
  574. #define DMA_SPI_DONE (*(unsigned char volatile __XDATA *)0xfa24)
  575. #define DMA_SPI_TXA (*(unsigned int volatile __XDATA *)0xfa25)
  576. #define DMA_SPI_TXAH (*(unsigned char volatile __XDATA *)0xfa25)
  577. #define DMA_SPI_TXAL (*(unsigned char volatile __XDATA *)0xfa26)
  578. #define DMA_SPI_RXA (*(unsigned int volatile __XDATA *)0xfa27)
  579. #define DMA_SPI_RXAH (*(unsigned char volatile __XDATA *)0xfa27)
  580. #define DMA_SPI_RXAL (*(unsigned char volatile __XDATA *)0xfa28)
  581. #define DMA_SPI_CFG2 (*(unsigned char volatile __XDATA *)0xfa29)
  582. #define DMA_UR1T_CFG (*(unsigned char volatile __XDATA *)0xfa30)
  583. #define DMA_UR1T_CR (*(unsigned char volatile __XDATA *)0xfa31)
  584. #define DMA_UR1T_STA (*(unsigned char volatile __XDATA *)0xfa32)
  585. #define DMA_UR1T_AMT (*(unsigned char volatile __XDATA *)0xfa33)
  586. #define DMA_UR1T_DONE (*(unsigned char volatile __XDATA *)0xfa34)
  587. #define DMA_UR1T_TXA (*(unsigned int volatile __XDATA *)0xfa35)
  588. #define DMA_UR1T_TXAH (*(unsigned char volatile __XDATA *)0xfa35)
  589. #define DMA_UR1T_TXAL (*(unsigned char volatile __XDATA *)0xfa36)
  590. #define DMA_UR1R_CFG (*(unsigned char volatile __XDATA *)0xfa38)
  591. #define DMA_UR1R_CR (*(unsigned char volatile __XDATA *)0xfa39)
  592. #define DMA_UR1R_STA (*(unsigned char volatile __XDATA *)0xfa3a)
  593. #define DMA_UR1R_AMT (*(unsigned char volatile __XDATA *)0xfa3b)
  594. #define DMA_UR1R_DONE (*(unsigned char volatile __XDATA *)0xfa3c)
  595. #define DMA_UR1R_RXA (*(unsigned int volatile __XDATA *)0xfa3d)
  596. #define DMA_UR1R_RXAH (*(unsigned char volatile __XDATA *)0xfa3d)
  597. #define DMA_UR1R_RXAL (*(unsigned char volatile __XDATA *)0xfa3e)
  598. #define DMA_UR2T_CFG (*(unsigned char volatile __XDATA *)0xfa40)
  599. #define DMA_UR2T_CR (*(unsigned char volatile __XDATA *)0xfa41)
  600. #define DMA_UR2T_STA (*(unsigned char volatile __XDATA *)0xfa42)
  601. #define DMA_UR2T_AMT (*(unsigned char volatile __XDATA *)0xfa43)
  602. #define DMA_UR2T_DONE (*(unsigned char volatile __XDATA *)0xfa44)
  603. #define DMA_UR2T_TXA (*(unsigned int volatile __XDATA *)0xfa45)
  604. #define DMA_UR2T_TXAH (*(unsigned char volatile __XDATA *)0xfa45)
  605. #define DMA_UR2T_TXAL (*(unsigned char volatile __XDATA *)0xfa46)
  606. #define DMA_UR2R_CFG (*(unsigned char volatile __XDATA *)0xfa48)
  607. #define DMA_UR2R_CR (*(unsigned char volatile __XDATA *)0xfa49)
  608. #define DMA_UR2R_STA (*(unsigned char volatile __XDATA *)0xfa4a)
  609. #define DMA_UR2R_AMT (*(unsigned char volatile __XDATA *)0xfa4b)
  610. #define DMA_UR2R_DONE (*(unsigned char volatile __XDATA *)0xfa4c)
  611. #define DMA_UR2R_RXA (*(unsigned int volatile __XDATA *)0xfa4d)
  612. #define DMA_UR2R_RXAH (*(unsigned char volatile __XDATA *)0xfa4d)
  613. #define DMA_UR2R_RXAL (*(unsigned char volatile __XDATA *)0xfa4e)
  614. #define DMA_UR3T_CFG (*(unsigned char volatile __XDATA *)0xfa50)
  615. #define DMA_UR3T_CR (*(unsigned char volatile __XDATA *)0xfa51)
  616. #define DMA_UR3T_STA (*(unsigned char volatile __XDATA *)0xfa52)
  617. #define DMA_UR3T_AMT (*(unsigned char volatile __XDATA *)0xfa53)
  618. #define DMA_UR3T_DONE (*(unsigned char volatile __XDATA *)0xfa54)
  619. #define DMA_UR3T_TXA (*(unsigned int volatile __XDATA *)0xfa55)
  620. #define DMA_UR3T_TXAH (*(unsigned char volatile __XDATA *)0xfa55)
  621. #define DMA_UR3T_TXAL (*(unsigned char volatile __XDATA *)0xfa56)
  622. #define DMA_UR3R_CFG (*(unsigned char volatile __XDATA *)0xfa58)
  623. #define DMA_UR3R_CR (*(unsigned char volatile __XDATA *)0xfa59)
  624. #define DMA_UR3R_STA (*(unsigned char volatile __XDATA *)0xfa5a)
  625. #define DMA_UR3R_AMT (*(unsigned char volatile __XDATA *)0xfa5b)
  626. #define DMA_UR3R_DONE (*(unsigned char volatile __XDATA *)0xfa5c)
  627. #define DMA_UR3R_RXA (*(unsigned int volatile __XDATA *)0xfa5d)
  628. #define DMA_UR3R_RXAH (*(unsigned char volatile __XDATA *)0xfa5d)
  629. #define DMA_UR3R_RXAL (*(unsigned char volatile __XDATA *)0xfa5e)
  630. #define DMA_UR4T_CFG (*(unsigned char volatile __XDATA *)0xfa60)
  631. #define DMA_UR4T_CR (*(unsigned char volatile __XDATA *)0xfa61)
  632. #define DMA_UR4T_STA (*(unsigned char volatile __XDATA *)0xfa62)
  633. #define DMA_UR4T_AMT (*(unsigned char volatile __XDATA *)0xfa63)
  634. #define DMA_UR4T_DONE (*(unsigned char volatile __XDATA *)0xfa64)
  635. #define DMA_UR4T_TXA (*(unsigned int volatile __XDATA *)0xfa65)
  636. #define DMA_UR4T_TXAH (*(unsigned char volatile __XDATA *)0xfa65)
  637. #define DMA_UR4T_TXAL (*(unsigned char volatile __XDATA *)0xfa66)
  638. #define DMA_UR4R_CFG (*(unsigned char volatile __XDATA *)0xfa68)
  639. #define DMA_UR4R_CR (*(unsigned char volatile __XDATA *)0xfa69)
  640. #define DMA_UR4R_STA (*(unsigned char volatile __XDATA *)0xfa6a)
  641. #define DMA_UR4R_AMT (*(unsigned char volatile __XDATA *)0xfa6b)
  642. #define DMA_UR4R_DONE (*(unsigned char volatile __XDATA *)0xfa6c)
  643. #define DMA_UR4R_RXA (*(unsigned int volatile __XDATA *)0xfa6d)
  644. #define DMA_UR4R_RXAH (*(unsigned char volatile __XDATA *)0xfa6d)
  645. #define DMA_UR4R_RXAL (*(unsigned char volatile __XDATA *)0xfa6e)
  646. #define DMA_LCM_CFG (*(unsigned char volatile __XDATA *)0xfa70)
  647. #define DMA_LCM_CR (*(unsigned char volatile __XDATA *)0xfa71)
  648. #define DMA_LCM_STA (*(unsigned char volatile __XDATA *)0xfa72)
  649. #define DMA_LCM_AMT (*(unsigned char volatile __XDATA *)0xfa73)
  650. #define DMA_LCM_DONE (*(unsigned char volatile __XDATA *)0xfa74)
  651. #define DMA_LCM_TXA (*(unsigned int volatile __XDATA *)0xfa75)
  652. #define DMA_LCM_TXAH (*(unsigned char volatile __XDATA *)0xfa75)
  653. #define DMA_LCM_TXAL (*(unsigned char volatile __XDATA *)0xfa76)
  654. #define DMA_LCM_RXA (*(unsigned int volatile __XDATA *)0xfa77)
  655. #define DMA_LCM_RXAH (*(unsigned char volatile __XDATA *)0xfa77)
  656. #define DMA_LCM_RXAL (*(unsigned char volatile __XDATA *)0xfa78)
  657. /////////////////////////////////////////////////
  658. //USB Control Regiter
  659. /////////////////////////////////////////////////
  660. //sfr USBCLK = 0xdc;
  661. //sfr USBDAT = 0xec;
  662. //sfr USBCON = 0xf4;
  663. //sfr USBADR = 0xfc;
  664. // Use:
  665. // char dat;
  666. //
  667. // READ_USB(CSR0, dat); // read USB reg
  668. // WRITE_USB(FADDR, 0x00); // write USB reg
  669. #define READ_USB(reg, dat) \
  670. { \
  671. while (USBADR & 0x80); \
  672. USBADR = (reg) | 0x80; \
  673. while (USBADR & 0x80); \
  674. (dat) = USBDAT; \
  675. }
  676. #define WRITE_USB(reg, dat) \
  677. { \
  678. while (USBADR & 0x80); \
  679. USBADR = (reg) & 0x7f; \
  680. USBDAT = (dat); \
  681. }
  682. #define USBBASE 0
  683. #define FADDR (USBBASE + 0)
  684. #define UPDATE 0x80
  685. #define POWER (USBBASE + 1)
  686. #define ISOUD 0x80
  687. #define USBRST 0x08
  688. #define USBRSU 0x04
  689. #define USBSUS 0x02
  690. #define ENSUS 0x01
  691. #define INTRIN1 (USBBASE + 2)
  692. #define EP5INIF 0x20
  693. #define EP4INIF 0x10
  694. #define EP3INIF 0x08
  695. #define EP2INIF 0x04
  696. #define EP1INIF 0x02
  697. #define EP0IF 0x01
  698. #define INTROUT1 (USBBASE + 4)
  699. #define EP5OUTIF 0x20
  700. #define EP4OUTIF 0x10
  701. #define EP3OUTIF 0x08
  702. #define EP2OUTIF 0x04
  703. #define EP1OUTIF 0x02
  704. #define INTRUSB (USBBASE + 6)
  705. #define SOFIF 0x08
  706. #define RSTIF 0x04
  707. #define RSUIF 0x02
  708. #define SUSIF 0x01
  709. #define INTRIN1E (USBBASE + 7)
  710. #define EP5INIE 0x20
  711. #define EP4INIE 0x10
  712. #define EP3INIE 0x08
  713. #define EP2INIE 0x04
  714. #define EP1INIE 0x02
  715. #define EP0IE 0x01
  716. #define INTROUT1E (USBBASE + 9)
  717. #define EP5OUTIE 0x20
  718. #define EP4OUTIE 0x10
  719. #define EP3OUTIE 0x08
  720. #define EP2OUTIE 0x04
  721. #define EP1OUTIE 0x02
  722. #define INTRUSBE (USBBASE + 11)
  723. #define SOFIE 0x08
  724. #define RSTIE 0x04
  725. #define RSUIE 0x02
  726. #define SUSIE 0x01
  727. #define FRAME1 (USBBASE + 12)
  728. #define FRAME2 (USBBASE + 13)
  729. #define INDEX (USBBASE + 14)
  730. #define INMAXP (USBBASE + 16)
  731. #define CSR0 (USBBASE + 17)
  732. #define SSUEND 0x80
  733. #define SOPRDY 0x40
  734. #define SDSTL 0x20
  735. #define SUEND 0x10
  736. #define DATEND 0x08
  737. #define STSTL 0x04
  738. #define IPRDY 0x02
  739. #define OPRDY 0x01
  740. #define INCSR1 (USBBASE + 17)
  741. #define INCLRDT 0x40
  742. #define INSTSTL 0x20
  743. #define INSDSTL 0x10
  744. #define INFLUSH 0x08
  745. #define INUNDRUN 0x04
  746. #define INFIFONE 0x02
  747. #define INIPRDY 0x01
  748. #define INCSR2 (USBBASE + 18)
  749. #define INAUTOSET 0x80
  750. #define INISO 0x40
  751. #define INMODEIN 0x20
  752. #define INMODEOUT 0x00
  753. #define INENDMA 0x10
  754. #define INFCDT 0x08
  755. #define OUTMAXP (USBBASE + 19)
  756. #define OUTCSR1 (USBBASE + 20)
  757. #define OUTCLRDT 0x80
  758. #define OUTSTSTL 0x40
  759. #define OUTSDSTL 0x20
  760. #define OUTFLUSH 0x10
  761. #define OUTDATERR 0x08
  762. #define OUTOVRRUN 0x04
  763. #define OUTFIFOFUL 0x02
  764. #define OUTOPRDY 0x01
  765. #define OUTCSR2 (USBBASE + 21)
  766. #define OUTAUTOCLR 0x80
  767. #define OUTISO 0x40
  768. #define OUTENDMA 0x20
  769. #define OUTDMAMD 0x10
  770. #define COUNT0 (USBBASE + 22)
  771. #define OUTCOUNT1 (USBBASE + 22)
  772. #define OUTCOUNT2 (USBBASE + 23)
  773. #define FIFO0 (USBBASE + 32)
  774. #define FIFO1 (USBBASE + 33)
  775. #define FIFO2 (USBBASE + 34)
  776. #define FIFO3 (USBBASE + 35)
  777. #define FIFO4 (USBBASE + 36)
  778. #define FIFO5 (USBBASE + 37)
  779. #define UTRKCTL (USBBASE + 48)
  780. #define UTRKSTS (USBBASE + 49)
  781. /////////////////////////////////////////////////
  782. //Interrupt Vector
  783. /////////////////////////////////////////////////
  784. #define INT0_VECTOR 0 //0003H
  785. #define TMR0_VECTOR 1 //000BH
  786. #define INT1_VECTOR 2 //0013H
  787. #define TMR1_VECTOR 3 //001BH
  788. #define UART1_VECTOR 4 //0023H
  789. #define ADC_VECTOR 5 //002BH
  790. #define LVD_VECTOR 6 //0033H
  791. #define UART2_VECTOR 8 //0043H
  792. #define SPI_VECTOR 9 //004BH
  793. #define INT2_VECTOR 10 //0053H
  794. #define INT3_VECTOR 11 //005BH
  795. #define TMR2_VECTOR 12 //0063H
  796. #define USER_VECTOR 13 //006BH
  797. #define INT4_VECTOR 16 //0083H
  798. #define UART3_VECTOR 17 //008BH
  799. #define UART4_VECTOR 18 //0093H
  800. #define TMR3_VECTOR 19 //009BH
  801. #define TMR4_VECTOR 20 //00A3H
  802. #define CMP_VECTOR 21 //00ABH
  803. #define I2C_VECTOR 24 //00C3H
  804. #define USB_VECTOR 25 //00CBH
  805. #define PWMA_VECTOR 26 //00D3H
  806. #define PWMB_VECTOR 27 //00DBH
  807. #define TKSU_VECTOR 35 //011BH
  808. #define RTC_VECTOR 36 //0123H
  809. #define P0INT_VECTOR 37 //012BH
  810. #define P1INT_VECTOR 38 //0133H
  811. #define P2INT_VECTOR 39 //013BH
  812. #define P3INT_VECTOR 40 //0143H
  813. #define P4INT_VECTOR 41 //014BH
  814. #define P5INT_VECTOR 42 //0153H
  815. #define P6INT_VECTOR 43 //015BH
  816. #define P7INT_VECTOR 44 //0163H
  817. #define DMA_M2M_VECTOR 47 //017BH
  818. #define DMA_ADC_VECTOR 48 //0183H
  819. #define DMA_SPI_VECTOR 49 //018BH
  820. #define DMA_UR1T_VECTOR 50 //0193H
  821. #define DMA_UR1R_VECTOR 51 //019BH
  822. #define DMA_UR2T_VECTOR 52 //01A3H
  823. #define DMA_UR2R_VECTOR 53 //01ABH
  824. #define DMA_UR3T_VECTOR 54 //01B3H
  825. #define DMA_UR3R_VECTOR 55 //01BBH
  826. #define DMA_UR4T_VECTOR 56 //01C3H
  827. #define DMA_UR4R_VECTOR 57 //01CBH
  828. #define DMA_LCM_VECTOR 58 //01D3H
  829. #define LCM_VECTOR 59 //01DBH
  830. /////////////////////////////////////////////////
  831. #define EAXSFR() P_SW2 |= 0x80 /* MOVX A,@DPTR/MOVX @DPTR, A instruction operates on extended SFR(XSFR) */
  832. #define EAXRAM() P_SW2 &= ~0x80 /* MOVX A,@DPTR/MOVX @DPTR, A instruction operates on extended RAM(XRAM) */
  833. /////////////////////////////////////////////////
  834. #endif /* __HWB_STC8H_H */
  835. /******************************** End Of File *********************************/