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

📄 stc15.h

📁 STC单片机全系列头文件
💻 H
📖 第 1 页 / 共 3 页
字号:

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

sfr  TH1        = 0x8d;         //定时器1的高8位计数值  Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

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

sfr  SCON       =   0x98;       //串口控制寄存器        Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述                SM0/FE  SM1     SM2     REN     TB8     RB8     TI      Ri
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

sbit FE         =   SCON^7;     //帧错误检测位,当串口模块在接收数据时没有检测到正确的停止位时,FE被硬件置1,需要由软件来清0(当SMOD0为1时,FE有效)
sbit SM0        =   SCON^7;     //串口模式设置位
sbit SM1        =   SCON^6;     //SM0/SM1=0/0:移位寄存器 0/1:8位可变波特率 1/0:9位固定波特率 1/1:9位可变波特率
sbit SM2        =   SCON^5;     //自动地址识别使能位
sbit REN        =   SCON^4;     //使能串口接收模块
sbit TB8        =   SCON^3;     //发送的第9位数据
sbit RB8        =   SCON^2;     //接收的第9位数据
sbit TI         =   SCON^1;     //发送完成中断标志
sbit RI         =   SCON^0;     //接收完成中断标志

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

sfr  SBUF       =   0x99;       //串口接收/发送数据     Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=xxxx,xxxx      x       x       x       x       x       x       x       x

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

sfr  SADDR      =   0xa9;       //串口设备从地址寄存器  Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

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

sfr  SADEN      =   0xb9;       //串口设备从地址屏蔽位  Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

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

sfr  BRT        =   0x9c;       //独立波特率发生器重载值Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

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

sfr  ADC_CONTR  =   0xbc;       //ADC控制寄存器         Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //位描述            ADC_POWER  SPEED1 SPEED0 ADC_FLAG ADC_START CHS2    CHS1    CHS0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

#define ADC_POWER   0x80        //ADC模块电源控制位
#define ADC_SPEEDLL 0x00        //每次转换需要540个时钟周期
#define ADC_SPEEDL  0x20        //每次转换需要360个时钟周期
#define ADC_SPEEDH  0x40        //每次转换需要180个时钟周期
#define ADC_SPEEDHH 0x60        //每次转换需要90个时钟周期
#define ADC_FLAG    0x10        //ADC转换完成标志
#define ADC_START   0x08        //ADC开始转换控制位
#define ADC_CHS2    0x04        //ADC通道选择位2
#define ADC_CHS1    0x02        //ADC通道选择位1
#define ADC_CHS0    0x01        //ADC通道选择位0

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

sfr  ADC_RES    =   0xbd;       //ADC结果               Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

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

sfr  IAP_DATA   =   0xc2;       //IAP数据寄存器         Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=1111,1111      1       1       1       1       1       1       1       1

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

sfr  IAP_ADDRH  =   0xc3;       //IAP地址高位寄存器     Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

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

sfr  IAP_ADDRL  =   0xc4;       //IAP地址低位寄存器     Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=0000,0000      0       0       0       0       0       0       0       0

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

sfr  IAP_CMD    =   0xc5;       //IAP命令寄存器         Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=xxxx,xx00      x       x       x       x       x       x       0       0

#define IAP_IDLE    0x00        //IAP待机命令
#define IAP_READ    0x01        //IAP读字节数据命令
#define IAP_PROGRAM 0x02        //IAP字节编程命令
#define IAP_ERASE   0x03        //IAP扇区擦除命令(每扇区512字节))

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

sfr  IAP_TRIG   =   0xc6;       //IAP命令触发寄存器     Bit7    Bit6    Bit5    Bit4    Bit3    Bit2    Bit1    Bit0
                                //初始值=xxxx,xxxx      x       x       x       x       x       x       x       x

#define IAP_TRIG0   0x5a        //IAP功能触发命令1
#define IAP_TRIG1   0xa5        //IAP功能触发命令2

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

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

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

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

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

sbit CF         =   CCON^7;     //PCA计数器溢出标志,当PCA中断使能时会触发PCA中断请求,需要用软件清0
sbit CR         =   CCON^6;     //PCA计数器启动控制位,写"1"启动东计数器
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中断

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

//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  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  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

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

#endif

⌨️ 快捷键说明

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