C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 1 C51 COMPILER V9.60.7.0, COMPILATION OF MODULE TASK_HAL OBJECT MODULE PLACED IN .\Objects\task_hal.obj COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE Task\cpu_port\S92F8003A\task_hal.c OMF2 OPTIMIZE(8,SPEED) BROWSE INCDIR(.\S -rc;.\Task;.\Task\cpu_port\S92F8003A;.\Task\cfg;.\Task\pt_thread;.\SC92F8003_Lib\Inc) DEBUG CODE LISTINCLUDE SYMBOLS PRIN -T(.\Listings\task_hal.lst) PREPRINT(.\Listings\task_hal.i) OBJECT(.\Objects\task_hal.obj) line level source 1 2 #include 1 =1 #ifndef _HAL_H_ 2 =1 #define _HAL_H_ 3 =1 #include "sc92f8003.h" 1 =2 #ifndef _SC92F8003_H 2 =2 #define _SC92F8003_H 3 =2 4 =2 #include "SC92F8003_C.h" 1 =3 /*-------------------------------------------------------------------------- 2 =3 SC92F8003_C.H 3 =3 4 =3 C Header file for SC92F8003 microcontroller. 5 =3 Copyright (c) 2018 Shenzhen SinOne Chip Electronic CO., Ltd. 6 =3 All rights reserved. 7 =3 深圳市赛元微电子有限公司 8 =3 版本号: V1.0 9 =3 日期: 2018.05.02 10 =3 --------------------------------------------------------------------------*/ 11 =3 #ifndef _SC92F8003_H_ 12 =3 #define _SC92F8003_H_ 13 =3 14 =3 /* ------------------- 字节寄存器-------------------- */ 15 =3 ///*CPU*/ 16 =3 sfr ACC = 0xE0; //累加器A 17 =3 sfr B = 0xF0; //通用寄存器B 18 =3 sfr PSW = 0xD0; //程序状态字 19 =3 sfr DPH = 0x83; //数据指针高8位 20 =3 sfr DPL = 0x82; //数据指针低8位 21 =3 sfr SP = 0x81; //堆栈指针 22 =3 23 =3 24 =3 /*system*/ 25 =3 sfr PCON = 0x87; //电源管理控制寄存器 26 =3 27 =3 /*interrupt*/ 28 =3 sfr IP1 = 0XB9; //中断优先级控制寄存器1 29 =3 sfr IP = 0xB8; //中断优先权控制寄存器 30 =3 sfr IE = 0xA8; //中断控制寄存器 31 =3 sfr IE1 = 0XA9; //中断控制寄存器1 32 =3 33 =3 /*PORT*/ 34 =3 sfr P2PH = 0xA2; //P2口模式控制寄存器 35 =3 sfr P2CON = 0xA1; //P2口模式控制寄存器 36 =3 sfr P2 = 0xA0; //P2口数据寄存器 37 =3 sfr P1PH = 0x92; //P1口模式控制寄存器 38 =3 sfr P1CON = 0x91; //P1口模式控制寄存器 39 =3 sfr P1 = 0x90; //P1口数据寄存器 40 =3 sfr P0PH = 0x9B; //P0口模式控制寄存器 41 =3 sfr P0CON = 0x9A; //P0口模式控制寄存器 42 =3 sfr P0 = 0x80; //P0口数据寄存器 43 =3 44 =3 /*TIMER*/ C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 2 45 =3 sfr TMCON = 0x8E; //定时器频率控制寄存器 46 =3 sfr TH1 = 0x8D; //定时器1高8位 47 =3 sfr TH0 = 0x8C; //定时器0高8位 48 =3 sfr TL1 = 0x8B; //定时器1低8位 49 =3 sfr TL0 = 0x8A; //定时器0低8位 50 =3 sfr TMOD = 0x89; //定时器工作模式寄存器 51 =3 sfr TCON = 0x88; //定时器控制寄存器 52 =3 sfr T2CON = 0xC8; //定时器2控制寄存器 53 =3 sfr T2MOD = 0xC9; //定时器2工作模式寄存器 54 =3 sfr RCAP2L = 0xCA; //定时器2重载/捕捉低8位 55 =3 sfr RCAP2H = 0xCB; //定时器2重载/捕捉高8位 56 =3 sfr TL2 = 0xCC; //定时器2低8位 57 =3 sfr TH2 = 0xCD; //定时器2高8位 58 =3 59 =3 60 =3 /*ADC*/ 61 =3 sfr ADCCFG1 = 0xAA; //ADC功能配置寄存器0 62 =3 sfr ADCCFG0 = 0xAB; //ADC功能配置寄存器1 63 =3 sfr ADCCON = 0XAD; //ADC控制寄存器 64 =3 sfr ADCVL = 0xAE; //ADC 结果寄存器 65 =3 sfr ADCVH = 0xAF; //ADC 结果寄存器 66 =3 67 =3 /*PWM*/ 68 =3 sfr PWMCFG = 0xD1; //PWM设置寄存器 69 =3 sfr PWMCON0 = 0xD2; //PWM控制寄存器 70 =3 sfr PWMPRD = 0xD3; //PWM周期设置寄存器 71 =3 sfr PWMDTYA = 0xD4; //PWM占空比设置寄存器A 72 =3 sfr PWMDTY0 = 0xD5; //PWM0设置寄存器 73 =3 sfr PWMDTY1 = 0xD6; //PWM1设置寄存器 74 =3 sfr PWMDTY2 = 0xD7; //PWM2设置寄存器 75 =3 sfr PWMCON1 = 0xDA; //PWM控制寄存器 76 =3 sfr PWMDTYB = 0xDB; //PWM占空比设置寄存器B 77 =3 sfr PWMDTY3 = 0xDC; //PWM3设置寄存器 78 =3 sfr PWMDTY4 = 0xDD; //PWM4设置寄存器 79 =3 sfr PWMDTY5 = 0xDE; //PWM5设置寄存器 80 =3 sfr PWMDTY6 = 0xDF; //PWM6设置寄存器 81 =3 82 =3 83 =3 // 84 =3 ///*WatchDog*/ 85 =3 sfr BTMCON = 0XCE; //低频定时器控制寄存器 86 =3 sfr WDTCON = 0xCF; //WDT控制寄存器 87 =3 88 =3 89 =3 sfr OTCON = 0X8F; //输出控制寄存器 90 =3 91 =3 /*INT*/ 92 =3 sfr INT0F = 0XBA; //INT0 下降沿中断控制寄存器 93 =3 sfr INT0R = 0XBB; //INT0 上降沿中断控制寄存器 94 =3 sfr INT1F = 0XBC; //INT1 下降沿中断控制寄存器 95 =3 sfr INT1R = 0XBD; //INT1 上降沿中断控制寄存器 96 =3 sfr INT2F = 0XC6; //INT2 下降沿中断控制寄存器 97 =3 sfr INT2R = 0XC7; //INT2 上降沿中断控制寄存器 98 =3 99 =3 /*IAP */ 100 =3 sfr IAPCTL = 0xF6; //IAP控制寄存器 101 =3 sfr IAPDAT = 0xF5; //IAP数据寄存器 102 =3 sfr IAPADE = 0xF4; //IAP扩展地址寄存器 103 =3 sfr IAPADH = 0xF3; //IAP写入地址高位寄存器 104 =3 sfr IAPADL = 0xF2; //IAP写入地址低8位寄存器 105 =3 sfr IAPKEY = 0xF1; //IAP保护寄存器 106 =3 C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 3 107 =3 /*uart0*/ 108 =3 sfr SCON = 0X98; //uart控制寄存器 109 =3 sfr SBUF = 0X99; //uart0数据寄存器 110 =3 111 =3 /*三合一*/ 112 =3 sfr SSCON0 = 0X9D; //SSI控制寄存器0 113 =3 sfr SSCON1 = 0X9E; //SSI控制寄存器1 114 =3 sfr SSCON2 = 0X95; //SSI控制寄存器2 115 =3 sfr SSDAT = 0X9F; //SSI数据寄存器 116 =3 117 =3 sfr OPINX = 0XFE; 118 =3 sfr OPREG = 0XFF; 119 =3 120 =3 /*Check Sum*/ 121 =3 sfr CHKSUML = 0XFC; //Check Sum结果寄存器低位 122 =3 sfr CHKSUMH = 0XFD; //Check Sum结果寄存器高位 123 =3 124 =3 sfr OPERCON = 0xEF; //运算控制寄存器 125 =3 126 =3 ///* ------------------- 位寄存器-------------------- */ 127 =3 /*PSW*/ 128 =3 sbit CY = PSW^7; //标志位 0:加法运算最高位无进位,或者减法运算最高位无借 -时 1:加法运算最高位有进位,或者减法运算最高位有借位时 129 =3 sbit AC = PSW^6; //进位辅助标志位 0:无借位、进位 1:加法运算时在bit3位有进位 -,或减法运算在bit3位有借位时 130 =3 sbit F0 = PSW^5; //用户标志位 131 =3 sbit RS1 = PSW^4; //工作寄存器组选择位 132 =3 sbit RS0 = PSW^3; //工作寄存器组选择位 133 =3 sbit OV = PSW^2; //溢出标志位 134 =3 sbit F1 = PSW^1; //F1标志 135 =3 sbit P = PSW^0; //奇偶标志位 0:ACC中1的个数为偶数(包括0个) 1:ACC中1的个数 -奇数 136 =3 137 =3 /*T2CON*/ 138 =3 sbit TF2 = T2CON^7; 139 =3 sbit EXF2 = T2CON^6; 140 =3 sbit RCLK = T2CON^5; 141 =3 sbit TCLK = T2CON^4; 142 =3 sbit EXEN2 = T2CON^3; 143 =3 sbit TR2 = T2CON^2; 144 =3 sbit T2 = T2CON^1; 145 =3 sbit CP = T2CON^0; 146 =3 147 =3 148 =3 /*IP*/ 149 =3 sbit IPADC = IP^6; //ADC中断优先控制位 0:设定 ADC的中断优先权是 “低” 1:设定 AD -C的中断优先权是 “高” 150 =3 sbit IPT2 = IP^5; //PWM中断优先控制位 0:设定 PWM的中断优先权是 “低” 1:设定 PW -M 的中断优先权是 “高” 151 =3 sbit IPUART = IP^4; //SIF中断优先控制位 0:设定 SIF的中断优先权是 “低” 1:设定 SI -F的中断优先权是 “高” 152 =3 sbit IPT1 = IP^3; //Timer1中断优先控制位 0:设定 Timer 1的中断优先权是 “低” 1:设 - Timer 1的中断优先权是 “高” 153 =3 sbit IPINT1 = IP^2; //32K Base Timer中断优先控制位 0:设定 32K的中断优先权是 “低” - 1:设定 32K的中断优先权是 “高” 154 =3 sbit IPT0 = IP^1; //Timer0中断优先控制位 0:设定 Timer 0的中断优先权是 “低” 1:设 - Timer 0的中断优先权是 “高” 155 =3 sbit IPINT0 = IP^0; 156 =3 157 =3 /*IE*/ 158 =3 sbit EA = IE^7; //中断使能的总控制 0:关闭所有的中断 1:打开所有的中断 159 =3 sbit EADC = IE^6; //ADC中断使能控制 0:关闭ADC中断 1:打开ADC中断 C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 4 160 =3 sbit ET2 = IE^5; //PWM中断使能控制 0:关闭PWM中断 1:打开PWM中断 161 =3 sbit EUART = IE^4; //UART中断使能控制 0:关闭SIF中断 1:打开SIF中断 162 =3 sbit ET1 = IE^3; //Timer1中断使能控制 0:关闭TIMER1中断 1:打开TIMER1中断 163 =3 sbit EINT1 = IE^2; //32K Base Timer中断使能控制 0:关闭32K中断 1:打开32K中断 164 =3 sbit ET0 = IE^1; //Timer0中断使能控制 0:关闭TIMER0中断 1:打开TIMER0中断 165 =3 sbit EINT0 = IE^0; //TouchKey的中断使能控制 0:关闭TouchKey中断 1:打开TouchKey中断 166 =3 167 =3 /*TCON*/ 168 =3 sbit TF1 = TCON^7; //T1溢出中断请求标志位 T1产生溢出,发生中断时,硬件将TF1 -为“1”,申请中断,CPU响应时,硬件清“0”。 169 =3 sbit TR1 = TCON^6; //定时器T1的运行控制位 0:Timer1禁止计数 1:Timer1开始计数 170 =3 sbit TF0 = TCON^5; //T0溢出中断请求标志位 T0产生溢出,发生中断时,硬件将TF0 -为“1”,申请中断,CPU响应时,硬件清“0”。 171 =3 sbit TR0 = TCON^4; //定时器T0的运行控制位 0:Timer0禁止计数 1:Timer0开始计数 172 =3 173 =3 /*SCON*/ 174 =3 sbit SM0 = SCON^7; 175 =3 sbit SM1 = SCON^6; 176 =3 sbit SM2 = SCON^5; 177 =3 sbit REN = SCON^4; 178 =3 sbit TB8 = SCON^3; 179 =3 sbit RB8 = SCON^2; 180 =3 sbit TI = SCON^1; 181 =3 sbit RI = SCON^0; 182 =3 183 =3 /* P0 */ 184 =3 sbit P01 = P0^1; 185 =3 sbit P00 = P0^0; 186 =3 187 =3 /* P1 */ 188 =3 sbit P17 = P1^7; 189 =3 sbit P16 = P1^6; 190 =3 sbit P15 = P1^5; 191 =3 sbit P14 = P1^4; 192 =3 sbit P13 = P1^3; 193 =3 sbit P12 = P1^2; 194 =3 sbit P11 = P1^1; 195 =3 sbit P10 = P1^0; 196 =3 197 =3 /* P2 */ 198 =3 sbit P27 = P2^7; 199 =3 sbit P26 = P2^6; 200 =3 sbit P25 = P2^5; 201 =3 sbit P24 = P2^4; 202 =3 sbit P23 = P2^3; 203 =3 sbit P22 = P2^2; 204 =3 sbit P21 = P2^1; 205 =3 sbit P20 = P2^0; 206 =3 207 =3 #endif 5 =2 #include "stdint.h" 1 =3 #ifndef _STD_INT_H_ 2 =3 #define _STD_INT_H_ 3 =3 typedef signed long int32_t; 4 =3 typedef unsigned long uint32_t; 5 =3 typedef signed char int8_t; 6 =3 typedef unsigned char uint8_t; 7 =3 typedef signed int int16_t; 8 =3 typedef unsigned int uint16_t; 9 =3 #endif 6 =2 7 =2 #define enableInterrupts() EA=1 /** 开启总中断 **/ C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 5 8 =2 #define disableInterrupts() EA=0 /** 关闭总中断 **/ 9 =2 10 =2 #define __I volatile const /*!< defines 'read only' permissions */ 11 =2 #define __O volatile /*!< defines 'write only' permissions */ 12 =2 #define __IO volatile /*!< defines 'read / write' permissions */ 13 =2 /* 14 =2 //!< Signed integer types 15 =2 typedef signed char int8_t; 16 =2 typedef signed short int16_t; 17 =2 typedef signed long int32_t; 18 =2 19 =2 //!< Unsigned integer types 20 =2 typedef unsigned char uint8_t; 21 =2 typedef unsigned short uint16_t; 22 =2 typedef unsigned long uint32_t; 23 =2 24 =2 typedef int32_t s32; 25 =2 typedef int16_t s16; 26 =2 typedef int8_t s8; 27 =2 28 =2 typedef uint32_t u32; 29 =2 typedef uint16_t u16; 30 =2 typedef uint8_t u8; 31 =2 */ 32 =2 33 =2 34 =2 typedef enum {FALSE = 0, TRUE = !FALSE} bool; 35 =2 36 =2 typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus, BitStatus; 37 =2 38 =2 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; 39 =2 40 =2 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; 41 =2 42 =2 typedef enum {LOW = 0, HIGH = !LOW} PriorityStatus; 43 =2 44 =2 #endif 4 =1 #include "sc92f8003_adc.h" 1 =2 //************************************************************ 2 =2 // Copyright (c) 深圳市赛元微电子有限公司 3 =2 // 文件名称 : sc92f8003_adc.h 4 =2 // 作者 : 5 =2 // 模块功能 : ADC固件库函数头文件 6 =2 // 局部函数列表: 7 =2 // 最后更正日期: 2018/9/4 8 =2 // 版本 : V1.0 9 =2 // 说明 : 10 =2 //************************************************************* 11 =2 12 =2 #ifndef _SC92F8003_ADC_H_ 13 =2 #define _SC92F8003_ADC_H_ 14 =2 15 =2 #include "sc92f8003.h" 1 =3 #ifndef _SC92F8003_H =3 #define _SC92F8003_H =3 =3 #include "SC92F8003_C.h" =3 #include "stdint.h" =3 =3 #define enableInterrupts() EA=1 /** 开启总中断 **/ =3 #define disableInterrupts() EA=0 /** 关闭总中断 **/ =3 C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 6 =3 #define __I volatile const /*!< defines 'read only' permissions */ =3 #define __O volatile /*!< defines 'write only' permissions */ =3 #define __IO volatile /*!< defines 'read / write' permissions */ =3 /* =3 //!< Signed integer types =3 typedef signed char int8_t; =3 typedef signed short int16_t; =3 typedef signed long int32_t; =3 =3 //!< Unsigned integer types =3 typedef unsigned char uint8_t; =3 typedef unsigned short uint16_t; =3 typedef unsigned long uint32_t; =3 =3 typedef int32_t s32; =3 typedef int16_t s16; =3 typedef int8_t s8; =3 =3 typedef uint32_t u32; =3 typedef uint16_t u16; =3 typedef uint8_t u8; =3 */ =3 =3 =3 typedef enum {FALSE = 0, TRUE = !FALSE} bool; =3 =3 typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus, BitStatus; =3 =3 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; =3 =3 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; =3 =3 typedef enum {LOW = 0, HIGH = !LOW} PriorityStatus; =3 =3 #endif 16 =2 17 =2 typedef enum { 18 =2 ADC_PRESSEL_FHRC_D32 = (uint8_t)0x00, //预分频 fADC = fHRC/32 19 =2 ADC_PRESSEL_FHRC_D24 = (uint8_t)0x01, //预分频 fADC = fHRC/24 20 =2 ADC_PRESSEL_FHRC_D16 = (uint8_t)0x02, //预分频 fADC = fHRC/16 21 =2 ADC_PRESSEL_FHRC_D12 = (uint8_t)0x03, //预分频 fADC = fHRC/12 22 =2 ADC_PRESSEL_FHRC_D8 = (uint8_t)0x04, //预分频 fADC = fHRC/8 23 =2 ADC_PRESSEL_FHRC_D6 = (uint8_t)0x05, //预分频 fADC = fHRC/6 24 =2 ADC_PRESSEL_FHRC_D4 = (uint8_t)0x06, //预分频 fADC = fHRC/4 25 =2 ADC_PRESSEL_FHRC_D3 = (uint8_t)0x07 //预分频 fADC = fHRC/3 26 =2 } ADC_PresSel_TypeDef; 27 =2 28 =2 typedef enum { 29 =2 ADC_Cycle_6Cycle = (uint8_t)0x00, //ADC采样时间为6个ADC采样时钟周期 30 =2 ADC_Cycle_36Cycle = (uint8_t)0x08 //ADC采样时间为36个ADC采样时钟周期 31 =2 } ADC_Cycle_TypeDef; 32 =2 33 =2 typedef enum { 34 =2 ADC_CHANNEL_0 = (uint8_t)0x00, //选择AIN0做AD输入口 35 =2 ADC_CHANNEL_1 = (uint8_t)0x01, //选择AIN1做AD输入口 36 =2 ADC_CHANNEL_2 = (uint8_t)0x02, //选择AIN2做AD输入口 37 =2 ADC_CHANNEL_3 = (uint8_t)0x03, //选择AIN3做AD输入口 38 =2 ADC_CHANNEL_4 = (uint8_t)0x04, //选择AIN4做AD输入口 39 =2 ADC_CHANNEL_5 = (uint8_t)0x05, //选择AIN5做AD输入口 40 =2 ADC_CHANNEL_6 = (uint8_t)0x06, //选择AIN6做AD输入口 41 =2 ADC_CHANNEL_VDD_D4 = (uint8_t)0x1f //选择内部1/4VDD做AD输入口 42 =2 } ADC_Channel_TypeDef; C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 7 43 =2 44 =2 void ADC_DeInit(void); 45 =2 void ADC_Init(ADC_PresSel_TypeDef ADC_PrescalerSelection, ADC_Cycle_TypeDef ADC_Cycle); 46 =2 void ADC_ChannelConfig(ADC_Channel_TypeDef ADC_Channel, FunctionalState NewState); 47 =2 void ADC_Cmd(FunctionalState NewState); 48 =2 void ADC_StartConversion(void); 49 =2 uint16_t ADC_GetConversionValue(void); 50 =2 void ADC_ITConfig(FunctionalState NewState, PriorityStatus Priority); 51 =2 FlagStatus ADC_GetFlagStatus(void); 52 =2 void ADC_ClearFlag(void); 53 =2 54 =2 #endif 55 =2 56 =2 /******************* (C) COPYRIGHT 2018 SinOne Microelectronics *****END OF FILE****/ 5 =1 #include "sc92f8003_btm.h" 1 =2 //************************************************************ 2 =2 // Copyright (c) 深圳市赛元微电子有限公司 3 =2 // 文件名称 : sc92f8003_btm.h 4 =2 // 作者 : 5 =2 // 模块功能 : BTM固件库函数头文件 6 =2 // 局部函数列表: 7 =2 // 最后更正日期: 2018/9/4 8 =2 // 版本 : V1.0 9 =2 // 说明 : 10 =2 //************************************************************* 11 =2 12 =2 #ifndef _SC92F8003_BTM_H_ 13 =2 #define _SC92F8003_BTM_H_ 14 =2 15 =2 #include "sc92f8003.h" 1 =3 #ifndef _SC92F8003_H =3 #define _SC92F8003_H =3 =3 #include "SC92F8003_C.h" =3 #include "stdint.h" =3 =3 #define enableInterrupts() EA=1 /** 开启总中断 **/ =3 #define disableInterrupts() EA=0 /** 关闭总中断 **/ =3 =3 #define __I volatile const /*!< defines 'read only' permissions */ =3 #define __O volatile /*!< defines 'write only' permissions */ =3 #define __IO volatile /*!< defines 'read / write' permissions */ =3 /* =3 //!< Signed integer types =3 typedef signed char int8_t; =3 typedef signed short int16_t; =3 typedef signed long int32_t; =3 =3 //!< Unsigned integer types =3 typedef unsigned char uint8_t; =3 typedef unsigned short uint16_t; =3 typedef unsigned long uint32_t; =3 =3 typedef int32_t s32; =3 typedef int16_t s16; =3 typedef int8_t s8; =3 =3 typedef uint32_t u32; =3 typedef uint16_t u16; =3 typedef uint8_t u8; =3 */ =3 C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 8 =3 =3 typedef enum {FALSE = 0, TRUE = !FALSE} bool; =3 =3 typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus, BitStatus; =3 =3 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; =3 =3 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; =3 =3 typedef enum {LOW = 0, HIGH = !LOW} PriorityStatus; =3 =3 #endif 16 =2 17 =2 typedef enum { 18 =2 BTM_TIMEBASE_15_625MS = (uint8_t)0x00, //BTM每15.625MS产生一次中断 19 =2 BTM_TIMEBASE_31_25MS = (uint8_t)0x01, //BTM每31.25MS产生一次中断 20 =2 BTM_TIMEBASE_62_5MS = (uint8_t)0x02, //BTM每62.5MS产生一次中断 21 =2 BTM_TIMEBASE_125MS = (uint8_t)0x03, //BTM每125MS产生一次中断 22 =2 BTM_TIMEBASE_250MS = (uint8_t)0x04, //BTM每0.25S产生一次中断 23 =2 BTM_TIMEBASE_500MS = (uint8_t)0x05, //BTM每0.5S产生一次中断 24 =2 BTM_TIMEBASE_1S = (uint8_t)0x06, //BTM每1S产生一次中断 25 =2 BTM_TIMEBASE_2S = (uint8_t)0x07, //BTM每2S产生一次中断 26 =2 BTM_TIMEBASE_4S = (uint8_t)0x08 //BTM每4S产生一次中断 27 =2 } BTM_Timebase_TypeDef; 28 =2 29 =2 void BTM_DeInit(void); 30 =2 void BTM_Init(BTM_Timebase_TypeDef BTM_Timebase); 31 =2 void BTM_Cmd(FunctionalState NewState); 32 =2 void BTM_ITConfig(FunctionalState NewState, PriorityStatus Priority); 33 =2 FlagStatus BTM_GetFlagStatus(void); 34 =2 void BTM_ClearFlag(void); 35 =2 36 =2 #endif 37 =2 38 =2 /******************* (C) COPYRIGHT 2018 SinOne Microelectronics *****END OF FILE****/ 6 =1 #include "SC92F8003_C.h" 1 =2 /*-------------------------------------------------------------------------- 2 =2 SC92F8003_C.H 3 =2 4 =2 C Header file for SC92F8003 microcontroller. 5 =2 Copyright (c) 2018 Shenzhen SinOne Chip Electronic CO., Ltd. 6 =2 All rights reserved. 7 =2 深圳市赛元微电子有限公司 8 =2 版本号: V1.0 9 =2 日期: 2018.05.02 10 =2 --------------------------------------------------------------------------*/ 11 =2 #ifndef _SC92F8003_H_ =2 #define _SC92F8003_H_ =2 =2 /* ------------------- 字节寄存器-------------------- */ =2 ///*CPU*/ =2 sfr ACC = 0xE0; //累加器A =2 sfr B = 0xF0; //通用寄存器B =2 sfr PSW = 0xD0; //程序状态字 =2 sfr DPH = 0x83; //数据指针高8位 =2 sfr DPL = 0x82; //数据指针低8位 =2 sfr SP = 0x81; //堆栈指针 =2 =2 =2 /*system*/ =2 sfr PCON = 0x87; //电源管理控制寄存器 =2 C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 9 =2 /*interrupt*/ =2 sfr IP1 = 0XB9; //中断优先级控制寄存器1 =2 sfr IP = 0xB8; //中断优先权控制寄存器 =2 sfr IE = 0xA8; //中断控制寄存器 =2 sfr IE1 = 0XA9; //中断控制寄存器1 =2 =2 /*PORT*/ =2 sfr P2PH = 0xA2; //P2口模式控制寄存器 =2 sfr P2CON = 0xA1; //P2口模式控制寄存器 =2 sfr P2 = 0xA0; //P2口数据寄存器 =2 sfr P1PH = 0x92; //P1口模式控制寄存器 =2 sfr P1CON = 0x91; //P1口模式控制寄存器 =2 sfr P1 = 0x90; //P1口数据寄存器 =2 sfr P0PH = 0x9B; //P0口模式控制寄存器 =2 sfr P0CON = 0x9A; //P0口模式控制寄存器 =2 sfr P0 = 0x80; //P0口数据寄存器 =2 =2 /*TIMER*/ =2 sfr TMCON = 0x8E; //定时器频率控制寄存器 =2 sfr TH1 = 0x8D; //定时器1高8位 =2 sfr TH0 = 0x8C; //定时器0高8位 =2 sfr TL1 = 0x8B; //定时器1低8位 =2 sfr TL0 = 0x8A; //定时器0低8位 =2 sfr TMOD = 0x89; //定时器工作模式寄存器 =2 sfr TCON = 0x88; //定时器控制寄存器 =2 sfr T2CON = 0xC8; //定时器2控制寄存器 =2 sfr T2MOD = 0xC9; //定时器2工作模式寄存器 =2 sfr RCAP2L = 0xCA; //定时器2重载/捕捉低8位 =2 sfr RCAP2H = 0xCB; //定时器2重载/捕捉高8位 =2 sfr TL2 = 0xCC; //定时器2低8位 =2 sfr TH2 = 0xCD; //定时器2高8位 =2 =2 =2 /*ADC*/ =2 sfr ADCCFG1 = 0xAA; //ADC功能配置寄存器0 =2 sfr ADCCFG0 = 0xAB; //ADC功能配置寄存器1 =2 sfr ADCCON = 0XAD; //ADC控制寄存器 =2 sfr ADCVL = 0xAE; //ADC 结果寄存器 =2 sfr ADCVH = 0xAF; //ADC 结果寄存器 =2 =2 /*PWM*/ =2 sfr PWMCFG = 0xD1; //PWM设置寄存器 =2 sfr PWMCON0 = 0xD2; //PWM控制寄存器 =2 sfr PWMPRD = 0xD3; //PWM周期设置寄存器 =2 sfr PWMDTYA = 0xD4; //PWM占空比设置寄存器A =2 sfr PWMDTY0 = 0xD5; //PWM0设置寄存器 =2 sfr PWMDTY1 = 0xD6; //PWM1设置寄存器 =2 sfr PWMDTY2 = 0xD7; //PWM2设置寄存器 =2 sfr PWMCON1 = 0xDA; //PWM控制寄存器 =2 sfr PWMDTYB = 0xDB; //PWM占空比设置寄存器B =2 sfr PWMDTY3 = 0xDC; //PWM3设置寄存器 =2 sfr PWMDTY4 = 0xDD; //PWM4设置寄存器 =2 sfr PWMDTY5 = 0xDE; //PWM5设置寄存器 =2 sfr PWMDTY6 = 0xDF; //PWM6设置寄存器 =2 =2 =2 // =2 ///*WatchDog*/ =2 sfr BTMCON = 0XCE; //低频定时器控制寄存器 =2 sfr WDTCON = 0xCF; //WDT控制寄存器 =2 =2 C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 10 =2 sfr OTCON = 0X8F; //输出控制寄存器 =2 =2 /*INT*/ =2 sfr INT0F = 0XBA; //INT0 下降沿中断控制寄存器 =2 sfr INT0R = 0XBB; //INT0 上降沿中断控制寄存器 =2 sfr INT1F = 0XBC; //INT1 下降沿中断控制寄存器 =2 sfr INT1R = 0XBD; //INT1 上降沿中断控制寄存器 =2 sfr INT2F = 0XC6; //INT2 下降沿中断控制寄存器 =2 sfr INT2R = 0XC7; //INT2 上降沿中断控制寄存器 =2 =2 /*IAP */ =2 sfr IAPCTL = 0xF6; //IAP控制寄存器 =2 sfr IAPDAT = 0xF5; //IAP数据寄存器 =2 sfr IAPADE = 0xF4; //IAP扩展地址寄存器 =2 sfr IAPADH = 0xF3; //IAP写入地址高位寄存器 =2 sfr IAPADL = 0xF2; //IAP写入地址低8位寄存器 =2 sfr IAPKEY = 0xF1; //IAP保护寄存器 =2 =2 /*uart0*/ =2 sfr SCON = 0X98; //uart控制寄存器 =2 sfr SBUF = 0X99; //uart0数据寄存器 =2 =2 /*三合一*/ =2 sfr SSCON0 = 0X9D; //SSI控制寄存器0 =2 sfr SSCON1 = 0X9E; //SSI控制寄存器1 =2 sfr SSCON2 = 0X95; //SSI控制寄存器2 =2 sfr SSDAT = 0X9F; //SSI数据寄存器 =2 =2 sfr OPINX = 0XFE; =2 sfr OPREG = 0XFF; =2 =2 /*Check Sum*/ =2 sfr CHKSUML = 0XFC; //Check Sum结果寄存器低位 =2 sfr CHKSUMH = 0XFD; //Check Sum结果寄存器高位 =2 =2 sfr OPERCON = 0xEF; //运算控制寄存器 =2 =2 ///* ------------------- 位寄存器-------------------- */ =2 /*PSW*/ =2 sbit CY = PSW^7; //标志位 0:加法运算最高位无进位,或者减法运算最高位无借 -时 1:加法运算最高位有进位,或者减法运算最高位有借位时 =2 sbit AC = PSW^6; //进位辅助标志位 0:无借位、进位 1:加法运算时在bit3位有进位 -,或减法运算在bit3位有借位时 =2 sbit F0 = PSW^5; //用户标志位 =2 sbit RS1 = PSW^4; //工作寄存器组选择位 =2 sbit RS0 = PSW^3; //工作寄存器组选择位 =2 sbit OV = PSW^2; //溢出标志位 =2 sbit F1 = PSW^1; //F1标志 =2 sbit P = PSW^0; //奇偶标志位 0:ACC中1的个数为偶数(包括0个) 1:ACC中1的个数 -奇数 =2 =2 /*T2CON*/ =2 sbit TF2 = T2CON^7; =2 sbit EXF2 = T2CON^6; =2 sbit RCLK = T2CON^5; =2 sbit TCLK = T2CON^4; =2 sbit EXEN2 = T2CON^3; =2 sbit TR2 = T2CON^2; =2 sbit T2 = T2CON^1; =2 sbit CP = T2CON^0; =2 =2 C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 11 =2 /*IP*/ =2 sbit IPADC = IP^6; //ADC中断优先控制位 0:设定 ADC的中断优先权是 “低” 1:设定 AD -C的中断优先权是 “高” =2 sbit IPT2 = IP^5; //PWM中断优先控制位 0:设定 PWM的中断优先权是 “低” 1:设定 PW -M 的中断优先权是 “高” =2 sbit IPUART = IP^4; //SIF中断优先控制位 0:设定 SIF的中断优先权是 “低” 1:设定 SI -F的中断优先权是 “高” =2 sbit IPT1 = IP^3; //Timer1中断优先控制位 0:设定 Timer 1的中断优先权是 “低” 1:设 - Timer 1的中断优先权是 “高” =2 sbit IPINT1 = IP^2; //32K Base Timer中断优先控制位 0:设定 32K的中断优先权是 “低” - 1:设定 32K的中断优先权是 “高” =2 sbit IPT0 = IP^1; //Timer0中断优先控制位 0:设定 Timer 0的中断优先权是 “低” 1:设 - Timer 0的中断优先权是 “高” =2 sbit IPINT0 = IP^0; =2 =2 /*IE*/ =2 sbit EA = IE^7; //中断使能的总控制 0:关闭所有的中断 1:打开所有的中断 =2 sbit EADC = IE^6; //ADC中断使能控制 0:关闭ADC中断 1:打开ADC中断 =2 sbit ET2 = IE^5; //PWM中断使能控制 0:关闭PWM中断 1:打开PWM中断 =2 sbit EUART = IE^4; //UART中断使能控制 0:关闭SIF中断 1:打开SIF中断 =2 sbit ET1 = IE^3; //Timer1中断使能控制 0:关闭TIMER1中断 1:打开TIMER1中断 =2 sbit EINT1 = IE^2; //32K Base Timer中断使能控制 0:关闭32K中断 1:打开32K中断 =2 sbit ET0 = IE^1; //Timer0中断使能控制 0:关闭TIMER0中断 1:打开TIMER0中断 =2 sbit EINT0 = IE^0; //TouchKey的中断使能控制 0:关闭TouchKey中断 1:打开TouchKey中断 =2 =2 /*TCON*/ =2 sbit TF1 = TCON^7; //T1溢出中断请求标志位 T1产生溢出,发生中断时,硬件将TF1 -为“1”,申请中断,CPU响应时,硬件清“0”。 =2 sbit TR1 = TCON^6; //定时器T1的运行控制位 0:Timer1禁止计数 1:Timer1开始计数 =2 sbit TF0 = TCON^5; //T0溢出中断请求标志位 T0产生溢出,发生中断时,硬件将TF0 -为“1”,申请中断,CPU响应时,硬件清“0”。 =2 sbit TR0 = TCON^4; //定时器T0的运行控制位 0:Timer0禁止计数 1:Timer0开始计数 =2 =2 /*SCON*/ =2 sbit SM0 = SCON^7; =2 sbit SM1 = SCON^6; =2 sbit SM2 = SCON^5; =2 sbit REN = SCON^4; =2 sbit TB8 = SCON^3; =2 sbit RB8 = SCON^2; =2 sbit TI = SCON^1; =2 sbit RI = SCON^0; =2 =2 /* P0 */ =2 sbit P01 = P0^1; =2 sbit P00 = P0^0; =2 =2 /* P1 */ =2 sbit P17 = P1^7; =2 sbit P16 = P1^6; =2 sbit P15 = P1^5; =2 sbit P14 = P1^4; =2 sbit P13 = P1^3; =2 sbit P12 = P1^2; =2 sbit P11 = P1^1; =2 sbit P10 = P1^0; =2 =2 /* P2 */ =2 sbit P27 = P2^7; =2 sbit P26 = P2^6; =2 sbit P25 = P2^5; =2 sbit P24 = P2^4; C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 12 =2 sbit P23 = P2^3; =2 sbit P22 = P2^2; =2 sbit P21 = P2^1; =2 sbit P20 = P2^0; =2 =2 #endif 7 =1 #include "sc92f8003_chksum.h" 1 =2 //************************************************************ 2 =2 // Copyright (c) 深圳市赛元微电子有限公司 3 =2 // 文件名称 : sc92f8003_chksum.h 4 =2 // 作者 : 5 =2 // 模块功能 : CHKSUM固件库函数头文件 6 =2 // 局部函数列表: 7 =2 // 最后更正日期: 2018/9/4 8 =2 // 版本 : V1.0 9 =2 // 说明 : 10 =2 //************************************************************* 11 =2 12 =2 #ifndef __SC92F8003_CHKSUM_H 13 =2 #define __SC92F8003_CHKSUM_H 14 =2 15 =2 #include "sc92f8003.h" 1 =3 #ifndef _SC92F8003_H =3 #define _SC92F8003_H =3 =3 #include "SC92F8003_C.h" =3 #include "stdint.h" =3 =3 #define enableInterrupts() EA=1 /** 开启总中断 **/ =3 #define disableInterrupts() EA=0 /** 关闭总中断 **/ =3 =3 #define __I volatile const /*!< defines 'read only' permissions */ =3 #define __O volatile /*!< defines 'write only' permissions */ =3 #define __IO volatile /*!< defines 'read / write' permissions */ =3 /* =3 //!< Signed integer types =3 typedef signed char int8_t; =3 typedef signed short int16_t; =3 typedef signed long int32_t; =3 =3 //!< Unsigned integer types =3 typedef unsigned char uint8_t; =3 typedef unsigned short uint16_t; =3 typedef unsigned long uint32_t; =3 =3 typedef int32_t s32; =3 typedef int16_t s16; =3 typedef int8_t s8; =3 =3 typedef uint32_t u32; =3 typedef uint16_t u16; =3 typedef uint8_t u8; =3 */ =3 =3 =3 typedef enum {FALSE = 0, TRUE = !FALSE} bool; =3 =3 typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus, BitStatus; =3 =3 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; =3 =3 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 13 =3 =3 typedef enum {LOW = 0, HIGH = !LOW} PriorityStatus; =3 =3 #endif 16 =2 17 =2 void CHKSUM_DeInit(void); 18 =2 void CHKSUM_StartOperation(void); 19 =2 uint16_t CHKSUM_GetCheckValue(void); 20 =2 21 =2 #endif 22 =2 23 =2 /******************* (C) COPYRIGHT 2018 SinOne Microelectronics *****END OF FILE****/ 8 =1 #include "sc92f8003_exti.h" 1 =2 //************************************************************ 2 =2 // Copyright (c) 深圳市赛元微电子有限公司 3 =2 // 文件名称 : sc92f8003_exti.h 4 =2 // 作者 : 5 =2 // 模块功能 : EXTI固件库函数头文件 6 =2 // 局部函数列表: 7 =2 // 最后更正日期: 2018/9/4 8 =2 // 版本 : V1.0 9 =2 // 说明 : 10 =2 //************************************************************* 11 =2 12 =2 #ifndef _SC92F8003_EXTI_H_ 13 =2 #define _SC92F8003_EXTI_H_ 14 =2 15 =2 #include "sc92f8003.h" 1 =3 #ifndef _SC92F8003_H =3 #define _SC92F8003_H =3 =3 #include "SC92F8003_C.h" =3 #include "stdint.h" =3 =3 #define enableInterrupts() EA=1 /** 开启总中断 **/ =3 #define disableInterrupts() EA=0 /** 关闭总中断 **/ =3 =3 #define __I volatile const /*!< defines 'read only' permissions */ =3 #define __O volatile /*!< defines 'write only' permissions */ =3 #define __IO volatile /*!< defines 'read / write' permissions */ =3 /* =3 //!< Signed integer types =3 typedef signed char int8_t; =3 typedef signed short int16_t; =3 typedef signed long int32_t; =3 =3 //!< Unsigned integer types =3 typedef unsigned char uint8_t; =3 typedef unsigned short uint16_t; =3 typedef unsigned long uint32_t; =3 =3 typedef int32_t s32; =3 typedef int16_t s16; =3 typedef int8_t s8; =3 =3 typedef uint32_t u32; =3 typedef uint16_t u16; =3 typedef uint8_t u8; =3 */ =3 =3 =3 typedef enum {FALSE = 0, TRUE = !FALSE} bool; C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 14 =3 =3 typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus, BitStatus; =3 =3 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; =3 =3 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; =3 =3 typedef enum {LOW = 0, HIGH = !LOW} PriorityStatus; =3 =3 #endif 16 =2 17 =2 typedef enum { 18 =2 EXTI_TRIGGER_RISE_ONLY = (uint8_t)0x01, //EXTI触发方式为上升沿 19 =2 EXTI_TRIGGER_FALL_ONLY = (uint8_t)0x02, //EXTI触发方式为下降沿 20 =2 EXTI_TRIGGER_RISE_FALL = (uint8_t)0x03, //EXTI触发方式为上升沿与下降沿 21 =2 EXTI_TRIGGER_DISABLE = (uint8_t)0x04 //关闭外部中断触发 22 =2 } EXTI_TriggerMode_Typedef; 23 =2 24 =2 typedef enum { 25 =2 INT0 = (uint8_t)0x00, //外部中断0 26 =2 INT1 = (uint8_t)0x01, //外部中断1 27 =2 INT2 = (uint8_t)0x02 //外部中断2 28 =2 } EXTIx_Typedef; 29 =2 30 =2 typedef enum { 31 =2 INT00 = (uint8_t)0x01, //将P00设置为INT0脚 32 =2 INT01 = (uint8_t)0x02 //将P01设置为INT0脚 33 =2 } EXTI0x_Typedef; 34 =2 35 =2 typedef enum { 36 =2 INT10 = (uint8_t)0x01, //将P10设置为INT1脚 37 =2 INT11 = (uint8_t)0x02, //将P11设置为INT1脚 38 =2 INT12 = (uint8_t)0x04, //将P12设置为INT1脚 39 =2 INT13 = (uint8_t)0x08, //将P13设置为INT1脚 40 =2 INT14 = (uint8_t)0x10, //将P14设置为INT1脚 41 =2 INT15 = (uint8_t)0x20, //将P15设置为INT1脚 42 =2 INT16 = (uint8_t)0x40 //将P16设置为INT1脚 43 =2 } EXTI1x_Typedef; 44 =2 45 =2 typedef enum { 46 =2 INT21 = (uint8_t)0x02, //将P21设置为INT2脚 47 =2 INT22 = (uint8_t)0x04, //将P22设置为INT2脚 48 =2 INT23 = (uint8_t)0x08, //将P23设置为INT2脚 49 =2 INT24 = (uint8_t)0x10, //将P24设置为INT2脚 50 =2 INT25 = (uint8_t)0x20, //将P25设置为INT2脚 51 =2 INT26 = (uint8_t)0x40, //将P26设置为INT2脚 52 =2 INT27 = (uint8_t)0x80 //将P27设置为INT2脚 53 =2 } EXTI2x_Typedef; 54 =2 55 =2 void EXTI_DeInit(EXTIx_Typedef INTx); 56 =2 void EXTI_SetExtInt0xTriggerMode(uint8_t INT0x,EXTI_TriggerMode_Typedef TriggerMode); 57 =2 void EXTI_SetExtInt1xTriggerMode(uint8_t INT1x,EXTI_TriggerMode_Typedef TriggerMode); 58 =2 void EXTI_SetExtInt2xTriggerMode(uint8_t INT2x,EXTI_TriggerMode_Typedef TriggerMode); 59 =2 void EXTI_ITConfig(EXTIx_Typedef INTx,FunctionalState NewState,PriorityStatus Priority); 60 =2 61 =2 #endif 62 =2 63 =2 /******************* (C) COPYRIGHT 2018 SinOne Microelectronics *****END OF FILE****/ 9 =1 #include "sc92f8003_gpio.h" 1 =2 //************************************************************ 2 =2 // Copyright (c) 深圳市赛元微电子有限公司 3 =2 // 文件名称 : sc92f8003_gpio.h C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 15 4 =2 // 作者 : 5 =2 // 模块功能 : GPIO固件库函数头文件 6 =2 // 局部函数列表: 7 =2 // 最后更正日期: 2018/9/4 8 =2 // 版本 : V1.0 9 =2 // 说明 : 10 =2 //************************************************************* 11 =2 #ifndef _SC92F8003_GPIO_H_ 12 =2 #define _SC92F8003_GPIO_H_ 13 =2 14 =2 #include "sc92f8003.h" 1 =3 #ifndef _SC92F8003_H =3 #define _SC92F8003_H =3 =3 #include "SC92F8003_C.h" =3 #include "stdint.h" =3 =3 #define enableInterrupts() EA=1 /** 开启总中断 **/ =3 #define disableInterrupts() EA=0 /** 关闭总中断 **/ =3 =3 #define __I volatile const /*!< defines 'read only' permissions */ =3 #define __O volatile /*!< defines 'write only' permissions */ =3 #define __IO volatile /*!< defines 'read / write' permissions */ =3 /* =3 //!< Signed integer types =3 typedef signed char int8_t; =3 typedef signed short int16_t; =3 typedef signed long int32_t; =3 =3 //!< Unsigned integer types =3 typedef unsigned char uint8_t; =3 typedef unsigned short uint16_t; =3 typedef unsigned long uint32_t; =3 =3 typedef int32_t s32; =3 typedef int16_t s16; =3 typedef int8_t s8; =3 =3 typedef uint32_t u32; =3 typedef uint16_t u16; =3 typedef uint8_t u8; =3 */ =3 =3 =3 typedef enum {FALSE = 0, TRUE = !FALSE} bool; =3 =3 typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus, BitStatus; =3 =3 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; =3 =3 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; =3 =3 typedef enum {LOW = 0, HIGH = !LOW} PriorityStatus; =3 =3 #endif 15 =2 16 =2 typedef enum { 17 =2 GPIO0 = (uint8_t)0x00, //GPIO0 18 =2 GPIO1 = (uint8_t)0x01, //GPIO1 19 =2 GPIO2 = (uint8_t)0x02, //GPIO2 20 =2 }GPIO_TypeDef; 21 =2 C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 16 22 =2 typedef enum { 23 =2 GPIO_MODE_IN_HI = (uint8_t)0x00, //高阻输入模式 24 =2 GPIO_MODE_IN_PU = (uint8_t)0x01, //带上拉的输入模式 25 =2 GPIO_MODE_OUT_PP = (uint8_t)0x02 //强推挽输出模式 26 =2 }GPIO_Mode_TypeDef; 27 =2 28 =2 typedef enum { 29 =2 GPIO_PIN_0 = ((uint8_t)0x01), //IO管脚Px0 30 =2 GPIO_PIN_1 = ((uint8_t)0x02), //IO管脚Px1 31 =2 GPIO_PIN_2 = ((uint8_t)0x04), //IO管脚Px2 32 =2 GPIO_PIN_3 = ((uint8_t)0x08), //IO管脚Px3 33 =2 GPIO_PIN_4 = ((uint8_t)0x10), //IO管脚Px4 34 =2 GPIO_PIN_5 = ((uint8_t)0x20), //IO管脚Px5 35 =2 GPIO_PIN_6 = ((uint8_t)0x40), //IO管脚Px6 36 =2 GPIO_PIN_7 = ((uint8_t)0x80), //IO管脚Px7 37 =2 GPIO_PIN_LNIB = ((uint8_t)0x0F), //IO管脚Px0~3 38 =2 GPIO_PIN_HNIB = ((uint8_t)0xF0), //IO管脚Px4~7 39 =2 GPIO_PIN_ALL = ((uint8_t)0xFF) //IO管脚Px0~7 40 =2 }GPIO_Pin_TypeDef; 41 =2 42 =2 void GPIO_DeInit(void); 43 =2 void GPIO_Init(GPIO_TypeDef GPIOx, uint8_t PortPins, GPIO_Mode_TypeDef GPIO_Mode); 44 =2 void GPIO_Write(GPIO_TypeDef GPIOx, uint8_t PortVal); 45 =2 void GPIO_WriteHigh(GPIO_TypeDef GPIOx, uint8_t PortPins); 46 =2 void GPIO_WriteLow(GPIO_TypeDef GPIOx, uint8_t PortPins); 47 =2 uint8_t GPIO_ReadPort(GPIO_TypeDef GPIOx); 48 =2 BitStatus GPIO_ReadPin(GPIO_TypeDef GPIOx, GPIO_Pin_TypeDef PortPins); 49 =2 50 =2 #endif 51 =2 52 =2 /******************* (C) COPYRIGHT 2018 SinOne Microelectronics *****END OF FILE****/ 10 =1 #include "sc92f8003_iap.h" 1 =2 //************************************************************ 2 =2 // Copyright (c) 深圳市赛元微电子有限公司 3 =2 // 文件名称 : sc92f8003_iap.h 4 =2 // 作者 : 5 =2 // 模块功能 : IAP固件库函数头文件 6 =2 // 局部函数列表: 7 =2 // 最后更正日期: 2018/9/4 8 =2 // 版本 : V1.0 9 =2 // 说明 : 10 =2 //************************************************************* 11 =2 12 =2 #ifndef _SC92F8003_IAP_H_ 13 =2 #define _SC92F8003_IAP_H_ 14 =2 15 =2 #include "sc92f8003.h" 1 =3 #ifndef _SC92F8003_H =3 #define _SC92F8003_H =3 =3 #include "SC92F8003_C.h" =3 #include "stdint.h" =3 =3 #define enableInterrupts() EA=1 /** 开启总中断 **/ =3 #define disableInterrupts() EA=0 /** 关闭总中断 **/ =3 =3 #define __I volatile const /*!< defines 'read only' permissions */ =3 #define __O volatile /*!< defines 'write only' permissions */ =3 #define __IO volatile /*!< defines 'read / write' permissions */ =3 /* =3 //!< Signed integer types =3 typedef signed char int8_t; C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 17 =3 typedef signed short int16_t; =3 typedef signed long int32_t; =3 =3 //!< Unsigned integer types =3 typedef unsigned char uint8_t; =3 typedef unsigned short uint16_t; =3 typedef unsigned long uint32_t; =3 =3 typedef int32_t s32; =3 typedef int16_t s16; =3 typedef int8_t s8; =3 =3 typedef uint32_t u32; =3 typedef uint16_t u16; =3 typedef uint8_t u8; =3 */ =3 =3 =3 typedef enum {FALSE = 0, TRUE = !FALSE} bool; =3 =3 typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus, BitStatus; =3 =3 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; =3 =3 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; =3 =3 typedef enum {LOW = 0, HIGH = !LOW} PriorityStatus; =3 =3 #endif 16 =2 17 =2 typedef enum { 18 =2 IAP_MEMTYPE_ROM = (uint8_t)0x00, //IAP操作区域为ROM 19 =2 IAP_MEMTYPE_IFB = (uint8_t)0x01, //IAP操作区域为IFB 20 =2 IAP_MEMTYPE_EEPROM = (uint8_t)0x02 //IAP操作区域为EEPROM 21 =2 } IAP_MemType_TypeDef; 22 =2 23 =2 typedef enum { 24 =2 IAP_HOLDTIME_6000US = (uint8_t)0x00, //设定CPU Hold Time为6MS 25 =2 IAP_HOLDTIME_3000US = (uint8_t)0x04, //设定CPU Hold Time为3MS 26 =2 IAP_HOLDTIME_1500US = (uint8_t)0x08 //设定CPU Hold Time为1.5MS 27 =2 } IAP_HoldTime_TypeDef; 28 =2 29 =2 void IAP_DeInit(void); 30 =2 void IAP_SetHoldTime(IAP_HoldTime_TypeDef IAP_HoldTime); 31 =2 void IAP_ProgramByte(uint16_t Address,uint8_t Data,IAP_MemType_TypeDef IAP_MemType,uint8_t WriteTimeLimit) -; 32 =2 uint8_t IAP_ReadByte(uint16_t Address,IAP_MemType_TypeDef IAP_MemType); 33 =2 34 =2 #endif 35 =2 36 =2 /******************* (C) COPYRIGHT 2018 SinOne Microelectronics *****END OF FILE****/ 11 =1 #include "sc92f8003_option.h" 1 =2 //************************************************************ 2 =2 // Copyright (c) 深圳市赛元微电子有限公司 3 =2 // 文件名称 : sc92f8003_option.h 4 =2 // 作者 : 5 =2 // 模块功能 : Customer Option寄存器配置头文件 6 =2 // 局部函数列表: 7 =2 // 最后更正日期: 2018/9/4 8 =2 // 版本 : V1.0 9 =2 // 说明 : 10 =2 //************************************************************* C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 18 11 =2 12 =2 #ifndef _SC92F8003_OPTION_H_ 13 =2 #define _SC92F8003_OPTION_H_ 14 =2 15 =2 #include "sc92f8003.h" 1 =3 #ifndef _SC92F8003_H =3 #define _SC92F8003_H =3 =3 #include "SC92F8003_C.h" =3 #include "stdint.h" =3 =3 #define enableInterrupts() EA=1 /** 开启总中断 **/ =3 #define disableInterrupts() EA=0 /** 关闭总中断 **/ =3 =3 #define __I volatile const /*!< defines 'read only' permissions */ =3 #define __O volatile /*!< defines 'write only' permissions */ =3 #define __IO volatile /*!< defines 'read / write' permissions */ =3 /* =3 //!< Signed integer types =3 typedef signed char int8_t; =3 typedef signed short int16_t; =3 typedef signed long int32_t; =3 =3 //!< Unsigned integer types =3 typedef unsigned char uint8_t; =3 typedef unsigned short uint16_t; =3 typedef unsigned long uint32_t; =3 =3 typedef int32_t s32; =3 typedef int16_t s16; =3 typedef int8_t s8; =3 =3 typedef uint32_t u32; =3 typedef uint16_t u16; =3 typedef uint8_t u8; =3 */ =3 =3 =3 typedef enum {FALSE = 0, TRUE = !FALSE} bool; =3 =3 typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus, BitStatus; =3 =3 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; =3 =3 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; =3 =3 typedef enum {LOW = 0, HIGH = !LOW} PriorityStatus; =3 =3 #endif 16 =2 17 =2 typedef enum { 18 =2 SYSCLK_PRESSEL_FOSC_D1 = (uint8_t)0x00, //预分频 Fsys = Fosc/1 19 =2 SYSCLK_PRESSEL_FOSC_D2 = (uint8_t)0x10, //预分频 Fsys = Fosc/2 20 =2 SYSCLK_PRESSEL_FOSC_D4 = (uint8_t)0x20, //预分频 Fsys = Fosc/4 21 =2 SYSCLK_PRESSEL_FOSC_D12 = (uint8_t)0x30 //预分频 Fsys = Fosc/12 22 =2 } SYSCLK_PresSel_TypeDef; 23 =2 24 =2 typedef enum { 25 =2 LVR_INVALID = (uint8_t)0x04, //LVR无效 26 =2 LVR_2_3V = (uint8_t)0x00, //LVR 2.3V复位 27 =2 LVR_2_9V = (uint8_t)0x01, //LVR 2.9V复位 28 =2 LVR_3_7V = (uint8_t)0x02, //LVR 3.7V复位 C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 19 29 =2 LVR_4_3V = (uint8_t)0x03 //LVR 4.3V复位 30 =2 } LVR_Config_TypeDef; 31 =2 32 =2 typedef enum { 33 =2 IAP_OPERATERANGE_ONLY_EEPROM = (uint8_t)0x00, //只允许EEPROM进行IAP操作 34 =2 IAP_OPERATERANGE__LAST_0_5K_CODEREGION = (uint8_t)0x04, //允许ROM最后0.5k和EEPROM进行IAP操作 35 =2 IAP_OPERATERANGE__LAST_1K_CODEREGION = (uint8_t)0x08, //允许ROM最后1k和EEPROM进行IAP操作 36 =2 IAP_OPERATERANGE__ALL_CODEREGION = (uint8_t)0x0c //允许ROM和EEPROM所有区域进行IAP操作 37 =2 } IAP_OperateRange_TypeDef; 38 =2 39 =2 typedef enum { 40 =2 XTIPLL_HIGHER_THAN_12M = (uint8_t)0x40, //外接晶振振荡频率大于等于12M 41 =2 XTIPLL_UNDER_12M = (uint8_t)0x00 //外接晶振振荡频率小于12M 42 =2 } XTIPLL_Range_TypeDef; 43 =2 44 =2 typedef enum { 45 =2 ADC_VREF_VDD = 0x00, //选择VDD做ADC参考电压 46 =2 ADC_VREF_2_4V = 0x80 //选择内部2.4V做ADC参考电压 47 =2 } ADC_Vref_TypeDef; 48 =2 49 =2 void OPTION_WDT_Cmd(FunctionalState NewState); 50 =2 void OPTION_XTIPLL_Cmd(FunctionalState NewState); 51 =2 void OPTION_XTIPLL_SetRange(XTIPLL_Range_TypeDef XTIPLL_Range); 52 =2 void OPTION_SYSCLK_Init(SYSCLK_PresSel_TypeDef SYSCLK_PresSel); 53 =2 void OPTION_RST_PIN_Cmd(FunctionalState NewState); 54 =2 void OPTION_LVR_Init(LVR_Config_TypeDef LVR_Config); 55 =2 void OPTION_ADC_VrefConfig(ADC_Vref_TypeDef ADC_Vref); 56 =2 void OPTION_IAP_SetOperateRange(IAP_OperateRange_TypeDef IAP_OperateRange); 57 =2 58 =2 #endif 12 =1 #include "sc92f8003_pwm.h" 1 =2 //************************************************************ 2 =2 // Copyright (c) 深圳市赛元微电子有限公司 3 =2 // 文件名称 : sc92f8003_pwm.h 4 =2 // 作者 : 5 =2 // 模块功能 : PWM固件库函数头文件 6 =2 // 局部函数列表: 7 =2 // 最后更正日期: 2018/9/4 8 =2 // 版本 : V1.0 9 =2 // 说明 : 10 =2 //************************************************************* 11 =2 12 =2 #ifndef _SC92F8003_PWM_H_ 13 =2 #define _SC92F8003_PWM_H_ 14 =2 15 =2 #include "sc92f8003.h" 1 =3 #ifndef _SC92F8003_H =3 #define _SC92F8003_H =3 =3 #include "SC92F8003_C.h" =3 #include "stdint.h" =3 =3 #define enableInterrupts() EA=1 /** 开启总中断 **/ =3 #define disableInterrupts() EA=0 /** 关闭总中断 **/ =3 =3 #define __I volatile const /*!< defines 'read only' permissions */ =3 #define __O volatile /*!< defines 'write only' permissions */ =3 #define __IO volatile /*!< defines 'read / write' permissions */ =3 /* =3 //!< Signed integer types =3 typedef signed char int8_t; =3 typedef signed short int16_t; C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 20 =3 typedef signed long int32_t; =3 =3 //!< Unsigned integer types =3 typedef unsigned char uint8_t; =3 typedef unsigned short uint16_t; =3 typedef unsigned long uint32_t; =3 =3 typedef int32_t s32; =3 typedef int16_t s16; =3 typedef int8_t s8; =3 =3 typedef uint32_t u32; =3 typedef uint16_t u16; =3 typedef uint8_t u8; =3 */ =3 =3 =3 typedef enum {FALSE = 0, TRUE = !FALSE} bool; =3 =3 typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus, BitStatus; =3 =3 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; =3 =3 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; =3 =3 typedef enum {LOW = 0, HIGH = !LOW} PriorityStatus; =3 =3 #endif 16 =2 17 =2 typedef enum { 18 =2 PWM_PRESSEL_FOSC_D1 = (uint8_t)0x00, //PWM预分频为Fosc/1 19 =2 PWM_PRESSEL_FOSC_D2 = (uint8_t)0x10, //PWM预分频为Fosc/2 20 =2 PWM_PRESSEL_FOSC_D8 = (uint8_t)0x20, //PWM预分频为Fosc/8 21 =2 PWM_PRESSEL_FOSC_D32 = (uint8_t)0x30 //PWM预分频为Fosc/32 22 =2 } PWM_PresSel_TypeDef; 23 =2 24 =2 typedef enum { 25 =2 PWM0 = (uint8_t)0x01, //PWM输出通道选择:PWM0 26 =2 PWM1 = (uint8_t)0x02, //PWM输出通道选择:PWM1 27 =2 PWM2 = (uint8_t)0x04, //PWM输出通道选择:PWM2 28 =2 PWM3 = (uint8_t)0x08, //PWM输出通道选择:PWM3 29 =2 PWM4 = (uint8_t)0x10, //PWM输出通道选择:PWM4 30 =2 PWM5 = (uint8_t)0x20, //PWM输出通道选择:PWM5 31 =2 PWM6 = (uint8_t)0x40 //PWM输出通道选择:PWM6 32 =2 } PWM_OutputPin_TypeDef; 33 =2 34 =2 typedef enum { 35 =2 PWM0PWM3 = (uint8_t)0x00, //PWM互补模式通道选择:PWM0、PWM3 36 =2 PWM1PWM4 = (uint8_t)0x01, //PWM互补模式通道选择:PWM1、PWM4 37 =2 PWM2PWM5 = (uint8_t)0x02 //PWM互补模式通道选择:PWM2、PWM5 38 =2 } PWM_ComplementaryOutputPin_TypeDef; 39 =2 40 =2 typedef enum { 41 =2 PWM_OUTPUTSTATE_DISABLE = ((uint8_t)0x00), //该PIN脚作为GPIO 42 =2 PWM_OUTPUTSTATE_ENABLE = ((uint8_t)0x01) //该PIN脚作为PWM 43 =2 } PWM_OutputState_TypeDef; 44 =2 45 =2 typedef enum { 46 =2 PWM_POLARITY_NON_INVERT = ((uint8_t)0x00), //PWM输出不反向 47 =2 PWM_POLARITY_INVERT = ((uint8_t)0x01) //PWM输出反向 48 =2 } PWM_Polarity_TypeDef; 49 =2 C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 21 50 =2 void PWM_DeInit(void); 51 =2 void PWM_Init(PWM_PresSel_TypeDef PWM_PresSel,uint16_t PWM_Period); 52 =2 void PWM_OutputStateConfig(uint8_t PWM_OutputPin,PWM_OutputState_TypeDef PWM_OutputState); 53 =2 void PWM_PolarityConfig(uint8_t PWM_OutputPin,PWM_Polarity_TypeDef PWM_Polarity); 54 =2 void PWM_IndependentModeConfig(PWM_OutputPin_TypeDef PWM_OutputPin, uint16_t PWM_DutyCycle); 55 =2 void PWM_ComplementaryModeConfig(PWM_ComplementaryOutputPin_TypeDef PWM_ComplementaryOutputPin,uint16_t PW -M_DutyCycle); 56 =2 void PWM_DeadTimeConfig(uint8_t PWM012_RisingDeadTime,uint8_t PWM345_fallingDeadTime); 57 =2 void PWM_Cmd(FunctionalState NewState); 58 =2 void PWM_ITConfig(FunctionalState NewState, PriorityStatus Priority); 59 =2 FlagStatus PWM_GetFlagStatus(void); 60 =2 void PWM_ClearFlag(void); 61 =2 62 =2 #endif 63 =2 64 =2 /******************* (C) COPYRIGHT 2018 SinOne Microelectronics *****END OF FILE****/ 13 =1 #include "sc92f8003_pwr.h" 1 =2 //************************************************************ 2 =2 // Copyright (c) 深圳市赛元微电子有限公司 3 =2 // 文件名称 : sc92f8003_pwr.h 4 =2 // 作者 : 5 =2 // 模块功能 : PWR固件库函数头文件 6 =2 // 局部函数列表: 7 =2 // 最后更正日期: 2018/9/4 8 =2 // 版本 : V1.0 9 =2 // 说明 : 10 =2 //************************************************************* 11 =2 12 =2 #ifndef _SC92F8003_PWR_H_ 13 =2 #define _SC92F8003_PWR_H_ 14 =2 15 =2 #include "sc92f8003.h" 1 =3 #ifndef _SC92F8003_H =3 #define _SC92F8003_H =3 =3 #include "SC92F8003_C.h" =3 #include "stdint.h" =3 =3 #define enableInterrupts() EA=1 /** 开启总中断 **/ =3 #define disableInterrupts() EA=0 /** 关闭总中断 **/ =3 =3 #define __I volatile const /*!< defines 'read only' permissions */ =3 #define __O volatile /*!< defines 'write only' permissions */ =3 #define __IO volatile /*!< defines 'read / write' permissions */ =3 /* =3 //!< Signed integer types =3 typedef signed char int8_t; =3 typedef signed short int16_t; =3 typedef signed long int32_t; =3 =3 //!< Unsigned integer types =3 typedef unsigned char uint8_t; =3 typedef unsigned short uint16_t; =3 typedef unsigned long uint32_t; =3 =3 typedef int32_t s32; =3 typedef int16_t s16; =3 typedef int8_t s8; =3 =3 typedef uint32_t u32; =3 typedef uint16_t u16; =3 typedef uint8_t u8; C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 22 =3 */ =3 =3 =3 typedef enum {FALSE = 0, TRUE = !FALSE} bool; =3 =3 typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus, BitStatus; =3 =3 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; =3 =3 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; =3 =3 typedef enum {LOW = 0, HIGH = !LOW} PriorityStatus; =3 =3 #endif 16 =2 #include 1 =3 /*-------------------------------------------------------------------------- 2 =3 INTRINS.H 3 =3 4 =3 Intrinsic functions for C51. 5 =3 Copyright (c) 1988-2010 Keil Elektronik GmbH and ARM Germany GmbH 6 =3 All rights reserved. 7 =3 --------------------------------------------------------------------------*/ 8 =3 9 =3 #ifndef __INTRINS_H__ 10 =3 #define __INTRINS_H__ 11 =3 12 =3 #pragma SAVE 13 =3 14 =3 #if defined (__CX2__) =3 #pragma FUNCTIONS(STATIC) =3 /* intrinsic functions are reentrant, but need static attribute */ =3 #endif 18 =3 19 =3 extern void _nop_ (void); 20 =3 extern bit _testbit_ (bit); 21 =3 extern unsigned char _cror_ (unsigned char, unsigned char); 22 =3 extern unsigned int _iror_ (unsigned int, unsigned char); 23 =3 extern unsigned long _lror_ (unsigned long, unsigned char); 24 =3 extern unsigned char _crol_ (unsigned char, unsigned char); 25 =3 extern unsigned int _irol_ (unsigned int, unsigned char); 26 =3 extern unsigned long _lrol_ (unsigned long, unsigned char); 27 =3 extern unsigned char _chkfloat_(float); 28 =3 #if defined (__CX2__) =3 extern int abs (int); =3 extern void _illop_ (void); =3 #endif 32 =3 #if !defined (__CX2__) 33 =3 extern void _push_ (unsigned char _sfr); 34 =3 extern void _pop_ (unsigned char _sfr); 35 =3 #endif 36 =3 37 =3 #pragma RESTORE 38 =3 39 =3 #endif 40 =3 17 =2 18 =2 void PWR_DeInit(void); 19 =2 void PWR_EnterSTOPMode(void); 20 =2 void PWR_EnterIDLEMode(void); 21 =2 22 =2 #endif 23 =2 C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 23 24 =2 /******************* (C) COPYRIGHT 2018 SinOne Microelectronics *****END OF FILE****/ 14 =1 #include "sc92f8003_ssi.h" 1 =2 //************************************************************ 2 =2 // Copyright (c) 深圳市赛元微电子有限公司 3 =2 // 文件名称 : sc92f8003_ssi.h 4 =2 // 作者 : 5 =2 // 模块功能 : SSI固件库函数头文件 6 =2 // 局部函数列表: 7 =2 // 最后更正日期: 2018/9/4 8 =2 // 版本 : V1.0 9 =2 // 说明 : 10 =2 //************************************************************* 11 =2 12 =2 #ifndef __SC92F8003_SSI_H 13 =2 #define __SC92F8003_SSI_H 14 =2 15 =2 #include "sc92f8003.h" 1 =3 #ifndef _SC92F8003_H =3 #define _SC92F8003_H =3 =3 #include "SC92F8003_C.h" =3 #include "stdint.h" =3 =3 #define enableInterrupts() EA=1 /** 开启总中断 **/ =3 #define disableInterrupts() EA=0 /** 关闭总中断 **/ =3 =3 #define __I volatile const /*!< defines 'read only' permissions */ =3 #define __O volatile /*!< defines 'write only' permissions */ =3 #define __IO volatile /*!< defines 'read / write' permissions */ =3 /* =3 //!< Signed integer types =3 typedef signed char int8_t; =3 typedef signed short int16_t; =3 typedef signed long int32_t; =3 =3 //!< Unsigned integer types =3 typedef unsigned char uint8_t; =3 typedef unsigned short uint16_t; =3 typedef unsigned long uint32_t; =3 =3 typedef int32_t s32; =3 typedef int16_t s16; =3 typedef int8_t s8; =3 =3 typedef uint32_t u32; =3 typedef uint16_t u16; =3 typedef uint8_t u8; =3 */ =3 =3 =3 typedef enum {FALSE = 0, TRUE = !FALSE} bool; =3 =3 typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus, BitStatus; =3 =3 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; =3 =3 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; =3 =3 typedef enum {LOW = 0, HIGH = !LOW} PriorityStatus; =3 =3 #endif 16 =2 C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 24 17 =2 typedef enum { 18 =2 SSI_PinSelection_P10P27P26 = (uint8_t)0x00, //SSI共用引脚为P10,P27,P26 19 =2 SSI_PinSelection_P21P22P23 = (uint8_t)0x20 //SSI共用引脚为P21,P22,P23 20 =2 } SSI_PinSelection_TypeDef; 21 =2 22 =2 typedef enum { 23 =2 SPI_FIRSTBIT_MSB = (uint8_t)0x00, //MSB优先发送 24 =2 SPI_FIRSTBIT_LSB = (uint8_t)0x04 //LSB优先发送 25 =2 } SPI_FirstBit_TypeDef; 26 =2 27 =2 typedef enum { 28 =2 SPI_BAUDRATEPRESCALER_4 = (uint8_t)0x00, //SPI时钟速率为Fsys/4 29 =2 SPI_BAUDRATEPRESCALER_8 = (uint8_t)0x01, //SPI时钟速率为Fsys/8 30 =2 SPI_BAUDRATEPRESCALER_16 = (uint8_t)0x02, //SPI时钟速率为Fsys/16 31 =2 SPI_BAUDRATEPRESCALER_32 = (uint8_t)0x03, //SPI时钟速率为Fsys/32 32 =2 SPI_BAUDRATEPRESCALER_64 = (uint8_t)0x04, //SPI时钟速率为Fsys/64 33 =2 SPI_BAUDRATEPRESCALER_128 = (uint8_t)0x05, //SPI时钟速率为Fsys/128 34 =2 SPI_BAUDRATEPRESCALER_256 = (uint8_t)0x06, //SPI时钟速率为Fsys/256 35 =2 SPI_BAUDRATEPRESCALER_512 = (uint8_t)0x07 //SPI时钟速率为Fsys/512 36 =2 } SPI_BaudRatePrescaler_TypeDef; 37 =2 38 =2 typedef enum { 39 =2 SPI_MODE_MASTER = (uint8_t)0x20, //SPI为主设备 40 =2 SPI_MODE_SLAVE = (uint8_t)0x00 //SPI为从设备 41 =2 } SPI_Mode_TypeDef; 42 =2 43 =2 typedef enum { 44 =2 SPI_CLOCKPOLARITY_LOW = (uint8_t)0x00, //SCK在空闲状态下为低电平 45 =2 SPI_CLOCKPOLARITY_HIGH = (uint8_t)0x10 //SCK在空闲状态下为高电平 46 =2 } SPI_ClockPolarity_TypeDef; 47 =2 48 =2 typedef enum { 49 =2 SPI_CLOCKPHASE_1EDGE = (uint8_t)0x00, //SCK的第一沿采集数据 50 =2 SPI_CLOCKPHASE_2EDGE = (uint8_t)0x08 //SCK的第二沿采集数据 51 =2 } SPI_ClockPhase_TypeDef; 52 =2 53 =2 typedef enum { 54 =2 SPI_TXE_DISINT = (uint8_t)0x00, //TXE为0时不允许发送中断 55 =2 SPI_TXE_ENINT = (uint8_t)0x01 //TXE为1时允许发送中断 56 =2 } SPI_TXE_INT_TypeDef; 57 =2 58 =2 59 =2 typedef enum { 60 =2 UART1_Mode_10B = 0X00, //UART1设置为10位模式 61 =2 UART1_Mode_11B = 0X80 //UART1设置为11位模式 62 =2 } UART1_Mode_TypeDef; 63 =2 64 =2 typedef enum { 65 =2 UART1_RX_ENABLE = 0X10, //UART1允许接收 66 =2 UART1_RX_DISABLE = 0X00 //UART1禁止接收 67 =2 } UART1_RX_TypeDef; 68 =2 69 =2 typedef enum { 70 =2 SPI_FLAG_SPIF = (uint8_t)0x80, //SPI数据传送标志位SPIF 71 =2 SPI_FLAG_WCOL = (uint8_t)0x40, //SPI写入冲突标志位WCOL 72 =2 SPI_FLAG_TXE = (uint8_t)0x08, //SPI发送缓存器空标志TXE 73 =2 TWI_FLAG_TWIF = (uint8_t)0x40, //TWI中断标志位TWIF 74 =2 TWI_FLAG_GCA = (uint8_t)0x10, //TWI通用地址响应标志位GCA 75 =2 UART1_FLAG_TI = (uint8_t)0x02, //UART1发送中断标志位TI 76 =2 UART1_FLAG_RI = (uint8_t)0x01 //UART1接收中断标志位RI 77 =2 } SSI_Flag_TypeDef; 78 =2 C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 25 79 =2 void SSI_DeInit(void); 80 =2 void SSI_PinSelection(SSI_PinSelection_TypeDef PinSeletion); 81 =2 void SSI_SPI_Init(SPI_FirstBit_TypeDef FirstBit,SPI_BaudRatePrescaler_TypeDef BaudRatePrescaler,SPI_Mode_T -ypeDef Mode,SPI_ClockPolarity_TypeDef ClockPolarity,SPI_ClockPhase_TypeDef ClockPhase,SPI_TXE_INT_TypeDef SPI_TXE_INT); 82 =2 void SSI_SPI_Cmd(FunctionalState NewState); 83 =2 void SSI_SPI_SendData(uint8_t Data); 84 =2 uint8_t SSI_SPI_ReceiveData(void); 85 =2 void SSI_TWI_Init(uint8_t TWI_Address); 86 =2 void SSI_TWI_AcknowledgeConfig(FunctionalState NewState); 87 =2 void SSI_TWI_GeneralCallCmd(FunctionalState NewState); 88 =2 void SSI_TWI_Cmd(FunctionalState NewState); 89 =2 void SSI_TWI_SendData(uint8_t Data); 90 =2 uint8_t SSI_TWI_ReceiveData(void); 91 =2 void SSI_UART1_Init(uint32_t UART1Fsys, uint32_t BaudRate, UART1_Mode_TypeDef Mode, UART1_RX_TypeDef RxMod -e); 92 =2 void SSI_UART1_SendData8(uint8_t Data); 93 =2 uint8_t SSI_UART1_ReceiveData8(void); 94 =2 void SSI_UART1_SendData9(uint16_t Data); 95 =2 uint16_t SSI_UART1_ReceiveData9(void); 96 =2 void SSI_ITConfig(FunctionalState NewState, PriorityStatus Priority); 97 =2 FlagStatus SSI_GetFlagStatus(SSI_Flag_TypeDef SSI_FLAG); 98 =2 void SSI_ClearFlag(SSI_Flag_TypeDef SSI_FLAG); 99 =2 100 =2 #endif 101 =2 102 =2 /******************* (C) COPYRIGHT 2018 SinOne Microelectronics *****END OF FILE****/ 15 =1 #include "sc92f8003_timer0.h" 1 =2 //************************************************************ 2 =2 // Copyright (c) 深圳市赛元微电子有限公司 3 =2 // 文件名称 : sc92f8003_timer0.h 4 =2 // 作者 : 5 =2 // 模块功能 : TIMER0固件库函数头文件 6 =2 // 局部函数列表: 7 =2 // 最后更正日期: 2018/9/4 8 =2 // 版本 : V1.0 9 =2 // 说明 : 10 =2 //************************************************************* 11 =2 12 =2 #ifndef _SC92F8003_TIMER0_H_ 13 =2 #define _SC92F8003_TIMER0_H_ 14 =2 15 =2 #include "sc92f8003.h" 1 =3 #ifndef _SC92F8003_H =3 #define _SC92F8003_H =3 =3 #include "SC92F8003_C.h" =3 #include "stdint.h" =3 =3 #define enableInterrupts() EA=1 /** 开启总中断 **/ =3 #define disableInterrupts() EA=0 /** 关闭总中断 **/ =3 =3 #define __I volatile const /*!< defines 'read only' permissions */ =3 #define __O volatile /*!< defines 'write only' permissions */ =3 #define __IO volatile /*!< defines 'read / write' permissions */ =3 /* =3 //!< Signed integer types =3 typedef signed char int8_t; =3 typedef signed short int16_t; =3 typedef signed long int32_t; =3 =3 //!< Unsigned integer types =3 typedef unsigned char uint8_t; C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 26 =3 typedef unsigned short uint16_t; =3 typedef unsigned long uint32_t; =3 =3 typedef int32_t s32; =3 typedef int16_t s16; =3 typedef int8_t s8; =3 =3 typedef uint32_t u32; =3 typedef uint16_t u16; =3 typedef uint8_t u8; =3 */ =3 =3 =3 typedef enum {FALSE = 0, TRUE = !FALSE} bool; =3 =3 typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus, BitStatus; =3 =3 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; =3 =3 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; =3 =3 typedef enum {LOW = 0, HIGH = !LOW} PriorityStatus; =3 =3 #endif 16 =2 17 =2 typedef enum { 18 =2 TIM0_PRESSEL_FSYS_D12 = ((uint8_t)0x00), //TIMER0计数源来自系统时钟12分频 19 =2 TIM0_PRESSEL_FSYS_D1 = ((uint8_t)0x01) //TIMER0计数源来自系统时钟 20 =2 }TIM0_PresSel_TypeDef; 21 =2 22 =2 typedef enum { 23 =2 TIM0_MODE_TIMER = ((uint8_t)0x01), //TIMER0做定时器 24 =2 TIM0_MODE_COUNTER = ((uint8_t)0x02) //TIMER0做计数器 25 =2 }TIM0_CountMode_TypeDef; 26 =2 27 =2 void TIM0_DeInit(void); 28 =2 void TIM0_TimeBaseInit(TIM0_PresSel_TypeDef TIM0_PrescalerSelection,TIM0_CountMode_TypeDef TIM0_CountMode) -; 29 =2 void TIM0_WorkMode0Config(uint16_t TIM0_SetCounter); 30 =2 void TIM0_WorkMode1Config(uint16_t TIM0_SetCounter); 31 =2 void TIM0_WorkMode2Config(uint8_t TIM0_SetCounter); 32 =2 void TIM0_WorkMode3Config(uint8_t TIM0_SetCounter, uint8_t TIM1_SetCounter); 33 =2 void TIM0_Mode0SetReloadCounter(uint16_t TIM0_SetCounter); 34 =2 void TIM0_Mode1SetReloadCounter(uint16_t TIM0_SetCounter); 35 =2 void TIM0_SetTL0Counter(uint8_t TIM0_SetCounter); 36 =2 void TIM0_SetTH0Counter(uint8_t TIM0_SetCounter); 37 =2 void TIM0_Cmd(FunctionalState NewState); 38 =2 void TIM0_ITConfig(FunctionalState NewState, PriorityStatus Priority); 39 =2 FlagStatus TIM0_GetFlagStatus(void); 40 =2 void TIM0_ClearFlag(void); 41 =2 42 =2 #endif 43 =2 44 =2 /******************* (C) COPYRIGHT 2018 SinOne Microelectronics *****END OF FILE****/ 16 =1 #include "sc92f8003_timer1.h" 1 =2 //************************************************************ 2 =2 // Copyright (c) 深圳市赛元微电子有限公司 3 =2 // 文件名称 : sc92f8003_timer1.h 4 =2 // 作者 : 5 =2 // 模块功能 : TIMER1固件库函数头文件 6 =2 // 局部函数列表: 7 =2 // 最后更正日期: 2018/9/4 C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 27 8 =2 // 版本 : V1.0 9 =2 // 说明 : 10 =2 //************************************************************* 11 =2 12 =2 #ifndef _SC92F8003_TIMER1_H_ 13 =2 #define _SC92F8003_TIMER1_H_ 14 =2 15 =2 #include "sc92f8003.h" 1 =3 #ifndef _SC92F8003_H =3 #define _SC92F8003_H =3 =3 #include "SC92F8003_C.h" =3 #include "stdint.h" =3 =3 #define enableInterrupts() EA=1 /** 开启总中断 **/ =3 #define disableInterrupts() EA=0 /** 关闭总中断 **/ =3 =3 #define __I volatile const /*!< defines 'read only' permissions */ =3 #define __O volatile /*!< defines 'write only' permissions */ =3 #define __IO volatile /*!< defines 'read / write' permissions */ =3 /* =3 //!< Signed integer types =3 typedef signed char int8_t; =3 typedef signed short int16_t; =3 typedef signed long int32_t; =3 =3 //!< Unsigned integer types =3 typedef unsigned char uint8_t; =3 typedef unsigned short uint16_t; =3 typedef unsigned long uint32_t; =3 =3 typedef int32_t s32; =3 typedef int16_t s16; =3 typedef int8_t s8; =3 =3 typedef uint32_t u32; =3 typedef uint16_t u16; =3 typedef uint8_t u8; =3 */ =3 =3 =3 typedef enum {FALSE = 0, TRUE = !FALSE} bool; =3 =3 typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus, BitStatus; =3 =3 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; =3 =3 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; =3 =3 typedef enum {LOW = 0, HIGH = !LOW} PriorityStatus; =3 =3 #endif 16 =2 17 =2 typedef enum { 18 =2 TIM1_PRESSEL_FSYS_D12 = ((uint8_t)0x00), //TIMER1计数源来自系统时钟12分频 19 =2 TIM1_PRESSEL_FSYS_D1 = ((uint8_t)0x01) //TIMER1计数源来自系统时钟 20 =2 }TIM1_PresSel_TypeDef; 21 =2 22 =2 typedef enum { 23 =2 TIM1_MODE_TIMER = ((uint8_t)0x01), //TIMER1做定时器 24 =2 TIM1_MODE_COUNTER = ((uint8_t)0x02) //TIMER1做计数器 25 =2 }TIM1_CountMode_TypeDef; C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 28 26 =2 27 =2 void TIM1_DeInit(void); 28 =2 void TIM1_TimeBaseInit(TIM1_PresSel_TypeDef TIM1_PrescalerSelection,TIM1_CountMode_TypeDef TIM1_CountMode) -; 29 =2 void TIM1_WorkMode0Config(uint16_t TIM1_SetCounter); 30 =2 void TIM1_WorkMode1Config(uint16_t TIM1_SetCounter); 31 =2 void TIM1_WorkMode2Config(uint8_t TIM1_SetCounter); 32 =2 void TIM1_Mode0SetReloadCounter(uint16_t TIM1_SetCounter); 33 =2 void TIM1_Mode1SetReloadCounter(uint16_t TIM1_SetCounter); 34 =2 void TIM1_Cmd(FunctionalState NewState); 35 =2 void TIM1_ITConfig(FunctionalState NewState, PriorityStatus Priority); 36 =2 FlagStatus TIM1_GetFlagStatus(void); 37 =2 void TIM1_ClearFlag(void); 38 =2 39 =2 #endif 40 =2 41 =2 /******************* (C) COPYRIGHT 2018 SinOne Microelectronics *****END OF FILE****/ 17 =1 #include "sc92f8003_timer2.h" 1 =2 //************************************************************ 2 =2 // Copyright (c) 深圳市赛元微电子有限公司 3 =2 // 文件名称 : sc92f8003_timer2.h 4 =2 // 作者 : 5 =2 // 模块功能 : TIMER2固件库函数头文件 6 =2 // 局部函数列表: 7 =2 // 最后更正日期: 2018/9/4 8 =2 // 版本 : V1.0 9 =2 // 说明 : 10 =2 //************************************************************* 11 =2 12 =2 #ifndef _SC92F8003_TIMER2_H_ 13 =2 #define _SC92F8003_TIMER2_H_ 14 =2 15 =2 #include "sc92f8003.h" 1 =3 #ifndef _SC92F8003_H =3 #define _SC92F8003_H =3 =3 #include "SC92F8003_C.h" =3 #include "stdint.h" =3 =3 #define enableInterrupts() EA=1 /** 开启总中断 **/ =3 #define disableInterrupts() EA=0 /** 关闭总中断 **/ =3 =3 #define __I volatile const /*!< defines 'read only' permissions */ =3 #define __O volatile /*!< defines 'write only' permissions */ =3 #define __IO volatile /*!< defines 'read / write' permissions */ =3 /* =3 //!< Signed integer types =3 typedef signed char int8_t; =3 typedef signed short int16_t; =3 typedef signed long int32_t; =3 =3 //!< Unsigned integer types =3 typedef unsigned char uint8_t; =3 typedef unsigned short uint16_t; =3 typedef unsigned long uint32_t; =3 =3 typedef int32_t s32; =3 typedef int16_t s16; =3 typedef int8_t s8; =3 =3 typedef uint32_t u32; =3 typedef uint16_t u16; C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 29 =3 typedef uint8_t u8; =3 */ =3 =3 =3 typedef enum {FALSE = 0, TRUE = !FALSE} bool; =3 =3 typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus, BitStatus; =3 =3 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; =3 =3 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; =3 =3 typedef enum {LOW = 0, HIGH = !LOW} PriorityStatus; =3 =3 #endif 16 =2 17 =2 typedef enum { 18 =2 TIM2_PRESSEL_FSYS_D12 = ((uint8_t)0x00), //TIMER0计数源来自系统时钟12分频 19 =2 TIM2_PRESSEL_FSYS_D1 = ((uint8_t)0x01) //TIMER0计数源来自系统时钟 20 =2 }TIM2_PresSel_TypeDef; 21 =2 22 =2 typedef enum { 23 =2 TIM2_MODE_TIMER = ((uint8_t)0x01), //TIMER0做定时器 24 =2 TIM2_MODE_COUNTER = ((uint8_t)0x02) //TIMER0做计数器 25 =2 }TIM2_CountMode_TypeDef; 26 =2 27 =2 typedef enum { 28 =2 TIM2_COUNTDIRECTION_UP = ((uint8_t)0x00), //向上计数模式 29 =2 TIM2_COUNTDIRECTION_DOWN_UP = ((uint8_t)0x10) //向上/向下计数模式 30 =2 }TIM2_CountDirection_TypeDef; 31 =2 32 =2 typedef enum { 33 =2 TIM2_FLAG_TF2 = (uint8_t)0x80, //中断标志位TF2 34 =2 TIM2_FLAG_EXF2 = (uint8_t)0x40 //中断标志位EXF2 35 =2 } TIM2_Flag_TypeDef; 36 =2 37 =2 void TIM2_DeInit(void); 38 =2 void TIM2_TimeBaseInit(TIM2_PresSel_TypeDef TIM2_PrescalerSelection, TIM2_CountMode_TypeDef TIM2_CountMode -, TIM2_CountDirection_TypeDef TIM2_CountDirection); 39 =2 void TIM2_WorkMode0Config(uint16_t TIM2_SetCounter); 40 =2 void TIM2_WorkMode1Config(uint16_t TIM2_SetCounter); 41 =2 void TIM2_WorkMode3Config(uint16_t TIM2_SetCounter); 42 =2 void TIM2_SetEXEN2(FunctionalState NewState); 43 =2 void TIM2_Cmd(FunctionalState NewState); 44 =2 void TIM2_ITConfig(FunctionalState NewState, PriorityStatus Priority); 45 =2 FlagStatus TIM2_GetFlagStatus(TIM2_Flag_TypeDef TIM2_Flag); 46 =2 void TIM2_ClearFlag(TIM2_Flag_TypeDef TIM2_Flag); 47 =2 48 =2 #endif 18 =1 #include "sc92f8003_uart0.h" 1 =2 //************************************************************ 2 =2 // Copyright (c) 深圳市赛元微电子有限公司 3 =2 // 文件名称 : sc92f8003_uart0.h 4 =2 // 作者 : 5 =2 // 模块功能 : UART0固件库函数头文件 6 =2 // 局部函数列表: 7 =2 // 最后更正日期: 2018/9/4 8 =2 // 版本 : V1.0 9 =2 // 说明 : 10 =2 //************************************************************* 11 =2 12 =2 #ifndef __SC92F8003_UART0_H C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 30 13 =2 #define __SC92F8003_UART0_H 14 =2 15 =2 #include "sc92f8003.h" 1 =3 #ifndef _SC92F8003_H =3 #define _SC92F8003_H =3 =3 #include "SC92F8003_C.h" =3 #include "stdint.h" =3 =3 #define enableInterrupts() EA=1 /** 开启总中断 **/ =3 #define disableInterrupts() EA=0 /** 关闭总中断 **/ =3 =3 #define __I volatile const /*!< defines 'read only' permissions */ =3 #define __O volatile /*!< defines 'write only' permissions */ =3 #define __IO volatile /*!< defines 'read / write' permissions */ =3 /* =3 //!< Signed integer types =3 typedef signed char int8_t; =3 typedef signed short int16_t; =3 typedef signed long int32_t; =3 =3 //!< Unsigned integer types =3 typedef unsigned char uint8_t; =3 typedef unsigned short uint16_t; =3 typedef unsigned long uint32_t; =3 =3 typedef int32_t s32; =3 typedef int16_t s16; =3 typedef int8_t s8; =3 =3 typedef uint32_t u32; =3 typedef uint16_t u16; =3 typedef uint8_t u8; =3 */ =3 =3 =3 typedef enum {FALSE = 0, TRUE = !FALSE} bool; =3 =3 typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus, BitStatus; =3 =3 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; =3 =3 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; =3 =3 typedef enum {LOW = 0, HIGH = !LOW} PriorityStatus; =3 =3 #endif 16 =2 17 =2 #define UART0_BaudRate_FsysDIV12 0X00 //仅模式0可用,串行端口在系统时钟的1/12下运 - 18 =2 #define UART0_BaudRate_FsysDIV4 0X01 //仅模式0可用,串行端口在系统时钟的1/4下运行 19 =2 20 =2 typedef enum { 21 =2 UART0_PinSelection_P15P16 = (uint8_t)0x00, //UART0引脚为P15,P16 22 =2 UART0_PinSelection_P11P20 = (uint8_t)0x10 //UART0引脚为P11,P20 23 =2 } UART0_PinSelection_TypeDef; 24 =2 25 =2 typedef enum { 26 =2 UART0_CLOCK_TIMER1 = (uint8_t)0X00, //TIMER1做波特率发生器 27 =2 UART0_CLOCK_TIMER2 = (uint8_t)0X30 //TIMER2做波特率发生器 28 =2 } UART0_Clock_Typedef; 29 =2 C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 31 30 =2 typedef enum { 31 =2 UART0_Mode_8B = 0X00, //UART工作模式:8位半双工 32 =2 UART0_Mode_10B = 0X40, //UART工作模式:10位全双工 33 =2 UART0_Mode_11B = 0XC0 //UART工作模式:11位全双工 34 =2 } UART0_Mode_Typedef; 35 =2 36 =2 typedef enum { 37 =2 UART0_RX_ENABLE = 0x10, //允许接收数据 38 =2 UART0_RX_DISABLE = 0x00 //不允许接收数据 39 =2 } UART0_RX_Typedef; 40 =2 41 =2 typedef enum { 42 =2 UART0_FLAG_RI = 0X01, //接收中断标志位RI 43 =2 UART0_FLAG_TI = 0X02 //发送中断标志位TI 44 =2 } UART0_Flag_Typedef; 45 =2 46 =2 void UART0_DeInit(void); 47 =2 void UART0_PinSelection(UART0_PinSelection_TypeDef PinSeletion); 48 =2 void UART0_Init(uint32_t Uart0Fsys, uint32_t BaudRate, UART0_Mode_Typedef Mode, 49 =2 UART0_Clock_Typedef ClockMode, UART0_RX_Typedef RxMode); 50 =2 void UART0_SendData8(uint8_t Data); 51 =2 uint8_t UART0_ReceiveData8(void); 52 =2 void UART0_SendData9(uint16_t Data); 53 =2 uint16_t UART0_ReceiveData9(void); 54 =2 void UART0_ITConfig(FunctionalState NewState, PriorityStatus Priority); 55 =2 FlagStatus UART0_GetFlagStatus(UART0_Flag_Typedef UART0_Flag); 56 =2 void UART0_ClearFlag(UART0_Flag_Typedef UART0_Flag); 57 =2 58 =2 #endif 59 =2 60 =2 /******************* (C) COPYRIGHT 2018 SinOne Microelectronics *****END OF FILE****/ 19 =1 #include "sc92f8003_wdt.h" 1 =2 //************************************************************ 2 =2 // Copyright (c) 深圳市赛元微电子有限公司 3 =2 // 文件名称 : sc92f8003_wdt.h 4 =2 // 作者 : 5 =2 // 模块功能 : WDT固件库函数头文件 6 =2 // 局部函数列表: 7 =2 // 最后更正日期: 2018/9/4 8 =2 // 版本 : V1.0 9 =2 // 说明 : 10 =2 //************************************************************* 11 =2 12 =2 #ifndef _SC92F8003_WDT_H_ 13 =2 #define _SC92F8003_WDT_H_ 14 =2 15 =2 #include "sc92f8003.h" 1 =3 #ifndef _SC92F8003_H =3 #define _SC92F8003_H =3 =3 #include "SC92F8003_C.h" =3 #include "stdint.h" =3 =3 #define enableInterrupts() EA=1 /** 开启总中断 **/ =3 #define disableInterrupts() EA=0 /** 关闭总中断 **/ =3 =3 #define __I volatile const /*!< defines 'read only' permissions */ =3 #define __O volatile /*!< defines 'write only' permissions */ =3 #define __IO volatile /*!< defines 'read / write' permissions */ =3 /* =3 //!< Signed integer types =3 typedef signed char int8_t; C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 32 =3 typedef signed short int16_t; =3 typedef signed long int32_t; =3 =3 //!< Unsigned integer types =3 typedef unsigned char uint8_t; =3 typedef unsigned short uint16_t; =3 typedef unsigned long uint32_t; =3 =3 typedef int32_t s32; =3 typedef int16_t s16; =3 typedef int8_t s8; =3 =3 typedef uint32_t u32; =3 typedef uint16_t u16; =3 typedef uint8_t u8; =3 */ =3 =3 =3 typedef enum {FALSE = 0, TRUE = !FALSE} bool; =3 =3 typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus, BitStatus; =3 =3 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; =3 =3 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; =3 =3 typedef enum {LOW = 0, HIGH = !LOW} PriorityStatus; =3 =3 #endif 16 =2 17 =2 typedef enum { 18 =2 WDT_OverflowTime_500MS = (uint8_t)0x00, //WDT溢出时间为500MS 19 =2 WDT_OverflowTime_250MS = (uint8_t)0x01, //WDT溢出时间为250MS 20 =2 WDT_OverflowTime_125MS = (uint8_t)0x02, //WDT溢出时间为125MS 21 =2 WDT_OverflowTime_62_5MS = (uint8_t)0x03, //WDT溢出时间为62MS 22 =2 WDT_OverflowTime_31_5MS = (uint8_t)0x04, //WDT溢出时间为31MS 23 =2 WDT_OverflowTime_15_75MS = (uint8_t)0x05, //WDT溢出时间为15MS 24 =2 WDT_OverflowTime_7_88MS = (uint8_t)0x06, //WDT溢出时间为7MS 25 =2 WDT_OverflowTime_3_94MS = (uint8_t)0x07 //WDT溢出时间为4MS 26 =2 } WDT_OverflowTime_TypeDef; 27 =2 28 =2 void WDT_DeInit(void); 29 =2 void WDT_Init(WDT_OverflowTime_TypeDef OverflowTime); 30 =2 void WDT_SetReload(void); 31 =2 32 =2 #endif 33 =2 34 =2 /******************* (C) COPYRIGHT 2018 SinOne Microelectronics *****END OF FILE****/ 20 =1 21 =1 #define disable() { uint8_t pEA = EA; EA = 0; 22 =1 #define enable() EA = pEA;} 23 =1 #endif 3 #include "task_hal.h" 1 =1 #ifndef _TASK_HAL_H_ 2 =1 #define _TASK_HAL_H_ 3 =1 4 =1 5 =1 #include "stdint.h" 1 =2 #ifndef _STD_INT_H_ =2 #define _STD_INT_H_ =2 typedef signed long int32_t; =2 typedef unsigned long uint32_t; C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 33 =2 typedef signed char int8_t; =2 typedef unsigned char uint8_t; =2 typedef signed int int16_t; =2 typedef unsigned int uint16_t; =2 #endif 6 =1 #include "intrins.h" 1 =2 /*-------------------------------------------------------------------------- 2 =2 INTRINS.H 3 =2 4 =2 Intrinsic functions for C51. 5 =2 Copyright (c) 1988-2010 Keil Elektronik GmbH and ARM Germany GmbH 6 =2 All rights reserved. 7 =2 --------------------------------------------------------------------------*/ 8 =2 9 =2 #ifndef __INTRINS_H__ =2 #define __INTRINS_H__ =2 =2 #pragma SAVE =2 =2 #if defined (__CX2__) =2 #pragma FUNCTIONS(STATIC) =2 /* intrinsic functions are reentrant, but need static attribute */ =2 #endif =2 =2 extern void _nop_ (void); =2 extern bit _testbit_ (bit); =2 extern unsigned char _cror_ (unsigned char, unsigned char); =2 extern unsigned int _iror_ (unsigned int, unsigned char); =2 extern unsigned long _lror_ (unsigned long, unsigned char); =2 extern unsigned char _crol_ (unsigned char, unsigned char); =2 extern unsigned int _irol_ (unsigned int, unsigned char); =2 extern unsigned long _lrol_ (unsigned long, unsigned char); =2 extern unsigned char _chkfloat_(float); =2 #if defined (__CX2__) =2 extern int abs (int); =2 extern void _illop_ (void); =2 #endif =2 #if !defined (__CX2__) =2 extern void _push_ (unsigned char _sfr); =2 extern void _pop_ (unsigned char _sfr); =2 #endif =2 =2 #pragma RESTORE =2 =2 #endif 40 =2 7 =1 #include "task_hal_cfg.h" 1 =2 #ifndef _TASK_HAL_CFG_H_ 2 =2 #define _TASK_HAL_CFG_H_ 3 =2 4 =2 5 =2 #include 1 =3 #ifndef _SC92F8003_H =3 #define _SC92F8003_H =3 =3 #include "SC92F8003_C.h" =3 #include "stdint.h" =3 =3 #define enableInterrupts() EA=1 /** 开启总中断 **/ =3 #define disableInterrupts() EA=0 /** 关闭总中断 **/ =3 =3 #define __I volatile const /*!< defines 'read only' permissions */ C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 34 =3 #define __O volatile /*!< defines 'write only' permissions */ =3 #define __IO volatile /*!< defines 'read / write' permissions */ =3 /* =3 //!< Signed integer types =3 typedef signed char int8_t; =3 typedef signed short int16_t; =3 typedef signed long int32_t; =3 =3 //!< Unsigned integer types =3 typedef unsigned char uint8_t; =3 typedef unsigned short uint16_t; =3 typedef unsigned long uint32_t; =3 =3 typedef int32_t s32; =3 typedef int16_t s16; =3 typedef int8_t s8; =3 =3 typedef uint32_t u32; =3 typedef uint16_t u16; =3 typedef uint8_t u8; =3 */ =3 =3 =3 typedef enum {FALSE = 0, TRUE = !FALSE} bool; =3 =3 typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus, BitStatus; =3 =3 typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState; =3 =3 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; =3 =3 typedef enum {LOW = 0, HIGH = !LOW} PriorityStatus; =3 =3 #endif 6 =2 7 =2 #define INT_EXT0 0 8 =2 #define INT_T0 1 9 =2 #define INT_EXT1 2 10 =2 #define INT_T1 3 11 =2 #define INT_UART0 4 12 =2 #define INT_T2 5 13 =2 #define INT_ADC 6 14 =2 #define INT_SSI 7 15 =2 #define INT_PWM 8 16 =2 #define INT_BTM 9 17 =2 #define INT_EXT2 10 18 =2 19 =2 20 =2 21 =2 #define GPIOR GPIO1 22 =2 #define GPIOG GPIO2 23 =2 #define GPIOB GPIO2 24 =2 #define GPIOC GPIO2 25 =2 #define GPIOW GPIO2 26 =2 27 =2 #define LEDR GPIO_PIN_0 28 =2 #define LEDG GPIO_PIN_7 29 =2 #define LEDB GPIO_PIN_6 30 =2 #define LEDC GPIO_PIN_5 31 =2 #define LEDW GPIO_PIN_4 32 =2 33 =2 C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 35 34 =2 35 =2 #define FOSC 12000000UL 36 =2 #define TICKPER1S 1000UL 37 =2 38 =2 39 =2 40 =2 #endif 8 =1 #include "al_helper.h" 1 =2 /* 2 =2 * al_helper.h 3 =2 * 4 =2 * Created on: 2023-4-20 5 =2 * Author: xukaiming 6 =2 */ 7 =2 8 =2 #ifndef _AL_HELPER_H_ 9 =2 #define _AL_HELPER_H_ 10 =2 11 =2 #include "stdint.h" 1 =3 #ifndef _STD_INT_H_ =3 #define _STD_INT_H_ =3 typedef signed long int32_t; =3 typedef unsigned long uint32_t; =3 typedef signed char int8_t; =3 typedef unsigned char uint8_t; =3 typedef signed int int16_t; =3 typedef unsigned int uint16_t; =3 #endif 12 =2 13 =2 #ifdef __cplusplus =2 extern "C" { =2 #endif 16 =2 17 =2 //#define AL_STATIC static 18 =2 #define AL_STATIC 19 =2 #define AL_INLINE inline 20 =2 21 =2 #define TASK_WITH_PT 1 22 =2 #define TASK_WITH_NAME 0 23 =2 24 =2 #define XDATA xdata 25 =2 #define IDATA idata 26 =2 #define CONST code 27 =2 //#define CONST xdata 28 =2 29 =2 30 =2 #ifndef UNUSED 31 =2 #define UNUSED(x) (void)(x) 32 =2 #endif 33 =2 34 =2 enum 35 =2 { 36 =2 false = 0, 37 =2 true =!false 38 =2 }; 39 =2 40 =2 #ifdef __cplusplus =2 } =2 #endif 43 =2 44 =2 #endif 45 =2 C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 36 9 =1 #include "pt_header.h" 1 =2 #ifndef _PT_HEADER_H_ 2 =2 #define _PT_HEADER_H_ 3 =2 4 =2 #include "pt_timer.h" 1 =3 #ifndef _PT_TIMER_H_ 2 =3 #define _PT_TIMER_H_ 3 =3 #include "pt.h" 1 =4 2 =4 #ifndef __PT_H__ 3 =4 #define __PT_H__ 4 =4 5 =4 #include "lc.h" 1 =5 #ifndef __LC_H__ 2 =5 #define __LC_H__ 3 =5 4 =5 5 =5 #ifdef LC_INCLUDE =5 #include LC_INCLUDE =5 #else 8 =5 #include "lc-switch.h" 1 =6 2 =6 3 =6 #ifndef __LC_SWITCH_H__ 4 =6 #define __LC_SWITCH_H__ 5 =6 6 =6 typedef unsigned short lc_t; 7 =6 8 =6 #define LC_INIT(s) s = 0; 9 =6 10 =6 #define LC_RESUME(s) switch(s) { case 0: 11 =6 12 =6 #define LC_SET(s) s = __LINE__; case __LINE__: 13 =6 14 =6 #define LC_END(s) } 15 =6 16 =6 #endif /* __LC_SWITCH_H__ */ 17 =6 18 =6 /** @} */ 9 =5 #endif 10 =5 11 =5 #endif 6 =4 7 =4 struct pt { 8 =4 lc_t lc; 9 =4 }; 10 =4 11 =4 12 =4 #ifndef UNUSED_PARAM 13 =4 #define UNUSED_PARAM(v) (void)(v) 14 =4 #endif 15 =4 16 =4 #define PT_WAITING 0 //等待 17 =4 #define PT_YIELDED 1 //锁死线程 18 =4 #define PT_EXITED 2 //退出 19 =4 #define PT_ENDED 3 //结束 20 =4 21 =4 22 =4 #define PT_BIND(pt1) {static idata struct pt pt_hide ;pt1 = &pt_hide;} 23 =4 24 =4 25 =4 #define PT_INIT(pt) LC_INIT((pt)->lc) C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 37 26 =4 #define PT_THREAD(name_args) int8_t name_args 27 =4 #define PT_BEGIN(pt) { int8_t PT_YIELD_FLAG = 1; LC_RESUME((pt)->lc) 28 =4 #define PT_END(pt) LC_END((pt)->lc); PT_YIELD_FLAG = 0; \ 29 =4 UNUSED_PARAM(PT_YIELD_FLAG );\ 30 =4 PT_INIT(pt); return PT_ENDED; } 31 =4 32 =4 33 =4 //等待条件成立,如果不成立,继续等待 34 =4 #define PT_WAIT_UNTIL(pt, condition) \ 35 =4 do { \ 36 =4 LC_SET((pt)->lc); \ 37 =4 if(!(condition)) { \ 38 =4 return PT_WAITING; \ 39 =4 } \ 40 =4 } while(0) 41 =4 42 =4 //一直等待,直到条件不成立 43 =4 #define PT_WAIT_WHILE(pt, cond) PT_WAIT_UNTIL((pt), !(cond)) 44 =4 //等待子线程退出 45 =4 #define PT_WAIT_THREAD(pt, thread) PT_WAIT_WHILE((pt), PT_SCHEDULE(thread)) 46 =4 47 =4 //启动子线程,等待子线程退出,如果不退出,在此阻塞 48 =4 #define PT_SPAWN(pt, child, thread) \ 49 =4 do { \ 50 =4 PT_INIT((child)); \ 51 =4 PT_WAIT_THREAD((pt), (thread)); \ 52 =4 } while(0) 53 =4 54 =4 //重新启动线程,从头开始 55 =4 #define PT_RESTART(pt) \ 56 =4 do { \ 57 =4 PT_INIT(pt); \ 58 =4 return PT_WAITING; \ 59 =4 } while(0) 60 =4 61 =4 //退出线程 62 =4 #define PT_EXIT(pt) \ 63 =4 do { \ 64 =4 PT_INIT(pt); \ 65 =4 return PT_EXITED; \ 66 =4 } while(0) 67 =4 //子线程是否退出 68 =4 #define PT_SCHEDULE(f) ((f) < PT_EXITED) 69 =4 70 =4 //锁死任务 71 =4 #define PT_YIELD(pt) \ 72 =4 do { \ 73 =4 PT_YIELD_FLAG = 0; \ 74 =4 LC_SET((pt)->lc); \ 75 =4 if(PT_YIELD_FLAG == 0) { \ 76 =4 return PT_YIELDED; \ 77 =4 } \ 78 =4 } while(0) 79 =4 80 =4 //锁死任务直到符合条件 81 =4 #define PT_YIELD_UNTIL(pt, cond) \ 82 =4 do { \ 83 =4 PT_YIELD_FLAG = 0; \ 84 =4 LC_SET((pt)->lc); \ 85 =4 if((PT_YIELD_FLAG == 0) || !(cond)) { \ 86 =4 return PT_YIELDED; \ 87 =4 } \ C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 38 88 =4 } while(0) 89 =4 90 =4 91 =4 #endif /* __PT_H__ */ 4 =3 5 =3 6 =3 struct timer { 7 =3 unsigned long start; //记录启动时的tick值 8 =3 unsigned long interval; //要定时的tick数 9 =3 }; 10 =3 11 =3 void timer_set(struct timer *t, unsigned long interval); 12 =3 unsigned char timer_expired(struct timer *t); 13 =3 void delay_ms(unsigned long t_ms); 14 =3 void Delay10us(void); 15 =3 void delay_us(unsigned int t); 16 =3 #endif 5 =2 #include "pt-sem.h" 1 =3 /* 2 =3 #include "pt-sem.h" 3 =3 4 =3 #define NUM_ITEMS 32 5 =3 #define BUFSIZE 8 6 =3 7 =3 static struct pt_sem mutex, full, empty; 8 =3 9 =3 PT_THREAD(producer(struct pt *pt)) 10 =3 { 11 =3 static int produced; 12 =3 13 =3 PT_BEGIN(pt); 14 =3 15 =3 for(produced = 0; produced < NUM_ITEMS; ++produced) { 16 =3 17 =3 PT_SEM_WAIT(pt, &full); 18 =3 19 =3 PT_SEM_WAIT(pt, &mutex); 20 =3 add_to_buffer(produce_item()); 21 =3 PT_SEM_SIGNAL(pt, &mutex); 22 =3 23 =3 PT_SEM_SIGNAL(pt, &empty); 24 =3 } 25 =3 26 =3 PT_END(pt); 27 =3 } 28 =3 29 =3 PT_THREAD(consumer(struct pt *pt)) 30 =3 { 31 =3 static int consumed; 32 =3 33 =3 PT_BEGIN(pt); 34 =3 35 =3 for(consumed = 0; consumed < NUM_ITEMS; ++consumed) { 36 =3 37 =3 PT_SEM_WAIT(pt, &empty); 38 =3 39 =3 PT_SEM_WAIT(pt, &mutex); 40 =3 consume_item(get_from_buffer()); 41 =3 PT_SEM_SIGNAL(pt, &mutex); 42 =3 43 =3 PT_SEM_SIGNAL(pt, &full); 44 =3 } C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 39 45 =3 46 =3 PT_END(pt); 47 =3 } 48 =3 49 =3 PT_THREAD(driver_thread(struct pt *pt)) 50 =3 { 51 =3 static struct pt pt_producer, pt_consumer; 52 =3 53 =3 PT_BEGIN(pt); 54 =3 55 =3 PT_SEM_INIT(&empty, 0); 56 =3 PT_SEM_INIT(&full, BUFSIZE); 57 =3 PT_SEM_INIT(&mutex, 1); 58 =3 59 =3 PT_INIT(&pt_producer); 60 =3 PT_INIT(&pt_consumer); 61 =3 62 =3 PT_WAIT_THREAD(pt, producer(&pt_producer) & 63 =3 consumer(&pt_consumer)); 64 =3 65 =3 PT_END(pt); 66 =3 } 67 =3 */ 68 =3 69 =3 #ifndef __PT_SEM_H__ 70 =3 #define __PT_SEM_H__ 71 =3 72 =3 #include "pt.h" 1 =4 2 =4 #ifndef __PT_H__ =4 #define __PT_H__ =4 =4 #include "lc.h" =4 =4 struct pt { =4 lc_t lc; =4 }; =4 =4 =4 #ifndef UNUSED_PARAM =4 #define UNUSED_PARAM(v) (void)(v) =4 #endif =4 =4 #define PT_WAITING 0 //等待 =4 #define PT_YIELDED 1 //锁死线程 =4 #define PT_EXITED 2 //退出 =4 #define PT_ENDED 3 //结束 =4 =4 =4 #define PT_BIND(pt1) {static idata struct pt pt_hide ;pt1 = &pt_hide;} =4 =4 =4 #define PT_INIT(pt) LC_INIT((pt)->lc) =4 #define PT_THREAD(name_args) int8_t name_args =4 #define PT_BEGIN(pt) { int8_t PT_YIELD_FLAG = 1; LC_RESUME((pt)->lc) =4 #define PT_END(pt) LC_END((pt)->lc); PT_YIELD_FLAG = 0; \ =4 UNUSED_PARAM(PT_YIELD_FLAG );\ =4 PT_INIT(pt); return PT_ENDED; } =4 =4 =4 //等待条件成立,如果不成立,继续等待 =4 #define PT_WAIT_UNTIL(pt, condition) \ C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 40 =4 do { \ =4 LC_SET((pt)->lc); \ =4 if(!(condition)) { \ =4 return PT_WAITING; \ =4 } \ =4 } while(0) =4 =4 //一直等待,直到条件不成立 =4 #define PT_WAIT_WHILE(pt, cond) PT_WAIT_UNTIL((pt), !(cond)) =4 //等待子线程退出 =4 #define PT_WAIT_THREAD(pt, thread) PT_WAIT_WHILE((pt), PT_SCHEDULE(thread)) =4 =4 //启动子线程,等待子线程退出,如果不退出,在此阻塞 =4 #define PT_SPAWN(pt, child, thread) \ =4 do { \ =4 PT_INIT((child)); \ =4 PT_WAIT_THREAD((pt), (thread)); \ =4 } while(0) =4 =4 //重新启动线程,从头开始 =4 #define PT_RESTART(pt) \ =4 do { \ =4 PT_INIT(pt); \ =4 return PT_WAITING; \ =4 } while(0) =4 =4 //退出线程 =4 #define PT_EXIT(pt) \ =4 do { \ =4 PT_INIT(pt); \ =4 return PT_EXITED; \ =4 } while(0) =4 //子线程是否退出 =4 #define PT_SCHEDULE(f) ((f) < PT_EXITED) =4 =4 //锁死任务 =4 #define PT_YIELD(pt) \ =4 do { \ =4 PT_YIELD_FLAG = 0; \ =4 LC_SET((pt)->lc); \ =4 if(PT_YIELD_FLAG == 0) { \ =4 return PT_YIELDED; \ =4 } \ =4 } while(0) =4 =4 //锁死任务直到符合条件 =4 #define PT_YIELD_UNTIL(pt, cond) \ =4 do { \ =4 PT_YIELD_FLAG = 0; \ =4 LC_SET((pt)->lc); \ =4 if((PT_YIELD_FLAG == 0) || !(cond)) { \ =4 return PT_YIELDED; \ =4 } \ =4 } while(0) =4 =4 =4 #endif /* __PT_H__ */ 73 =3 74 =3 struct pt_sem { 75 =3 unsigned int count; 76 =3 }; 77 =3 C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 41 78 =3 //信号量 79 =3 #define PT_SEM_INIT(s, c) (s)->count = c 80 =3 81 =3 //信号量等待 当信号量大于0 时继续,否则等待 82 =3 #define PT_SEM_WAIT(pt, s) \ 83 =3 do { \ 84 =3 PT_WAIT_UNTIL(pt, (s)->count > 0); \ 85 =3 --(s)->count; \ 86 =3 } while(0) 87 =3 88 =3 //写入信号量 89 =3 #define PT_SEM_SIGNAL(pt, s) ++(s)->count 90 =3 91 =3 #endif /* __PT_SEM_H__ */ 92 =3 93 =3 /** @} */ 94 =3 /** @} */ 95 =3 6 =2 7 =2 #endif 8 =2 10 =1 11 =1 #include "LT89xx_rf.h" 1 =2 #ifndef _LT89XX_RF_H_ 2 =2 #define _LT89XX_RF_H_ 3 =2 #include "stdint.h" 1 =3 #ifndef _STD_INT_H_ =3 #define _STD_INT_H_ =3 typedef signed long int32_t; =3 typedef unsigned long uint32_t; =3 typedef signed char int8_t; =3 typedef unsigned char uint8_t; =3 typedef signed int int16_t; =3 typedef unsigned int uint16_t; =3 #endif 4 =2 5 =2 #define SIMULATOR 0 6 =2 void InitLT89xxRF(void); 7 =2 uint8_t DecodePackage(uint8_t *pBuf,uint8_t len1); 8 =2 void TaskLT89xx_thread_entry(void *param ); 9 =2 10 =2 #endif 12 =1 #include "key.h" 1 =2 #ifndef _KEY_H_ 2 =2 #define _KEY_H_ 3 =2 #include "pt.h" 1 =3 2 =3 #ifndef __PT_H__ =3 #define __PT_H__ =3 =3 #include "lc.h" =3 =3 struct pt { =3 lc_t lc; =3 }; =3 =3 =3 #ifndef UNUSED_PARAM =3 #define UNUSED_PARAM(v) (void)(v) =3 #endif =3 =3 #define PT_WAITING 0 //等待 C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 42 =3 #define PT_YIELDED 1 //锁死线程 =3 #define PT_EXITED 2 //退出 =3 #define PT_ENDED 3 //结束 =3 =3 =3 #define PT_BIND(pt1) {static idata struct pt pt_hide ;pt1 = &pt_hide;} =3 =3 =3 #define PT_INIT(pt) LC_INIT((pt)->lc) =3 #define PT_THREAD(name_args) int8_t name_args =3 #define PT_BEGIN(pt) { int8_t PT_YIELD_FLAG = 1; LC_RESUME((pt)->lc) =3 #define PT_END(pt) LC_END((pt)->lc); PT_YIELD_FLAG = 0; \ =3 UNUSED_PARAM(PT_YIELD_FLAG );\ =3 PT_INIT(pt); return PT_ENDED; } =3 =3 =3 //等待条件成立,如果不成立,继续等待 =3 #define PT_WAIT_UNTIL(pt, condition) \ =3 do { \ =3 LC_SET((pt)->lc); \ =3 if(!(condition)) { \ =3 return PT_WAITING; \ =3 } \ =3 } while(0) =3 =3 //一直等待,直到条件不成立 =3 #define PT_WAIT_WHILE(pt, cond) PT_WAIT_UNTIL((pt), !(cond)) =3 //等待子线程退出 =3 #define PT_WAIT_THREAD(pt, thread) PT_WAIT_WHILE((pt), PT_SCHEDULE(thread)) =3 =3 //启动子线程,等待子线程退出,如果不退出,在此阻塞 =3 #define PT_SPAWN(pt, child, thread) \ =3 do { \ =3 PT_INIT((child)); \ =3 PT_WAIT_THREAD((pt), (thread)); \ =3 } while(0) =3 =3 //重新启动线程,从头开始 =3 #define PT_RESTART(pt) \ =3 do { \ =3 PT_INIT(pt); \ =3 return PT_WAITING; \ =3 } while(0) =3 =3 //退出线程 =3 #define PT_EXIT(pt) \ =3 do { \ =3 PT_INIT(pt); \ =3 return PT_EXITED; \ =3 } while(0) =3 //子线程是否退出 =3 #define PT_SCHEDULE(f) ((f) < PT_EXITED) =3 =3 //锁死任务 =3 #define PT_YIELD(pt) \ =3 do { \ =3 PT_YIELD_FLAG = 0; \ =3 LC_SET((pt)->lc); \ =3 if(PT_YIELD_FLAG == 0) { \ =3 return PT_YIELDED; \ =3 } \ =3 } while(0) C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 43 =3 =3 //锁死任务直到符合条件 =3 #define PT_YIELD_UNTIL(pt, cond) \ =3 do { \ =3 PT_YIELD_FLAG = 0; \ =3 LC_SET((pt)->lc); \ =3 if((PT_YIELD_FLAG == 0) || !(cond)) { \ =3 return PT_YIELDED; \ =3 } \ =3 } while(0) =3 =3 =3 #endif /* __PT_H__ */ 4 =2 #include "al_helper.h" 1 =3 /* 2 =3 * al_helper.h 3 =3 * 4 =3 * Created on: 2023-4-20 5 =3 * Author: xukaiming 6 =3 */ 7 =3 8 =3 #ifndef _AL_HELPER_H_ =3 #define _AL_HELPER_H_ =3 =3 #include "stdint.h" =3 =3 #ifdef __cplusplus =3 extern "C" { =3 #endif =3 =3 //#define AL_STATIC static =3 #define AL_STATIC =3 #define AL_INLINE inline =3 =3 #define TASK_WITH_PT 1 =3 #define TASK_WITH_NAME 0 =3 =3 #define XDATA xdata =3 #define IDATA idata =3 #define CONST code =3 //#define CONST xdata =3 =3 =3 #ifndef UNUSED =3 #define UNUSED(x) (void)(x) =3 #endif =3 =3 enum =3 { =3 false = 0, =3 true =!false =3 }; =3 =3 #ifdef __cplusplus =3 } =3 #endif =3 =3 #endif 45 =3 5 =2 void InitKey(void); 6 =2 7 =2 #if TASK_WITH_PT C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 44 8 =2 PT_THREAD(TaskScanKey(struct pt *pt1 )) ; 9 =2 #else =2 PT_THREAD(TaskScanKey(void)) ; =2 #endif 12 =2 extern XDATA unsigned char gcKey; 13 =2 unsigned char GetKey(void) ; 14 =2 #endif 13 =1 #include "BulbId.h" 1 =2 #ifndef _BULBLD_H_ 2 =2 #define _BULBLD_H_ 3 =2 4 =2 #include "BulbId_def.h" 1 =3 #ifndef _BULBLD_DEF_H_ 2 =3 #define _BULBLD_DEF_H_ 3 =3 #include "stdint.h" 1 =4 #ifndef _STD_INT_H_ =4 #define _STD_INT_H_ =4 typedef signed long int32_t; =4 typedef unsigned long uint32_t; =4 typedef signed char int8_t; =4 typedef unsigned char uint8_t; =4 typedef signed int int16_t; =4 typedef unsigned int uint16_t; =4 #endif 4 =3 5 =3 6 =3 #define V2_PACKET_LEN 9 7 =3 8 =3 #define V2_PROTOCOL_ID_INDEX 1 9 =3 #define V2_ID_HI_INDEX 2 10 =3 #define V2_ID_LOW_INDEX 3 11 =3 #define V2_COMMAND_INDEX 4 12 =3 #define V2_ARGUMENT_INDEX 5 13 =3 14 =3 #define V2_GRP_INDEX 7 15 =3 16 =3 17 =3 #define FUT089_COLOR_OFFSET 0 18 =3 19 =3 enum MiLightFUT089Command 20 =3 { 21 =3 FUT089_ON = 0x01, 22 =3 FUT089_OFF = 0x01, 23 =3 FUT089_COLOR = 0x02, 24 =3 FUT089_BRIGHTNESS = 0x05, 25 =3 FUT089_MODE = 0x06, 26 =3 FUT089_KELVIN = 0x07, // Controls Kelvin when in White mode 27 =3 FUT089_SATURATION = 0x07 // Controls Saturation when in Color mode 28 =3 }; 29 =3 30 =3 enum MiLightFUT089Arguments 31 =3 { 32 =3 FUT089_MODE_SPEED_UP = 0x12, 33 =3 FUT089_MODE_SPEED_DOWN = 0x13, 34 =3 FUT089_WHITE_MODE = 0x14 35 =3 }; 36 =3 37 =3 enum MiLightRemoteType 38 =3 { 39 =3 REMOTE_TYPE_UNKNOWN = 255, 40 =3 REMOTE_TYPE_RGBW = 0, 41 =3 REMOTE_TYPE_CCT = 1, C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 45 42 =3 REMOTE_TYPE_RGB_CCT = 2, 43 =3 REMOTE_TYPE_RGB = 3, 44 =3 REMOTE_TYPE_FUT089 = 4, 45 =3 REMOTE_TYPE_FUT091 = 5, 46 =3 REMOTE_TYPE_FUT020 = 6 47 =3 }; 48 =3 49 =3 // MiLight CCT bulbs range from 2700K-6500K, or ~370.3-153.8 mireds. 50 =3 #define COLOR_TEMP_MAX_MIREDS 370 51 =3 #define COLOR_TEMP_MIN_MIREDS 153 52 =3 53 =3 54 =3 55 =3 enum BulbMode { 56 =3 BULB_MODE_WHITE, 57 =3 BULB_MODE_COLOR, 58 =3 BULB_MODE_SCENE, 59 =3 BULB_MODE_NIGHT 60 =3 }; 61 =3 62 =3 enum IncDIR{ 63 =3 INCREASE = 1, 64 =3 DECREASE = -1U 65 =3 }; 66 =3 67 =3 68 =3 enum eCommands { 69 =3 UNPAIR , 70 =3 PAIR , 71 =3 SET_WHITE , 72 =3 NIGHT_MODE , 73 =3 LEVEL_UP , 74 =3 LEVEL_DOWN , 75 =3 TEMPERATURE_UP , 76 =3 TEMPERATURE_DOWN, 77 =3 NEXT_MODE , 78 =3 PREVIOUS_MODE , 79 =3 MODE_SPEED_DOWN , 80 =3 MODE_SPEED_UP , 81 =3 TOGGLE , 82 =3 TRANSITION 83 =3 }; 84 =3 85 =3 86 =3 enum LEDState 87 =3 { 88 =3 OFF = 0, 89 =3 ON 90 =3 }; 91 =3 92 =3 struct Result 93 =3 { 94 =3 uint8_t button_id ; 95 =3 uint8_t argument ; 96 =3 uint8_t STATE ; 97 =3 uint8_t STATUS ; 98 =3 uint8_t BRIGHTNESS ; 99 =3 uint8_t LEVEL ; 100 =3 uint8_t HUE ; 101 =3 uint8_t SATURATION ; 102 =3 uint8_t COLOR ; 103 =3 uint8_t MODE ; C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 46 104 =3 uint8_t KELVIN ; 105 =3 uint8_t TEMPERATURE ; 106 =3 uint8_t COLOR_TEMP ; 107 =3 uint8_t BULB_MODE ; 108 =3 uint8_t COMPUTED_COLOR ; 109 =3 uint8_t EFFECT ; 110 =3 uint8_t DEVICE_ID ; 111 =3 uint8_t GROUP_ID ; 112 =3 uint8_t DEVICE_TYPE ; 113 =3 uint8_t OH_COLOR ; 114 =3 uint8_t HEX_COLOR ; 115 =3 uint8_t COMMAND ; 116 =3 uint8_t COMMANDS ; 117 =3 uint8_t COLOR_MODE ; 118 =3 }; 119 =3 120 =3 struct BulbId 121 =3 { 122 =3 enum MiLightRemoteType deviceType; 123 =3 uint8_t groupId; 124 =3 uint16_t deviceId; 125 =3 uint16_t PWM_Value[5]; 126 =3 127 =3 uint8_t bENPWM :1; 128 =3 uint8_t bInit :1; 129 =3 uint8_t repeatCnt; 130 =3 131 =3 struct Result result; 132 =3 }; 133 =3 #endif 5 =2 #include "al_helper.h" 1 =3 /* 2 =3 * al_helper.h 3 =3 * 4 =3 * Created on: 2023-4-20 5 =3 * Author: xukaiming 6 =3 */ 7 =3 8 =3 #ifndef _AL_HELPER_H_ =3 #define _AL_HELPER_H_ =3 =3 #include "stdint.h" =3 =3 #ifdef __cplusplus =3 extern "C" { =3 #endif =3 =3 //#define AL_STATIC static =3 #define AL_STATIC =3 #define AL_INLINE inline =3 =3 #define TASK_WITH_PT 1 =3 #define TASK_WITH_NAME 0 =3 =3 #define XDATA xdata =3 #define IDATA idata =3 #define CONST code =3 //#define CONST xdata =3 =3 =3 #ifndef UNUSED =3 #define UNUSED(x) (void)(x) C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 47 =3 #endif =3 =3 enum =3 { =3 false = 0, =3 true =!false =3 }; =3 =3 #ifdef __cplusplus =3 } =3 #endif =3 =3 #endif 45 =3 6 =2 #include "pt_header.h" 1 =3 #ifndef _PT_HEADER_H_ =3 #define _PT_HEADER_H_ =3 =3 #include "pt_timer.h" =3 #include "pt-sem.h" =3 =3 #endif 8 =3 7 =2 8 =2 9 =2 void SetBulbInfo(uint8_t *pBulbInfo,uint8_t len1); 10 =2 void InitOrUninit(void* p); 11 =2 void waitForInitOrUnInit(void); 12 =2 13 =2 14 =2 #if TASK_WITH_PT 15 =2 PT_THREAD(TaskBlinLed(struct pt * pt1 )) ; 16 =2 #else =2 PT_THREAD(TaskBlinLed(void)) ; =2 #endif 19 =2 20 =2 #endif 14 =1 15 =1 typedef void (* func )(void); 16 =1 17 =1 void Idle(void); 18 =1 void Init(void); 19 =1 void InitWdt(void); 20 =1 void InitPort(void); 21 =1 22 =1 23 =1 void SysTick_Handler(void); 24 =1 void Task_SysTick_Handler(void); 25 =1 26 =1 27 =1 #if TASK_WITH_PT 28 =1 PT_THREAD(TaskWDT(struct pt * pt1 )) ; 29 =1 #else =1 PT_THREAD(TaskWDT(void )) ; =1 #endif 32 =1 int InitTaskStack(void); 33 =1 int InitTimerStack(void); 34 =1 #endif 4 5 #include "main.h" 1 =1 #ifndef _MAIN_H_ 2 =1 #define _MAIN_H_ C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 48 3 =1 4 =1 #include "task.h" 1 =2 #ifndef _TASK_H_ 2 =2 #define _TASK_H_ 3 =2 4 =2 #include "cfg/task_header.h" 1 =3 #ifndef _TASK_HEADER_H 2 =3 #define _TASK_HEADER_H 3 =3 4 =3 #include "task_hal.h" 1 =4 #ifndef _TASK_HAL_H_ =4 #define _TASK_HAL_H_ =4 =4 =4 #include "stdint.h" =4 #include "intrins.h" =4 #include "task_hal_cfg.h" =4 #include "al_helper.h" =4 #include "pt_header.h" =4 =4 #include "LT89xx_rf.h" =4 #include "key.h" =4 #include "BulbId.h" =4 =4 typedef void (* func )(void); =4 =4 void Idle(void); =4 void Init(void); =4 void InitWdt(void); =4 void InitPort(void); =4 =4 =4 void SysTick_Handler(void); =4 void Task_SysTick_Handler(void); =4 =4 =4 #if TASK_WITH_PT =4 PT_THREAD(TaskWDT(struct pt * pt1 )) ; =4 #else =4 PT_THREAD(TaskWDT(void )) ; =4 #endif =4 int InitTaskStack(void); =4 int InitTimerStack(void); =4 #endif 5 =3 #endif 6 =3 5 =2 #include "task_def.h" 1 =3 #ifndef _TASK_DEF_H_ 2 =3 #define _TASK_DEF_H_ 3 =3 4 =3 5 =3 #define TASK_ID(FUNC) TASK_ID_##FUNC 6 =3 7 =3 #if(TASK_WITH_NAME) =3 #define TASK_NAME(FUNC) #FUNC =3 #else 10 =3 #define TASK_NAME(FUNC) 0 11 =3 #endif 12 =3 13 =3 14 =3 #ifndef UNUSED_PARAM =3 #define UNUSED_PARAM(p) (void)(p) C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 49 =3 #endif 17 =3 18 =3 19 =3 #ifndef NULL 20 =3 #define NULL (void*)0 21 =3 #endif 22 =3 23 =3 24 =3 #ifndef UNUSED =3 #define UNUSED(x) (void)(x) =3 #endif 27 =3 28 =3 #endif 6 =2 7 =2 #ifdef __cplusplus =2 extern "C" { =2 #endif 10 =2 11 =2 12 =2 13 =2 enum TASK_ID { 14 =2 TASK_ID(TaskTimer), 15 =2 #include "cfg/taskid.h" 1 =3 TASK_ID(TaskBlinLed), 2 =3 TASK_ID(TaskWDT), 3 =3 TASK_ID(TaskScanKey), 4 =3 5 =3 16 =2 }; 17 =2 18 =2 19 =2 20 =2 enum TASK_MODE 21 =2 { 22 =2 TASK_MODE_ONCE, 23 =2 TASK_MODE_PERIOD 24 =2 }; 25 =2 26 =2 enum TIMER_MODE 27 =2 { 28 =2 TIMER_MODE_TIMER = 0, 29 =2 TIMER_MODE_ONCEROUTINE, 30 =2 TIMER_MODE_CYCROUTINE 31 =2 }; 32 =2 33 =2 void InitT0(void); 34 =2 void InitTask(void); 35 =2 void TaskProc(void) ; 36 =2 37 =2 38 =2 int8_t ActiveTask(int8_t cTaskID, int32_t lPeriod); 39 =2 int8_t SuspendTask(int8_t cTaskID); 40 =2 41 =2 void ActiveTaskNow(int8_t cTaskID, int32_t lPeriod); 42 =2 int8_t SetTaskLastTime(int8_t cTaskID,int32_t lLastTime); 43 =2 44 =2 45 =2 int8_t StartTimer2(int8_t *TimerID,int8_t cMode,uint32_t lPeriod,void (* routine)(void * Param1),void * - Param1); 46 =2 int8_t StartTimer( int8_t cMode,int32_t lPeriod,void (* routine)(void * Param1),void * - Param1); 47 =2 int8_t StopTimer ( int8_t * pcTimerNumber ); C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 50 48 =2 void StopAllTimer(void); 49 =2 50 =2 uint32_t get_system_ms(void); 51 =2 void ResetTimer(void); 52 =2 //////////////// 53 =2 54 =2 55 =2 56 =2 // function prototype 57 =2 #if TASK_WITH_PT 58 =2 PT_THREAD(TaskTimer(struct pt *pt1 )); 59 =2 #else =2 PT_THREAD(TaskTimer(void)); =2 #endif 62 =2 63 =2 #ifdef __cplusplus =2 } =2 #endif 66 =2 #endif 67 =2 5 =1 6 =1 #include "bulbId.h" 1 =2 #ifndef _BULBLD_H_ =2 #define _BULBLD_H_ =2 =2 #include "BulbId_def.h" =2 #include "al_helper.h" =2 #include "pt_header.h" =2 =2 =2 void SetBulbInfo(uint8_t *pBulbInfo,uint8_t len1); =2 void InitOrUninit(void* p); =2 void waitForInitOrUnInit(void); =2 =2 =2 #if TASK_WITH_PT =2 PT_THREAD(TaskBlinLed(struct pt * pt1 )) ; =2 #else =2 PT_THREAD(TaskBlinLed(void)) ; =2 #endif =2 =2 #endif 7 =1 #include "LT89xx_rf.h" 1 =2 #ifndef _LT89XX_RF_H_ =2 #define _LT89XX_RF_H_ =2 #include "stdint.h" =2 =2 #define SIMULATOR 0 =2 void InitLT89xxRF(void); =2 uint8_t DecodePackage(uint8_t *pBuf,uint8_t len1); =2 void TaskLT89xx_thread_entry(void *param ); =2 =2 #endif 8 =1 #include "pwm.h" 1 =2 #ifndef _PWM_H_ 2 =2 #define _PWM_H_ 3 =2 #include "stdint.h" 1 =3 #ifndef _STD_INT_H_ =3 #define _STD_INT_H_ =3 typedef signed long int32_t; =3 typedef unsigned long uint32_t; =3 typedef signed char int8_t; C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 51 =3 typedef unsigned char uint8_t; =3 typedef signed int int16_t; =3 typedef unsigned int uint16_t; =3 #endif 4 =2 #include "al_helper.h" 1 =3 /* 2 =3 * al_helper.h 3 =3 * 4 =3 * Created on: 2023-4-20 5 =3 * Author: xukaiming 6 =3 */ 7 =3 8 =3 #ifndef _AL_HELPER_H_ =3 #define _AL_HELPER_H_ =3 =3 #include "stdint.h" =3 =3 #ifdef __cplusplus =3 extern "C" { =3 #endif =3 =3 //#define AL_STATIC static =3 #define AL_STATIC =3 #define AL_INLINE inline =3 =3 #define TASK_WITH_PT 1 =3 #define TASK_WITH_NAME 0 =3 =3 #define XDATA xdata =3 #define IDATA idata =3 #define CONST code =3 //#define CONST xdata =3 =3 =3 #ifndef UNUSED =3 #define UNUSED(x) (void)(x) =3 #endif =3 =3 enum =3 { =3 false = 0, =3 true =!false =3 }; =3 =3 #ifdef __cplusplus =3 } =3 #endif =3 =3 #endif 45 =3 5 =2 6 =2 enum ePWM_INDEX 7 =2 { 8 =2 PWM_R = 0, 9 =2 PWM_G, 10 =2 PWM_B, 11 =2 PWM_C, 12 =2 PWM_W 13 =2 }; 14 =2 15 =2 void SetPWMInfo(uint16_t *pPwmInfo,uint8_t len1) ; 16 =2 void InitPWM(void); C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 52 17 =2 void SetPWMDuty(unsigned char channel,unsigned int duty); 18 =2 void StartBlinkLED(uint8_t cnt); 19 =2 #endif 9 =1 #endif 10 =1 6 7 8 #define T1VALUE (0X10000UL-FOSC/12UL/TICKPER1S) 9 10 sbit LED_R = P1^0; 11 sbit LED_G = P2^7; 12 sbit LED_B = P2^6; 13 sbit LED_C = P2^5; 14 sbit LED_W = P2^4; 15 16 17 18 19 20 void InitT0(void) 21 { 22 1 TIM0_DeInit(); 23 1 TIM0_TimeBaseInit(TIM0_PRESSEL_FSYS_D12,TIM0_MODE_TIMER ); //Timer0 12分频,做定时器 24 1 TIM0_WorkMode1Config(T1VALUE); //设置Timer0工作模式0,初值为7192,定时1ms 25 1 TIM0_ITConfig(ENABLE, LOW); //使能Timer0中断 26 1 TIM0_Cmd(ENABLE); //使能Timer0计数 27 1 } 28 29 30 31 32 #if TASK_WITH_PT 33 PT_THREAD(TaskWDT(struct pt *pt1 )) 34 #else PT_THREAD(TaskWDT(void)) #endif 37 { 38 1 WDT_SetReload(); 39 1 UNUSED(pt1); *** WARNING C275 IN LINE 39 OF Task\cpu_port\S92F8003A\task_hal.c: expression with possibly no effect 40 1 return 0; 41 1 } 42 43 void InitWdt(void) 44 { 45 1 WDT_DeInit(); 46 1 OPTION_WDT_Cmd(ENABLE); 47 1 WDT_Init(WDT_OverflowTime_500MS); 48 1 } 49 50 51 52 void InitPort(void) 53 { 54 1 GPIO_DeInit(); 55 1 GPIO_Init(GPIOR,LEDR,GPIO_MODE_OUT_PP); 56 1 GPIO_Init(GPIOG,LEDG,GPIO_MODE_OUT_PP); 57 1 GPIO_Init(GPIOB,LEDB,GPIO_MODE_OUT_PP); 58 1 GPIO_Init(GPIOC,LEDC,GPIO_MODE_OUT_PP); 59 1 GPIO_Init(GPIOW,LEDW,GPIO_MODE_OUT_PP); 60 1 61 1 } C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 53 62 63 64 65 void T0_Handler(void) interrupt INT_T0 66 { 67 1 uint16_t value = T1VALUE+TL0; 68 1 TF0 = 0; 69 1 TL0 = value&0xFF; 70 1 TH0 = (value >> 8); 71 1 Task_SysTick_Handler(); 72 1 } 73 74 75 void idle(void) 76 { 77 1 PCON |= 0x01; //8 nop 78 1 _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); 79 1 _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); 80 1 } 81 82 83 84 //under voltage Reset Count 85 unsigned char xdata UV_RESET_CNT _at_ 0x02F0; 86 xdata int8_t timerID = -1; 87 xdata int8_t param = -1; 88 void InitTask(void) 89 { 90 1 StopAllTimer(); 91 1 InitT0(); 92 1 93 1 enableInterrupts(); 94 1 } 95 96 97 void Init(void) 98 { 99 1 InitTask(); 100 1 InitPort(); 101 1 InitKey(); 102 1 InitLT89xxRF(); 103 1 InitWdt(); 104 1 InitPWM(); 105 1 ResetTimer(); 106 1 waitForInitOrUnInit(); 107 1 } 108 109 110 int InitTimerStack(void) 111 { 112 1 unsigned long now = get_system_ms() ; 113 1 if(now==0) 114 1 { 115 2 TaskLT89xx_thread_entry(NULL); 116 2 #if TASK_WITH_PT 117 2 #else #endif 119 2 } 120 1 return 0; 121 1 } 122 // 123 int InitTaskStack(void) C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 54 124 { 125 1 //把所有任务放一起,然Overlay扫描一下,好分配变量地址,免得被错误覆盖 126 1 unsigned long now = get_system_ms() ; 127 1 if(now==0) 128 1 { 129 2 #if TASK_WITH_PT 130 2 struct pt pt1; 131 2 TaskTimer(&pt1); 132 2 TaskBlinLed(&pt1); 133 2 TaskWDT(&pt1); 134 2 TaskScanKey(&pt1); 135 2 #else TaskTimer(); TaskBlinLed(); TaskWDT(); TaskScanKey(); #endif 141 2 } 142 1 return 0; 143 1 } C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 55 ASSEMBLY LISTING OF GENERATED OBJECT CODE ; FUNCTION InitT0 (BEGIN) ; SOURCE LINE # 20 ; SOURCE LINE # 21 ; SOURCE LINE # 22 0000 120000 E LCALL TIM0_DeInit ; SOURCE LINE # 23 0003 7D01 MOV R5,#01H 0005 E4 CLR A 0006 FF MOV R7,A 0007 120000 E LCALL _TIM0_TimeBaseInit ; SOURCE LINE # 24 000A 7F18 MOV R7,#018H 000C 7EFC MOV R6,#0FCH 000E 120000 E LCALL _TIM0_WorkMode1Config ; SOURCE LINE # 25 0011 E4 CLR A 0012 FD MOV R5,A 0013 7F01 MOV R7,#01H 0015 120000 E LCALL _TIM0_ITConfig ; SOURCE LINE # 26 0018 7F01 MOV R7,#01H 001A 020000 E LJMP _TIM0_Cmd ; FUNCTION InitT0 (END) ; FUNCTION _TaskWDT (BEGIN) ; SOURCE LINE # 33 0000 8B00 R MOV pt1,R3 0002 8A00 R MOV pt1+01H,R2 0004 8900 R MOV pt1+02H,R1 ; SOURCE LINE # 37 ; SOURCE LINE # 38 0006 120000 E LCALL WDT_SetReload ; SOURCE LINE # 39 ; SOURCE LINE # 40 0009 7F00 MOV R7,#00H ; SOURCE LINE # 41 000B 22 RET ; FUNCTION _TaskWDT (END) ; FUNCTION InitWdt (BEGIN) ; SOURCE LINE # 43 ; SOURCE LINE # 44 ; SOURCE LINE # 45 0000 120000 E LCALL WDT_DeInit ; SOURCE LINE # 46 0003 7F01 MOV R7,#01H 0005 120000 E LCALL _OPTION_WDT_Cmd ; SOURCE LINE # 47 0008 E4 CLR A 0009 FF MOV R7,A 000A 020000 E LJMP _WDT_Init ; FUNCTION InitWdt (END) ; FUNCTION InitPort (BEGIN) ; SOURCE LINE # 52 ; SOURCE LINE # 53 ; SOURCE LINE # 54 0000 120000 E LCALL GPIO_DeInit ; SOURCE LINE # 55 C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 56 0003 7B02 MOV R3,#02H 0005 7D01 MOV R5,#01H 0007 7F01 MOV R7,#01H 0009 120000 E LCALL _GPIO_Init ; SOURCE LINE # 56 000C 7B02 MOV R3,#02H 000E 7D80 MOV R5,#080H 0010 7F02 MOV R7,#02H 0012 120000 E LCALL _GPIO_Init ; SOURCE LINE # 57 0015 7B02 MOV R3,#02H 0017 7D40 MOV R5,#040H 0019 7F02 MOV R7,#02H 001B 120000 E LCALL _GPIO_Init ; SOURCE LINE # 58 001E 7B02 MOV R3,#02H 0020 7D20 MOV R5,#020H 0022 7F02 MOV R7,#02H 0024 120000 E LCALL _GPIO_Init ; SOURCE LINE # 59 0027 7B02 MOV R3,#02H 0029 7D10 MOV R5,#010H 002B 7F02 MOV R7,#02H 002D 020000 E LJMP _GPIO_Init ; FUNCTION InitPort (END) ; FUNCTION T0_Handler (BEGIN) 0000 C0E0 PUSH ACC 0002 C0F0 PUSH B 0004 C083 PUSH DPH 0006 C082 PUSH DPL 0008 C0D0 PUSH PSW 000A 75D000 MOV PSW,#00H 000D C000 PUSH AR0 000F C001 PUSH AR1 0011 C002 PUSH AR2 0013 C003 PUSH AR3 0015 C004 PUSH AR4 0017 C005 PUSH AR5 0019 C006 PUSH AR6 001B C007 PUSH AR7 ; SOURCE LINE # 65 ; SOURCE LINE # 67 001D AF8A MOV R7,TL0 001F EF MOV A,R7 0020 2418 ADD A,#018H 0022 FF MOV R7,A 0023 E4 CLR A 0024 34FC ADDC A,#0FCH 0026 FE MOV R6,A ;---- Variable 'value' assigned to Register 'R6/R7' ---- ; SOURCE LINE # 68 0027 C28D CLR TF0 ; SOURCE LINE # 69 0029 AD07 MOV R5,AR7 002B ED MOV A,R5 002C F58A MOV TL0,A ; SOURCE LINE # 70 002E 8E8C MOV TH0,R6 ; SOURCE LINE # 71 0030 120000 E LCALL Task_SysTick_Handler ; SOURCE LINE # 72 C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 57 0033 D007 POP AR7 0035 D006 POP AR6 0037 D005 POP AR5 0039 D004 POP AR4 003B D003 POP AR3 003D D002 POP AR2 003F D001 POP AR1 0041 D000 POP AR0 0043 D0D0 POP PSW 0045 D082 POP DPL 0047 D083 POP DPH 0049 D0F0 POP B 004B D0E0 POP ACC 004D 32 RETI ; FUNCTION T0_Handler (END) ; FUNCTION idle (BEGIN) ; SOURCE LINE # 75 ; SOURCE LINE # 76 ; SOURCE LINE # 77 0000 438701 ORL PCON,#01H ; SOURCE LINE # 78 0003 00 NOP 0004 00 NOP 0005 00 NOP 0006 00 NOP 0007 00 NOP 0008 00 NOP 0009 00 NOP 000A 00 NOP ; SOURCE LINE # 79 000B 00 NOP 000C 00 NOP 000D 00 NOP 000E 00 NOP 000F 00 NOP 0010 00 NOP 0011 00 NOP 0012 00 NOP ; SOURCE LINE # 80 0013 22 RET ; FUNCTION idle (END) ; FUNCTION InitTask (BEGIN) ; SOURCE LINE # 88 ; SOURCE LINE # 89 ; SOURCE LINE # 90 0000 120000 E LCALL StopAllTimer ; SOURCE LINE # 91 0003 120000 R LCALL InitT0 ; SOURCE LINE # 93 0006 D2AF SETB EA ; SOURCE LINE # 94 0008 22 RET ; FUNCTION InitTask (END) ; FUNCTION Init (BEGIN) ; SOURCE LINE # 97 ; SOURCE LINE # 98 ; SOURCE LINE # 99 0000 120000 R LCALL InitTask ; SOURCE LINE # 100 C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 58 0003 120000 R LCALL InitPort ; SOURCE LINE # 101 0006 120000 E LCALL InitKey ; SOURCE LINE # 102 0009 120000 E LCALL InitLT89xxRF ; SOURCE LINE # 103 000C 120000 R LCALL InitWdt ; SOURCE LINE # 104 000F 120000 E LCALL InitPWM ; SOURCE LINE # 105 0012 120000 E LCALL ResetTimer ; SOURCE LINE # 106 0015 020000 E LJMP waitForInitOrUnInit ; FUNCTION Init (END) ; FUNCTION InitTimerStack (BEGIN) ; SOURCE LINE # 110 ; SOURCE LINE # 111 ; SOURCE LINE # 112 0000 120000 E LCALL get_system_ms 0003 8F00 R MOV now+03H,R7 0005 8E00 R MOV now+02H,R6 0007 8D00 R MOV now+01H,R5 0009 8C00 R MOV now,R4 ; SOURCE LINE # 113 000B E4 CLR A 000C FF MOV R7,A 000D FE MOV R6,A 000E FD MOV R5,A 000F FC MOV R4,A 0010 AB00 R MOV R3,now+03H 0012 AA00 R MOV R2,now+02H 0014 A900 R MOV R1,now+01H 0016 A800 R MOV R0,now 0018 C3 CLR C 0019 120000 E LCALL ?C?ULCMP 001C 7006 JNZ ?C0009 ; SOURCE LINE # 114 ; SOURCE LINE # 115 001E FB MOV R3,A 001F FA MOV R2,A 0020 F9 MOV R1,A 0021 120000 E LCALL _TaskLT89xx_thread_entry ; SOURCE LINE # 119 0024 ?C0009: ; SOURCE LINE # 120 0024 E4 CLR A 0025 FE MOV R6,A 0026 FF MOV R7,A ; SOURCE LINE # 121 0027 22 RET ; FUNCTION InitTimerStack (END) ; FUNCTION InitTaskStack (BEGIN) ; SOURCE LINE # 123 ; SOURCE LINE # 124 ; SOURCE LINE # 126 0000 120000 E LCALL get_system_ms 0003 8F00 R MOV now+03H,R7 0005 8E00 R MOV now+02H,R6 0007 8D00 R MOV now+01H,R5 0009 8C00 R MOV now,R4 C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 59 ; SOURCE LINE # 127 000B E4 CLR A 000C FF MOV R7,A 000D FE MOV R6,A 000E FD MOV R5,A 000F FC MOV R4,A 0010 AB00 R MOV R3,now+03H 0012 AA00 R MOV R2,now+02H 0014 A900 R MOV R1,now+01H 0016 A800 R MOV R0,now 0018 C3 CLR C 0019 120000 E LCALL ?C?ULCMP 001C 7023 JNZ ?C0011 ; SOURCE LINE # 128 ; SOURCE LINE # 131 001E FB MOV R3,A 001F 7A00 R MOV R2,#HIGH pt1 0021 7900 R MOV R1,#LOW pt1 0023 120000 E LCALL _TaskTimer ; SOURCE LINE # 132 0026 7B00 MOV R3,#00H 0028 7A00 R MOV R2,#HIGH pt1 002A 7900 R MOV R1,#LOW pt1 002C 120000 E LCALL _TaskBlinLed ; SOURCE LINE # 133 002F 7B00 MOV R3,#00H 0031 7A00 R MOV R2,#HIGH pt1 0033 7900 R MOV R1,#LOW pt1 0035 120000 R LCALL _TaskWDT ; SOURCE LINE # 134 0038 7B00 MOV R3,#00H 003A 7A00 R MOV R2,#HIGH pt1 003C 7900 R MOV R1,#LOW pt1 003E 120000 E LCALL _TaskScanKey ; SOURCE LINE # 141 0041 ?C0011: ; SOURCE LINE # 142 0041 E4 CLR A 0042 FE MOV R6,A 0043 FF MOV R7,A ; SOURCE LINE # 143 0044 22 RET ; FUNCTION InitTaskStack (END) C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 60 NAME CLASS MSPACE TYPE OFFSET SIZE ==== ===== ====== ==== ====== ==== uint16_t . . . . . . . . . . . . . . . TYPEDEF ----- U_INT ----- 2 OPREG. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00FFH 1 MODE_SPEED_UP. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 LEVEL_UP . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SPI_FLAG_WCOL. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 GPIO_PIN_LNIB. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 P0 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0080H 1 UART0_Flag_Typedef . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 SSDAT. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 009FH 1 P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1 FUT089_SATURATION. . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_PresSel_TypeDef. . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 P2 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A0H 1 Result . . . . . . . . . . . . . . . . * TAG * ----- STRUCT ----- 24 button_id. . . . . . . . . . . . . . MEMBER ----- U_CHAR 0000H 1 argument . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0001H 1 STATE. . . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0002H 1 STATUS . . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0003H 1 BRIGHTNESS . . . . . . . . . . . . . MEMBER ----- U_CHAR 0004H 1 LEVEL. . . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0005H 1 HUE. . . . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0006H 1 SATURATION . . . . . . . . . . . . . MEMBER ----- U_CHAR 0007H 1 COLOR. . . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0008H 1 MODE . . . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0009H 1 KELVIN . . . . . . . . . . . . . . . MEMBER ----- U_CHAR 000AH 1 TEMPERATURE. . . . . . . . . . . . . MEMBER ----- U_CHAR 000BH 1 COLOR_TEMP . . . . . . . . . . . . . MEMBER ----- U_CHAR 000CH 1 BULB_MODE. . . . . . . . . . . . . . MEMBER ----- U_CHAR 000DH 1 COMPUTED_COLOR . . . . . . . . . . . MEMBER ----- U_CHAR 000EH 1 EFFECT . . . . . . . . . . . . . . . MEMBER ----- U_CHAR 000FH 1 DEVICE_ID. . . . . . . . . . . . . . MEMBER ----- U_CHAR 0010H 1 GROUP_ID . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0011H 1 DEVICE_TYPE. . . . . . . . . . . . . MEMBER ----- U_CHAR 0012H 1 OH_COLOR . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0013H 1 HEX_COLOR. . . . . . . . . . . . . . MEMBER ----- U_CHAR 0014H 1 COMMAND. . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0015H 1 COMMANDS . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0016H 1 COLOR_MODE . . . . . . . . . . . . . MEMBER ----- U_CHAR 0017H 1 NIGHT_MODE . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 MiLightFUT089Arguments . . . . . . . . * TAG * ----- ENUM ----- ----- UART0_RX_ENABLE. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 EUART. . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ACH 1 TMCON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008EH 1 UART1_RX_ENABLE. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 AC . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D6H 1 SPI_BAUDRATEPRESCALER_32 . . . . . . . E_CONST ----- U_CHAR ----- 1 FlagStatus . . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 RESET. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 OTCON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008FH 1 _TaskWDT . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H ----- pt1. . . . . . . . . . . . . . . . . AUTO DATA PTR 0000H 3 TIM0_MODE_TIMER. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWM_OutputState_TypeDef. . . . . . . . TYPEDEF ----- U_CHAR ----- 1 EA . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AFH 1 T2 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C9H 1 REMOTE_TYPE_RGBW . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 REMOTE_TYPE_UNKNOWN. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 61 NAME CLASS MSPACE TYPE OFFSET SIZE ==== ===== ====== ==== ====== ==== FUT089_MODE_SPEED_DOWN . . . . . . . . E_CONST ----- U_CHAR ----- 1 TIM1_MODE_TIMER. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SPI_BAUDRATEPRESCALER_16 . . . . . . . E_CONST ----- U_CHAR ----- 1 int32_t. . . . . . . . . . . . . . . . TYPEDEF ----- LONG ----- 4 PWMCON0. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D2H 1 LED_R. . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0090H 1 PREVIOUS_MODE. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 TIM2_MODE_TIMER. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SPI_CLOCKPOLARITY_LOW. . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWMCON1. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00DAH 1 TASK_ID_TaskWDT. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWM_POLARITY_INVERT. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 GPIO_PIN_0 . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 int16_t. . . . . . . . . . . . . . . . TYPEDEF ----- INT ----- 2 TIMER_MODE . . . . . . . . . . . . . . * TAG * ----- ENUM ----- ----- BULB_MODE_NIGHT. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 MiLightFUT089Command . . . . . . . . . * TAG * ----- ENUM ----- ----- SPI_BAUDRATEPRESCALER_64 . . . . . . . E_CONST ----- U_CHAR ----- 1 GPIO_PIN_1 . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 BTM_Timebase_TypeDef . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 ResetTimer . . . . . . . . . . . . . . EXTERN CODE PROC ----- ----- IAP_MEMTYPE_EEPROM . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 GPIO_PIN_2 . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 EXTI_TRIGGER_DISABLE . . . . . . . . . E_CONST ----- U_CHAR ----- 1 InitPWM. . . . . . . . . . . . . . . . EXTERN CODE PROC ----- ----- pt_sem . . . . . . . . . . . . . . . . * TAG * ----- STRUCT ----- 2 count. . . . . . . . . . . . . . . . MEMBER ----- U_INT 0000H 2 UART0_Mode_Typedef . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 GPIO_PIN_3 . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ERROR. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 LED_W. . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A4H 1 get_system_ms. . . . . . . . . . . . . EXTERN CODE PROC ----- ----- _TaskLT89xx_thread_entry . . . . . . . EXTERN CODE PROC ----- ----- TWI_FLAG_TWIF. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 GPIO_PIN_4 . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 false. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWM_PRESSEL_FOSC_D32 . . . . . . . . . E_CONST ----- U_CHAR ----- 1 IAP_OPERATERANGE_ONLY_EEPROM . . . . . E_CONST ----- U_CHAR ----- 1 GPIO_PIN_5 . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 EADC . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AEH 1 IE . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A8H 1 BulbMode . . . . . . . . . . . . . . . * TAG * ----- ENUM ----- ----- BULB_MODE_COLOR. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 GPIO_PIN_6 . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 TRANSITION . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 FUT089_ON. . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 TIM2_Flag_TypeDef. . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 TIM2_FLAG_EXF2 . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 UART1_RX_TypeDef . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 SPI_FirstBit_TypeDef . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 GPIO_PIN_7 . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 OPINX. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00FEH 1 BULB_MODE_WHITE. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 WDT_DeInit . . . . . . . . . . . . . . EXTERN CODE PROC ----- ----- _TIM0_Cmd. . . . . . . . . . . . . . . EXTERN CODE PROC ----- ----- BTM_TIMEBASE_62_5MS. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 IAP_MEMTYPE_IFB. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 62 NAME CLASS MSPACE TYPE OFFSET SIZE ==== ===== ====== ==== ====== ==== GPIO_MODE_OUT_PP . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 CP . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C8H 1 param. . . . . . . . . . . . . . . . . PUBLIC XDATA CHAR 0000H 1 MODE_SPEED_DOWN. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 LEVEL_DOWN . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 InitTimerStack . . . . . . . . . . . . PUBLIC CODE PROC 0000H ----- now. . . . . . . . . . . . . . . . . AUTO DATA U_LONG 0000H 4 PWM_ComplementaryOutputPin_TypeDef . . TYPEDEF ----- U_CHAR ----- 1 SYSCLK_PresSel_TypeDef . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 Init . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H ----- waitForInitOrUnInit. . . . . . . . . . EXTERN CODE PROC ----- ----- ErrorStatus. . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 EXF2 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CEH 1 CHKSUMH. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00FDH 1 PWM_B. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 IAP_OperateRange_TypeDef . . . . . . . TYPEDEF ----- U_CHAR ----- 1 IAP_MemType_TypeDef. . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 PWM_C. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 XTIPLL_HIGHER_THAN_12M . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWMDTY0. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D5H 1 FUT089_MODE. . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SPI_BaudRatePrescaler_TypeDef. . . . . TYPEDEF ----- U_CHAR ----- 1 OPERCON. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00EFH 1 PWMDTY1. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D6H 1 P0PH . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 009BH 1 IP . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B8H 1 _TaskTimer . . . . . . . . . . . . . . EXTERN CODE PROC ----- ----- TIM0_PRESSEL_FSYS_D1 . . . . . . . . . E_CONST ----- U_CHAR ----- 1 CHKSUML. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00FCH 1 PWMDTY2. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D7H 1 P1PH . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0092H 1 InitT0 . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H ----- TIM1_PRESSEL_FSYS_D1 . . . . . . . . . E_CONST ----- U_CHAR ----- 1 EXTI0x_Typedef . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 RI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0098H 1 PWMDTY3. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00DCH 1 P2PH . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A2H 1 PWM_G. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 TIM2_PRESSEL_FSYS_D1 . . . . . . . . . E_CONST ----- U_CHAR ----- 1 EXTI1x_Typedef . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 INT0 . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SUCCESS. . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 CY . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D7H 1 PWMDTY4. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00DDH 1 TASK_ID_TaskTimer. . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ON . . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 eCommands. . . . . . . . . . . . . . . * TAG * ----- ENUM ----- ----- TWI_FLAG_GCA . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_VREF_VDD . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 IAP_OPERATERANGE__ALL_CODEREGION . . . E_CONST ----- U_CHAR ----- 1 EXTI2x_Typedef . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 INT1 . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 TI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0099H 1 PWMDTY5. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00DEH 1 INT2 . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 IPT0 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B9H 1 PWMDTY6. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00DFH 1 C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 63 NAME CLASS MSPACE TYPE OFFSET SIZE ==== ===== ====== ==== ====== ==== FunctionalState. . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 IPT1 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BBH 1 idle . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H ----- SPI_TXE_ENINT. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 IPT2 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BDH 1 GPIO_MODE_IN_HI. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 HIGH . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 TASK_ID. . . . . . . . . . . . . . . . * TAG * ----- ENUM ----- ----- _TIM0_TimeBaseInit . . . . . . . . . . EXTERN CODE PROC ----- ----- SPI_TXE_INT_TypeDef. . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 _OPTION_WDT_Cmd. . . . . . . . . . . . EXTERN CODE PROC ----- ----- RCAP2H . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00CBH 1 SPI_MODE_MASTER. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SP . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0081H 1 timer. . . . . . . . . . . . . . . . . * TAG * ----- STRUCT ----- 8 start. . . . . . . . . . . . . . . . MEMBER ----- U_LONG 0000H 4 interval . . . . . . . . . . . . . . MEMBER ----- U_LONG 0004H 4 lc_t . . . . . . . . . . . . . . . . . TYPEDEF ----- U_INT ----- 2 PWM_OUTPUTSTATE_DISABLE. . . . . . . . E_CONST ----- U_CHAR ----- 1 PWM0 . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 OV . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D2H 1 InitTaskStack. . . . . . . . . . . . . PUBLIC CODE PROC 0000H ----- pt1. . . . . . . . . . . . . . . . . AUTO DATA STRUCT 0004H 2 now. . . . . . . . . . . . . . . . . AUTO DATA U_LONG 0000H 4 TIM0_CountMode_TypeDef . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 TIM0_MODE_COUNTER. . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SSI_PinSelection_P21P22P23 . . . . . . E_CONST ----- U_CHAR ----- 1 PWM1 . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_Cycle_6Cycle . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ITStatus . . . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 IAPADE . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00F4H 1 RCAP2L . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00CAH 1 T0_Handler . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H ----- value. . . . . . . . . . . . . . . . * REG * DATA U_INT 0006H 2 PWM_R. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 TIM1_CountMode_TypeDef . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 TIM1_MODE_COUNTER. . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWM2 . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 _GPIO_Init . . . . . . . . . . . . . . EXTERN CODE PROC ----- ----- ADC_PRESSEL_FHRC_D3. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 TIM2_CountMode_TypeDef . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 TIM2_MODE_COUNTER. . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWM3 . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_PRESSEL_FHRC_D4. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWM4 . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 BTM_TIMEBASE_500MS . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ENABLE . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 BitStatus. . . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 IAPADH . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00F3H 1 PWMDTYA. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D4H 1 PWM_OutputPin_TypeDef. . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 PWM5 . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_PRESSEL_FHRC_D6. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWMDTYB. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00DBH 1 ADCCON . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00ADH 1 PWM6 . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 BTM_TIMEBASE_250MS . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 64 NAME CLASS MSPACE TYPE OFFSET SIZE ==== ===== ====== ==== ====== ==== PWM_W. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 InitTask . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H ----- SSI_PinSelection_P10P27P26 . . . . . . E_CONST ----- U_CHAR ----- 1 BTM_TIMEBASE_125MS . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_PRESSEL_FHRC_D8. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PAIR . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SPI_ClockPolarity_TypeDef. . . . . . . TYPEDEF ----- U_CHAR ----- 1 RCLK . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CDH 1 IAPADL . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00F2H 1 func . . . . . . . . . . . . . . . . . TYPEDEF ----- PTR ----- 3 REMOTE_TYPE_CCT. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWM_PresSel_TypeDef. . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 GPIO_Mode_TypeDef. . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 bool . . . . . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 REMOTE_TYPE_RGB. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 UART0_RX_Typedef . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 IAP_MEMTYPE_ROM. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 TCLK . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CCH 1 UART0_Mode_8B. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 P00. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0080H 1 P10. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0090H 1 P01. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0081H 1 SBUF . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0099H 1 PCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0087H 1 timerID. . . . . . . . . . . . . . . . PUBLIC XDATA CHAR 0001H 1 ADC_Cycle_TypeDef. . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 P20. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A0H 1 P11. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0091H 1 GPIO_PIN_ALL . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 EXTI_TriggerMode_Typedef . . . . . . . TYPEDEF ----- U_CHAR ----- 1 P21. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A1H 1 P12. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0092H 1 _TaskBlinLed . . . . . . . . . . . . . EXTERN CODE PROC ----- ----- InitLT89xxRF . . . . . . . . . . . . . EXTERN CODE PROC ----- ----- P22. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A2H 1 P13. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0093H 1 SCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0098H 1 ePWM_INDEX . . . . . . . . . . . . . . * TAG * ----- ENUM ----- ----- BulbId . . . . . . . . . . . . . . . . * TAG * ----- STRUCT ----- 40 deviceType . . . . . . . . . . . . . MEMBER ----- U_CHAR 0000H 1 groupId. . . . . . . . . . . . . . . MEMBER ----- U_CHAR 0001H 1 deviceId . . . . . . . . . . . . . . MEMBER ----- U_INT 0002H 2 PWM_Value. . . . . . . . . . . . . . MEMBER ----- ARRAY 0004H 10 bENPWM . . . . . . . . . . . . . . . MEMBER ----- FIELD 000EH 1.0 bInit. . . . . . . . . . . . . . . . MEMBER ----- FIELD 000EH 1.1 repeatCnt. . . . . . . . . . . . . . MEMBER ----- U_CHAR 000FH 1 result . . . . . . . . . . . . . . . MEMBER ----- STRUCT 0010H 24 TIM2_COUNTDIRECTION_UP . . . . . . . . E_CONST ----- U_CHAR ----- 1 _TIM0_WorkMode1Config. . . . . . . . . EXTERN CODE PROC ----- ----- GPIO_MODE_IN_PU. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_CHANNEL_0. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 P23. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A3H 1 P14. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0094H 1 IAPDAT . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00F5H 1 TCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0088H 1 TMOD . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0089H 1 SPI_CLOCKPOLARITY_HIGH . . . . . . . . E_CONST ----- U_CHAR ----- 1 C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 65 NAME CLASS MSPACE TYPE OFFSET SIZE ==== ===== ====== ==== ====== ==== ADC_CHANNEL_1. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 P24. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A4H 1 P15. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0095H 1 IPINT0 . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B8H 1 TASK_ID_TaskBlinLed. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 WDT_OverflowTime_31_5MS. . . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_CHANNEL_2. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 P25. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A5H 1 P16. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0096H 1 IPINT1 . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BAH 1 SPI_BAUDRATEPRESCALER_512. . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_CHANNEL_3. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 P26. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A6H 1 P17. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0097H 1 SSCON0 . . . . . . . . . . . . . . . . SFR DATA U_CHAR 009DH 1 ADC_CHANNEL_4. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 P27. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A7H 1 SSCON1 . . . . . . . . . . . . . . . . SFR DATA U_CHAR 009EH 1 UART0_PinSelection_TypeDef . . . . . . TYPEDEF ----- U_CHAR ----- 1 ADC_CHANNEL_5. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SSCON2 . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0095H 1 TIMER_MODE_ONCEROUTINE . . . . . . . . E_CONST ----- U_CHAR ----- 1 TASK_MODE. . . . . . . . . . . . . . . * TAG * ----- ENUM ----- ----- WDT_OverflowTime_62_5MS. . . . . . . . E_CONST ----- U_CHAR ----- 1 SPI_FLAG_TXE . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SPI_BAUDRATEPRESCALER_128. . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_CHANNEL_6. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 TIM0_DeInit. . . . . . . . . . . . . . EXTERN CODE PROC ----- ----- SSI_PinSelection_TypeDef . . . . . . . TYPEDEF ----- U_CHAR ----- 1 SPI_BAUDRATEPRESCALER_256. . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_CHANNEL_VDD_D4 . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 InitPort . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H ----- FUT089_KELVIN. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 WDT_OverflowTime_3_94MS. . . . . . . . E_CONST ----- U_CHAR ----- 1 DECREASE . . . . . . . . . . . . . . . E_CONST ----- CHAR ----- 1 BTM_TIMEBASE_31_25MS . . . . . . . . . E_CONST ----- U_CHAR ----- 1 IAPCTL . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00F6H 1 IE1. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A9H 1 SYSCLK_PRESSEL_FOSC_D1 . . . . . . . . E_CONST ----- U_CHAR ----- 1 InitKey. . . . . . . . . . . . . . . . EXTERN CODE PROC ----- ----- SYSCLK_PRESSEL_FOSC_D2 . . . . . . . . E_CONST ----- U_CHAR ----- 1 TRUE . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 B. . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00F0H 1 TASK_MODE_ONCE . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 true . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SYSCLK_PRESSEL_FOSC_D4 . . . . . . . . E_CONST ----- U_CHAR ----- 1 TOGGLE . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 WDT_OverflowTime_7_88MS. . . . . . . . E_CONST ----- U_CHAR ----- 1 PWM_Polarity_TypeDef . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 LVR_Config_TypeDef . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 IAPKEY . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00F1H 1 BTMCON . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00CEH 1 TIM2_FLAG_TF2. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 XTIPLL_Range_TypeDef . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 GPIO_TypeDef . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 PWMCFG . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D1H 1 InitWdt. . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H ----- C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 66 NAME CLASS MSPACE TYPE OFFSET SIZE ==== ===== ====== ==== ====== ==== NEXT_MODE. . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SPI_ClockPhase_TypeDef . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 ACC. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00E0H 1 StopAllTimer . . . . . . . . . . . . . EXTERN CODE PROC ----- ----- MiLightRemoteType. . . . . . . . . . . * TAG * ----- ENUM ----- ----- _TaskScanKey . . . . . . . . . . . . . EXTERN CODE PROC ----- ----- TIM2_CountDirection_TypeDef. . . . . . TYPEDEF ----- U_CHAR ----- 1 EXTI_TRIGGER_RISE_FALL . . . . . . . . E_CONST ----- U_CHAR ----- 1 ET0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A9H 1 TF0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008DH 1 ET1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ABH 1 ADCCFG0. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00ABH 1 IP1. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B9H 1 TASK_ID_TaskScanKey. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 TF1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008FH 1 ET2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ADH 1 ADCCFG1. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00AAH 1 TIM0_PRESSEL_FSYS_D12. . . . . . . . . E_CONST ----- U_CHAR ----- 1 INT00. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 RB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009AH 1 TF2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CFH 1 TH0. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008CH 1 INCREASE . . . . . . . . . . . . . . . E_CONST ----- CHAR ----- 1 TIM1_PRESSEL_FSYS_D12. . . . . . . . . E_CONST ----- U_CHAR ----- 1 INT10. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 INT01. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 TH1. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008DH 1 FUT089_OFF . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 TIM2_PRESSEL_FSYS_D12. . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWM0PWM3 . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 INT11. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 TB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009BH 1 TH2. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00CDH 1 TIM2_COUNTDIRECTION_DOWN_UP. . . . . . E_CONST ----- U_CHAR ----- 1 GPIO_Pin_TypeDef . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 INT21. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 INT12. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 uint8_t. . . . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 P. . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D0H 1 SET_WHITE. . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 UART0_RX_DISABLE . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWM1PWM4 . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 INT22. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 INT13. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SM0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009FH 1 TL0. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008AH 1 UNPAIR . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 UART0_CLOCK_TIMER1 . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 UART1_RX_DISABLE . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SPI_MODE_SLAVE . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 XTIPLL_UNDER_12M . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 GPIO_DeInit. . . . . . . . . . . . . . EXTERN CODE PROC ----- ----- INT23. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 INT14. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SM1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009EH 1 WDTCON . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00CFH 1 TL1. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008BH 1 C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 67 NAME CLASS MSPACE TYPE OFFSET SIZE ==== ===== ====== ==== ====== ==== WDT_OverflowTime_TypeDef . . . . . . . TYPEDEF ----- U_CHAR ----- 1 UART0_CLOCK_TIMER2 . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWM2PWM5 . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 INT24. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 INT15. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SM2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009DH 1 TL2. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00CCH 1 WDT_OverflowTime_500MS . . . . . . . . E_CONST ----- U_CHAR ----- 1 SPI_BAUDRATEPRESCALER_4. . . . . . . . E_CONST ----- U_CHAR ----- 1 INT25. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 INT16. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 TIM0_PresSel_TypeDef . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 ADC_Vref_TypeDef . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 INT26. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 WDT_OverflowTime_250MS . . . . . . . . E_CONST ----- U_CHAR ----- 1 TIM1_PresSel_TypeDef . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 PWM_POLARITY_NON_INVERT. . . . . . . . E_CONST ----- U_CHAR ----- 1 IAP_OPERATERANGE__LAST_1K_CODEREGION . E_CONST ----- U_CHAR ----- 1 INT27. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 RS0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D3H 1 REMOTE_TYPE_FUT020 . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 WDT_OverflowTime_125MS . . . . . . . . E_CONST ----- U_CHAR ----- 1 TIM2_PresSel_TypeDef . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 TR0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008CH 1 RS1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D4H 1 UV_RESET_CNT . . . . . . . . . . . . . PUBLIC XDATA U_CHAR 02F0H 1 SPI_CLOCKPHASE_1EDGE . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SPI_BAUDRATEPRESCALER_8. . . . . . . . E_CONST ----- U_CHAR ----- 1 PWM_OUTPUTSTATE_ENABLE . . . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_PRESSEL_FHRC_D12 . . . . . . . . . E_CONST ----- U_CHAR ----- 1 TR1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008EH 1 IPUART . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BCH 1 SPI_CLOCKPHASE_2EDGE . . . . . . . . . E_CONST ----- U_CHAR ----- 1 EXTI_TRIGGER_FALL_ONLY . . . . . . . . E_CONST ----- U_CHAR ----- 1 TR2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CAH 1 TEMPERATURE_UP . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 WDT_SetReload. . . . . . . . . . . . . EXTERN CODE PROC ----- ----- UART0_Mode_10B . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWM_PRESSEL_FOSC_D1. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_Cycle_36Cycle. . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_PRESSEL_FHRC_D32 . . . . . . . . . E_CONST ----- U_CHAR ----- 1 int8_t . . . . . . . . . . . . . . . . TYPEDEF ----- CHAR ----- 1 LEDState . . . . . . . . . . . . . . . * TAG * ----- ENUM ----- ----- UART0_Mode_11B . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 UART1_Mode_10B . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWM_PRESSEL_FOSC_D2. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_VREF_2_4V. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_PRESSEL_FHRC_D24 . . . . . . . . . E_CONST ----- U_CHAR ----- 1 OFF. . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 UART1_Mode_11B . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_PRESSEL_FHRC_D16 . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWMPRD . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D3H 1 DPH. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0083H 1 REMOTE_TYPE_FUT091 . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 LVR_INVALID. . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWM_PRESSEL_FOSC_D8. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 GPIO0. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 68 NAME CLASS MSPACE TYPE OFFSET SIZE ==== ===== ====== ==== ====== ==== DPL. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0082H 1 TASK_MODE_PERIOD . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 GPIO1. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 EINT0. . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A8H 1 P0CON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 009AH 1 SSI_Flag_TypeDef . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 IAP_HOLDTIME_3000US. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 GPIO2. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 EINT1. . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AAH 1 IPADC. . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BEH 1 INT0F. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00BAH 1 P1CON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0091H 1 EXEN2. . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CBH 1 INT1F. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00BCH 1 P2CON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A1H 1 pt . . . . . . . . . . . . . . . . . . * TAG * ----- STRUCT ----- 2 lc . . . . . . . . . . . . . . . . . MEMBER ----- U_INT 0000H 2 INT2F. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C6H 1 REMOTE_TYPE_FUT089 . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 UART0_FLAG_RI. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 IAP_HOLDTIME_1500US. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 IAP_HOLDTIME_6000US. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 REN. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009CH 1 _WDT_Init. . . . . . . . . . . . . . . EXTERN CODE PROC ----- ----- UART1_FLAG_RI. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 Task_SysTick_Handler . . . . . . . . . EXTERN CODE PROC ----- ----- UART0_FLAG_TI. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ADCVH. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00AFH 1 T2MOD. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C9H 1 T2CON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C8H 1 UART1_FLAG_TI. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 IAP_OPERATERANGE__LAST_0_5K_CODEREGION E_CONST ----- U_CHAR ----- 1 REMOTE_TYPE_RGB_CCT. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 UART0_PinSelection_P11P20. . . . . . . E_CONST ----- U_CHAR ----- 1 SPI_Mode_TypeDef . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 EXTIx_Typedef. . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 ADCVL. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00AEH 1 UART1_Mode_TypeDef . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 IAP_HoldTime_TypeDef . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 EXTI_TRIGGER_RISE_ONLY . . . . . . . . E_CONST ----- U_CHAR ----- 1 SET. . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 FALSE. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 TIMER_MODE_TIMER . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 TEMPERATURE_DOWN . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SPI_TXE_DISINT . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 INT0R. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00BBH 1 INT1R. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00BDH 1 FUT089_BRIGHTNESS. . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 WDT_OverflowTime_15_75MS . . . . . . . E_CONST ----- U_CHAR ----- 1 LVR_2_3V . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PriorityStatus . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 INT2R. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C7H 1 FUT089_MODE_SPEED_UP . . . . . . . . . E_CONST ----- U_CHAR ----- 1 LVR_4_3V . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SYSCLK_PRESSEL_FOSC_D12. . . . . . . . E_CONST ----- U_CHAR ----- 1 LOW. . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 FUT089_COLOR . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 C51 COMPILER V9.60.7.0 TASK_HAL 08/17/2024 22:06:32 PAGE 69 NAME CLASS MSPACE TYPE OFFSET SIZE ==== ===== ====== ==== ====== ==== UART0_Clock_Typedef. . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 UART0_PinSelection_P15P16. . . . . . . E_CONST ----- U_CHAR ----- 1 _TIM0_ITConfig . . . . . . . . . . . . EXTERN CODE PROC ----- ----- TIMER_MODE_CYCROUTINE. . . . . . . . . E_CONST ----- U_CHAR ----- 1 LVR_3_7V . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 F0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D5H 1 LVR_2_9V . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 BTM_TIMEBASE_1S. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 DISABLE. . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 F1 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D1H 1 LED_B. . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A6H 1 BTM_TIMEBASE_2S. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 BTM_TIMEBASE_15_625MS. . . . . . . . . E_CONST ----- U_CHAR ----- 1 LED_C. . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A5H 1 BTM_TIMEBASE_4S. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SPI_FIRSTBIT_LSB . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PSW. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D0H 1 IncDIR . . . . . . . . . . . . . . . . * TAG * ----- ENUM ----- ----- SPI_FIRSTBIT_MSB . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 GPIO_PIN_HNIB. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 LED_G. . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A7H 1 FUT089_WHITE_MODE. . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SPI_FLAG_SPIF. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_Channel_TypeDef. . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 uint32_t . . . . . . . . . . . . . . . TYPEDEF ----- U_LONG ----- 4 BULB_MODE_SCENE. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 345 ---- CONSTANT SIZE = ---- ---- XDATA SIZE = 2 ---- PDATA SIZE = ---- ---- DATA SIZE = ---- 13 IDATA SIZE = ---- ---- BIT SIZE = ---- ---- EDATA SIZE = ---- ---- HDATA SIZE = ---- ---- XDATA CONST SIZE = ---- ---- FAR CONST SIZE = ---- ---- END OF MODULE INFORMATION. C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)