久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10493|回復: 0
收起左側

STC89全系列AT89C52以上系列的頭文件共用

[復制鏈接]
ID:70976 發表于 2014-12-26 21:11 | 顯示全部樓層 |閱讀模式

  1. STC89全系列AT89C52以上系列的頭文件共用,帶詳細的中文說明,內部資源一覽無余
  2. /*-------------------------------------------------------------------------
  3. 89X5X_H   
  4. Header file for 89CXX controller
  5. Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc^
  6. All rights reserved^
  7. --------------------------------------------------------------------------*/
  8. #ifndef __89x5X_H__
  9. #define __89x5X_H__
  10. //  8051 core
  11. sfr ACC    = 0xE0;//累加器A  (可位尋址)
  12. sfr B      = 0xF0;//寄存器B  (可位尋址)
  13. sfr DPL    = 0x82;//數據指針低位 (不可位尋址)
  14. sfr DPH    = 0x83;//數據指針高位 (不可位尋址)
  15. sfr SP     = 0x81;//堆棧指針 (不可位尋址)
  16. sfr SBUF   = 0x99;//串行數據緩沖器 (不可位尋址)
  17. sfr TL0    = 0x8A;//T0低字節 (不可位尋址)
  18. sfr TL1    = 0x8B;//T1低字節 (不可位尋址)
  19. sfr TH0    = 0x8C;//T0高字節 (不可位尋址)
  20. sfr TH1    = 0x8D;//T1高字節 (不可位尋址)
  21. sfr PSW    = 0xD0;//狀態 (標志) 寄存器 (可位尋址)
  22. /************************************************************************
  23. BIT7             CY               (進位標志位)
  24. BIT6             AC               ( 輔助進位標志位,當進行加、減運算時當有低4位向高4位進位或
  25.                                     借位時,AC置位,否則被清零。AC輔助進位位也常用于十進制調整)
  26. BTT5             F0               (用戶標志位0,供用戶設置的標志位)
  27. BIT4~BIT3        RS1~RS0          (寄存器組選擇位)
  28. BIT2             OV               (溢出標志位)
  29. BIT1             F1               (用戶標志位1,供用戶設置的標志位)
  30. BIT0             P                (奇偶校驗位)
  31. *************************************************************************/
  32. sfr SCON   = 0x98;//串口 (控制及標志) 寄存器 (可位尋址)
  33. /************************************************************************
  34. BIT7~BIT6        SM1~SM0          (串口的工作方式選擇:00B 為同步8位工作方式0
  35.                                                        01B 為定波特綠
  36.                                                        10B 為
  37.                                                        11B 為)
  38. BTT5             SM2              (多機通信控制位,僅在工作方式2和3有效)
  39. BIT4             REN              (允許接收控制位)
  40. BIT3             TB8              (發送數據位8,多機通信中,0代表當前發送內容是數據,1代表地址)
  41. BIT2             RB8              (接收數據位8,存放接收到的第9位數據)
  42. BIT1             TI               (發送中斷標志位,1有效,需軟件清0)
  43. BIT0             RI               (發送中斷標志位,1有效,需軟件清0)
  44. *************************************************************************/
  45. sfr IE     = 0xA8;//中斷使能 (控制) 寄存器 (可位尋址)
  46. /************************************************************************
  47. BIT7             EA           (全局中斷使能控制位,1有效)  
  48. BIT6             ---            
  49. BIT5             ET2            (定時器2中斷使能控制位,1有效)
  50. BIT4             ES            (串口中斷使能控制位,1有效)
  51. BIT3             ET1              (定時計數器1中斷使能控制位,1有效)
  52. BIT2             EX1           (外部中斷1中斷使能控制位,1有效)
  53. BIT1             ET0              (定時計數器0中斷使能控制位,1有效)
  54. BIT0             EX0           (外部中斷0中斷使能控制位,1有效)
  55. *************************************************************************/
  56. sfr IP     = 0xB8;//中斷優先級 (控制) 寄存器 (可位尋址)
  57. /************************************************************************
  58. BIT7             ---           
  59. BIT6             ---            
  60. BIT5             PT2            (為1時T2中斷設置為高優先級)
  61. BIT4             PS            (為1時串口中斷設置為高優先級)
  62. BIT3             PT1              (為1時T1中斷設置為高優先級)
  63. BIT2             PX1           (為1時外部中斷1設置為高優先級)
  64. BIT1             PT0              (為1時T0中斷設置為高優先級)
  65. BIT0             PX0           (為1時外部中斷0設置為高優先級)
  66. *************************************************************************/
  67. sfr TCON   = 0x88;//T1,T0及INT1,INT0 (控制及標志) 寄存器 (可位尋址)
  68. /************************************************************************
  69. BIT7             TF1            (定時計數器1中斷標志位,1有效,硬件自動清0)           
  70. BIT6             TR1            (定時計數器1啟動控制位,1有效)            
  71. BIT5             TF0            (定時計數器0中斷標志位,1有效,硬件自動清0)
  72. BIT4             TR0           (定時計數器0啟動控制位,1有效)
  73. BIT3             IE1              (外部中斷1中斷標志位,1有效,硬件自動清0)
  74. BIT2             IT1           (外部中斷1引起中斷的方式: 0為低電平觸發,1為下降沿觸發)
  75. BIT1             IE0              (外部中斷0中斷標志位,1有效,硬件自動清0)
  76. BIT0             IT0           (外部中斷0引起中斷的方式: 0為低電平觸發,1為下降沿觸發)
  77. *************************************************************************/
  78. sfr TMOD   = 0x89;//T1,T0 (控制及標志) 寄存器 (不可位尋址)
  79. /************************************************************************
  80. BIT7             GATE1            (T1啟動是否與"/INT1"引腳相關)
  81. BIT6             C/T1             (0時T1為定時,1時TI為計數)
  82. BIT5~BIT4        T1M1~T1M0     (T1的工作模式)
  83. BIT3             GATE1            (T0啟動是否與"/INT0"引腳相關)
  84. BIT2             C/T1             (0時T0為定時,1時T0為計數)
  85. BIT1~BIT0        T0M1~T0M0   (T0的工作模式)
  86. *************************************************************************/
  87. sfr PCON   = 0x87;//電源 (控制) 寄存器 (不可位尋址)
  88. /************************************************************************
  89. BIT7             SMOD           (為串行口波特率倍率控制位,用于串行通信)   
  90. //=====以下僅STC89系列和AT89S5X系列有效         
  91. BIT6             SMOD0                 
  92. BIT5             ---
  93. BIT4             POF            (上電復位標志位: 1則表明該復位為上電復位,可由軟件清0
  94.                                                    0則表明該復位為外部手動復位或看門狗復位)
  95. BIT3~BIT2        GF1~GF0          (通用標志位,描述中斷是來自正常運行還是來自空
  96.                                             閑方式,用戶可通過指令設定它們的狀態)            
  97. BIT1             PD              (為1時,進入掉電模式,外部時鐘停振,CPU,定時器,
  98.                                              串口全部停止工作,僅由外部中斷喚醒)
  99. BIT0             IDL           (為1時,進入空閑模式,CPU不工作,可欲任何一個中斷喚醒)
  100. *************************************************************************/
  101. //  Ports
  102. sfr P0     = 0x80;//端口0(可位尋址)
  103. sfr P1     = 0x90;//端口1(可位尋址)
  104. sfr P2     = 0xA0;//端口2(可位尋址)
  105. sfr P3     = 0xB0;//端口3(可位尋址)
  106. //  Timer2
  107. sfr T2CON  = 0xC8;//定時器2的 (控制標志) 寄存器 (可位尋址)
  108. /************************************************************************
  109. BIT7             TF2            (定時計數器2中斷標志位,1有效,必須由軟件清0,
  110.                                    當該定時器作為波特率時不置該標志位)
  111. BIT6             EXF2            (定時計數器2外部中斷標志位,1有效,必須軟件清0,
  112.                                     當EXEN2為1且T2EX引腳負跳變產生捕獲或重裝時引
  113.                                      起該中斷標志位置1,在遞增/遞減模式即T2MOD中的
  114.                                      DCEN = 1時及,EXF2為1不會引起中斷)            
  115. BIT5             RCLK           (為1時定時計數器2溢出脈沖作為串口接收波特率)
  116. BIT4             TCLK           (為1時定時計數器2溢出脈沖作為串口發送波特率)
  117. BIT3             EXEN2            (定時計數器2外部中斷使能控制位,
  118.                                    當該位為1且RCLK和TCLK同時為0時有效)
  119. BIT2             TR2           (定時計數器2啟動控制位,1有效)
  120. BIT1             C/T2             (定時計數器2工作方式選擇控制位: 0時為內部定時器
  121.                                                                   1時為外部事件計數器)
  122. BIT0             CP/RL2         (捕獲還是重裝選擇控制位:僅RCLK和TCLK同時為0時有效,
  123.                                    為0時且EXEN2=0,定時計數器2的溢出和T2EX引腳的負跳變
  124.                                    都能使TH2和TL2重裝;為1時且EXEN2=1,T2EX引腳負跳變產生
  125.                                    捕獲,TH2和TL2清0)
  126. *************************************************************************/
  127. sfr T2MOD  = 0xC9;//定時計數器2模式控制寄存器 (不可位尋址)
  128. /************************************************************************
  129. BIT7             ---           0  
  130. BIT6             ---              0
  131. BIT5             ---              0
  132. BIT4             ---              0
  133. BIT3             ---              0
  134. BIT2             ---              0
  135. BIT1             T2OE             (定時計數器2中斷T2輸出使能控制位,1有效)
  136. BIT0             PX0           (向下計數使能位,為1時定時計數器2倒計數)
  137. *************************************************************************/
  138. sfr RCAP2H = 0xCB;//定時計數器2再裝入緩沖區高字節 (不可位尋址)
  139. sfr RCAP2L = 0xCA;//定時計數器2再裝入緩沖區低字節 (不可位尋址)
  140. sfr TH2    = 0xCD;//定時計數器2高字節 (不可位尋址)
  141. sfr TL2    = 0xCC;//定時計數器2低字節 (不可位尋址)
  142. // BIT Registers
  143. // Port0
  144. sbit P0_7  = P0^7;
  145. sbit P0_6  = P0^6;
  146. sbit P0_5  = P0^5;
  147. sbit P0_4  = P0^4;
  148. sbit P0_3  = P0^3;
  149. sbit P0_2  = P0^2;
  150. sbit P0_1  = P0^1;
  151. sbit P0_0  = P0^0;
  152. // Port1
  153. sbit P1_7  = P1^7;
  154. sbit P1_6  = P1^6;
  155. sbit P1_5  = P1^5;
  156. sbit P1_4  = P1^4;
  157. sbit P1_3  = P1^3;
  158. sbit P1_2  = P1^2;
  159. sbit T2_EX = P1^1;
  160. sbit T2    = P1^0;
  161. // Port2
  162. sbit P2_7  = P2^7;
  163. sbit P2_6  = P2^6;
  164. sbit P2_5  = P2^5;
  165. sbit P2_4  = P2^4;
  166. sbit P2_3  = P2^3;
  167. sbit P2_2  = P2^2;
  168. sbit P2_1  = P2^1;
  169. sbit P2_0  = P2^0;
  170. // Port3
  171. sbit RD    = P3^7;
  172. sbit WR    = P3^6;
  173. sbit T1    = P3^5;
  174. sbit T0    = P3^4;
  175. sbit INT1  = P3^3;
  176. sbit INT0  = P3^2;
  177. sbit TXD   = P3^1;
  178. sbit RXD   = P3^0;
  179. // PSW
  180. sbit CY    = PSW^7;
  181. sbit AC    = PSW^6;
  182. sbit F0    = PSW^5;
  183. sbit RS1   = PSW^4;
  184. sbit RS0   = PSW^3;
  185. sbit OV    = PSW^2;
  186. sbit F1    = PSW^1;
  187. sbit P     = PSW^0;
  188. // SCON
  189. sbit SM0   = SCON^7;
  190. sbit SM1   = SCON^6;
  191. sbit SM2   = SCON^5;
  192. sbit REN   = SCON^4;
  193. sbit TB8   = SCON^3;
  194. sbit RB8   = SCON^2;
  195. sbit TI    = SCON^1;
  196. sbit RI    = SCON^0;
  197. // IE
  198. sbit EA    = IE^7;
  199. sbit ET2   = IE^5;
  200. sbit ES    = IE^4;
  201. sbit ET1   = IE^3;
  202. sbit EX1   = IE^2;
  203. sbit ET0   = IE^1;
  204. sbit EX0   = IE^0;
  205. // IP
  206. sbit PT2   = IP^5;
  207. sbit PS    = IP^4;
  208. sbit PT1   = IP^3;
  209. sbit PX1   = IP^2;
  210. sbit PT0   = IP^1;
  211. sbit PX0   = IP^0;
  212. // TCON
  213. sbit TF1   = TCON^7;
  214. sbit TR1   = TCON^6;
  215. sbit TF0   = TCON^5;
  216. sbit TR0   = TCON^4;
  217. sbit IE1   = TCON^3;
  218. sbit IT1   = TCON^2;
  219. sbit IE0   = TCON^1;
  220. sbit IT0   = TCON^0;
  221. // T2CON
  222. sbit TF2    = T2CON^7;
  223. sbit EXF2   = T2CON^6;
  224. sbit RCLK   = T2CON^5;
  225. sbit TCLK   = T2CON^4;
  226. sbit EXEN2  = T2CON^3;
  227. sbit TR2    = T2CON^2;
  228. sbit C_T2   = T2CON^1;
  229. sbit CP_RL2 = T2CON^0;

  230. //以下僅STC89C5X系列有效
  231. sfr AUXR       = 0x8E;//擴展RAM管理及禁止ALE輸出控制寄存器 (不可位尋址)
  232. /************************************************************************
  233. BIT7             ---           0  
  234. BIT6             ---              0
  235. BIT5             ---              0
  236. BIT4             ---              0
  237. BIT3             ---              0
  238. BIT2             ---              0
  239. BIT1             EXTRAM           (為0時允許使用內部擴展的RAM,為1時使用同普通 51 MCU)
  240. BIT0             ALEOFF          (為0時允許ALE一直輸出固定的頻率信號,
  241.                                    為1時僅在對外存儲器有操作時輸出ALE控制信號)
  242. *************************************************************************/
  243. sfr AUXR1      = 0xA2;//雙數據指針控制寄存器 (不可位尋址)
  244. /************************************************************************
  245. BIT7             ---           0  
  246. BIT6             ---              0
  247. BIT5             ---              0
  248. BIT4             ---              0
  249. BIT3             GF2              (通用功能用戶自定義位)
  250. BIT2             ---              0
  251. BIT1             ---              0
  252. BIT0             DPS          (為0時使用DPTR0,為1時使用DPTR1)
  253. *************************************************************************/
  254. sfr IPH        = 0xB7;//中斷優先級控制寄存器高位(同IP配合組成4個中斷優先級,不可位尋址)
  255. /************************************************************************
  256. BIT7             PX3H           (外部中斷3中斷設置優先級高位)  
  257. BIT6             PX2H             (外部中斷2中斷設置優先級高位)
  258. BIT5             PT2H             (定時計數器2中斷設置優先級高位)
  259. BIT4             PSH              (串口中斷設置優先級高位)
  260. BIT3             PT1H             (定時計數器1中斷設置優先級高位)
  261. BIT2             PX1H             (外部中斷1中斷設置優先級高位)
  262. BIT1             PT0H             (定時計數器0中斷設置優先級高位)
  263. BIT0             PX0H         (外部中斷0中斷設置優先級高位)
  264.                   
  265. 中斷        代號       優先級0    優先級1    優先級2     優先級3        說明               
  266. INTn      PXnH,PXn       0,0        0,1        1,0         1,1      第n個外部中斷
  267. Timer     PTnH,PTn       0,0        0,1        1,0         1,1     第n個定時器中斷  
  268. USART      PSH,PS        0,0        0,1        1,0         1,1        串口中斷
  269. *************************************************************************/
  270. sfr XICON      = 0xC0;//擴展外部中斷控制及標志寄存器 (可位尋址)
  271. /************************************************************************
  272. BIT7             PX3           (外部中斷3優先級設置低位)  
  273. BIT6             EX3              (外部中斷3中斷使能控制位,1有效)
  274. BIT5             IE3              (外部中斷3中斷標志位,1有效)
  275. BIT4             IT3              (外部中斷3引起中斷的方式: 0為低電平觸發,1為下降沿觸發)
  276. BIT3             PX2              (外部中斷2優先級設置低位)
  277. BIT2             EX2              (外部中斷2中斷使能控制位,1有效)
  278. BIT1             IE2              (外部中斷2中斷標志位,1有效)
  279. BIT0             IT2          (外部中斷2引起中斷的方式: 0為低電平觸發,1為下降沿觸發)
  280. *************************************************************************/
  281. sfr WDT_CONTR  = 0xE1;//看門狗定時器控制寄存器 (不可位尋址)
  282. /************************************************************************
  283. BIT7             ---           
  284. BIT6             ---            
  285. BIT5             EN_WDT    (看門狗啟動控制位,1有效)
  286. BIT4             CLR_WDT          (看門狗清零控制位,設置為1看門狗將重新計數,該位硬件自動清0)
  287. BIT3             IDLE_WDT         (看門狗工作方式選擇位: 1時看門狗在"空閑模式"下計數
  288.                                                          0時看門狗在"空閑模式"下不計數)
  289. BIT2~BIT0        PS2~PS0          (看門狗定時器分頻模式:
  290.                                      0時為2分頻,1時為4分頻,2時為8分頻,3時為16分頻
  291.                                      4時為32分頻,5時為64分頻,6時為128分頻,7時為256分頻)
  292. //PS:看門狗的溢出時間公式 WDT_T(S) = (N*分頻值*32768)/晶振頻率(Hz)  (其中當在12 Clock 模式
  293.                                                                       N = 12, 在6 Clock 模式
  294.                                                                       N = 6)
  295. *************************************************************************/
  296. sfr ISP_DATA   = 0xE2;//=ISP/IAP操作時使用的數據寄存器 (不可位尋址)
  297. sfr ISP_ADDRH  = 0xE3;//=ISP/IAP操作時使用的地址寄存器高字節 (不可位尋址)
  298. sfr ISP_ADDRL  = 0xE4;//=ISP/IAP操作時使用的地址寄存器低字節 (不可位尋址)
  299. sfr ISP_CMD    = 0xE5;//=ISP/IAP操作時命令模式寄存器,需設置后ISP/IAP操作才有效 (不可位尋址)
  300. /************************************************************************
  301. BIT7             ---  
  302. BIT6             ---
  303. BIT5             ---
  304. BIT4             ---
  305. BIT3             ---
  306. BIT2~BIT0        B2~B0            (為0時 待機模式,無ISP操作
  307.                                    為1時 對用戶程序Flash區或數據Flash區讀
  308.                                    為2時 對用戶程序Flash區或數據Flash區編程
  309.                                    為3時 對用戶程序Flash區或數據Flash區擦除)
  310. *************************************************************************/
  311. sfr ISP_TRIG   = 0xE6;//=ISP/IAP操作時的命令觸發寄存器 (不可位尋址)
  312. /************************************************************************
  313. 在ISPEN(ISP_CONTR.7) = 1時,對ISP_TRIG先寫入0x46,再寫入0xB9,ISP/IAP命令才能生效
  314. *************************************************************************/
  315. sfr ISP_CONTR  = 0xE7;//=ISP/IAP控制寄存器 (不可位尋址)
  316. /************************************************************************
  317. BIT7             ISPEN           (ISP/IAP功能允許位,1有效)  
  318. BIT6             SWBS             (軟件選擇從用戶主程序區啟動(0),還是從ISP程序區啟動(1))
  319. BIT5             SWRST            (為0時不操作,為1時產生軟件復位,硬件自動清0)
  320. BIT4             ---            
  321. BIT3             ---            
  322. BIT2~BIT0        WT2~WT0          (ISP/IAP操作等待的時間,晶振頻率越大,設置值越小)
  323. *************************************************************************/
  324. sfr P4         = 0xE8;//=P4口 (可位尋址)
  325. /************************************************************************
  326. BIT7             ---
  327. BIT6             ---
  328. BIT5             ---
  329. BIT4             ---
  330. BIT3             P4.3 INT2        (外部中斷2輸入端口)
  331. BIT2             P4.2 INT3        (外部中斷3輸入端口)
  332. BIT1             P4.1             (普通I/O口)
  333. BIT0             P4.0         (普通I/O口)
  334. *************************************************************************/
  335. // XICON
  336. sbit PX3       = XICON^7;
  337. sbit EX3       = XICON^6;
  338. sbit IE3       = XICON^5;
  339. sbit IT3       = XICON^4;
  340. sbit PX2       = XICON^3;
  341. sbit EX2       = XICON^2;
  342. sbit IE2       = XICON^1;
  343. sbit IT2       = XICON^0;
  344. // P4
  345. sbit P4_3      = P4^3;
  346. sbit P4_2      = P4^2;
  347. sbit P4_1      = P4^1;
  348. sbit P4_0      = P4^0;
  349. sbit INT3      = P4^2;
  350. sbit INT2      = P4^3;
  351. //以下僅STC89LE5X系列有效
  352. sfr P1_ADC_EN  = 0x97;//=P1作為AD轉換輸入口使能控制寄存器 (不可位尋址)
  353. /************************************************************************
  354. BIT7             ADC_P17          (P1.7作為AD輸入口使能控制位)
  355. BIT6             ADC_P16          (P1.6作為AD輸入口使能控制位)
  356. BIT5             ADC_P15          (P1.5作為AD輸入口使能控制位)
  357. BIT4             ADC_P14          (P1.4作為AD輸入口使能控制位)
  358. BIT3             ADC_P13          (P1.3作為AD輸入口使能控制位)
  359. BIT2             ADC_P12          (P1.2作為AD輸入口使能控制位)
  360. BIT1             ADC_P11          (P1.1作為AD輸入口使能控制位)
  361. BIT0             ADC_P10          (P1.0作為AD輸入口使能控制位)
  362. *************************************************************************/
  363. sfr ADC_CONTR  = 0xC5;//8位AD轉換控制及標志寄存器 (不可位尋址)
  364. /************************************************************************
  365. BIT7             ---
  366. BIT6             ---
  367. BIT5             ---
  368. BIT4             ADC_FLAG         (模數轉換啟動控制位,設置為1開始轉換)
  369. BIT3             ADC_START        (模數轉換結束標志位,轉換完成后,該位置1)
  370. BIT2~BIT0        CHS2~CHS0        (選擇P2哪個端口輸入進行AD轉換)
  371. *************************************************************************/
  372. sfr ADC_DATA   = 0xC6;//8位AD轉換結果寄存器 (不可位尋址)
  373. #endif

復制代碼

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 五月精品视频 | 99成人| 欧美精品在线免费观看 | 成人做爰www免费看 午夜精品久久久久久久久久久久 | 日本男人天堂 | 五月婷婷在线播放 | 亚洲精品二区 | 在线一区 | 欧美日韩在线看 | 一区二区三区四区视频 | 亚洲精品久久久久中文字幕欢迎你 | 久久久久久国产精品 | 先锋资源亚洲 | 久久精品16| 黄网站色大毛片 | 久久精品网 | 欧美一区二区三区一在线观看 | 不卡一区二区三区四区 | 视频三区 | 在线黄av | 91五月天 | 亚洲欧美一区二区三区1000 | 欧美激情精品久久久久久变态 | 欧美一级淫片免费视频黄 | 在线一区二区三区 | 成人激情视频 | 噜噜噜噜狠狠狠7777视频 | 午夜小电影| 欧美在线色 | 91精品综合久久久久久五月天 | 国产欧美精品一区二区色综合朱莉 | av毛片 | 成人精品啪啪欧美成 | 天天操天天射天天舔 | 99re在线视频 | 一区二区免费在线观看 | 久久精品91久久久久久再现 | 国产精品成人一区二区三区吃奶 | 成人国产精品久久久 | 国产精品99久久久久久宅男 | 欧美日韩中文字幕 |