📄 stc15.h
字号:
sbit P26 = P2^6; //I/O口P2.6
sbit P25 = P2^5; //I/O口P2.5
sbit P24 = P2^4; //I/O口P2.4
sbit P23 = P2^3; //I/O口P2.3
sbit P22 = P2^2; //I/O口P2.2
sbit P21 = P2^1; //I/O口P2.1
sbit P20 = P2^0; //I/O口P2.0
/////////////////////////////////
sfr P3 = 0xb0; //I/O端口3 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
//位描述 P3.7 P3.6 P3.5 P3.4 P3.3 P3.2 P3.1 P3.0
//初始值=1111,1111 1 1 1 1 1 1 1 1
sbit P37 = P3^7; //I/O口P3.7
sbit P36 = P3^6; //I/O口P3.6
sbit P35 = P3^5; //I/O口P3.5
sbit P34 = P3^4; //I/O口P3.4
sbit P33 = P3^3; //I/O口P3.3
sbit P32 = P3^2; //I/O口P3.2
sbit P31 = P3^1; //I/O口P3.1
sbit P30 = P3^0; //I/O口P3.0
sbit RXD = P3^0; //串口1的数据接收口
sbit TXD = P3^1; //串口1的数据发送口
sbit INT0 = P3^2; //外部中断0的信号输入口
sbit INT1 = P3^3; //外部中断1的信号输出口
sbit T0 = P3^4; //定时器0的外部信号输入口
sbit T1 = P3^5; //定时器1的外部信号输入口
sbit WR = P3^6; //外部数据存储器的写信号
sbit RD = P3^7; //外部数据存储器的读信号
sbit T0CLKO = P3^4; //定时器0的时钟溢出脉冲输出脚
sbit T1CLKO = P3^5; //定时器1的时钟溢出脉冲输出脚
/////////////////////////////////
sfr P4 = 0xc0; //I/O端口4 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
//位描述 P4.7 P4.6 P4.5 P4.4 P4.3 P4.2 P4.1 P4.0
//初始值=1111,1111 1 1 1 1 1 1 1 1
sbit P47 = P4^7; //I/O口P4.7
sbit P46 = P4^6; //I/O口P4.6
sbit P45 = P4^5; //I/O口P4.5
sbit P44 = P4^4; //I/O口P4.4
sbit P43 = P4^3; //I/O口P4.3
sbit P42 = P4^2; //I/O口P4.2
sbit P41 = P4^1; //I/O口P4.1
sbit P40 = P4^0; //I/O口P4.0
sbit P4CEX1 = P4^3; //比较/捕获/PWM1外部引脚
sbit P4CEX0 = P4^2; //比较/捕获/PWM0外部引脚
sbit P4ECI = P4^1; //比较/捕获/PWM模块的外部时钟输入脚(最大值为Fosc/2)
/////////////////////////////////
sfr P1M1 = 0x91; //I/O口1模式控制器1 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
//初/始值=0000,0000 0 0 0 0 0 0 0 0
/////////////////////////////////
sfr P1M0 = 0x92; //I/O口1模式控制器0 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
//初始值=0000,0000 0 0 0 0 0 0 0 0
/////////////////////////////////
sfr P0M1 = 0x93; //I/O口0模式控制器1 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
//初始值=0000,0000 0 0 0 0 0 0 0 0
/////////////////////////////////
sfr P0M0 = 0x94; //I/O口0模式控制器0 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
//初始值=0000,0000 0 0 0 0 0 0 0 0
/////////////////////////////////
sfr P2M1 = 0x95; //I/O口2模式控制器1 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
//初始值=0000,0000 0 0 0 0 0 0 0 0
/////////////////////////////////
sfr P2M0 = 0x96; //I/O口2模式控制器0 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
//初始值=0000,0000 0 0 0 0 0 0 0 0
/////////////////////////////////
sfr P3M1 = 0xb1; //I/O口3模式控制器1 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
//初/始值=0000,0000 0 0 0 0 0 0 0 0
/////////////////////////////////
sfr P3M0 = 0xb2; //I/O口3模式控制器0 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
//初始值=0000,0000 0 0 0 0 0 0 0 0
/////////////////////////////////
sfr P4M1 = 0xb3; //I/O口4模式控制器1 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
//初始值=0000,0000 0 0 0 0 0 0 0 0
/////////////////////////////////
sfr P4M0 = 0xb4; //I/O口4模式控制器0 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
//初始值=0000,0000 0 0 0 0 0 0 0 0
/////////////////////////////////
// PxM1 PxM0
// 0 0 准双向口
// 0 1 强推挽输出
// 1 0 高阻输入态
// 1 1 开漏输出
/////////////////////////////////
sfr P1ASF = 0x9d; //P1口模拟功能控制位 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
//位描述 P17ASF P16ASF P15ASF P14ASF P13ASF P12ASF P11ASF P10ASF
//初始值=0000,0000 0 0 0 0 0 0 0 0
#define P17ASF 0x80 //P1.7口为ADC输入脚
#define P16ASF 0x40 //P1.7口为ADC输入脚
#define P15ASF 0x20 //P1.7口为ADC输入脚
#define P14ASF 0x10 //P1.7口为ADC输入脚
#define P13ASF 0x08 //P1.7口为ADC输入脚
#define P12ASF 0x04 //P1.7口为ADC输入脚
#define P11ASF 0x02 //P1.7口为ADC输入脚
#define P10ASF 0x01 //P1.7口为ADC输入脚
/////////////////////////////////
sfr P4SW = 0xbb; //P4口的功能开关 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
//位描述 - LVD_P4.6 ALE_P4.5 NA_P4.4 - - - -
//初始值=x000,xxxx x 0 0 0 x x x x
#define P46EN 0x40 //传统的EA脚 0:无任何功能 1:为P4.6
#define P45EN 0x20 //传统的ALE脚 0:仍为ALE 1:为P4.5
#define P44EN 0x10 //传统的PSEN脚 0:无任何功能 1:为P4.4
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sfr IE = 0xa8; //中断使能寄存器 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
//位描述 EA ELVD EADC ES ET1 EX1 ET0 EX0
//初始值=0000,0000 0 0 0 0 0 0 0 0
sbit EA = IE^7; //总中断开关
sbit ELVD = IE^6; //LVD中断使能位
sbit EADC = IE^5; //ADC中断使能位
sbit ES = IE^4; //串口中断使能位
sbit ET1 = IE^3; //定时器1中断使能位
sbit EX1 = IE^2; //外部中断1中断使能位
sbit ET0 = IE^1; //定时器0中断使能位
sbit EX0 = IE^0; //外部中断0中断使能位
/////////////////////////////////
#define X0_INTNO 0 //外部中断0中断号,入口地址为0003H
#define T0_INTNO 1 //定时器0中断号,入口地址为000BH
#define X1_INTNO 2 //外部中断1中断号,入口地址为0013H
#define T1_INTNO 3 //定时器1中断号,入口地址为001BH
#define UART_INTNO 4 //串口中断号,入口地址为0023H
#define ADC_INTNO 5 //ADC中断号,入口地址为002BH
#define LVD_INTNO 6 //LVD中断号,入口地址为0033H
#define PCA_INTNO 6 //PCA中断号,入口地址为003BH
/////////////////////////////////
sfr IP = 0xb8; //中断优先级寄存器 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
//位描述 PPCA PLVD PADC PS PT1 PX1 PT0 PX0
//初始值=0000,0000 0 0 0 0 0 0 0 0
sbit PPCA = IP^7; //PCA中断优先级控制低位
sbit PLVD = IP^6; //LVD中断优先级控制低位
sbit PADC = IP^5; //ADC中断优先级控制低位
sbit PS = IP^4; //串口中断优先级控制低位
sbit PT1 = IP^3; //定时器1中断优先级控制低位
sbit PX1 = IP^2; //外部中断1中断优先级控制低位
sbit PT0 = IP^1; //定时器0中断优先级控制低位
sbit PX0 = IP^0; //外部中断0中断优先级控制低位
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sfr TCON = 0x88; //定时器0/1控制寄存器 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
//位描述 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
//初始值=0000,0000 0 0 0 0 0 0 0 0
sbit TF1 = TCON^7; //定时器1溢出标志,由硬件置1,可由软件清0或者在中断处理程序完成后由硬件自动清0
sbit TR1 = TCON^6; //定时器1的启动控制位,1:启动定时器 0:停止定时器
sbit TF0 = TCON^5; //定时器0溢出标志,由硬件置1,可由软件清0或者在中断处理程序完成后由硬件自动清0
sbit TR0 = TCON^4; //定时器0的启动控制位,1:启动定时器 0:停止定时器
sbit IE1 = TCON^3; //外部中断1的中断请求位,由硬件置1,可由软件清0或者在中断处理程序完成后由硬件自动清0
sbit IT1 = TCON^2; //外部中断1的触发类型,0:低电平触发外部中断 1:下降沿触发外部中断
sbit IE0 = TCON^1; //外部中断0的中断请求位,由硬件置1,可由软件清0或者在中断处理程序完成后由硬件自动清0
sbit IT0 = TCON^0; //外部中断0的触发类型,0:低电平触发外部中断 1:下降沿触发外部中断
/////////////////////////////////
sfr TMOD = 0x89; //定时器0/1模式寄存器 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
//位描述 GATE C/T# M1 M0 GATE C/T# M1 M0
//初始值=0000,0000 0 0 0 0 0 0 0 0
#define GATE1 0x80 //定时器1启动控制位,0:TR1为1时启动定时器1 1:TR1为1且INT1为高电平时才启动定时器1
#define C_T1 0x40 //定时器/计数器选择位,0:定时器(时钟源为内部时钟) 1:计数器(时钟源为T1引脚的外部时钟)
#define T1_M0 0x00 //定时器1操作模式0:13位定时器
#define T1_M1 0x10 //定时器1操作模式1:16位定时器
#define T1_M2 0x20 //定时器1操作模式2:8位自动重载定时器
#define T1_M3 0x30 //定时器1操作模式3:定时器1停止
#define GATE0 0x08 //定时器1启动控制位,0:TR0为1时启动定时器1 1:TR0为1且INT0为高电平时才启动定时器0
#define C_T0 0x04 //定时器/计数器选择位,0:定时器(时钟源为内部时钟) 1:计数器(时钟源为T0引脚的外部时钟)
#define T0_M0 0x00 //定时器0操作模式0:13位定时器
#define T0_M1 0x01 //定时器0操作模式1:16位定时器
#define T0_M2 0x02 //定时器0操作模式2:8位自动重载定时器
#define T0_M3 0x03 //定时器0操作模式3:TL0和TH0为两组独立8位定时器
/////////////////////////////////
sfr TL0 = 0x8a; //定时器0的低8位计数值 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
//初始值=0000,0000 0 0 0 0 0 0 0 0
/////////////////////////////////
sfr TL1 = 0x8b; //定时器1的低8位计数值 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
//初始值=0000,0000 0 0 0 0 0 0 0 0
/////////////////////////////////
sfr TH0 = 0x8c; //定时器0的高8位计数值 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
//初始值=0000,0000 0 0 0 0 0 0 0 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -