📄 89c51.h
字号:
sbit SM1 = SCON^6;
sbit SM2 = SCON^5;
sbit REN = SCON^4;
sbit TB8 = SCON^3;
sbit RB8 = SCON^2;
sbit TI = SCON^1;
sbit RI = SCON^0;
// IE
sbit EA = IE^7;
sbit ET2 = IE^5;
sbit ES = IE^4;
sbit ET1 = IE^3;
sbit EX1 = IE^2;
sbit ET0 = IE^1;
sbit EX0 = IE^0;
// IP
sbit PT2 = IP^5;
sbit PS = IP^4;
sbit PT1 = IP^3;
sbit PX1 = IP^2;
sbit PT0 = IP^1;
sbit PX0 = IP^0;
// TCON
sbit TF1 = TCON^7;
sbit TR1 = TCON^6;
sbit TF0 = TCON^5;
sbit TR0 = TCON^4;
sbit IE1 = TCON^3;
sbit IT1 = TCON^2;
sbit IE0 = TCON^1;
sbit IT0 = TCON^0;
// T2CON
sbit TF2 = T2CON^7;
sbit EXF2 = T2CON^6;
sbit RCLK = T2CON^5;
sbit TCLK = T2CON^4;
sbit EXEN2 = T2CON^3;
sbit TR2 = T2CON^2;
sbit C_T2 = T2CON^1;
sbit CP_RL2 = T2CON^0;
//以下仅STC89C5X系列有效
sfr AUXR = 0x8E;//扩展RAM管理及禁止ALE输出控制寄存器 (不可位寻址)
/************************************************************************
BIT7 --- 0
BIT6 --- 0
BIT5 --- 0
BIT4 --- 0
BIT3 --- 0
BIT2 --- 0
BIT1 EXTRAM (为0时允许使用内部扩展的RAM,为1时使用同普通 51 MCU)
BIT0 ALEOFF (为0时允许ALE一直输出固定的频率信号,
为1时仅在对外存储器有操作时输出ALE控制信号)
*************************************************************************/
sfr AUXR1 = 0xA2;//双数据指针控制寄存器 (不可位寻址)
/************************************************************************
BIT7 --- 0
BIT6 --- 0
BIT5 --- 0
BIT4 --- 0
BIT3 GF2 (通用功能用户自定义位)
BIT2 --- 0
BIT1 --- 0
BIT0 DPS (为0时使用DPTR0,为1时使用DPTR1)
*************************************************************************/
sfr IPH = 0xB7;//中断优先级控制寄存器高位(同IP配合组成4个中断优先级,不可位寻址)
/************************************************************************
BIT7 PX3H (外部中断3中断设置优先级高位)
BIT6 PX2H (外部中断2中断设置优先级高位)
BIT5 PT2H (定时计数器2中断设置优先级高位)
BIT4 PSH (串口中断设置优先级高位)
BIT3 PT1H (定时计数器1中断设置优先级高位)
BIT2 PX1H (外部中断1中断设置优先级高位)
BIT1 PT0H (定时计数器0中断设置优先级高位)
BIT0 PX0H (外部中断0中断设置优先级高位)
中断 代号 优先级0 优先级1 优先级2 优先级3 说明
INTn PXnH,PXn 0,0 0,1 1,0 1,1 第n个外部中断
Timer PTnH,PTn 0,0 0,1 1,0 1,1 第n个定时器中断
USART PSH,PS 0,0 0,1 1,0 1,1 串口中断
*************************************************************************/
sfr XICON = 0xC0;//扩展外部中断控制及标志寄存器 (可位寻址)
/************************************************************************
BIT7 PX3 (外部中断3优先级设置低位)
BIT6 EX3 (外部中断3中断使能控制位,1有效)
BIT5 IE3 (外部中断3中断标志位,1有效)
BIT4 IT3 (外部中断3引起中断的方式: 0为低电平触发,1为下降沿触发)
BIT3 PX2 (外部中断2优先级设置低位)
BIT2 EX2 (外部中断2中断使能控制位,1有效)
BIT1 IE2 (外部中断2中断标志位,1有效)
BIT0 IT2 (外部中断2引起中断的方式: 0为低电平触发,1为下降沿触发)
*************************************************************************/
sfr WDT_CONTR = 0xE1;//看门狗定时器控制寄存器 (不可位寻址)
/************************************************************************
BIT7 ---
BIT6 ---
BIT5 EN_WDT (看门狗启动控制位,1有效)
BIT4 CLR_WDT (看门狗清零控制位,设置为1看门狗将重新计数,该位硬件自动清0)
BIT3 IDLE_WDT (看门狗工作方式选择位: 1时看门狗在"空闲模式"下计数
0时看门狗在"空闲模式"下不计数)
BIT2~BIT0 PS2~PS0 (看门狗定时器分频模式:
0时为2分频,1时为4分频,2时为8分频,3时为16分频
4时为32分频,5时为64分频,6时为128分频,7时为256分频)
//PS:看门狗的溢出时间公式 WDT_T(S) = (N*分频值*32768)/晶振频率(Hz) (其中当在12 Clock 模式
N = 12, 在6 Clock 模式
N = 6)
*************************************************************************/
sfr ISP_DATA = 0xE2;//=ISP/IAP操作时使用的数据寄存器 (不可位寻址)
sfr ISP_ADDRH = 0xE3;//=ISP/IAP操作时使用的地址寄存器高字节 (不可位寻址)
sfr ISP_ADDRL = 0xE4;//=ISP/IAP操作时使用的地址寄存器低字节 (不可位寻址)
sfr ISP_CMD = 0xE5;//=ISP/IAP操作时命令模式寄存器,需设置后ISP/IAP操作才有效 (不可位寻址)
/************************************************************************
BIT7 ---
BIT6 ---
BIT5 ---
BIT4 ---
BIT3 ---
BIT2~BIT0 B2~B0 (为0时 待机模式,无ISP操作
为1时 对用户程序Flash区或数据Flash区读
为2时 对用户程序Flash区或数据Flash区编程
为3时 对用户程序Flash区或数据Flash区擦除)
*************************************************************************/
sfr ISP_TRIG = 0xE6;//=ISP/IAP操作时的命令触发寄存器 (不可位寻址)
/************************************************************************
在ISPEN(ISP_CONTR.7) = 1时,对ISP_TRIG先写入0x46,再写入0xB9,ISP/IAP命令才能生效
*************************************************************************/
sfr ISP_CONTR = 0xE7;//=ISP/IAP控制寄存器 (不可位寻址)
/************************************************************************
BIT7 ISPEN (ISP/IAP功能允许位,1有效)
BIT6 SWBS (软件选择从用户主程序区启动(0),还是从ISP程序区启动(1))
BIT5 SWRST (为0时不操作,为1时产生软件复位,硬件自动清0)
BIT4 ---
BIT3 ---
BIT2~BIT0 WT2~WT0 (ISP/IAP操作等待的时间,晶振频率越大,设置值越小)
*************************************************************************/
sfr P4 = 0xE8;//=P4口 (可位寻址)
/************************************************************************
BIT7 ---
BIT6 ---
BIT5 ---
BIT4 ---
BIT3 P4.3 INT2 (外部中断2输入端口)
BIT2 P4.2 INT3 (外部中断3输入端口)
BIT1 P4.1 (普通I/O口)
BIT0 P4.0 (普通I/O口)
*************************************************************************/
// XICON
sbit PX3 = XICON^7;
sbit EX3 = XICON^6;
sbit IE3 = XICON^5;
sbit IT3 = XICON^4;
sbit PX2 = XICON^3;
sbit EX2 = XICON^2;
sbit IE2 = XICON^1;
sbit IT2 = XICON^0;
// P4
sbit P4_3 = P4^3;
sbit P4_2 = P4^2;
sbit P4_1 = P4^1;
sbit P4_0 = P4^0;
sbit INT3 = P4^2;
sbit INT2 = P4^3;
//以下仅STC89LE5X系列有效
sfr P1_ADC_EN = 0x97;//=P1作为AD转换输入口使能控制寄存器 (不可位寻址)
/************************************************************************
BIT7 ADC_P17 (P1.7作为AD输入口使能控制位)
BIT6 ADC_P16 (P1.6作为AD输入口使能控制位)
BIT5 ADC_P15 (P1.5作为AD输入口使能控制位)
BIT4 ADC_P14 (P1.4作为AD输入口使能控制位)
BIT3 ADC_P13 (P1.3作为AD输入口使能控制位)
BIT2 ADC_P12 (P1.2作为AD输入口使能控制位)
BIT1 ADC_P11 (P1.1作为AD输入口使能控制位)
BIT0 ADC_P10 (P1.0作为AD输入口使能控制位)
*************************************************************************/
sfr ADC_CONTR = 0xC5;//8位AD转换控制及标志寄存器 (不可位寻址)
/************************************************************************
BIT7 ---
BIT6 ---
BIT5 ---
BIT4 ADC_FLAG (模数转换启动控制位,设置为1开始转换)
BIT3 ADC_START (模数转换结束标志位,转换完成后,该位置1)
BIT2~BIT0 CHS2~CHS0 (选择P2哪个端口输入进行AD转换)
*************************************************************************/
sfr ADC_DATA = 0xC6;//8位AD转换结果寄存器 (不可位寻址)
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -