单片机stc89STC89C52C51系列头文件doc.docx
《单片机stc89STC89C52C51系列头文件doc.docx》由会员分享,可在线阅读,更多相关《单片机stc89STC89C52C51系列头文件doc.docx(15页珍藏版)》请在冰点文库上搜索。
单片机stc89STC89C52C51系列头文件doc
/*------------------------------------------------*/
/*---宏晶科技STCMCU---------------------------*/
/*---Mobile:
(86)-------------------*/
/*---Fax:
86-----------------------*/
/*---Tel:
86-----------------------*/
/*---Web:
-----------------------*/
/*适用于:
STC89C5xRCSTC89LE5xRC--------------*/
/*-------STC89C5xRD+STC89LE5xRD+--------------*/
/*------------------------------------------------*/
#ifndef__STC89_H__
#define__STC89_H__
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sfrPSW=0xd0;//程序状态字Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
//位描述CYACF0RS1RS0OVF1P
//初始值=0000,000000000000
sbitCY=PSW^7;//进位标志
sbitAC=PSW^6;//辅助进位标志
sbitF0=PSW^5;//用户标志
sbitRS1=PSW^4;//寄存器组选择位
sbitRS0=PSW^3;//寄存器组选择位
sbitOV=PSW^2;//溢出标志
sbitP=PSW^0;//ACC的偶校验位
/////////////////////////////////
sfrACC=0xe0;//累加器Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
//初始值=0000,000000000000
sbitACC7=ACC^7;//累加器第位
sbitACC6=ACC^6;//累加器第位
sbitACC5=ACC^5;//累加器第位
sbitACC4=ACC^4;//累加器第位
sbitACC3=ACC^3;//累加器第位
sbitACC2=ACC^2;//累加器第位
sbitACC1=ACC^1;//累加器第位
sbitACC0=ACC^0;//累加器第位
/////////////////////////////////
sfrB=0xf0;//B寄存器Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
//初始值=0000,000000000000
/////////////////////////////////
sfrSP=0x81;//堆栈指针Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
//初始值=0000,011100000111
/////////////////////////////////
sfrDPL=0x82;//数据指针低字节Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
//初始值=0000,000000000000
sfrDPH=0x83;//数据指针高字节Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
//初始值=0000,000000000000
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sfrPCON=0x87;//电源控制寄存器Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
//位描述SMODSMOD0-POFGF1GF0PDIDL
//初始值=00x1,000000x10000
#defineSMOD0x80//串口波特率倍速位,置可使波特率快倍
#defineSMOD00x40//FE/SM0选择位,0:
为SM01:
为FE
#definePOF0x10//上电复位标志位,上电时由硬件置,需由软件清
#defineGF10x08//通用标志位
#defineGF00x04//通用标志位
#definePD0x02//掉电控制位,写可以使MCU进入PowerDown模式
#defineIDL0x01//空闲控制位,写可以使MCU进入Idle模式
/////////////////////////////////
sfrWDT_CONTR=0xe1;//看门狗定时器控制器Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
//位描述--EN_WDTCLR_WDTIDL_WDTPS2PS1PS0
//初始值=xx00,0000xx000000
#defineEN_WDT0x20//软件使能看门狗,打开后不能用软件的方式关闭
#defineCLR_WDT0x10//清看门狗定时器
#defineIDLE_WDT0x08//IDLE模式下,看门狗定时器是否继续计时
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sfrAUXR=0x8e;//辅助寄存器Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
//位描述------EXTRAMS1BRS
//初始值=xxxx,xx00xxxxxx00
#defineEXTRAM0x02//内部扩展RAM禁能位,0:
内部扩展RAM有效1:
禁用内部扩展RAM
#defineALEOFF0x01//禁止ALE信号输出,0:
使能ALE信号输出1:
关闭ALE信号输出
/////////////////////////////////
sfrAUXR1=0xa2;//辅助寄存器Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
//位描述----GF2--DPS
//初始值=xxxx,0xx0xxxx0xx0
#defineGF20x08//通用标志位
#defineDPS0x01//DPTR0/DPTR1选择位,0:
DPTR01:
DPTR1
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sfrP0=0x80;//I/O端口Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
//位描述
//初始值=1111,111111111111
sbitP07=P0^7;//I/O口
sbitP06=P0^6;//I/O口
sbitP05=P0^5;//I/O口
sbitP04=P0^4;//I/O口
sbitP03=P0^3;//I/O口
sbitP02=P0^2;//I/O口
sbitP01=P0^1;//I/O口
sbitP00=P0^0;//I/O口
/////////////////////////////////
sfrP1=0x90;//I/O端口Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
//位描述
//初始值=1111,111111111111
sbitP17=P1^7;//I/O口
sbitP16=P1^6;//I/O口
sbitP15=P1^5;//I/O口
sbitP14=P1^4;//I/O口
sbitP13=P1^3;//I/O口
sbitP12=P1^2;//I/O口
sbitP11=P1^1;//I/O口
sbitP10=P1^0;//I/O口
sbitT2=P1^0;//定时器的外部信号输入口
sbitT2CLKO=P1^0;//定时器定的时钟溢出脉冲输出脚
sbitT2EX=P1^1;//定时器的中断控制源
/////////////////////////////////
sfrP2=0xa0;//I/O端口Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
//位描述
//初始值=1111,111111111111
sbitP27=P2^7;//I/O口
sbitP26=P2^6;//I/O口
sbitP25=P2^5;//I/O口
sbitP24=P2^4;//I/O口
sbitP23=P2^3;//I/O口
sbitP22=P2^2;//I/O口
sbitP21=P2^1;//I/O口
sbitP20=P2^0;//I/O口
/////////////////////////////////
sfrP3=0xb0;//I/O端口Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
//位描述
//初始值=1111,111111111111
sbitP37=P3^7;//I/O口
sbitP36=P3^6;//I/O口
sbitP35=P3^5;//I/O口
sbitP34=P3^4;//I/O口
sbitP33=P3^3;//I/O口
sbitP32=P3^2;//I/O口
sbitP31=P3^1;//I/O口
sbitP30=P3^0;//I/O口
sbitRXD=P3^0;//串口的数据接收口
sbitTXD=P3^1;//串口的数据发送口
sbitINT0=P3^2;//外部中断的信号输入口
sbitINT1=P3^3;//外部中断的信号输出口
sbitT0=P3^4;//定时器的外部信号输入口
sbitT1=P3^5;//定时器的外部信号输入口
sbitWR=P3^6;//外部数据存储器的写信号
sbitRD=P3^7;//外部数据存储器的读信号
/////////////////////////////////
sfrP4=0xc0;//I/O端口Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
//位描述-
//初始值=xxxx,1111xxxx1111
sbitP43=P4^3;//I/O口
sbitP42=P4^2;//I/O口
sbitP41=P4^1;//I/O口
sbitP40=P4^0;//I/O口
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sfrIE=0xa8;//中断使能寄存器Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
//位描述EA-ET2ESET1EX1ET0EX0
//初始值=0x00,00000x000000
sbitEA=IE^7;//总中断开关
sbitET2=IE^5;//定时器中断使能位
sbitES=IE^4;//串口中断使能位
sbitET1=IE^3;//定时器中断使能位
sbitEX1=IE^2;//外部中断中断使能位
sbitET0=IE^1;//定时器中断使能位
sbitEX0=IE^0;//外部中断中断使能位
/////////////////////////////////
sfrIPH=0xb7;//中断优先级寄存器高位Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
//位描述PX3HPX2HPT2HPSHPT1HPX1HPT0HPX0H
//初始值=0000,000000000000
#definePX3H0x80//外部中断中断优先级控制高位
#definePX2H0x40//外部中断中断优先级控制高位
#definePT2H0x20//定时器中断优先级控制高位
#definePSH0x10//串口中断优先级控制高位
#definePT1H0x08//定时器中断优先级控制高位
#definePX1H0x04//外部中断中断优先级控制高位
#definePT0H0x02//定时器中断优先级控制高位
#definePX0H0x01//外部中断中断优先级控制高位
/////////////////////////////////
sfrIP=0xb8;//中断优先级寄存器Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
//位描述--PT2PSPT1PX1PT0PX0
//初始值=xx00,0000xx000000
sbitPT2=IP^5;//定时器中断优先级控制低位
sbitPS=IP^4;//串口中断优先级控制低位
sbitPT1=IP^3;//定时器中断优先级控制低位
sbitPX1=IP^2;//外部中断中断优先级控制低位
sbitPT0=IP^1;//定时器中断优先级控制低位
sbitPX0=IP^0;//外部中断中断优先级控制低位
/////////////////////////////////
sfrXICON=0xe8;//辅助中断使能寄存器Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
//位描述PX3EX3IE3IT3PX2EX2IE2IT2
//初始值=0000,000000000000
sbitPX3=XICON^7;//外部中断中断优先级控制低位
sbitEX3=XICON^6;//使能外部中断
sbitIE3=XICON^5;//外部中断的中断请求位,由硬件置,可由软件清或者在中断处理程序完成后由硬件自动清
sbitIT3=XICON^4;//外部中断的触发类型,0:
低电平触发外部中断1:
下降沿触发外部中断
sbitPX2=XICON^3;//外部中断中断优先级控制低位
sbitEX2=XICON^2;//使能外部中断
sbitIE2=XICON^1;//外部中断的中断请求位,由硬件置,可由软件清或者在中断处理程序完成后由硬件自动清
sbitIT2=XICON^0;//外部中断的触发类型,0:
低电平触发外部中断1:
下降沿触发外部中断
#defineX0_INTNO0//外部中断中断号,入口地址为H
#defineT0_INTNO1//定时器中断号,入口地址为BH
#defineX1_INTNO2//外部中断中断号,入口地址为H
#defineT1_INTNO3//定时器中断号,入口地址为BH
#defineUART_INTNO4//串口中断号,入口地址为H
#defineT2_INTNO5//定时器中断号,入口地址为BH
#defineX2_INTNO6//外部中断中断号,入口地址为H
#defineX3_INTNO7//外部中断中断号,入口地址为BH
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sfrTCON=0x88;//定时器/1控制寄存器Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
//位描述TF1TR1TF0TR0IE1IT1IE0IT0
//初始值=0000,000000000000
sbitTF1=TCON^7;//定时器溢出标志,由硬件置,可由软件清或者在中断处理程序完成后由硬件自动清
sbitTR1=TCON^6;//定时器的启动控制位,1:
启动定时器0:
停止定时器
sbitTF0=TCON^5;//定时器溢出标志,由硬件置,可由软件清或者在中断处理程序完成后由硬件自动清
sbitTR0=TCON^4;//定时器的启动控制位,1:
启动定时器0:
停止定时器
sbitIE1=TCON^3;//外部中断的中断请求位,由硬件置,可由软件清或者在中断处理程序完成后由硬件自动清
sbitIT1=TCON^2;//外部中断的触发类型,0:
低电平触发外部中断1:
下降沿触发外部中断
sbitIE0=TCON^1;//外部中断的中断请求位,由硬件置,可由软件清或者在中断处理程序完成后由硬件自动清
sbitIT0=TCON^0;//外部中断的触发类型,0:
低电平触发外部中断1:
下降沿触发外部中断
/////////////////////////////////
sfrTMOD=0x89;//定时器/1模式寄存器Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
//位描述GATEC/T#M1M0GATEC/T#M1M0
//初始值=0000,000000000000
#defineGATE10x80//定时器启动控制位,0:
TR1为时启动定时器1:
TR1为且INT1为高电平时才启动定时器
#defineC_T10x40//定时器/计数器选择位,0:
定时器(时钟源为内部时钟)1:
计数器(时钟源为T1引脚的外部时钟)
#defineT1_M00x00//定时器操作模式:
13位定时器
#defineT1_M10x10//定时器操作模式:
16位定时器
#defineT1_M20x20//定时器操作模式:
8位自动重载定时器
#defineT1_M30x30//定时器操作模式:
定时器停止
#defineGATE00x08//定时器启动控制位,0:
TR0为时启动定时器1:
TR0为且INT0为高电平时才启动定时器
#defineC_T00x04//定时器/计数器选择位,0:
定时器(时钟源为内部时钟)1:
计数器(时钟源为T0引脚的外部时钟)
#defineT0_M00x00//定时器操作模式:
13位定时器
#defineT0_M10x01//定时器操作模式:
16位定时器
#defineT0_M20x02//定时器操作模式:
8位自动重载定时器
#defineT0_M30x03//定时器操作模式:
TL0和TH0为两组独立位定时器
/////////////////////////////////
sfrTL0=0x8a;//定时器的低位计数值Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
//初始值=0000,000000000000
/////////////////////////////////
sfrTL1=0x8b;//定时器的低位计数值Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
//初始值=0000,000000000000
/////////////////////////////////
sfrTH0=0x8c;//定时器的高位计数值Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
//初始值=0000,000000000000
/////////////////////////////////
sfrTH1=0x8d;//定时器的高位计数值Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
//初始值=0000,000000000000
/////////////////////////////////
sfrT2CON=0xc8;//定时器控制寄存器Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
//位描述TF2EXF2RCLKTCLKEXEN2TR2C/T2#CP/RL#
//初始值=0000,000000000000
sbitTF2=T2CON^7;//定时器溢出标志,由硬件置,必须由软件清
sbitEXF2=T2CON^6;//定时器的外部标志,由硬件置,必须由软件清
sbitRCLK=T2CON^5;//接收时钟标志,0:
使用定时器作为串口接收发生器1:
使用定时器作为串口接收发生器
sbitTCLK=T2CON^4;//发送时钟标志,0:
使用定时器作为串口发送发生器1:
使用定时器作为串口发送发生器
sbitEXEN2=T2CON^3;//定时器的外部使能标志
sbitTR2=T2CON^2;//启动定时期
sbitC_T2=T2CON^1;//定时器/计数器选择位,0:
定时器(时钟源为内部时钟)1:
计数器(时钟源为T2引脚的外部时钟)
sbitCP_RL2=T2CON^0;//捕获/重载标志
//////////////////