Facebook
From Commodious Pig, 3 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 150
  1. /*--------------------------------------------------------------------------
  2. AT89X52.H
  3.  
  4. Header file for the low voltage Flash Atmel AT89C52 and AT89LV52.
  5. Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.
  6. All rights reserved.
  7. --------------------------------------------------------------------------*/
  8.  
  9. #ifndef __AT89X52_H__
  10. #define __AT89X52_H__
  11.  
  12. /*------------------------------------------------
  13. Byte Registers
  14. ------------------------------------------------*/
  15. sfr P0      = 0x80;
  16. sfr SP      = 0x81;
  17. sfr DPL     = 0x82;
  18. sfr DPH     = 0x83;
  19. sfr PCON    = 0x87;
  20. sfr TCON    = 0x88;
  21. sfr TMOD    = 0x89;
  22. sfr TL0     = 0x8A;
  23. sfr TL1     = 0x8B;
  24. sfr TH0     = 0x8C;
  25. sfr TH1     = 0x8D;
  26. sfr P1      = 0x90;
  27. sfr SCON    = 0x98;
  28. sfr SBUF    = 0x99;
  29. sfr P2      = 0xA0;
  30. sfr IE      = 0xA8;
  31. sfr P3      = 0xB0;
  32. sfr IP      = 0xB8;
  33. sfr T2CON   = 0xC8;
  34. sfr T2MOD   = 0xC9;
  35. sfr RCAP2L  = 0xCA;
  36. sfr RCAP2H  = 0xCB;
  37. sfr TL2     = 0xCC;
  38. sfr TH2     = 0xCD;
  39. sfr PSW     = 0xD0;
  40. sfr ACC     = 0xE0;
  41. sfr B       = 0xF0;
  42.  
  43. /*------------------------------------------------
  44. P0 Bit Registers
  45. ------------------------------------------------*/
  46. sbit P0_0 = 0x80;
  47. sbit P0_1 = 0x81;
  48. sbit P0_2 = 0x82;
  49. sbit P0_3 = 0x83;
  50. sbit P0_4 = 0x84;
  51. sbit P0_5 = 0x85;
  52. sbit P0_6 = 0x86;
  53. sbit P0_7 = 0x87;
  54.  
  55. /*------------------------------------------------
  56. PCON Bit Values
  57. ------------------------------------------------*/
  58. #define IDL_    0x01
  59.  
  60. #define STOP_   0x02
  61. #define PD_     0x02    /* Alternate definition */
  62.  
  63. #define GF0_    0x04
  64. #define GF1_    0x08
  65. #define SMOD_   0x80
  66.  
  67. /*------------------------------------------------
  68. TCON Bit Registers
  69. ------------------------------------------------*/
  70. sbit IT0  = 0x88;
  71. sbit IE0  = 0x89;
  72. sbit IT1  = 0x8A;
  73. sbit IE1  = 0x8B;
  74. sbit TR0  = 0x8C;
  75. sbit TF0  = 0x8D;
  76. sbit TR1  = 0x8E;
  77. sbit TF1  = 0x8F;
  78.  
  79. /*------------------------------------------------
  80. TMOD Bit Values
  81. ------------------------------------------------*/
  82. #define T0_M0_   0x01
  83. #define T0_M1_   0x02
  84. #define T0_CT_   0x04
  85. #define T0_GATE_ 0x08
  86. #define T1_M0_   0x10
  87. #define T1_M1_   0x20
  88. #define T1_CT_   0x40
  89. #define T1_GATE_ 0x80
  90.  
  91. #define T1_MASK_ 0xF0
  92. #define T0_MASK_ 0x0F
  93.  
  94. /*------------------------------------------------
  95. P1 Bit Registers
  96. ------------------------------------------------*/
  97. sbit P1_0 = 0x90;
  98. sbit P1_1 = 0x91;
  99. sbit P1_2 = 0x92;
  100. sbit P1_3 = 0x93;
  101. sbit P1_4 = 0x94;
  102. sbit P1_5 = 0x95;
  103. sbit P1_6 = 0x96;
  104. sbit P1_7 = 0x97;
  105.  
  106. sbit T2   = 0x90;       /* External input to Timer/Counter 2, clock out */
  107. sbit T2EX = 0x91;       /* Timer/Counter 2 capture/reload trigger & dir ctl */
  108.  
  109. /*------------------------------------------------
  110. SCON Bit Registers
  111. ------------------------------------------------*/
  112. sbit RI   = 0x98;
  113. sbit TI   = 0x99;
  114. sbit RB8  = 0x9A;
  115. sbit TB8  = 0x9B;
  116. sbit REN  = 0x9C;
  117. sbit SM2  = 0x9D;
  118. sbit SM1  = 0x9E;
  119. sbit SM0  = 0x9F;
  120.  
  121. /*------------------------------------------------
  122. P2 Bit Registers
  123. ------------------------------------------------*/
  124. sbit P2_0 = 0xA0;
  125. sbit P2_1 = 0xA1;
  126. sbit P2_2 = 0xA2;
  127. sbit P2_3 = 0xA3;
  128. sbit P2_4 = 0xA4;
  129. sbit P2_5 = 0xA5;
  130. sbit P2_6 = 0xA6;
  131. sbit P2_7 = 0xA7;
  132.  
  133. /*------------------------------------------------
  134. IE Bit Registers
  135. ------------------------------------------------*/
  136. sbit EX0  = 0xA8;       /* 1=Enable External interrupt 0 */
  137. sbit ET0  = 0xA9;       /* 1=Enable Timer 0 interrupt */
  138. sbit EX1  = 0xAA;       /* 1=Enable External interrupt 1 */
  139. sbit ET1  = 0xAB;       /* 1=Enable Timer 1 interrupt */
  140. sbit ES   = 0xAC;       /* 1=Enable Serial port interrupt */
  141. sbit ET2  = 0xAD;       /* 1=Enable Timer 2 interrupt */
  142.  
  143. sbit EA   = 0xAF;       /* 0=Disable all interrupts */
  144.  
  145. /*------------------------------------------------
  146. P3 Bit Registers (Mnemonics & Ports)
  147. ------------------------------------------------*/
  148. sbit P3_0 = 0xB0;
  149. sbit P3_1 = 0xB1;
  150. sbit P3_2 = 0xB2;
  151. sbit P3_3 = 0xB3;
  152. sbit P3_4 = 0xB4;
  153. sbit P3_5 = 0xB5;
  154. sbit P3_6 = 0xB6;
  155. sbit P3_7 = 0xB7;
  156.  
  157. sbit RXD  = 0xB0;       /* Serial data input */
  158. sbit TXD  = 0xB1;       /* Serial data output */
  159. sbit INT0 = 0xB2;       /* External interrupt 0 */
  160. sbit INT1 = 0xB3;       /* External interrupt 1 */
  161. sbit T0   = 0xB4;       /* Timer 0 external input */
  162. sbit T1   = 0xB5;       /* Timer 1 external input */
  163. sbit WR   = 0xB6;       /* External data memory write strobe */
  164. sbit RD   = 0xB7;       /* External data memory read strobe */
  165.  
  166. /*------------------------------------------------
  167. IP Bit Registers
  168. ------------------------------------------------*/
  169. sbit PX0  = 0xB8;
  170. sbit PT0  = 0xB9;
  171. sbit PX1  = 0xBA;
  172. sbit PT1  = 0xBB;
  173. sbit PS   = 0xBC;
  174. sbit PT2  = 0xBD;
  175.  
  176. /*------------------------------------------------
  177. T2CON Bit Registers
  178. ------------------------------------------------*/
  179. sbit CP_RL2= 0xC8;      /* 0=Reload, 1=Capture select */
  180. sbit C_T2 = 0xC9;       /* 0=Timer, 1=Counter */
  181. sbit TR2  = 0xCA;       /* 0=Stop timer, 1=Start timer */
  182. sbit EXEN2= 0xCB;       /* Timer 2 external enable */
  183. sbit TCLK = 0xCC;       /* 0=Serial clock uses Timer 1 overflow, 1=Timer 2 */
  184. sbit RCLK = 0xCD;       /* 0=Serial clock uses Timer 1 overflow, 1=Timer 2 */
  185. sbit EXF2 = 0xCE;       /* Timer 2 external flag */
  186. sbit TF2  = 0xCF;       /* Timer 2 overflow flag */
  187.  
  188. /*------------------------------------------------
  189. T2MOD Bit Values
  190. ------------------------------------------------*/
  191. #define DCEN_   0x01    /* 1=Timer 2 can be configured as up/down counter */
  192. #define T2OE_   0x02    /* Timer 2 output enable */
  193.  
  194. /*------------------------------------------------
  195. PSW Bit Registers
  196. ------------------------------------------------*/
  197. sbit P    = 0xD0;
  198. sbit F1   = 0xD1;
  199. sbit OV   = 0xD2;
  200. sbit RS0  = 0xD3;
  201. sbit RS1  = 0xD4;
  202. sbit F0   = 0xD5;
  203. sbit AC   = 0xD6;
  204. sbit CY   = 0xD7;
  205.  
  206. /*------------------------------------------------
  207. Interrupt Vectors:
  208. Interrupt Address = (Number * 8) + 3
  209. ------------------------------------------------*/
  210. #define IE0_VECTOR      0  /* 0x03 External Interrupt 0 */
  211. #define TF0_VECTOR      1  /* 0x0B Timer 0 */
  212. #define IE1_VECTOR      2  /* 0x13 External Interrupt 1 */
  213. #define TF1_VECTOR      3  /* 0x1B Timer 1 */
  214. #define SIO_VECTOR      4  /* 0x23 Serial port */
  215.  
  216. #define TF2_VECTOR      5  /* 0x2B Timer 2 */
  217. #define EX2_VECTOR      5  /* 0x2B External Interrupt 2 */
  218.  
  219. #endif
  220.  
  221.  
  222. 
  223.