|
大家大學學mcs51的時候用的都是keil編譯器,但keil終歸是一款收費軟件,
就像微軟一樣,他喜歡睜一只眼睛閉一只眼睛看著盜版,當你用習慣了,
他冒出來給你個收費,你不得不給。
我不是自由和開源軟件的狂熱分子,但我還是對微軟嫉惡如仇,如果要談
什么版權,那你在用紙的時候是否有給蔡倫點錢,版權歸他所有。這些
東西本身就是人類世世代代的努力,這些智慧不應該成為某人或者某公司
的賺錢工具。
- /*-------------------------------------------------------------------------
- IAP15L2K61S2.h: Register Declarations for the stc15 Processor
-
- Copyright (C) 2014, liu xiang / bela.camel.back@163.com
- -------------------------------------------------------------------------*/
- #ifndef __STC15F2K60S2_H_
- #define __STC15F2K60S2_H_
-
- /* BYTE Register */
- __sfr __at (0x80) P0 ;
- __sfr __at (0x81) SP ;
- __sfr __at (0x82) DPL ;
- __sfr __at (0x83) DPH ;
- __sfr __at (0x87) PCON ;
- __sfr __at (0x88) TCON ;
- __sfr __at (0x89) TMOD ;
- __sfr __at (0x8A) TL0 ;
- __sfr __at (0x8B) TL1 ;
- __sfr __at (0x8C) TH0 ;
- __sfr __at (0x8D) TH1 ;
- __sfr __at (0x90) P1 ;
- __sfr __at (0x98) SCON ;
- __sfr __at (0x99) SBUF ;
- __sfr __at (0x9A) S2CON ;
- __sfr __at (0x9B) S2BUF ;
- __sfr __at (0xAC) S3CON ;
- __sfr __at (0xAD) S3BUF ;
- __sfr __at (0x84) S4CON ;
- __sfr __at (0x85) S4BUF ;
- __sfr __at (0xA9) SADDR ;
- __sfr __at (0xB9) SADEN ;
- __sfr __at (0xA0) P2 ;
- __sfr __at (0xA8) IE ;
- __sfr __at (0xB0) P3 ;
- __sfr __at (0xB8) IP ;
- __sfr __at (0xC0) P4 ;
- __sfr __at (0xC8) P4 ;
- __sfr __at (0xD0) PSW ;
- __sfr __at (0xD1) T4T3M ;
- __sfr __at (0xD2) T3T4M ;
- __sfr __at (0xD3) T4H ;
- __sfr __at (0xD4) T4L ;
- __sfr __at (0xD5) T3H ;
- __sfr __at (0xD6) T3L ;
- __sfr __at (0xD7) T2H ;
- __sfr __at (0xD8) T2L ;
- __sfr __at (0xE0) ACC ;
- __sfr __at (0xF0) B
-
- __sfr __at (0x8E) AUXR ;
- __sfr __at (0xA2) AUXR1 ;
- __sfr __at (0xA2) P_SW1 ;
- __sfr __at (0x97) CLK_DIV ;
- __sfr __at (0xA1) BUS_SPEED ;
- __sfr __at (0x9D) P1ASF ;
- __sfr __at (0xBA) P_SW2 ;
-
- //中斷特殊功能寄存器
- __sfr __at (0xAF)IE2 ;
- __sfr __at (0xB5) IP2 ;
- __sfr __at (0x8F) INT_CLKO ;
-
-
- //定時器特殊功能寄存器
- __sfr __at (0xAA) WKTCL ;
- __sfr __at (0xAB) WKTCH ;
- __sfr __at (0xC1) WDT_CONTR ;
-
- //ADC 特殊功能寄存器
- __sfr __at (0xBC) ADC_CONTR ;
- __sfr __at (0xBD) ADC_RES ;
- __sfr __at (0xBE) ADC_RESL ;
-
- //SPI 特殊功能寄存器
- __sfr __at (0xCD) SPSTAT ;
- __sfr __at (0xCE) SPCTL ;
- __sfr __at (0xCF) SPDAT ;
-
- //IAP/ISP 特殊功能寄存器
- __sfr __at (0xC2) IAP_DATA ;
- __sfr __at (0xC3) IAP_ADDRH ;
- __sfr __at (0xC4) IAP_ADDRL ;
- __sfr __at (0xC5) IAP_CMD ;
- __sfr __at (0xC6) IAP_TRIG ;
- __sfr __at (0xC7) IAP_CONTR ;
-
- //PCA/PWM 特殊功能寄存器
- __sfr __at (0xD8) CCON;
- __sbit __at (0xDF) CFv;
- __sbit __at (0xDE) CR ;
- __sbit __at (0xDA) CCF2 ;
- __sbit __at (0xD9) CCF1 ;
- __sbit __at (0xD8) CCF0 ;
- __sfr __at (0xD9) CMOD ;
- __sfr __at (0xE9) CL ;
- __sfr __at (0xF9) CH ;
- __sfr __at (0xDA) CCAPM0 ;
- __sfr __at (0xDB) CCAPM1 ;
- __sfr __at (0xDC) CCAPM2 ;
- __sfr __at (0xEA) CCAP0L ;
- __sfr __at (0xEB) CCAP1L ;
- __sfr __at (0xEC) CCAP2L ;
- __sfr __at (0xF2) PCA_PWM0 ;
- __sfr __at (0xF3) PCA_PWM1 ;
- __sfr __at (0xF4) PCA_PWM2 ;
- __sfr __at (0xFA) CCAP0H ;
- __sfr __at (0xFB) CCAP1H ;
- __sfr __at (0xFC) CCAP2H ;
-
- /* BIT Register */
- /* P0 */
- __sbit __at (0x80) P0_0 ;
- __sbit __at (0x81) P0_1 ;
- __sbit __at (0x82) P0_2 ;
- __sbit __at (0x83) P0_3 ;
- __sbit __at (0x84) P0_4 ;
- __sbit __at (0x85) P0_5 ;
- __sbit __at (0x86) P0_6 ;
- __sbit __at (0x87) P0_7 ;
-
- /* TCON */
- __sbit __at (0x88) IT0 ;
- __sbit __at (0x89) IE0 ;
- __sbit __at (0x8A) IT1 ;
- __sbit __at (0x8B) IE1 ;
- __sbit __at (0x8C) TR0 ;
- __sbit __at (0x8D) TF0 ;
- __sbit __at (0x8E) TR1 ;
- __sbit __at (0x8F) TF1 ;
-
- /* P1 */
- __sbit __at (0x90) P1_0 ;
- __sbit __at (0x91) P1_1 ;
- __sbit __at (0x92) P1_2 ;
- __sbit __at (0x93) P1_3 ;
- __sbit __at (0x94) P1_4 ;
- __sbit __at (0x95) P1_5 ;
- __sbit __at (0x96) P1_6 ;
- __sbit __at (0x97) P1_7 ;
-
- /* SCON */
- __sbit __at (0x98) RI ;
- __sbit __at (0x99) TI ;
- __sbit __at (0x9A) RB8 ;
- __sbit __at (0x9B) TB8 ;
- __sbit __at (0x9C) REN ;
- __sbit __at (0x9D) SM2 ;
- __sbit __at (0x9E) SM1 ;
- __sbit __at (0x9F) SM0 ;
-
- /* P2 */
- __sbit __at (0xA0) P2_0 ;
- __sbit __at (0xA1) P2_1 ;
- __sbit __at (0xA2) P2_2 ;
- __sbit __at (0xA3) P2_3 ;
- __sbit __at (0xA4) P2_4 ;
- __sbit __at (0xA5) P2_5 ;
- __sbit __at (0xA6) P2_6 ;
- __sbit __at (0xA7) P2_7 ;
-
- /* IE */
- __sbit __at (0xA8) EX0 ;
- __sbit __at (0xA9) ET0 ;
- __sbit __at (0xAA) EX1 ;
- __sbit __at (0xAB) ET1 ;
- __sbit __at (0xAC) ES ;
- __sbit __at (0xAF) EA ;
-
- /* P3 */
- __sbit __at (0xB0) P3_0 ;
- __sbit __at (0xB1) P3_1 ;
- __sbit __at (0xB2) P3_2 ;
- __sbit __at (0xB3) P3_3 ;
- __sbit __at (0xB4) P3_4 ;
- __sbit __at (0xB5) P3_5 ;
- __sbit __at (0xB6) P3_6 ;
- __sbit __at (0xB7) P3_7 ;
- __sbit __at (0xB0) RXD ;
- __sbit __at (0xB1) TXD ;
- __sbit __at (0xB2) INT0 ;
- __sbit __at (0xB3) INT1 ;
- __sbit __at (0xB4) T0 ;
- __sbit __at (0xB5) T1 ;
- __sbit __at (0xB6) WR ;
- __sbit __at (0xB7) RD ;
- /* P4 */
- __sbit __at (0xC0) P4_0 ;
- __sbit __at (0xC1) P4_1 ;
- __sbit __at (0xC2) P4_2 ;
- __sbit __at (0xC3) P4_3 ;
- __sbit __at (0xC4) P4_4 ;
- __sbit __at (0xC5) P4_5 ;
- __sbit __at (0xC6) P4_6 ;
- __sbit __at (0xC7) P4_7 ;
- /* P5 */
- __sbit __at (0xC8) P5_0 ;
- __sbit __at (0xC9) P5_1 ;
- __sbit __at (0xCA) P5_2 ;
- __sbit __at (0xCB) P5_3 ;
- __sbit __at (0xCC) P5_4 ;
- __sbit __at (0xCD) P5_5 ;
- __sbit __at (0xCE) P5_6 ;
- __sbit __at (0xCF) P5_7 ;
- /* P5 */
- __sbit __at (0xB0) P5_0 ;
- __sbit __at (0xB1) P5_1 ;
- __sbit __at (0xB2) P5_2 ;
- __sbit __at (0xB3) P5_3 ;
- __sbit __at (0xB4) P5_4 ;
- __sbit __at (0xB5) P5_5 ;
- __sbit __at (0xB6) P5_6 ;
- __sbit __at (0xB7) P5_7 ;
-
- /* P6 */
- __sbit __at (0xE8) P6_0 ;
- __sbit __at (0xE9) P6_1 ;
- __sbit __at (0xEA) P6_2 ;
- __sbit __at (0xEB) P6_3 ;
- __sbit __at (0xEC) P6_4 ;
- __sbit __at (0xED) P6_5 ;
- __sbit __at (0xEE) P6_6 ;
- __sbit __at (0xEF) P6_7 ;
- /* P7 */
- __sbit __at (0xF8) P7_0 ;
- __sbit __at (0xF9) P7_1 ;
- __sbit __at (0xFA) P7_2 ;
- __sbit __at (0xFB) P7_3 ;
- __sbit __at (0xFC) P7_4 ;
- __sbit __at (0xFD) P7_5 ;
- __sbit __at (0xFE) P7_6 ;
- __sbit __at (0xFF) P7_7 ;
- __sfr __at (0x94) P0M0 ;
- __sfr __at (0x93) P0M1 ;
- __sfr __at (0x92) P1M0 ;
- __sfr __at (0x91) P1M1 ;
- __sfr __at (0x96) P2M0 ;
- __sfr __at (0x95) P2M1 ;
- __sfr __at (0xB2) P3M0 ;
- __sfr __at (0xB4) P4M1 ;
- __sfr __at (0xCA) P5M0 ;
- __sfr __at (0xC9) P5M0 ;
- __sfr __at (0xCC) P6M0 ;
- __sfr __at (0xCB) P6M0 ;
- __sfr __at (0xE2) P7M0 ;
- __sfr __at (0xE1) P7M0 ;
- /* IP */
- __sbit __at (0xB8) PX0 ;
- __sbit __at (0xB9) PT0 ;
- __sbit __at (0xBA) PX1 ;
- __sbit __at (0xBB) PT1 ;
- __sbit __at (0xBC) PS ;
- __sbit __at (0xBD) PADC ;
- __sbit __at (0xBE) PLVD ;
- __sbit __at (0xBF) PPCA ;
- /* PSW */
- __sbit __at (0xD0) P ;
- __sbit __at (0xD1) F1 ;
- __sbit __at (0xD2) OV ;
- __sbit __at (0xD3) RS0 ;
- __sbit __at (0xD4) RS1 ;
- __sbit __at (0xD5) F0 ;
- __sbit __at (0xD6) AC ;
- __sbit __at (0xD7) CY ;
-
- /* BIT definitions for bits that are not directly accessible */
- /* PCON bits */
- #define SMOD 0x80 //串口波特率倍速位,置1可使波特率快1倍
- #define SMOD0 0x40 //FE/SM0選擇位,0:SCON.7為SM0 1:SCON.7為FE
- #define LVDF 0x20 //低壓檢測中斷請求位,由硬件置1,需由軟件清0
- #define POF 0x10 //上電復位標志位,上電時由硬件置1,需由軟件清0
- #define GF1 0x08 //通用標志位1
- #define GF0 0x04 //通用標志位0
- #define PD 0x02 //掉電控制位,寫1可以使MCU進入PowerDown模式
- #define IDL 0x01 //空閑控制位,寫1可以使MCU進入Idle模式
-
- /* TMOD bits */
- #define T0_M0 0x01
- #define T0_M1 0x02
- #define T0_CT 0x04
- #define T0_GATE 0x08
- #define T1_M0 0x10
- #define T1_M1 0x20
- #define T1_CT 0x40
- #define T1_GATE 0x80
-
- #define T0_MASK 0x0F
- #define T1_MASK 0xF0
- /* T2CON */
- __sfr __at (0xC8) T2CON ;
-
- /* RCAP2 L & H */
- __sfr __at (0xCA) RCAP2L ;
- __sfr __at (0xCB) RCAP2H ;
- __sfr __at (0xCC) TL2 ;
- __sfr __at (0xCD) TH2 ;
-
- /* IE */
- __sbit __at (0xAD) ET2 ; /* Enable timer2 interrupt */
-
- /* IP */
- __sbit __at (0xBD) PT2 ; /* T2 interrupt priority bit */
-
- /* T2CON bits */
- __sbit __at (0xC8) T2CON_0 ;
- __sbit __at (0xC9) T2CON_1 ;
- __sbit __at (0xCA) T2CON_2 ;
- __sbit __at (0xCB) T2CON_3 ;
- __sbit __at (0xCC) T2CON_4 ;
- __sbit __at (0xCD) T2CON_5 ;
- __sbit __at (0xCE) T2CON_6 ;
- __sbit __at (0xCF) T2CON_7 ;
-
- __sbit __at (0xC8) CP_RL2 ;
- __sbit __at (0xC9) C_T2 ;
- __sbit __at (0xCA) TR2 ;
- __sbit __at (0xCB) EXEN2 ;
- __sbit __at (0xCC) TCLK ;
- __sbit __at (0xCD) RCLK ;
- __sbit __at (0xCE) EXF2 ;
- __sbit __at (0xCF) TF2 ;
-
-
- /* Interrupt numbers: address = (number * 8) + 3 */
- #define X0_INTNO 0 //外部中斷0中斷號,入口地址為0003H
- #define T0_INTNO 1 //定時器0中斷號,入口地址為000BH
- #define X1_INTNO 2 //外部中斷1中斷號,入口地址為0013H
- #define T1_INTNO 3 //定時器1中斷號,入口地址為001BH
- #define UART_INTNO 4 //串口中斷號,入口地址為0023H
- #define LVD_INTNO 6 //LVD中斷號,入口地址為0033H
- #define UART2_INTNO 8 //串口中斷號,入口地址為0023H
- #endif
復制代碼
|
|