⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stc12c56.h

📁 STC单片机全系列头文件
💻 H
📖 第 1 页 / 共 3 页
字号:
sfr  ISP_TRIG   =   0xe6;       //ISP命令触发寄存器     Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=xxxx,xxxx      x       x       x       x       x       x       x       x

#define ISP_TRIG0   0x46        //ISP功能触发命令1
#define ISP_TRIG1   0xb9        //ISP功能触发命令2

/////////////////////////////////

sfr  ISP_CONTR  =   0xe7;       //ISP控制寄存器         Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                ISPEN   SWBS    SWRST   CMD_FAIL -      WT2     WT1     WT0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

#define ISPEN       0x80        //ISP使能开关
#define SWBS        0x40        //软启动选择,0:从用户AP启动 1:从ISP启动
#define SWRST       0x20        //触发软件复位
#define CMD_FAIL    0x10        //ISP命令失败标志

////////////////////////////////////////////////////////////////////////////////////////////////////////////////

sfr  SPSTAT     =   0x84;       //SPI状态寄存器         Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                SPIF    WCOL    -       -       -       -       -       -
                                //初始值=11xx,xxxx      1       1       x       x       x       x       x       x

#define SPIF        0x80        //SPI传输完成标志,当SPI中断使能时会触发SPI中断请求,需要用软件向此位写"1"来清0
#define WCOL        0x40        //SPI写冲突标志,需要用软件向此位写"1"来清0

/////////////////////////////////

sfr  SPCTL      =   0x85;       //SPI控制寄存器         Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                SSIG    SPEN    DORD    MSTR    CPOL    CPHA    SPR1    SPR0
                                //初始值=0000,0100      0       0       0       0       0       1       0       0

#define SSIG        0x80        //SS忽略位,1:由MSTR确定主/从 0:由SS脚确定主/从
#define SPEN        0x40        //SPI模块使能位
#define DORD        0x20        //SPI数据顺序,1:LSB(先收/发最低位) 0:MSB(先收/发最高位)
#define MSTR        0x10        //主/从模式选择位
#define CPOL        0x08        //SPI时钟极性
#define CPHA        0x04        //SPI相位选择
#define SPSPEEDHH   0x00        //最快的速度,CPU_CLK/4
#define SPSPEEDH    0x01        //最快的速度,CPU_CLK/16
#define SPSPEEDL    0x02        //最快的速度,CPU_CLK/64
#define SPSPEEDLL   0x03        //最快的速度,CPU_CLK/128

/////////////////////////////////

sfr  SPDAT      =   0x86;       //SPI数据寄存器         Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

////////////////////////////////////////////////////////////////////////////////////////////////////////////////

sfr  CCON       =   0xd8;       //PCA控制寄存器         Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                CF      CR      -       -       CCF3    CCF2    CCF1    CCF0
                                //初始值=00xx,0000      0       0       x       x       0       0       0       0

sbit CF         =   CCON^7;     //PCA计数器溢出标志,当PCA中断使能时会触发PCA中断请求,需要用软件清0
sbit CR         =   CCON^6;     //PCA计数器启动控制位,写"1"启动东计数器
sbit CCF3       =   CCON^3;     //PCA模块3中断标志,需要用软件清0
sbit CCF2       =   CCON^2;     //PCA模块2中断标志,需要用软件清0
sbit CCF1       =   CCON^1;     //PCA模块1中断标志,需要用软件清0
sbit CCF0       =   CCON^0;     //PCA模块0中断标志,需要用软件清0

/////////////////////////////////

sfr  CMOD       =   0xd9;       //PCA模式寄存器         Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                CIDL    -       -       -       CPS2    CPS1    CPS0    ECF
                                //初始值=0xxx,0000      0       x       x       x       0       0       0       0

#define CIDL        0x80        //计时器阵列空闲控制,0:空闲模式下PCA继续工作 1:空闲模式下PCA停止工作
#define PCACLK0     0x00        //Fosc/12
#define PCACLK1     0x02        //Fosc/2
#define PCACLK2     0x04        //定时器0的溢出率
#define PCACLK3     0x06        //ECI外部时钟
#define PCACLK4     0x08        //Fosc/1
#define PCACLK5     0x0a        //Fosc/4
#define PCACLK6     0x0c        //Fosc/6
#define PCACLK7     0x0e        //Fosc/8
#define ECF         0x01        //PCA计数器溢出中断允许位

/////////////////////////////////

sfr  CCAPM0     =   0xda;       //PCA模块0模式寄存器    Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                -       ECOM0   CAPP0   CAPN0   MAT0    TOG0    PWM0    ECCF0
                                //初始值=x000,0000      x       0       0       0       0       0       0       0

#define PCA0_ECOM   0x40        //使能比较器0
#define PCA0_CAPP   0x20        //使能PCA模块0的上升沿捕获
#define PCA0_CAPN   0x10        //使能PCA模块0的下降沿捕获
#define PCA0_MAT    0x08        //匹配使能,当PCA的计数值与模块0设定的值相匹配时,置CCON.CCF0
#define PCA0_TOG    0x04        //翻转控制位,当PCA的计数值与模块0设定的值相匹配时,翻转CEX0的电平
#define PCA0_PWM    0x02        //脉宽调制模式,使能CEX0为脉宽调制输出口
#define PCA0_ECCF   0x01        //使能CCF0中断

/////////////////////////////////

sfr  CCAPM1     =   0xdb;       //PCA模块1模式寄存器    Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                -       ECOM1   CAPP1   CAPN1   MAT1    TOG1    PWM1    ECCF1
                                //初始值=x000,0000      x       0       0       0       0       0       0       0

#define PCA1_ECOM   0x40        //使能比较器1
#define PCA1_CAPP   0x20        //使能PCA模块1的上升沿捕获
#define PCA1_CAPN   0x10        //使能PCA模块1的下降沿捕获
#define PCA1_MAT    0x08        //匹配使能,当PCA的计数值与模块1设定的值相匹配时,置CCON.CCF1
#define PCA1_TOG    0x04        //翻转控制位,当PCA的计数值与模块1设定的值相匹配时,翻转CEX1的电平
#define PCA1_PWM    0x02        //脉宽调制模式,使能CEX1为脉宽调制输出口
#define PCA1_ECCF   0x01        //使能CCF1中断

/////////////////////////////////

sfr  CCAPM2     =   0xdc;       //PCA模块2模式寄存器    Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                -       ECOM2   CAPP2   CAPN2   MAT2    TOG2    PWM2    ECCF2
                                //初始值=x000,0000      x       0       0       0       0       0       0       0

#define PCA2_ECOM   0x40        //使能比较器2
#define PCA2_CAPP   0x20        //使能PCA模块2的上升沿捕获
#define PCA2_CAPN   0x10        //使能PCA模块2的下降沿捕获
#define PCA2_MAT    0x08        //匹配使能,当PCA的计数值与模块2设定的值相匹配时,置CCON.CCF2
#define PCA2_TOG    0x04        //翻转控制位,当PCA的计数值与模块2设定的值相匹配时,翻转CEX2的电平
#define PCA2_PWM    0x02        //脉宽调制模式,使能CEX2为脉宽调制输出口
#define PCA2_ECCF   0x01        //使能CCF2中断

/////////////////////////////////

sfr  CCAPM3     =   0xdd;       //PCA模块3模式寄存器    Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                -       ECOM3   CAPP3   CAPN3   MAT3    TOG3    PWM3    ECCF3
                                //初始值=x000,0000      x       0       0       0       0       0       0       0

#define PCA3_ECOM   0x40        //使能比较器3
#define PCA3_CAPP   0x20        //使能PCA模块3的上升沿捕获
#define PCA3_CAPN   0x10        //使能PCA模块3的下降沿捕获
#define PCA3_MAT    0x08        //匹配使能,当PCA的计数值与模块3设定的值相匹配时,置CCON.CCF3
#define PCA3_TOG    0x04        //翻转控制位,当PCA的计数值与模块3设定的值相匹配时,翻转CEX3的电平
#define PCA3_PWM    0x02        //脉宽调制模式,使能CEX3为脉宽调制输出口
#define PCA3_ECCF   0x01        //使能CCF3中断

/////////////////////////////////

//CCAPM0   -   ECOM CAPP CAPN MAT  TOG  PWM  CCF
// 00H     0    0    0    0    0    0    0    0     无操作,待机状态
// 42H     0    1    0    0    0    0    1    0     8位PWM输出,无中断
// 63H     0    1    1    0    0    0    1    1     8位PWM输出,产生CEX0上升沿中断
// 53H     0    1    0    1    0    0    1    1     8位PWM输出,产生CEX0下降沿中断
// 73H     0    1    1    1    0    0    1    1     8位PWM输出,产生CEX0跳变中断
// 20H     0    x    1    0    0    0    0    0     16位捕获模式,CEX0上升沿触发捕获
// 10H     0    x    0    1    0    0    0    0     16位捕获模式,CEX0下降沿触发捕获
// 30H     0    x    1    1    0    0    0    0     16位捕获模式,CEX0跳变触发捕获
// 48H     0    1    0    0    1    0    0    0     16位软件定时器
// 4CH     0    1    0    0    1    1    0    0     16位高速脉冲输出

/////////////////////////////////

sfr  CL         =   0xe9;       //PCA计数器低8位        Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  CH         =   0xf9;       //PCA计数器高8位        Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  CCAP0L     =   0xea;       //PCA模块0寄存器低8位   Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  CCAP1L     =   0xeb;       //PCA模块1寄存器低8位   Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  CCAP2L     =   0xec;       //PCA模块2寄存器低8位   Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  CCAP3L     =   0xed;       //PCA模块3寄存器低8位   Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  CCAP0H     =   0xfa;       //PCA模块0寄存器高8位   Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  CCAP1H     =   0xfb;       //PCA模块1寄存器高8位   Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  CCAP2H     =   0xfc;       //PCA模块2寄存器高8位   Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  CCAP3H     =   0xfd;       //PCA模块3寄存器高8位   Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

/////////////////////////////////

sfr  PCA_PWM0   =   0xf2;       //PCA0模式PWM辅助寄存器 Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                -       -       -       -       -       -       EPC0H   EPC0L
                                //初始值=xxxx,xx00      x       x       x       x       x       x       0       0

/////////////////////////////////

sfr  PCA_PWM1   =   0xf3;       //PCA1模式PWM辅助寄存器 Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                -       -       -       -       -       -       EPC1H   EPC1L
                                //初始值=xxxx,xx00      x       x       x       x       x       x       0       0

/////////////////////////////////

sfr  PCA_PWM2   =   0xf4;       //PCA2模式PWM辅助寄存器 Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                -       -       -       -       -       -       EPC2H   EPC2L
                                //初始值=xxxx,xx00      x       x       x       x       x       x       0       0

/////////////////////////////////

sfr  PCA_PWM3   =   0xf5;       //PCA3模式PWM辅助寄存器 Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                -       -       -       -       -       -       EPC3H   EPC3L
                                //初始值=xxxx,xx00      x       x       x       x       x       x       0       0

////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -