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

news2025/5/16 9:14:12

#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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2376731.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenResty Manager 介绍与部署(Docker部署)

概述 OpenResty-Manager 是一个基于 OpenResty 构建的开源 Web 管理平台。OpenResty 是一个高性能的 Web 平台,集成了 Nginx 和 LuaJIT,支持强大的脚本功能。OpenResty-Manager 由 Safe3 开发,提供了一个用户友好的界面,用于管理…

快速搭建一个electron-vite项目

1. 初始化项目 在命令行中运行以下命令 npm create quick-start/electronlatest也可以通过附加命令行选项直接指定项目名称和你想要使用的模版。例如,要构建一个 Electron Vue 项目,运行: # npm 7,需要添加额外的 --: npm cre…

unity terrain 在生成草,树,石头等地形障碍的时候,无法触发碰撞导致人物穿过模型

1.terrain地形的草,石头之类要选择模型预制体 2.在人物身上挂碰撞器和刚体,或者单挂一个character controller组件也行 3.在预制体上挂碰撞盒就好了,挂载meshcollider会导致碰撞无效

75.xilinx复数乘法器IP核调试

(83*j)*(57j) 935j 正确的是 1971j 分析出现的原因:(abj)* (cdj) (ac-bd)j(adbc) 其中a,b,c,d都是16bit的有符号数,乘积的结果为保证不溢出需要32bit存储,最终的复数乘法结果是两个32b…

8.ADC

目录 ADC 模拟信号和数字信号的区别和区别 信号的区别 如何采集信号 常见的接口 数字接口 模拟接口 ADC 实际应用 ADC 转换器的定义 ADC 相关的名词 ADC 采集的原理 ADC 的参考电压 相关的计算 如何实现 ADC STM32 内的 ADC 转换器讲解 STM32 的 ADC 简介 AD…

c/c++中程序内存区域的划分

c/c程序内存分配的几个区域: 1.栈区:在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放,栈内存分配运算内置于处理器的指令集中,效率很高但是分配的内存容量有…

模糊综合评价模型建立

模糊综合评价模型建立 一、整体流程 二、代码实现(含大量注释) #程序文件ex14_4.py import numpy as npa np.loadtxt(data14_4.txt) # 使用定义匿名函数的形式来定义各个评价指标的隶属函数 f1 lambda x: x/8800 f2 lambda x: 1-x/8000 f3 lambda x: (x<5.5)(8-x)/(8-…

【Linux】Linux安装mysql

该教程是使用的 CentOS 8.2 安装 mysql。 1.删除原有mysql rpm -qa|grep mariadb 如果存在在mariadb&#xff0c;卸载命令如下&#xff1a; #rpm -e --nodeps是强制卸载指令 后面是查出的依赖名称rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64全部卸载完输入以下指令&am…

模仿学习笔记

模仿学习总共分两类&#xff1a; 行为克隆&#xff1a;BC,Dagger逆强化学习:又分为 2.1基于最大边际逆强化学习 &#xff08;无法主要歧义问题&#xff09;&#xff1a;学徒学习 2.2 基于最大熵逆强化学习 &#xff08;主要解决歧义问题&#xff09;:GAIL 学徒学习 基于最大熵…

一文讲透 Vue3 + Three.js 材质属性之皮革篇【扫盲篇】

文章目录 前言一、Three.js材质系统基础1.1 为什么选择PBR材质&#xff1f;1.2 关键参数解析 二、不同类型皮革的材质配置2.1 牛皮材质实现2.2 羊皮材质实现2.3 仿皮材质实现 三、高级贴图技术3.1 贴图制作流程3.2 组合贴图实战 四、性能优化策略4.1 贴图压缩技术4.2 材质共享4…

MUSE Pi Pro 使用TiTanTools烧录镜像

视频讲解&#xff1a; MUSE Pi Pro 使用TiTanTools烧录镜像 下载windows下的烧录工具 https://cloud.spacemit.com/prod-api/release/download/tools?tokentitantools_for_windows_X86_X64 下载镜像文件&#xff0c;zip后缀的即可 打开软件默认界面 按住FDL键&#xff0c;同时…

安卓A15系统实现修改锁屏界面默认壁纸功能

最近遇到一个A15系统项目&#xff0c;客户要求修改锁屏界面的默认壁纸&#xff0c;客户提供了一张壁纸图片&#xff0c;但是从A15系统的源代码查看时才知道谷歌已经去掉了相关的代码&#xff0c;已经不支持了&#xff0c;A13和A14系统好像是支持的&#xff0c;A15系统的Wallpap…

IT系统的基础设施:流量治理、服务治理、资源治理,还有数据治理。

文章目录 引言I IT系统的基础设施流量治理、服务治理、资源治理,还有数据治理。开发语言的选择数据治理(监控系统):整体运维的数据其他II 基础知识的重要性第一,知道原理第二,当遇到一些比较难解的问题时,基础知识就会派上用场。例子III 大公司和小公司的权衡对比大公司…

使用 TypeScript + dhtmlx-gantt 在 Next.js 中实现

1. 安装依赖&#xff08;确保已安装&#xff09; npm install dhtmlx-gantt2. 创建 pages/gantt.tsx use clientimport { useRef, useEffect } from react import { gantt } from dhtmlx-gantt import dhtmlx-gantt/codebase/dhtmlxgantt.cssinterface Task {id: number | st…

解锁健康生活:现代养生实用方案

早上被闹钟惊醒后匆忙灌下咖啡&#xff0c;中午用外卖应付一餐&#xff0c;深夜刷着手机迟迟不肯入睡 —— 这样的生活模式&#xff0c;正在不知不觉侵蚀我们的健康。科学养生并非遥不可及的目标&#xff0c;只需从生活细节入手&#xff0c;就能逐步改善身体状态。​ 饮食管理…

mongodb处理时区转换问题

1. 程序查询直接使用&#xff08;java&#xff09;Date即可, 因为直接支持 2. 若方便查看日期需要进行格式和时区转换 db.task.aggregate([{ $match: {userId: 113633}},{ $project: {userId: 1,endTime: 1,formattedDate: {$dateToString: {format: "%Y-%m-%d %H:%M:%S&…

专项智能练习(定义判断)_DA_01

1. 单选题 热传导是介质内无宏观运动时的传热现象&#xff0c;其在固体、液体和气体中均可发生。但严格而言&#xff0c;只有在固体中才是纯粹的热传导&#xff0c;在流体&#xff08;泛指液体和气体&#xff09;中又是另外一种情况&#xff0c;流体即使处于静止状态&#xff0…

广度和深度优先搜索(BFS和DFS)

1. 广度和深度优先搜索&#xff08;BFS和DFS&#xff09; 1.1. Python实现BFS和DFS from collections import dequeclass Graph:"""无向图类&#xff0c;支持添加边&#xff0c;并实现了 BFS&#xff08;广度优先搜索&#xff09;和 DFS&#xff08;深度优先搜…

【计算机视觉】OpenCV实战项目:Text-Extraction-Table-Image:基于OpenCV与OCR的表格图像文本提取系统深度解析

Text-Extraction-Table-Image&#xff1a;基于OpenCV与OCR的表格图像文本提取系统深度解析 1. 项目概述2. 技术原理与算法设计2.1 图像预处理流水线2.2 表格结构检测算法2.3 OCR优化策略 3. 实战部署指南3.1 环境配置3.2 核心代码解析3.3 执行流程示例 4. 常见问题与解决方案4.…

嵌入式Linux Qt开发:1、搭建基于ubuntu18.04的Qt开发环境及测试(解决Qt creator输入法问题)

一、前言 基本在我职业生涯开始时就已经在使用Qt进行一些上位机开发了&#xff0c;后续也有一些嵌入式设备用Qt开发&#xff0c;但是一直没有完整和系列的总结&#xff0c;包括C也是&#xff0c;这里慢慢补上一些总结&#xff0c;防止很多经验总结和学习过程又遗忘了&#xff…