当前位置: 首页 > news >正文

STC8H系列单片机STC8H_H头文件功能注释

#ifndef     __STC8H_H__        // 条件编译:如果未定义__STC8H_H__宏
#define     __STC8H_H__        // 则定义该宏,防止头文件被重复包含

/

//包含本头文件后,不用另外再包含"REG51.H"  // 提示:本头文件已包含基本寄存器定义

sfr         P0          =           0x80;  // 定义特殊功能寄存器P0,地址为0x80
sbit        P00         =           P0^0;  // 定义P0.0引脚,即P0寄存器的第0位
sbit        P01         =           P0^1;  // 定义P0.1引脚,即P0寄存器的第1位
sbit        P02         =           P0^2;  // 定义P0.2引脚,即P0寄存器的第2位
sbit        P03         =           P0^3;  // 定义P0.3引脚,即P0寄存器的第3位
sbit        P04         =           P0^4;  // 定义P0.4引脚,即P0寄存器的第4位
sbit        P05         =           P0^5;  // 定义P0.5引脚,即P0寄存器的第5位
sbit        P06         =           P0^6;  // 定义P0.6引脚,即P0寄存器的第6位
sbit        P07         =           P0^7;  // 定义P0.7引脚,即P0寄存器的第7位

sfr         SP          =           0x81;  // 堆栈指针寄存器,用于管理堆栈地址
sfr         DPL         =           0x82;  // 数据指针低位寄存器,与DPH共同组成16位数据指针
sfr         DPH         =           0x83;  // 数据指针高位寄存器,与DPL共同组成16位数据指针

sfr         S4CON       =           0x84;  // 串口4控制寄存器,用于配置串口4的工作模式
sfr         S4BUF       =           0x85;  // 串口4数据缓冲寄存器,用于存放串口4收发的数据
sfr         PCON        =           0x87;  // 电源控制寄存器,用于配置单片机的电源模式和波特率倍增

sfr         TCON        =           0x88;  // 定时器/计数器控制寄存器
sbit        TF1         =           TCON^7; // 定时器1溢出标志位
sbit        TR1         =           TCON^6; // 定时器1运行控制位
sbit        TF0         =           TCON^5; // 定时器0溢出标志位
sbit        TR0         =           TCON^4; // 定时器0运行控制位

sbit        IE1         =           TCON^3; // 外部中断1请求标志
sbit        IT1         =           TCON^2; // 外部中断1触发方式控制位
sbit        IE0         =           TCON^1; // 外部中断0请求标志
sbit        IT0         =           TCON^0; // 外部中断0触发方式控制位

sfr         TMOD        =           0x89;  // 定时器/计数器模式控制寄存器,用于配置定时器工作模式
sfr         TL0         =           0x8a;  // 定时器0低位寄存器,存放定时器0的初始值
sfr         TL1         =           0x8b;  // 定时器1低位寄存器,存放定时器1的初始值
sfr         TH0         =           0x8c;  // 定时器0高位寄存器,存放定时器0的初始值
sfr         TH1         =           0x8d;  // 定时器1高位寄存器,存放定时器1的初始值
sfr         AUXR        =           0x8e;  // 辅助寄存器,用于配置一些辅助功能
sfr         INTCLKO     =           0x8f;  // 中断和时钟输出控制寄存器,用于配置中断和时钟输出


sfr         P1          =           0x90;  // 定义P1端口寄存器,地址为0x90
sbit        P10         =           P1^0;  // 定义P1.0引脚,即P1寄存器的第0位
sbit        P11         =           P1^1;  // 定义P1.1引脚,即P1寄存器的第1位
sbit        P12         =           P1^2;  // 定义P1.2引脚,即P1寄存器的第2位
sbit        P13         =           P1^3;  // 定义P1.3引脚,即P1寄存器的第3位
sbit        P14         =           P1^4;  // 定义P1.4引脚,即P1寄存器的第4位
sbit        P15         =           P1^5;  // 定义P1.5引脚,即P1寄存器的第5位
sbit        P16         =           P1^6;  // 定义P1.6引脚,即P1寄存器的第6位
sbit        P17         =           P1^7;  // 定义P1.7引脚,即P1寄存器的第7位

sfr         P1M1        =           0x91;  // P1端口模式寄存器1,用于配置P1口各引脚的工作模式
sfr         P1M0        =           0x92;  // P1端口模式寄存器0,与P1M1共同决定P1口引脚模式

sfr         P0M1        =           0x93;  // P0端口模式寄存器1,用于配置P0口各引脚的工作模式
sfr         P0M0        =           0x94;  // P0端口模式寄存器0,与P0M1共同决定P0口引脚模式

sfr         P2M1        =           0x95;  // P2端口模式寄存器1,用于配置P2口各引脚的工作模式
sfr         P2M0        =           0x96;  // P2端口模式寄存器0,与P2M1共同决定P2口引脚模式

sfr         SCON        =           0x98;  // 串口1控制寄存器,用于配置串口1的工作模式和状态
sbit        SM0         =           SCON^7; // 串口1模式选择位0
sbit        SM1         =           SCON^6; // 串口1模式选择位1
sbit        SM2         =           SCON^5; // 串口1多机通信控制位
sbit        REN         =           SCON^4; // 串口1接收使能位
sbit        TB8         =           SCON^3; // 串口1发送数据位8
sbit        RB8         =           SCON^2; // 串口1接收数据位8
sbit        TI          =           SCON^1; // 串口1发送中断标志
sbit        RI          =           SCON^0; // 串口1接收中断标志

sfr         SBUF        =           0x99;  // 串口1数据缓冲寄存器,用于存放串口1收发的数据
sfr         S2CON       =           0x9a;  // 串口2控制寄存器,用于配置串口2的工作模式和状态
sfr         S2BUF       =           0x9b;  // 串口2数据缓冲寄存器,用于存放串口2收发的数据

sfr         IRCBAND     =           0x9d;  // 内部RC振荡器频段控制寄存器,用于选择内部时钟的工作频段
sfr         LIRTRIM     =           0x9e;  // 低频内部RC振荡器微调寄存器,用于精确调整低频内部时钟
sfr         IRTRIM      =           0x9f;  // 内部RC振荡器微调寄存器,用于精确调整内部主时钟

sfr         P2          =           0xa0;  // 定义P2端口寄存器,地址为0xa0
sbit        P20         =           P2^0;  // 定义P2.0引脚,即P2寄存器的第0位
sbit        P21         =           P2^1;  // 定义P2.1引脚,即P2寄存器的第1位
sbit        P22         =           P2^2;  // 定义P2.2引脚,即P2寄存器的第2位
sbit        P23         =           P2^3;  // 定义P2.3引脚,即P2寄存器的第3位
sbit        P24         =           P2^4;  // 定义P2.4引脚,即P2寄存器的第4位
sbit        P25         =           P2^5;  // 定义P2.5引脚,即P2寄存器的第5位
sbit        P26         =           P2^6;  // 定义P2.6引脚,即P2寄存器的第6位
sbit        P27         =           P2^7;  // 定义P2.7引脚,即P2寄存器的第7位

sfr         P_SW1       =           0xa2;  // 外设端口切换寄存器1,用于切换UART、SPI等外设的IO口映射

sfr         IE          =           0xa8;  // 中断使能寄存器,控制所有中断的开启和关闭
sbit        EA          =           IE^7;  // 全局中断使能位,1=开启所有中断,0=关闭所有中断
sbit        ELVD        =           IE^6;  // 低压检测中断使能位
sbit        EADC        =           IE^5;  // ADC转换完成中断使能位
sbit        ES          =           IE^4;  // 串口1(UART1)中断使能位
sbit        ET1         =           IE^3;  // 定时器1中断使能位
sbit        EX1         =           IE^2;  // 外部中断1使能位
sbit        ET0         =           IE^1;  // 定时器0中断使能位
sbit        EX0         =           IE^0;  // 外部中断0使能位

sfr         SADDR       =           0xa9;  // 串口1从机地址寄存器,用于多机通信
sfr         WKTCL       =           0xaa;  // 看门狗定时器低8位寄存器,用于配置看门狗定时时间
sfr         WKTCH       =           0xab;  // 看门狗定时器高8位寄存器,用于配置看门狗定时时间
sfr         S3CON       =           0xac;  // 串口3控制寄存器,用于配置串口3的工作模式和状态
sfr         S3BUF       =           0xad;  // 串口3数据缓冲寄存器,用于存放串口3收发的数据
sfr         TA          =           0xae;  // 特殊功能寄存器访问授权键,用于解锁某些特殊寄存器
sfr         IE2         =           0xaf;  // 中断使能寄存器2,控制额外中断源的开启和关闭

sfr         P3          =           0xb0;  // 定义P3端口寄存器,地址为0xb0
sbit        P30         =           P3^0;  // 定义P3.0引脚(RXD/UART1接收端)
sbit        P31         =           P3^1;  // 定义P3.1引脚(TXD/UART1发送端)
sbit        P32         =           P3^2;  // 定义P3.2引脚(INT0/外部中断0)
sbit        P33         =           P3^3;  // 定义P3.3引脚(INT1/外部中断1)
sbit        P34         =           P3^4;  // 定义P3.4引脚(T0/定时器0外部输入)
sbit        P35         =           P3^5;  // 定义P3.5引脚(T1/定时器1外部输入)
sbit        P36         =           P3^6;  // 定义P3.6引脚(WR/外部数据存储器写选通)
sbit        P37         =           P3^7;  // 定义P3.7引脚(RD/外部数据存储器读选通)

sfr         P3M1        =           0xb1;  // P3端口模式寄存器1,配置P3口各引脚工作模式
sfr         P3M0        =           0xb2;  // P3端口模式寄存器0,与P3M1共同决定P3口引脚模式

sfr         P4M1        =           0xb3;  // P4端口模式寄存器1,配置P4口各引脚工作模式
sfr         P4M0        =           0xb4;  // P4端口模式寄存器0,与P4M1共同决定P4口引脚模式

sfr         IP2         =           0xb5;  // 中断优先级控制寄存器2(低8位)
sfr         IP2H        =           0xb6;  // 中断优先级控制寄存器2(高8位)
sfr         IPH         =           0xb7;  // 中断优先级控制寄存器高8位
sfr         IP          =           0xb8;  // 中断优先级控制寄存器低8位
sbit        PPCA        =           IP^7;  // PCA模块中断优先级控制位
sbit        PLVD        =           IP^6;  // 低压检测中断优先级控制位
sbit        PADC        =           IP^5;  // ADC转换中断优先级控制位
sbit        PS          =           IP^4;  // 串口1中断优先级控制位
sbit        PT1         =           IP^3;  // 定时器1中断优先级控制位
sbit        PX1         =           IP^2;  // 外部中断1优先级控制位
sbit        PT0         =           IP^1;  // 定时器0中断优先级控制位
sbit        PX0         =           IP^0;  // 外部中断0优先级控制位

sfr         SADEN       =           0xb9;  // 串口1从机地址掩码寄存器,用于多机通信
sfr         P_SW2       =           0xba;  // 外设端口切换寄存器2,控制部分外设的IO口映射
sfr         ADC_CONTR   =           0xbc;  // ADC控制寄存器,配置ADC工作模式和启动转换
sfr         ADC_RES     =           0xbd;  // ADC转换结果高8位寄存器
sfr         ADC_RESL    =           0xbe;  // ADC转换结果低2位寄存器

sfr         P4          =           0xc0;  // 定义P4端口寄存器,地址为0xc0
sbit        P40         =           P4^0;  // 定义P4.0引脚
sbit        P41         =           P4^1;  // 定义P4.1引脚
sbit        P42         =           P4^2;  // 定义P4.2引脚
sbit        P43         =           P4^3;  // 定义P4.3引脚
sbit        P44         =           P4^4;  // 定义P4.4引脚
sbit        P45         =           P4^5;  // 定义P4.5引脚(通常用作外部中断2)
sbit        P46         =           P4^6;  // 定义P4.6引脚(通常用作外部中断3)
sbit        P47         =           P4^7;  // 定义P4.7引脚

sfr         WDT_CONTR   =           0xc1;  // 看门狗定时器控制寄存器

sfr         IAP_DATA    =           0xc2;  // ISP/IAP数据寄存器,用于Flash数据读写
sfr         IAP_ADDRH   =           0xc3;  // ISP/IAP地址高8位寄存器
sfr         IAP_ADDRL   =           0xc4;  // ISP/IAP地址低8位寄存器
sfr         IAP_CMD     =           0xc5;  // ISP/IAP命令寄存器
sfr         IAP_TRIG    =           0xc6;  // ISP/IAP触发寄存器,写入特定序列触发命令
sfr         IAP_CONTR   =           0xc7;  // ISP/IAP控制寄存器

sfr         P5          =           0xc8;  // 定义P5端口寄存器,地址为0xc8
sbit        P50         =           P5^0;  // 定义P5.0引脚(部分型号用作XTAL2/外部晶振输出)
sbit        P51         =           P5^1;  // 定义P5.1引脚(部分型号用作XTAL1/外部晶振输入)
sbit        P52         =           P5^2;  // 定义P5.2引脚(部分型号用作RST/复位输入)
sbit        P53         =           P5^3;  // 定义P5.3引脚(部分型号用作ALE/PROG/地址锁存使能)
sbit        P54         =           P5^4;  // 定义P5.4引脚(部分型号用作PSEN/外部程序存储器读选通)
sbit        P55         =           P5^5;  // 定义P5.5引脚(部分型号用作EA/VPP/外部程序存储器选择)
sbit        P56         =           P5^6;  // 定义P5.6引脚(部分型号用作ADC10/第10通道ADC输入)
sbit        P57         =           P5^7;  // 定义P5.7引脚(部分型号用作ADC11/第11通道ADC输入)

sfr         P5M1        =           0xc9;  // P5端口模式寄存器1,配置P5口各引脚工作模式
sfr         P5M0        =           0xca;  // P5端口模式寄存器0,与P5M1共同决定P5口引脚模式

sfr         P6M1        =           0xcb;  // P6端口模式寄存器1,配置P6口各引脚工作模式
sfr         P6M0        =           0xcc;  // P6端口模式寄存器0,与P6M1共同决定P6口引脚模式

sfr         SPSTAT      =           0xcd;  // SPI状态寄存器,指示SPI通信状态
sfr         SPCTL       =           0xce;  // SPI控制寄存器,配置SPI工作模式
sfr         SPDAT       =           0xcf;  // SPI数据寄存器,存放SPI发送/接收的数据
sfr         PSW         =           0xd0;  // 程序状态字寄存器,保存CPU状态信息
sbit        CY          =           PSW^7;  // 进位标志位,用于算术运算进位/借位
sbit        AC          =           PSW^6;  // 辅助进位标志位,用于BCD码运算
sbit        F0          =           PSW^5;  // 用户标志位0,可由用户自定义使用
sbit        RS1         =           PSW^4;  // 寄存器组选择位1
sbit        RS0         =           PSW^3;  // 寄存器组选择位0
sbit        OV          =           PSW^2;  // 溢出标志位,用于带符号数运算
sbit        F1          =           PSW^1;  // 用户标志位1,可由用户自定义使用
sbit        P           =           PSW^0;  // 奇偶校验标志位,反映累加器A中1的个数奇偶性

sfr         T4T3M       =           0xd1;  // 定时器3/4模式控制寄存器
sfr         T4H         =           0xd2;  // 定时器4高8位寄存器
sfr         T4L         =           0xd3;  // 定时器4低8位寄存器
sfr         T3H         =           0xd4;  // 定时器3高8位寄存器
sfr         T3L         =           0xd5;  // 定时器3低8位寄存器
sfr         T2H         =           0xd6;  // 定时器2高8位寄存器
sfr         T2L         =           0xd7;  // 定时器2低8位寄存器

sfr         USBCLK      =           0xdc;  // USB时钟控制寄存器(重复定义,与PLLCR地址冲突)
sfr         PLLCR       =           0xdc;  // 锁相环控制寄存器,配置系统时钟倍频
sfr         ADCCFG      =           0xde;  // ADC配置寄存器

sfr         IP3         =           0xdf;  // 中断优先级控制寄存器3

sfr         ACC         =           0xe0;  // 累加器寄存器,8051核心寄存器之一

sfr         P7M1        =           0xe1;  // P7端口模式寄存器1,配置P7口各引脚工作模式
sfr         P7M0        =           0xe2;  // P7端口模式寄存器0,与P7M1共同决定P7口引脚模式

sfr         DPS         =           0xe3;  // 数据指针选择寄存器,选择使用DPTR0还是DPTR1
sfr         DPL1        =           0xe4;  // 数据指针1低位寄存器
sfr         DPH1        =           0xe5;  // 数据指针1高位寄存器

sfr         CMPCR1      =           0xe6;  // 比较器控制寄存器1
sfr         CMPCR2      =           0xe7;  // 比较器控制寄存器2

sfr         P6          =           0xe8;  // 定义P6端口寄存器,地址为0xe8
sbit        P60         =           P6^0;  // 定义P6.0引脚
sbit        P61         =           P6^1;  // 定义P6.1引脚
sbit        P62         =           P6^2;  // 定义P6.2引脚
sbit        P63         =           P6^3;  // 定义P6.3引脚
sbit        P64         =           P6^4;  // 定义P6.4引脚
sbit        P65         =           P6^5;  // 定义P6.5引脚
sbit        P66         =           P6^6;  // 定义P6.6引脚
sbit        P67         =           P6^7;  // 定义P6.7引脚

/* USB控制器相关寄存器 */
sfr         USBDAT      =           0xec;   /* USB数据寄存器 - 用于USB数据的读写操作 */

/* 中断相关寄存器 */
sfr         IP3H        =           0xee;   /* 中断优先级控制寄存器3高8位 - 用于设置高级中断优先级 */
sfr         AUXINTIF    =           0xef;   /* 辅助中断标志寄存器 - 包含各种辅助功能的中断标志位 */

/* 通用寄存器 */
sfr         B           =           0xf0;   /* B寄存器 - 8051架构中的通用寄存器,常用于乘除法运算 */

/* USB控制器相关寄存器 */
sfr         USBCON      =           0xf4;   /* USB控制寄存器 - 配置USB工作模式和状态控制 */

/* 通用寄存器 */
sfr         IAP_TPS     =           0xf5;   /* IAP时间参数寄存器 - 用于设置IAP(在应用编程)操作的时序参数 */

/* I/O端口定义 */
sfr         P7          =           0xf8;   /* 端口7寄存器 - 8位I/O端口,可单独访问每个引脚 */
sbit        P70         =           P7^0;   /* 端口7第0位 - 可单独操作的I/O引脚 */
sbit        P71         =           P7^1;   /* 端口7第1位 - 可单独操作的I/O引脚 */
sbit        P72         =           P7^2;   /* 端口7第2位 - 可单独操作的I/O引脚 */
sbit        P73         =           P7^3;   /* 端口7第3位 - 可单独操作的I/O引脚 */
sbit        P74         =           P7^4;   /* 端口7第4位 - 可单独操作的I/O引脚 */
sbit        P75         =           P7^5;   /* 端口7第5位 - 可单独操作的I/O引脚 */
sbit        P76         =           P7^6;   /* 端口7第6位 - 可单独操作的I/O引脚 */
sbit        P77         =           P7^7;   /* 端口7第7位 - 可单独操作的I/O引脚 */

/**
 * USB地址寄存器 (USB Address Register)
 * 地址: 0xFC
 * 功能: 用于配置USB端点地址和控制USB数据传输的地址相关操作
 * 说明: 通过该寄存器可以设置USB设备的地址,影响USB通信的目标地址
 */
sfr         USBADR      =           0xfc;

/**
 * 复位配置寄存器 (Reset Configuration Register)
 * 地址: 0xFF
 * 功能: 控制和配置单片机的复位源和复位行为
 * 说明: 可以设置哪些事件会触发复位,以及复位后的系统状态
 */
sfr         RSTCFG      =           0xff;

//如下特殊功能寄存器位于扩展RAM区域
//访问这些寄存器,需先将P_SW2的BIT7设置为1,才可正常读写

/
//FF00H-FFFFH
/

/
//FE00H-FEFFH
/

/* 时钟源选择寄存器 */
#define     CLKSEL                  (*(unsigned char volatile xdata *)0xfe00)
/* 功能:选择系统主时钟源及配置相关时钟输出
 * 位定义:
 *   BIT7-BIT6: 主时钟源选择 (00=内部高精度IRC, 01=外部晶体, 10=32KHz振荡器, 11=保留)
 *   BIT5: 时钟输出使能位
 *   BIT4-BIT0: 时钟分频系数设置
 */


/* 时钟分频寄存器 */
#define     CLKDIV                  (*(unsigned char volatile xdata *)0xfe01)
/* 功能:设置系统时钟分频系数
 * 取值范围:0-255
 * 系统时钟 = 时钟源频率 / (CLKDIV + 1)
 */


/* 内部高精度RC振荡器控制寄存器 */
#define     HIRCCR                  (*(unsigned char volatile xdata *)0xfe02)
/* 功能:控制内部高精度RC振荡器(通常为24-33MHz)
 * 位定义:
 *   BIT7: HIRC使能位 (1=使能, 0=禁用)
 *   BIT6: HIRC就绪标志位 (1=就绪, 0=未就绪)
 *   BIT5: HIRC频率微调方向
 *   BIT4-BIT0: HIRC频率微调值
 */

/* 外部晶振控制寄存器 */
#define     XOSCCR                  (*(unsigned char volatile xdata *)0xfe03)
/* 功能:控制外部晶振(XTAL)工作
 * 位定义:
 *   BIT7: XOSC使能位 (1=使能, 0=禁用)
 *   BIT6: XOSC就绪标志位 (1=就绪, 0=未就绪)
 *   BIT5: 外部时钟输入模式选择
 *   BIT4-BIT3: 晶振启动增益控制
 *   BIT2-BIT0: 保留
 */


/* 32KHz内部RC振荡器控制寄存器 */
#define     IRC32KCR                (*(unsigned char volatile xdata *)0xfe04)
/* 功能:控制内部32KHz RC振荡器
 * 位定义:
 *   BIT7: IRC32K使能位 (1=使能, 0=禁用)
 *   BIT6: IRC32K就绪标志位 (1=就绪, 0=未就绪)
 *   BIT5-BIT0: IRC32K频率微调值
 */

/* 主时钟输出控制寄存器 */
#define     MCLKOCR                 (*(unsigned char volatile xdata *)0xfe05)
/* 功能:控制主时钟输出(MCLKO)引脚
 * 位定义:
 *   BIT7: MCLKO输出使能位
 *   BIT6-BIT4: 输出时钟源选择
 *   BIT3-BIT0: 输出时钟分频系数
 */

/* 内部RC振荡器数据缓冲区 */
#define     IRCDB                   (*(unsigned char volatile xdata *)0xfe06)
/* 功能:存储内部RC振荡器的校准数据
 * 说明:通常由ISP编程时自动写入,用户一般不需要修改
 */

/* 48MHz内部RC振荡器控制寄存器 */
#define     IRC48MCR                (*(unsigned char volatile xdata *)0xfe07)
/* 功能:控制内部48MHz RC振荡器(用于USB等高速通信)
 * 位定义:
 *   BIT7: IRC48M使能位 (1=使能, 0=禁用)
 *   BIT6: IRC48M就绪标志位 (1=就绪, 0=未就绪)
 *   BIT5: IRC48M频率微调方向
 *   BIT4-BIT0: IRC48M频率微调值
 */

/* 32.768KHz外部晶振控制寄存器 */
#define     X32KCR                  (*(unsigned char volatile xdata *)0xfe08)
/* 功能:控制外部32.768KHz晶振(通常用于RTC)
 * 位定义:
 *   BIT7: X32K使能位 (1=使能, 0=禁用)
 *   BIT6: X32K就绪标志位 (1=就绪, 0=未就绪)
 *   BIT5: X32K低功耗模式
 *   BIT4-BIT0: 保留
 */

/* 高速时钟分频寄存器 */
#define     HSCLKDIV                (*(unsigned char volatile xdata *)0xfe0b)
/* 功能:设置高速外设时钟分频系数
 * 说明:用于USB、SPI等高速外设的时钟分频
 */

/* 端口0上拉电阻控制寄存器 */
#define     P0PU                    (*(unsigned char volatile xdata *)0xfe10)
/* 功能:控制P0端口各引脚的内部上拉电阻
 * 位定义:
 *   BIT7: P0.7上拉控制 (1=使能上拉, 0=禁用上拉)
 *   BIT6: P0.6上拉控制
 *   ...
 *   BIT0: P0.0上拉控制
 */

/* 端口1上拉电阻控制寄存器 */
#define     P1PU                    (*(unsigned char volatile xdata *)0xfe11)
/* 功能:控制P1端口各引脚的内部上拉电阻
 * 位定义:
 *   BIT7: P1.7上拉控制
 *   ...
 *   BIT0: P1.0上拉控制
 */

/* 端口2上拉电阻控制寄存器 */
#define     P2PU                    (*(unsigned char volatile xdata *)0xfe12)
/* 功能:控制P2端口各引脚的内部上拉电阻
 * 位定义:
 *   BIT7: P2.7上拉控制
 *   ...
 *   BIT0: P2.0上拉控制
 */

/* 端口3上拉电阻控制寄存器 */
#define     P3PU                    (*(unsigned char volatile xdata *)0xfe13)
/* 功能:控制P3端口各引脚的内部上拉电阻
 * 位定义:
 *   BIT7: P3.7上拉控制
 *   ...
 *   BIT0: P3.0上拉控制
 */

/* 端口4上拉电阻控制寄存器 */
#define     P4PU                    (*(unsigned char volatile xdata *)0xfe14)
/* 功能:控制P4端口各引脚的内部上拉电阻
 * 位定义:
 *   BIT7: P4.7上拉控制
 *   ...
 *   BIT0: P4.0上拉控制
 */

/* 端口5上拉电阻控制寄存器 */
#define     P5PU                    (*(unsigned char volatile xdata *)0xfe15)
/* 功能:控制P5端口各引脚的内部上拉电阻
 * 位定义:
 *   BIT7: P5.7上拉控制
 *   ...
 *   BIT0: P5.0上拉控制
 */

/* 端口6上拉电阻控制寄存器 */
#define     P6PU                    (*(unsigned char volatile xdata *)0xfe16)
/* 功能:控制P6端口各引脚的内部上拉电阻
 * 位定义:
 *   BIT7: P6.7上拉控制
 *   ...
 *   BIT0: P6.0上拉控制
 */

/* 端口7上拉电阻控制寄存器 */
#define     P7PU                    (*(unsigned char volatile xdata *)0xfe17)
/* 功能:控制P7端口各引脚的内部上拉电阻
 * 位定义:
 *   BIT7: P7.7上拉控制
 *   ...
 *   BIT0: P7.0上拉控制
 */

/* 使用说明:
 * 1. 当引脚配置为输入模式时,启用上拉可防止引脚浮空
 * 2. 对于推挽输出模式,上拉设置无效
 * 3. 外部已连接上拉电阻的情况下,可禁用内部上拉避免冲突
 * 4. 低功耗应用中,未使用的引脚建议禁用上拉以降低功耗
 */

/* 端口0开漏输出控制寄存器 */
#define     P0NCS                   (*(unsigned char volatile xdata *)0xfe18)
/* 功能:控制P0端口各引脚的开漏输出模式
 * 位定义:
 *   BIT7: P0.7开漏控制 (1=开漏输出, 0=推挽/准双向)
 *   BIT6: P0.6开漏控制
 *   ...
 *   BIT0: P0.0开漏控制
 * 说明:开漏输出模式下,引脚只能输出低电平或高阻态,需外部上拉电阻
 */

/* 端口1开漏输出控制寄存器 */
#define     P1NCS                   (*(unsigned char volatile xdata *)0xfe19)
/* 功能:控制P1端口各引脚的开漏输出模式
 * 位定义:
 *   BIT7: P1.7开漏控制
 *   ...
 *   BIT0: P1.0开漏控制
 */

/* 端口2开漏输出控制寄存器 */
#define     P2NCS                   (*(unsigned char volatile xdata *)0xfe1a)
/* 功能:控制P2端口各引脚的开漏输出模式
 * 位定义:
 *   BIT7: P2.7开漏控制
 *   ...
 *   BIT0: P2.0开漏控制
 */

/* 端口3开漏输出控制寄存器 */
#define     P3NCS                   (*(unsigned char volatile xdata *)0xfe1b)
/* 功能:控制P3端口各引脚的开漏输出模式
 * 位定义:
 *   BIT7: P3.7开漏控制
 *   ...
 *   BIT0: P3.0开漏控制
 */

/* 端口4开漏输出控制寄存器 */
#define     P4NCS                   (*(unsigned char volatile xdata *)0xfe1c)
/* 功能:控制P4端口各引脚的开漏输出模式
 * 位定义:
 *   BIT7: P4.7开漏控制
 *   ...
 *   BIT0: P4.0开漏控制
 */

/* 端口5开漏输出控制寄存器 */
#define     P5NCS                   (*(unsigned char volatile xdata *)0xfe1d)
/* 功能:控制P5端口各引脚的开漏输出模式
 * 位定义:
 *   BIT7: P5.7开漏控制
 *   ...
 *   BIT0: P5.0开漏控制
 */

/* 端口6开漏输出控制寄存器 */
#define     P6NCS                   (*(unsigned char volatile xdata *)0xfe1e)
/* 功能:控制P6端口各引脚的开漏输出模式
 * 位定义:
 *   BIT7: P6.7开漏控制
 *   ...
 *   BIT0: P6.0开漏控制
 */

/* 端口7开漏输出控制寄存器 */
#define     P7NCS                   (*(unsigned char volatile xdata *)0xfe1f)
/* 功能:控制P7端口各引脚的开漏输出模式
 * 位定义:
 *   BIT7: P7.7开漏控制
 *   ...
 *   BIT0: P7.0开漏控制
 */

/* 使用说明:
 * 1. 开漏输出模式常用于I2C、SMBus等需要线与功能的总线接口
 * 2. 配置为开漏模式后,需外部上拉电阻才能实现高电平输出
 * 3. 开漏输出高阻态时,引脚电平由外部电路决定
 * 4. 需配合端口模式寄存器(PnM1/PnM0)共同配置I/O模式
 */

/* 端口0输出速度控制寄存器 */
#define     P0SR                    (*(unsigned char volatile xdata *)0xfe20)
/* 功能:控制P0端口各引脚的输出驱动速度
 * 位定义:
 *   BIT7-BIT6: P0.7输出速度控制 (00=低速, 01=中速, 10=高速, 11=超高速)
 *   BIT5-BIT4: P0.6输出速度控制
 *   ...
 *   BIT1-BIT0: P0.0输出速度控制
 * 说明:较高的输出速度可提高信号上升/下降沿速率,但会增加EMI和功耗
 */

/* 端口1输出速度控制寄存器 */
#define     P1SR                    (*(unsigned char volatile xdata *)0xfe21)
/* 功能:控制P1端口各引脚的输出驱动速度
 * 位定义:
 *   BIT7-BIT6: P1.7输出速度控制
 *   ...
 *   BIT1-BIT0: P1.0输出速度控制
 */

/* 端口2输出速度控制寄存器 */
#define     P2SR                    (*(unsigned char volatile xdata *)0xfe22)
/* 功能:控制P2端口各引脚的输出驱动速度
 * 位定义:
 *   BIT7-BIT6: P2.7输出速度控制
 *   ...
 *   BIT1-BIT0: P2.0输出速度控制
 */

/* 端口3输出速度控制寄存器 */
#define     P3SR                    (*(unsigned char volatile xdata *)0xfe23)
/* 功能:控制P3端口各引脚的输出驱动速度
 * 位定义:
 *   BIT7-BIT6: P3.7输出速度控制
 *   ...
 *   BIT1-BIT0: P3.0输出速度控制
 */

/* 端口4输出速度控制寄存器 */
#define     P4SR                    (*(unsigned char volatile xdata *)0xfe24)
/* 功能:控制P4端口各引脚的输出驱动速度
 * 位定义:
 *   BIT7-BIT6: P4.7输出速度控制
 *   ...
 *   BIT1-BIT0: P4.0输出速度控制
 */

/* 端口5输出速度控制寄存器 */
#define     P5SR                    (*(unsigned char volatile xdata *)0xfe25)
/* 功能:控制P5端口各引脚的输出驱动速度
 * 位定义:
 *   BIT7-BIT6: P5.7输出速度控制
 *   ...
 *   BIT1-BIT0: P5.0输出速度控制
 */

/* 端口6输出速度控制寄存器 */
#define     P6SR                    (*(unsigned char volatile xdata *)0xfe26)
/* 功能:控制P6端口各引脚的输出驱动速度
 * 位定义:
 *   BIT7-BIT6: P6.7输出速度控制
 *   ...
 *   BIT1-BIT0: P6.0输出速度控制
 */

/* 端口7输出速度控制寄存器 */
#define     P7SR                    (*(unsigned char volatile xdata *)0xfe27)
/* 功能:控制P7端口各引脚的输出驱动速度
 * 位定义:
 *   BIT7-BIT6: P7.7输出速度控制
 *   ...
 *   BIT1-BIT0: P7.0输出速度控制
 */

/* 使用说明:
 * 1. 高速模式适用于高频信号传输,但可能增加电磁干扰
 * 2. 低速模式可降低功耗和EMI,适合低频或对噪声敏感的应用
 * 3. 每个引脚可独立配置输出速度,以优化系统性能
 * 4. 对于容性负载或长线驱动,建议提高输出速度以保证信号质量
 */

/* 端口0驱动能力控制寄存器 */
#define     P0DR                    (*(unsigned char volatile xdata *)0xfe28)
/* 功能:控制P0端口各引脚的输出驱动电流能力
 * 位定义:
 *   BIT7: P0.7驱动能力控制 (1=强驱动, 0=标准驱动)
 *   BIT6: P0.6驱动能力控制
 *   ...
 *   BIT0: P0.0驱动能力控制
 * 说明:强驱动模式可提供更大的输出电流,适用于驱动LED等负载
 */

/* 端口1驱动能力控制寄存器 */
#define     P1DR                    (*(unsigned char volatile xdata *)0xfe29)
/* 功能:控制P1端口各引脚的输出驱动电流能力
 * 位定义:
 *   BIT7: P1.7驱动能力控制
 *   ...
 *   BIT0: P1.0驱动能力控制
 */

/* 端口2驱动能力控制寄存器 */
#define     P2DR                    (*(unsigned char volatile xdata *)0xfe2a)
/* 功能:控制P2端口各引脚的输出驱动电流能力
 * 位定义:
 *   BIT7: P2.7驱动能力控制
 *   ...
 *   BIT0: P2.0驱动能力控制
 */

/* 端口3驱动能力控制寄存器 */
#define     P3DR                    (*(unsigned char volatile xdata *)0xfe2b)
/* 功能:控制P3端口各引脚的输出驱动电流能力
 * 位定义:
 *   BIT7: P3.7驱动能力控制
 *   ...
 *   BIT0: P3.0驱动能力控制
 */

/* 端口4驱动能力控制寄存器 */
#define     P4DR                    (*(unsigned char volatile xdata *)0xfe2c)
/* 功能:控制P4端口各引脚的输出驱动电流能力
 * 位定义:
 *   BIT7: P4.7驱动能力控制
 *   ...
 *   BIT0: P4.0驱动能力控制
 */

/* 端口5驱动能力控制寄存器 */
#define     P5DR                    (*(unsigned char volatile xdata *)0xfe2d)
/* 功能:控制P5端口各引脚的输出驱动电流能力
 * 位定义:
 *   BIT7: P5.7驱动能力控制
 *   ...
 *   BIT0: P5.0驱动能力控制
 */

/* 端口6驱动能力控制寄存器 */
#define     P6DR                    (*(unsigned char volatile xdata *)0xfe2e)
/* 功能:控制P6端口各引脚的输出驱动电流能力
 * 位定义:
 *   BIT7: P6.7驱动能力控制
 *   ...
 *   BIT0: P6.0驱动能力控制
 */

/* 端口7驱动能力控制寄存器 */
#define     P7DR                    (*(unsigned char volatile xdata *)0xfe2f)
/* 功能:控制P7端口各引脚的输出驱动电流能力
 * 位定义:
 *   BIT7: P7.7驱动能力控制
 *   ...
 *   BIT0: P7.0驱动能力控制
 */

/* 使用说明:
 * 1. 强驱动模式可提供更大的拉/灌电流能力(典型值约20mA)
 * 2. 标准驱动模式适合常规数字信号传输(典型值约8mA)
 * 3. 所有引脚默认处于标准驱动模式
 * 4. 过多使用强驱动模式可能增加系统功耗和电磁干扰
 * 5. 驱动LED等大功率负载时,建议使用外部驱动电路
 */

/* 端口0中断使能控制寄存器 */
#define     P0IE                    (*(unsigned char volatile xdata *)0xfe30)
/* 功能:控制P0端口各引脚的外部中断使能
 * 位定义:
 *   BIT7: P0.7中断使能 (1=使能, 0=禁用)
 *   BIT6: P0.6中断使能
 *   ...
 *   BIT0: P0.0中断使能
 * 说明:配合PIOIF寄存器使用,需设置相应的中断触发方式
 */

/* 端口1中断使能控制寄存器 */
#define     P1IE                    (*(unsigned char volatile xdata *)0xfe31)
/* 功能:控制P1端口各引脚的外部中断使能
 * 位定义:
 *   BIT7: P1.7中断使能
 *   ...
 *   BIT0: P1.0中断使能
 */

/* 端口2中断使能控制寄存器 */
#define     P2IE                    (*(unsigned char volatile xdata *)0xfe32)
/* 功能:控制P2端口各引脚的外部中断使能
 * 位定义:
 *   BIT7: P2.7中断使能
 *   ...
 *   BIT0: P2.0中断使能
 */

/* 端口3中断使能控制寄存器 */
#define     P3IE                    (*(unsigned char volatile xdata *)0xfe33)
/* 功能:控制P3端口各引脚的外部中断使能
 * 位定义:
 *   BIT7: P3.7中断使能
 *   ...
 *   BIT0: P3.0中断使能
 */

/* 端口4中断使能控制寄存器 */
#define     P4IE                    (*(unsigned char volatile xdata *)0xfe34)
/* 功能:控制P4端口各引脚的外部中断使能
 * 位定义:
 *   BIT7: P4.7中断使能
 *   ...
 *   BIT0: P4.0中断使能
 */

/* 端口5中断使能控制寄存器 */
#define     P5IE                    (*(unsigned char volatile xdata *)0xfe35)
/* 功能:控制P5端口各引脚的外部中断使能
 * 位定义:
 *   BIT7: P5.7中断使能
 *   ...
 *   BIT0: P5.0中断使能
 */

/* 端口6中断使能控制寄存器 */
#define     P6IE                    (*(unsigned char volatile xdata *)0xfe36)
/* 功能:控制P6端口各引脚的外部中断使能
 * 位定义:
 *   BIT7: P6.7中断使能
 *   ...
 *   BIT0: P6.0中断使能
 */

/* 端口7中断使能控制寄存器 */
#define     P7IE                    (*(unsigned char volatile xdata *)0xfe37)
/* 功能:控制P7端口各引脚的外部中断使能
 * 位定义:
 *   BIT7: P7.7中断使能
 *   ...
 *   BIT0: P7.0中断使能
 */

/* 使用说明:
 * 1. 需配合PIOCR寄存器设置中断触发方式(上升沿/下降沿/双边沿/低电平)
 * 2. 中断标志位位于PIOIF寄存器中,中断处理后需手动清除
 * 3. 所有引脚默认禁用中断
 * 4. 外部中断优先级由PIPO和PIPH寄存器共同控制
 * 5. 低电平触发的中断需在中断处理函数中确保引脚电平恢复高电平
 */

/* LCD接口配置寄存器 */
#define     LCMIFCFG                (*(unsigned char volatile xdata *)0xfe50)
/* 功能:配置LCD接口的基本工作模式和参数
 * 位定义:
 *   BIT7-BIT6: 接口类型选择 (00=8080并行, 01=SPI, 10=I2C, 11=保留)
 *   BIT5: 数据传输方向控制 (1=双向, 0=单向)
 *   BIT4: 自动刷新使能
 *   BIT3-BIT2: 数据宽度设置 (00=8位, 01=16位, 10=9位, 11=保留)
 *   BIT1: 帧同步信号极性
 *   BIT0: 时钟信号极性
 */

/* LCD接口配置寄存器2 */
#define     LCMIFCFG2               (*(unsigned char volatile xdata *)0xfe51)
/* 功能:配置LCD接口的高级参数
 * 位定义:
 *   BIT7: 硬件流控制使能
 *   BIT6: 双缓冲模式使能
 *   BIT5: 自动地址递增模式
 *   BIT4: 数据端对齐方式
 *   BIT3: 帧同步信号使能
 *   BIT2: 行同步信号极性
 *   BIT1: 像素时钟分频系数选择
 *   BIT0: 保留
 */

/* LCD接口控制寄存器 */
#define     LCMIFCR                 (*(unsigned char volatile xdata *)0xfe52)
/* 功能:控制LCD接口的操作和状态
 * 位定义:
 *   BIT7: 接口使能位 (1=使能, 0=禁用)
 *   BIT6: 开始数据传输
 *   BIT5: 复位接口
 *   BIT4: 暂停传输
 *   BIT3: 清空中断标志
 *   BIT2: DMA传输使能
 *   BIT1: 自动刷新开始
 *   BIT0: 自动刷新停止
 */

/* LCD接口状态寄存器 */
#define     LCMIFSTA                (*(unsigned char volatile xdata *)0xfe53)
/* 功能:反映LCD接口当前的工作状态
 * 位定义:
 *   BIT7: 接口忙标志 (1=忙, 0=空闲)
 *   BIT6: 传输完成标志
 *   BIT5: 数据就绪标志
 *   BIT4: FIFO溢出标志
 *   BIT3: FIFO欠载标志
 *   BIT2: 帧错误标志
 *   BIT1: 行错误标志
 *   BIT0: 奇偶校验错误标志
 */

/* LCD接口数据寄存器低字节 */
#define     LCMIFDATL               (*(unsigned char volatile xdata *)0xfe54)
/* 功能:存储发送到LCD的数据的低8位
 * 说明:
 *   - 当数据宽度为8位时,直接存储数据
 *   - 当数据宽度为16位时,存储低字节数据
 *   - 写操作:向LCD发送数据
 *   - 读操作:从LCD接收数据
 */

/* LCD接口数据寄存器高字节 */
#define     LCMIFDATH               (*(unsigned char volatile xdata *)0xfe55)
/* 功能:存储发送到LCD的数据的高8位
 * 说明:
 *   - 仅在16位数据宽度模式下有效
 *   - 写操作:向LCD发送数据
 *   - 读操作:从LCD接收数据
 */

/* 使用说明:
 * 1. 使用LCD接口前需先配置LCMIFCFG和LCMIFCFG2寄存器
 * 2. 使能接口后通过LCMIFCR控制数据传输
 * 3. 读取LCMIFSTA可获取接口当前状态
 * 4. 数据传输通过LCMIFDATL和LCMIFDATH寄存器进行
 * 5. 不同LCD控制器可能需要不同的时序和通信协议配置
 */

/* RTC控制寄存器 */
#define     RTCCR                   (*(unsigned char volatile xdata *)0xfe60)
/* 功能:控制RTC的工作模式和时钟源
 * 位定义:
 *   BIT7: RTC使能位 (1=使能RTC, 0=禁用)
 *   BIT6: 闹钟中断使能
 *   BIT5: 秒中断使能
 *   BIT4: 亚秒中断使能
 *   BIT3: 时钟源选择 (0=内部32KHz RC, 1=外部32.768KHz晶振)
 *   BIT2: 夏令时使能
 *   BIT1: RTC复位
 *   BIT0: 保留
 */

/* RTC配置寄存器 */
#define     RTCCFG                  (*(unsigned char volatile xdata *)0xfe61)
/* 功能:配置RTC的工作参数
 * 位定义:
 *   BIT7-BIT6: 时间格式选择 (00=24小时制, 01=12小时制AM, 10=12小时制PM)
 *   BIT5: 日期格式选择 (0=公历, 1=农历)
 *   BIT4: 闹钟匹配模式 (0=精确匹配, 1=忽略秒匹配)
 *   BIT3-BIT0: 亚秒分频系数 (0-15, 对应1/128s ~ 1/8192s)
 */

/* RTC中断使能寄存器 */
#define     RTCIEN                  (*(unsigned char volatile xdata *)0xfe62)
/* 功能:使能RTC相关中断
 * 位定义:
 *   BIT7: 保留
 *   BIT6: 闹钟中断使能
 *   BIT5: 秒中断使能
 *   BIT4: 亚秒中断使能
 *   BIT3-BIT0: 保留
 */

/* RTC中断标志寄存器 */
#define     RTCIF                   (*(unsigned char volatile xdata *)0xfe63)
/* 功能:记录RTC中断事件
 * 位定义:
 *   BIT7: 保留
 *   BIT6: 闹钟中断标志 (置1时触发中断,需软件清零)
 *   BIT5: 秒中断标志
 *   BIT4: 亚秒中断标志
 *   BIT3-BIT0: 保留
 */

/* 闹钟小时寄存器 (BCD码) */
#define     ALAHOUR                 (*(unsigned char volatile xdata *)0xfe64)
/* 功能:设置闹钟小时值 (00-23或01-12,取决于RTCCFG设置) */

/* 闹钟分钟寄存器 (BCD码) */
#define     ALAMIN                  (*(unsigned char volatile xdata *)0xfe65)
/* 功能:设置闹钟分钟值 (00-59) */

/* 闹钟秒寄存器 (BCD码) */
#define     ALASEC                  (*(unsigned char volatile xdata *)0xfe66)
/* 功能:设置闹钟秒值 (00-59) */

/* 闹钟亚秒寄存器 (BCD码) */
#define     ALASSEC                 (*(unsigned char volatile xdata *)0xfe67)
/* 功能:设置闹钟亚秒值 (00-99,取决于亚秒分频系数) */

/* 初始化年份寄存器 (BCD码,2000-2099对应00-99) */
#d

相关文章:

STC8H系列单片机STC8H_H头文件功能注释

#ifndef __STC8H_H__ // 条件编译:如果未定义__STC8H_H__宏 #define __STC8H_H__ // 则定义该宏,防止头文件被重复包含 / //包含本头文件后,不用另外再包含"REG51.H" // 提示:本头文件已包含基本寄存器定义 sfr P0 = …...

C#中BackgroundWorker的概念与用法详解

一、BackgroundWorker 概念 BackgroundWorker 是 C# 中用于在后台线程中运行操作的组件,它允许你在不影响用户界面(UI)响应能力的情况下执行耗时操作。 它位于 System.ComponentModel 命名空间内,主要用于 Windows 窗体应用程序中…...

RM算法的地下宫殿

证: X n 1 X n β n ( ξ n − X n ) ( 1 − β n ) X n β n ξ n X_{n1}X_n\beta_n(\xi_n-X_n)(1-\beta_n)X_n\beta_n\xi_n Xn1​Xn​βn​(ξn​−Xn​)(1−βn​)Xn​βn​ξn​。由数学归纳法可得 X n 1 ∑ j 1 n ξ j β j ∏ i j n − 1 ( 1 − β…...

WEB安全--Java安全--LazyMap_CC1利用链

一、前言 该篇是基于WEB安全--Java安全--CC1利用链-CSDN博客的补充,上篇文章利用的是TransformedMap类,而CC链的原作者是利用的LazyMap类作为介质进行的触发。 所以本文将分析国外原作者在ysoserial commonscollections1中给出的CC1利用链。 二、回顾梳…...

【Matlab】最新版2025a发布,深色模式、Copilot编程助手上线!

文章目录 一、软件安装1.1 系统配置要求1.2 安装 二、新版功能探索2.1 界面图标和深色主题2.2 MATLAB Copilot AI助手2.3 绘图区升级2.4 simulink2.5 更多 延迟一个月,终于发布了🤭。 一、软件安装 1.1 系统配置要求 现在的电脑都没问题,老…...

[网络升级指南] 服务器网卡/带宽如何选?1GbE vs 10GbE vs 25GbE+ 性能与成本深度解析 (2025)

更多服务器知识,尽在hostol.com 嘿,各位服务器“舰长”们!当你为你的“星际飞船”(服务器)配备了顶级的 CPU“引擎”、超大的内存“能源核心”、以及光速 SSD“曲速引擎”之后,是不是觉得它就能在数字宇宙…...

Nginx与Tomcat负载均衡集群配置指南

目录 一、资源清单 二、基础环境 三、安装配置Tomcat 四、安装配置Nginx 一、资源清单 主机 操作系统 IP地址 tomcat1 OpenEuler24.03 192.168.16.142 tomcat2 OpenEuler24.03 192.168.16.143 Nginx OpenEuler24.03 192.168.16.144 二、基础环境 hostnamectl …...

已解决(亲测有效!):安装部署Docker Deskpot之后启动出现Docker Engine Stopped!

文章目录 已解决:安装部署Docker Deskpot之后启动出现Docker Engine Stopped!个人环境介绍自己的解决问题思路(详细过程附截图)1.打开控制面板2.点击程序和功能3.点击启动或关闭windows功能4.Hyper-V5.右键菜单栏的windows图标点击…...

C++多态实现的必要条件剖析

在C中,多态的一个必要条件确实是通过基类的指针或引用调用虚函数。这一要求背后的原因与C如何实现动态绑定(运行时多态)密切相关。下面详细解释了为什么需要使用基类的指针或引用来实现多态。 动态绑定与静态绑定 静态绑定(编译期…...

25.5.15

没有比水题更令人开心的事情了 典型的并查集题目,并查集分为并和查,并就是把有关系的父亲根结点设为同一个,查就是在成功构造后对其进行查询 查通过递归实现 if (x f[x])return x; return f[x] find(f[x]); 由于并查集的特点&#xff0…...

WebSocket:实时通信(如聊天应用)从零到一的深度解析

简介 在现代互联网应用中,实时通信已成为不可或缺的核心功能。从在线聊天到金融数据监控,从协同办公到在线游戏,实时性需求推动了WebSocket技术的广泛应用。本文将从底层协议原理出发,结合企业级开发场景,系统讲解WebSocket的实现机制、实战技巧与优化策略。通过完整的代…...

二程运输的干散货船路径优化

在二程运输中,干散货船需要将货物从一个港口运输到多个不同的目的地港口。路径优化的目标是在满足货物运输需求、船舶航行限制等条件下,确定船舶的最佳航行路线,以最小化运输成本、运输时间或其他相关的优化目标。 影响因素 港口布局与距离:各个港口之间的地理位置和距离…...

【Java ee初阶】http(1)

HTTP 全称为“超文本传输协议”,由名字可知,这是一个基于文本格式的协议,而TCP,UDP,以太网,IP...都是基于二进制格式的协议。 如何区别该协议是基于哪种格式的协议? 形如这种协议格式&#xf…...

《Deepseek从入门到精通》清华大学中文pdf完整版

资源介绍: 《DeepSeek:从入门到精通》是由清华大学新闻与传播学院新媒体研究中心元宇宙文化实验室的精心撰写的一份专业文档。该文档以通俗易懂的方 式,全面介绍了DeepSeek的使用方法,为用户提供了极具价值的指导。 这份文档内容丰…...

【图片识别工具】批量单据识别批量重命名,批量OCR识别图片文字并重命名,批量改名工具的使用步骤和注意事项

一、适用场景 ​​财务与发票管理​​:企业需处理大量电子发票或扫描件,通过OCR识别发票代码、金额等关键信息,自动重命名为发票号_金额.pdf格式,便于归档与税务审计。 ​​物流单据处理​​:物流公司需从运单中提取单…...

重磅发布!OpenAI 推出最新模型 GPT-4.1 系列!

今日凌晨,OpenAI宣布开放全新模型GPT-4.1,并于即日起在ChatGPT中投入使用。 超长上下文与卓越编码能力 GPT-4.1作为OpenAI的最新模型,支持长达100万tokens的上下文,是OpenAI首次发布的长窗口模型。相较于前代,GPT-4.1…...

游戏引擎学习第281天:在房间之间为摄像机添加动画效果

回顾并为今天的内容定下基调 这次我们要继续深入处理实体系统。在前一阶段对实体系统做了一些很酷的改动,但现在到了要认真面对和完善它的时候。 今天的主要目标是修复并优化摄像机在房间之间移动时的逻辑。在上一次的实现中,我们重新启用了基于房间的…...

机器学习 --- 模型选择与调优

机器学习 — 模型选择与调优 文章目录 机器学习 --- 模型选择与调优一,交叉验证1.1 保留交叉验证HoldOut1.2 K-折交叉验证(K-fold)1.3 分层k-折交叉验证Stratified k-fold 二,超参数搜索三,鸢尾花数据集示例四,现实世界数据集示例…...

PostgreSQL pgrowlocks 扩展详解

一、简介 pgrowlocks 是 PostgreSQL 官方提供的扩展模块,用于查看指定表中每一行当前的行级锁(Row Lock)信息。它非常适用于: 并发冲突排查行级锁等待分析死锁前兆探测热点数据行分析 二、安装与启用 1. 安装前提(…...

Makefile 详解

Makefile 是一个用于自动化构建过程的脚本文件,主要用于管理源代码的编译和链接过程。它定义了项目中的依赖关系以及如何从源文件生成目标文件。 基本概念 Make:一个构建自动化工具,读取 Makefile 中的指令目标(Target):要生成的…...

IntelliJ IDEA 集成AI编程助手全解析:从Copilot到GPT-4o Mini的实践

目录 AI编程助手的演进与核心价值GitHub Copilot深度集成指南国产新星DeepSeek配置实战GPT-4o Mini低成本接入方案三大助手对比与场景适配企业级安全与本地化部署未来发展趋势与开发者启示1. AI编程助手的演进与核心价值 1.1 技术演进图谱 #mermaid-svg-LwYPrW2Y2Pqvqgf0 {fon…...

wps excel将表格输出pdf时所有列在一张纸上

记录:wps excel将表格输出pdf时所有列在一张纸上 1,调整缩放比例 2,将表格的所有铺满到这套虚线...

【开源Agent框架】OWL:面向现实任务自动化的多智能体协作框架深度解析

一、基本介绍 1.1 项目概述 OWL(Optimized Workforce Learning)是基于CAMEL-AI框架构建的创新型多智能体协作系统,旨在通过动态智能体交互实现复杂任务的自动化处理。项目在GAIA基准测试中以69.09的平均分位列开源框架榜首,展现了强大的任务处理能力。 技术特性矩阵: 多…...

120页WORD方案 | 2025企业数字化转型AI大模型数字底座项目设计方案

这份文档是一份关于企业数字化转型AI大模型数字底座项目的设计方案,涵盖了从项目概述、业务需求分析到技术架构设计等多个方面。它详细阐述了企业为何需要构建AI大模型底座,以及如何通过这一底座实现智能化决策支持、业务流程优化和客户体验提升。方案中…...

Vue3 本地环境 Vite 与生产环境 Nginx 反向代理配置方法汇总【反向代理篇】

文章目录 一、前言二、问题场景三、开发环境配置(Vite)四、生产环境配置(Nginx)4.1 初始错误配置4.2 正确配置方案4.3 配置解析4.4高级配置选项 五、常见问题排查六、开发环境 vs 生产环境对比七、总结 一、前言 在前后端分离架构…...

机器视觉对位手机中框点胶的应用

在手机制造的精密世界里,每一个环节都关乎着产品的最终品质,而手机中框点胶工艺更是其中关键一环。点胶不仅起到固定内部组件、增强结构强度的作用,还影响着手机的防水、防尘性能。然而,随着手机设计日益轻薄化、复杂化&#xff0…...

Elasticsearch性能调优全攻略:从日志分析到集群优化

#作者:猎人 文章目录 前言搜索慢查询日志索引慢写入日志性能调优之基本优化建议性能调优之索引写入性能优化提升es集群写入性能方法:性能调优之集群读性能优化性能调优之搜索性能优化性能调优之GC优化性能调优之路由优化性能调优之分片优化 前言 es里面…...

Electron 主进程中使用Worker来创建不同间隔的定时器实现过程

背景 目前主进程使用 timer.setInterval 来做间隔任务执行,但是总有用户反馈养号卡主不执行了,或者某个操作不执行了,为了排除主进程的运行造成 setInterval 阻塞可能,将 setInterval 单独处理,可以排除主进程对定时器…...

用户安全架构设计

一、主动踢出,被动踢出 二、密码设计策略:密码复杂度,密码安全检查,密码失效设计,账号锁定设计,密码存储和传输加密 三、密码找回策略:密保问题,下行短信验证码,上行短信…...

2025年黑客扫段攻击激增:如何构建智能防御体系保障业务安全?

引言 2025年,随着全球物联网设备突破500亿台,黑客利用自动化工具发起的扫段攻击(IP段扫描漏洞利用)已成为企业业务安全的最大威胁之一。单次攻击可覆盖数万个IP,精准定位未修复漏洞,导致数据泄露、服务瘫痪…...

基于大模型预测胃穿孔预测与围手术期管理系统技术方案

目录 1. 系统架构模块2. 关键算法实现2.1 术前预测模型(Transformer多模态融合)2.2 术中实时分析(在线学习LSTM)3. 模块流程图(Mermaid)3.1 数据预处理系统3.2 术前预测系统3.3 术中实时分析系统4. 技术验证模块4.1 模型可解释性验证4.2 边缘计算部署架构1. 系统架构模块…...

Java转Go日记(三十六):简单的分布式

1.1.1. 简单的分布式server 目前分布式系统已经很流行了,一些开源框架也被广泛应用,如dubbo、Motan等。对于一个分布式服务,最基本的一项功能就是服务的注册和发现,而利用zk的EPHEMERAL节点则可以很方便的实现该功能。EPHEMERAL节…...

操作系统-进程与线程

操作系统 操作系统用来保护系统资源和提高稳定性的重要机制 文章目录 用户态和内核态为什么要区分状态? 进程管理进程,线程进程/线程切换进程的5种状态进程通信线程通讯进程调度算法 用户态和内核态 用户态 应用程序运行时所在的模式,权限受限…...

人体肢体渲染-一步几个脚印从头设计数字生命——仙盟创梦IDE

人体肢体动作数据集-太极拳 渲染代码 # 初始化Pygame pygame.init()# 设置窗口尺寸 WINDOW_WIDTH 800 WINDOW_HEIGHT 600 window pygame.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT)) pygame.display.set_caption("动作回放")# 设置帧率 FPS 30 clock pyg…...

如何安全配置好CDN用于防止DDoS与Web攻击 ?

保护网站免受DDoS和Web攻击是至关重要的,CDN(内容分发网络)可以作为一种有效的防御工具。以下是一些安全配置CDN以防止DDoS和Web攻击的最佳实践: 1. 选择可靠的CDN提供商 安全功能: 选择拥有强大安全功能的CDN提供商…...

01-数据结构概述和时间空间复杂度

数据结构概述和时间空间复杂度 1. 什么是数据结构 数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。 2. 什么是算法 算法(Algorithm)就是定义良好的计算…...

【ArcGIS技巧】根据地块、界址点图层生成界址线

"农经权二轮延包我已经写的差不多了,需要的一些生成四至、分割地块的功能也分享了替代的插件。前面刚分享完界址点的生成,今天分享界址线的生成,有需要的自取,至此,基本可以用这些功能完成出成果工作。" 1、…...

PC:使用WinSCP密钥文件连接sftp服务器

1. 打开winscp工具,点击“标签页”->“新标签页” 2. 点击“高级"->“高级” 3. 点击"验证"->“选择密钥文件” 选择ppk文件,如果没有ppk文件选择pem文件,会自动生成ppk文件 点击确定 4. 输入要连接到的sftp服务器的…...

RedHat7 如何更换yum镜像源

RedHat7如何更换yum镜像源? # 删除系统自带 yum rpm -qa|grep -e yum -e python-urlgrabber |xargs rpm -e --nodeps# 下载yum与wget的rpm软件包 curl -O http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-3.4.3-168.el7.centos.noarch.rpm curl -O ht…...

k8s 1.10.26 一次containerd失败引发kubectl不可用问题

k8s 1.10.26 一次containerd失败引发kubectl不可用问题 开机k8s 1.10.26时,报以下错误 [rootmaster ~]# kubectl get no E0515 08:03:00.914894 7993 memcache.go:265] couldnt get current server API group list: Get "https://192.168.80.50:6443/api?…...

Qt信号槽机制与UI设计完全指南:从基础原理到实战应用

目录 前言一、信号槽1.1 传参1.2 Qt信号与槽的对应关系1.2.1一对多关系1.2.2 多对一关系 二、Designer三、Layout 布局3.1 基础用法3.2 打破布局3.3 贴合窗口3.4 伸展器(Spacer)3.5 嵌套布局 四、ui指针五、QWidget六、QLabel 标签使用指南总结 前言 本…...

微信小程序van-dialog确认验证失败时阻止对话框的关闭

使用官方(Vant Weapp - 轻量、可靠的小程序 UI 组件库)的before-close&#xff1a; wxml&#xff1a; <van-dialog use-slot title"名称" show"{{ show }}" show-cancel-button bind:cancel"onClose" bind:confirm"getBackInfo"…...

嵌入式学习--江科大51单片机day7

我们在听课的过程中&#xff0c;可能对老师讲的有疑问&#xff0c;或者有些自己的理解&#xff0c;我们可以去问豆包&#xff0c;包括在写博客的时候我也是&#xff0c;不断去问豆包保证思考的正确性。&#xff08;有人感觉豆包很low啊&#xff0c;其实这些基础性的东西豆包一般…...

spark和hadoop之间的区别和联系

Spark和Hadoop的对比 1. 架构层面 Hadoop&#xff1a; HDFS&#xff08;分布式文件系统&#xff09;&#xff1a;Hadoop的核心组件之一&#xff0c;用于存储大规模数据。它将数据分散存储在多个节点上&#xff0c;通过冗余存储&#xff08;默认三副本&#xff09;来保证数据…...

antd mobile 点击 TabBar 切换页面

switchRoute 函数&#xff0c;navigate 点击的 path import { Button, TabBar } from "antd-mobile"; import { useEffect } from "react"; import { Outlet, useNavigate } from "react-router-dom"; import { useDispatch } from "react…...

20250515让飞凌的OK3588-C的核心板在Linux R4下适配以太网RTL8211F-CG为4线百兆时的接线图

20250515让飞凌的OK3588-C的核心板在Linux R4下适配以太网RTL8211F-CG为4线百兆时的接线图 2025/5/15 20:19 缘起&#xff1a;以前做的网线找不到了&#xff0c;那就再来一条吧。 引脚定义要从头来过&#xff1f;还好找到了一条。 开干&#xff01; 万用表一对/点&#xff0c;几…...

大语言模型 07 - 从0开始训练GPT 0.25B参数量 - MiniMind 实机训练 预训练 监督微调

写在前面 GPT&#xff08;Generative Pre-trained Transformer&#xff09;是目前最广泛应用的大语言模型架构之一&#xff0c;其强大的自然语言理解与生成能力背后&#xff0c;是一个庞大而精细的训练流程。本文将从宏观到微观&#xff0c;系统讲解GPT的训练过程&#xff0c;…...

【学习心得】WSL2安装Ubuntu22.04

为了使用Docker desktop&#xff0c;所以我的win10需要安装一下wsl并且下载一个Ubuntu。默认Windows10/11是自带wsl的&#xff0c;你在进行下面操作的时候可以升级一下wsl --update 1、管理员身份打开cmd&#xff0c;输入命令查询所有可以下载的Linux版本 # 查看有哪些 Linux 发…...

人工智能、深度学习、机器学习的联系与区别

定义 人工智能&#xff08;AI - Artificial Intelligence&#xff09; &#xff1a;是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。它旨在让计算机能够像人类一样思考、学习和决策&#xff0c;涉及到诸如计算机视觉、自然语言处理…...

基于互联网和LabVIEW的多通道数据采集系统仿真设计

标题:基于互联网和LabVIEW的多通道数据采集系统仿真设计 内容:1.摘要 在当今科技飞速发展的背景下&#xff0c;多通道数据采集在众多领域有着广泛需求。本研究的目的是设计一个基于互联网和LabVIEW的多通道数据采集系统仿真方案。采用互联网技术实现数据的远程传输与共享&…...