📄 stc89c54rd.h
字号:
/* ............................................................................................ */
sfr P3 = 0xb0; /* 通用I/O口;第二功能.复位值:11111111b */
sbit P3_7 = P3^7; /* RD,读外部RAM */
sbit P3_6 = P3^6; /* WR,写外部RAM */
sbit P3_5 = P3^5; /* T1,定时器/计数器1外部输入 */
sbit P3_4 = P3^4; /* T0,定时器/计数器0外部输入 */
sbit P3_3 = P3^3; /* INT1,外部中断1输入 */
sbit P3_2 = P3^2; /* INT0,外部中断0输入 */
sbit P3_1 = P3^1; /* TxD,串口0输出 */
sbit P3_0 = P3^0; /* RxD,串口0输入 */
/* ............................................................................................ */
sfr IPH = 0xb7; /* 中断优先级.复位值:x0000000b */
#define IPH_REV7 0x80 /* 保留 */
#define PPCH 0x40 /* 保留 */
#define PT2H 0x20 /* TIME2优先级高位 */
#define PSHH 0x10 /* 串口优先级高位 */
#define PT1H 0x08 /* time1优先级高位 */
#define PX1H 0x04 /* 外部中断1优先级高位 */
#define PT0H 0x02 /* time0优先级高位 */
#define PX0H 0x01 /* 外部中断0优先级高位 */
/* ............................................................................................ */
sfr IP = 0xb8; /* 中断优先级寄存器.复位值:x0000000b */
sbit IP_REV7 = IP^7; /* 保留 */
sbit PPC = IP^6; /* 保留 */
sbit PT2 = IP^5; /* TIME2优先级低位 */
sbit PS = IP^4; /* 串口优先级低位 */
sbit PT1 = IP^3; /* time1优先级低位 */
sbit PX1 = IP^2; /* 外部中断1优先级低位 */
sbit PT0 = IP^1; /* time0优先级低位 */
sbit PX0 = IP^0; /* 外部中断0优先级低位 */
/* ............................................................................................ */
sfr SADEN = 0xb9; /* 串口0的自动地址识别屏蔽字节.复位值:00000000b */
/* ............................................................................................ */
sfr XICON = 0xc0; /* 通用I/O口.复位值:11111111b */
/* ............................................................................................ */
sfr T2CON = 0xc8; /* 复位值:00000000b */
sbit TF2 = T2CON^7;/* timer2溢出标志位.RCLK,TCLK为零时,溢出时硬件置位 */
sbit EXF2 = T2CON^6;/* timer2的外部标志. 如果EXEN2为1,一个负信号在P1.1,或timer2溢出时置位,
必须软件清零.在计数模式不会引起中断 */
sbit RCLK = T2CON^5;/* 接收时钟标志. 1:作为串口波特率产生器; 0:timer1作为串口0波特率产生器 */
sbit TCLK = T2CON^4;/* 发送时钟标志. 1:作为串口波特率产生器; 0:timer1作为串口0波特率产生器 */
sbit EXEN2 = T2CON^3;/* timer2外部使能. 1:捕捉/重载;
0:定时器模式,忽略引脚T2EX上发生的事件 */
sbit TR2 = T2CON^2;/* timer2运行控制. 1:timer2正常运行; 0:timer2停止运行,但保留计数值 */
sbit CT2 = T2CON^1;/* 计数器/定时器选择. 1:计数P1.0的脉冲; 0:作为一个定时器 */
sbit CPRL2 = T2CON^0;/* 捕捉/重载选择. 1:P1.1下降沿产生一个捕捉(EXEN2=1);
0:timer2溢出或P1.1产生一个下降沿就会重载(EXEN2=1). */
/* ............................................................................................ */
sfr T2MOD = 0xc9; /* timer2模式控制寄存器.复位值:00000000b */
#define T2MOD_REV7 0x80 /* 保留 */
#define T2MOD_REV6 0x40 /* 保留 */
#define T2MOD_REV5 0x20 /* 保留 */
#define T2MOD_REV4 0x10 /* 保留 */
#define T2MOD_REV3 0x08 /* 保留 */
#define T2MOD_REV2 0x04 /* 保留 */
#define T2OE 0x02 /* 1:使能timer2时钟输出; 0:禁止timer2时钟输出 */
#define DCEN 0x01 /* 向下计数使能. 1:16位自动装载计数器的方向 */
/* ............................................................................................ */
sfr RCAP2L = 0xca; /* 在捕捉模式下用于捕捉TL2的值;在重载模式下为16位重载值的低8位.复位值:00000000b */
sfr RCAP2H = 0xcb; /* 在捕捉模式下用于捕捉TH2的值;在重载模式下为16位重载值的高8位.复位值:00000000b */
/* ............................................................................................ */
sfr TL2 = 0xcc; /* timer2 低8位.复位值:00000000b */
sfr TH2 = 0xcd; /* timer2 高8位.复位值:00000000b */
/* ............................................................................................ */
sfr PSW = 0xd0; /* 程序状态字.复位值:00000000b */
sbit CY = PSW^7; /* 进位标志 */
sbit AC = PSW^6; /* 辅助进位标志 */
sbit F0 = PSW^5; /* 用户标志0 */
sbit RS1 = PSW^4; /* 00:寄存器0组; 01:寄存器1组 */
sbit RS0 = PSW^3; /* 10:寄存器2组; 11:寄存器3组 */
sbit OV = PSW^2; /* 溢出标志 */
sbit F1 = PSW^1; /* 用户标志1 */
sbit P = PSW^0; /* 奇偶标志位 */
/* ............................................................................................ */
sfr ACC = 0xe0; /* 累加器A.复位值:00000000b */
sbit ACC_7 = ACC^7;
sbit ACC_6 = ACC^6;
sbit ACC_5 = ACC^5;
sbit ACC_4 = ACC^4;
sbit ACC_3 = ACC^3;
sbit ACC_2 = ACC^2;
sbit ACC_1 = ACC^1;
sbit ACC_0 = ACC^0;
/* ............................................................................................ */
sfr WDTCONTR = 0xe1; /* 看门狗控制.复位值:xx000000b */
#define WDTCONTR_REV7 0x80 /* 保留 */
#define WDTCONTR_REV6 0x40 /* 保留 */
#define EN_WDT 0x20 /* 看门狗允许 */
#define CLR_WDT 0x10 /* 复位看门狗 */
#define IDLE_WDT 0x08 /* IDLE时看门狗使能 */
#define PS2 0x04 /* 看门狗定时 */
#define PS1 0x02 /* */
#define PS0 0x01 /* */
/* ............................................................................................ */
sfr ISP_DATA = 0xe2; /* 数据寄存器 */
/* ............................................................................................ */
sfr ISP_ADDRH = 0xe3; /* 地址寄存器高8位 */
/* ............................................................................................ */
sfr ISP_ADDRL = 0xe4; /* 地址寄存器低8位 */
/* ............................................................................................ */
sfr ISP_CMD = 0xe5; /* 命令寄存器 01 读flash
02 写flash
03 擦除flash */
sfr ISP_TRIG = 0xe6; /* 命令触发寄存器 */
/* ............................................................................................ */
sfr IS_CONTR = 0xe7; /* 控制寄存器 */
#define ISPEN 0x80 /* 0:禁止编程flash 1:允许编程flash */
#define SWBS 0x40 /* 0:从用户程序区启动 1:从ISP程序区启动 */
#define SWRST 0x20 /* 0:不操作 1:软件复位时硬件自动清零 */
#define IS_CONTR4 0x10 /* 保留 */
#define IS_CONTR3 0x08 /* 保留 */
#define WT2 0x04 /* CPU等待时间 000:40M 001:20M 010:10M 011:5M */
#define WT1 0x02 /* */
#define WT0 0x01 /* */
/* ............................................................................................ */
sfr P4 = 0xe8; /* P4端口 */
sbit P4_0 = P4^0;
sbit P4_1 = P4^1;
sbit P4_2 = P4^2;
sbit P4_3 = P4^3;
/* ............................................................................................ */
sfr BCC = 0xf0; /* 累加器B.复位值:00000000b */
sbit BCC_7 = BCC^7;
sbit BCC_6 = BCC^6;
sbit BCC_5 = BCC^5;
sbit BCC_4 = BCC^4;
sbit BCC_3 = BCC^3;
sbit BCC_2 = BCC^2;
sbit BCC_1 = BCC^1;
sbit BCC_0 = BCC^0;
#endif
/**********************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -