C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 1 C51 COMPILER V9.60.7.0, COMPILATION OF MODULE KEY OBJECT MODULE PLACED IN .\Objects\key.obj COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE Src\key.c OMF2 OPTIMIZE(8,SPEED) BROWSE INCDIR(.\Src;.\Task;.\Task\cpu_port -\S92F8003A;.\Task\cfg;.\Task\pt_thread;.\SC92F8003_Lib\Inc) DEBUG CODE LISTINCLUDE SYMBOLS PRINT(.\Listings\key.lst) PRE -PRINT(.\Listings\key.i) OBJECT(.\Objects\key.obj) line level source 1 2 3 #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 C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 2 44 =3 /*TIMER*/ 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保护寄存器 C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 3 106 =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:打开所有的中断 C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 4 159 =3 sbit EADC = IE^6; //ADC中断使能控制 0:关闭ADC中断 1:打开ADC中断 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 C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 5 7 =2 #define enableInterrupts() EA=1 /** 开启总中断 **/ 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 /** 关闭总中断 **/ C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 6 =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 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输入口 C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 7 42 =2 } ADC_Channel_TypeDef; 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 */ C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 8 =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 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; //电源管理控制寄存器 C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 9 =2 =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 C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 10 =2 =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 C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 11 =2 =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; C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 12 =2 sbit P24 = P2^4; =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 C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 13 =3 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus; =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 C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 14 =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 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) 深圳市赛元微电子有限公司 C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 15 3 =2 // 文件名称 : sc92f8003_gpio.h 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; C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 16 21 =2 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 C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 17 =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 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 // 说明 : C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 18 10 =2 //************************************************************* 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复位 C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 19 28 =2 LVR_3_7V = (uint8_t)0x02, //LVR 3.7V复位 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; C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 20 =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 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; C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 21 49 =2 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; C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 22 =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 #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 C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 23 23 =2 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 C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 24 16 =2 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; C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 25 78 =2 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 C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 26 =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 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 // 局部函数列表: C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 27 7 =2 // 最后更正日期: 2018/9/4 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做计数器 C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 28 25 =2 }TIM1_CountMode_TypeDef; 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; C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 29 =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 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 C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 30 12 =2 #ifndef __SC92F8003_UART0_H 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; C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 31 29 =2 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 C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 32 =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 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 4 #include "cfg/al_helper.h" 1 =1 /* 2 =1 * al_helper.h 3 =1 * 4 =1 * Created on: 2023-4-20 5 =1 * Author: xukaiming 6 =1 */ 7 =1 8 =1 #ifndef _AL_HELPER_H_ C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 33 9 =1 #define _AL_HELPER_H_ 10 =1 11 =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; =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 12 =1 13 =1 #ifdef __cplusplus =1 extern "C" { =1 #endif 16 =1 17 =1 //#define AL_STATIC static 18 =1 #define AL_STATIC 19 =1 #define AL_INLINE inline 20 =1 21 =1 #define TASK_WITH_PT 1 22 =1 #define TASK_WITH_NAME 0 23 =1 24 =1 #define XDATA xdata 25 =1 #define IDATA idata 26 =1 #define CONST code 27 =1 //#define CONST xdata 28 =1 29 =1 30 =1 #ifndef UNUSED 31 =1 #define UNUSED(x) (void)(x) 32 =1 #endif 33 =1 34 =1 enum 35 =1 { 36 =1 false = 0, 37 =1 true =!false 38 =1 }; 39 =1 40 =1 #ifdef __cplusplus =1 } =1 #endif 43 =1 44 =1 #endif 45 =1 5 #include "key.h" 1 =1 #ifndef _KEY_H_ 2 =1 #define _KEY_H_ 3 =1 #include "pt.h" 1 =2 2 =2 #ifndef __PT_H__ 3 =2 #define __PT_H__ 4 =2 5 =2 #include "lc.h" 1 =3 #ifndef __LC_H__ 2 =3 #define __LC_H__ 3 =3 4 =3 5 =3 #ifdef LC_INCLUDE =3 #include LC_INCLUDE =3 #else C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 34 8 =3 #include "lc-switch.h" 1 =4 2 =4 3 =4 #ifndef __LC_SWITCH_H__ 4 =4 #define __LC_SWITCH_H__ 5 =4 6 =4 typedef unsigned short lc_t; 7 =4 8 =4 #define LC_INIT(s) s = 0; 9 =4 10 =4 #define LC_RESUME(s) switch(s) { case 0: 11 =4 12 =4 #define LC_SET(s) s = __LINE__; case __LINE__: 13 =4 14 =4 #define LC_END(s) } 15 =4 16 =4 #endif /* __LC_SWITCH_H__ */ 17 =4 18 =4 /** @} */ 9 =3 #endif 10 =3 11 =3 #endif 6 =2 7 =2 struct pt { 8 =2 lc_t lc; 9 =2 }; 10 =2 11 =2 12 =2 #ifndef UNUSED_PARAM 13 =2 #define UNUSED_PARAM(v) (void)(v) 14 =2 #endif 15 =2 16 =2 #define PT_WAITING 0 //等待 17 =2 #define PT_YIELDED 1 //锁死线程 18 =2 #define PT_EXITED 2 //退出 19 =2 #define PT_ENDED 3 //结束 20 =2 21 =2 22 =2 #define PT_BIND(pt1) {static idata struct pt pt_hide ;pt1 = &pt_hide;} 23 =2 24 =2 25 =2 #define PT_INIT(pt) LC_INIT((pt)->lc) 26 =2 #define PT_THREAD(name_args) int8_t name_args 27 =2 #define PT_BEGIN(pt) { int8_t PT_YIELD_FLAG = 1; LC_RESUME((pt)->lc) 28 =2 #define PT_END(pt) LC_END((pt)->lc); PT_YIELD_FLAG = 0; \ 29 =2 UNUSED_PARAM(PT_YIELD_FLAG );\ 30 =2 PT_INIT(pt); return PT_ENDED; } 31 =2 32 =2 33 =2 //等待条件成立,如果不成立,继续等待 34 =2 #define PT_WAIT_UNTIL(pt, condition) \ 35 =2 do { \ 36 =2 LC_SET((pt)->lc); \ 37 =2 if(!(condition)) { \ 38 =2 return PT_WAITING; \ 39 =2 } \ 40 =2 } while(0) 41 =2 42 =2 //一直等待,直到条件不成立 43 =2 #define PT_WAIT_WHILE(pt, cond) PT_WAIT_UNTIL((pt), !(cond)) 44 =2 //等待子线程退出 45 =2 #define PT_WAIT_THREAD(pt, thread) PT_WAIT_WHILE((pt), PT_SCHEDULE(thread)) C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 35 46 =2 47 =2 //启动子线程,等待子线程退出,如果不退出,在此阻塞 48 =2 #define PT_SPAWN(pt, child, thread) \ 49 =2 do { \ 50 =2 PT_INIT((child)); \ 51 =2 PT_WAIT_THREAD((pt), (thread)); \ 52 =2 } while(0) 53 =2 54 =2 //重新启动线程,从头开始 55 =2 #define PT_RESTART(pt) \ 56 =2 do { \ 57 =2 PT_INIT(pt); \ 58 =2 return PT_WAITING; \ 59 =2 } while(0) 60 =2 61 =2 //退出线程 62 =2 #define PT_EXIT(pt) \ 63 =2 do { \ 64 =2 PT_INIT(pt); \ 65 =2 return PT_EXITED; \ 66 =2 } while(0) 67 =2 //子线程是否退出 68 =2 #define PT_SCHEDULE(f) ((f) < PT_EXITED) 69 =2 70 =2 //锁死任务 71 =2 #define PT_YIELD(pt) \ 72 =2 do { \ 73 =2 PT_YIELD_FLAG = 0; \ 74 =2 LC_SET((pt)->lc); \ 75 =2 if(PT_YIELD_FLAG == 0) { \ 76 =2 return PT_YIELDED; \ 77 =2 } \ 78 =2 } while(0) 79 =2 80 =2 //锁死任务直到符合条件 81 =2 #define PT_YIELD_UNTIL(pt, cond) \ 82 =2 do { \ 83 =2 PT_YIELD_FLAG = 0; \ 84 =2 LC_SET((pt)->lc); \ 85 =2 if((PT_YIELD_FLAG == 0) || !(cond)) { \ 86 =2 return PT_YIELDED; \ 87 =2 } \ 88 =2 } while(0) 89 =2 90 =2 91 =2 #endif /* __PT_H__ */ 4 =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_ =2 #define _AL_HELPER_H_ =2 =2 #include "stdint.h" =2 =2 #ifdef __cplusplus =2 extern "C" { =2 #endif C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 36 =2 =2 //#define AL_STATIC static =2 #define AL_STATIC =2 #define AL_INLINE inline =2 =2 #define TASK_WITH_PT 1 =2 #define TASK_WITH_NAME 0 =2 =2 #define XDATA xdata =2 #define IDATA idata =2 #define CONST code =2 //#define CONST xdata =2 =2 =2 #ifndef UNUSED =2 #define UNUSED(x) (void)(x) =2 #endif =2 =2 enum =2 { =2 false = 0, =2 true =!false =2 }; =2 =2 #ifdef __cplusplus =2 } =2 #endif =2 =2 #endif 45 =2 5 =1 void InitKey(void); 6 =1 7 =1 #if TASK_WITH_PT 8 =1 PT_THREAD(TaskScanKey(struct pt *pt1 )) ; 9 =1 #else =1 PT_THREAD(TaskScanKey(void)) ; =1 #endif 12 =1 extern XDATA unsigned char gcKey; 13 =1 unsigned char GetKey(void) ; 14 =1 #endif 6 #include "key_cfg.h" 1 =1 #ifndef _KEY_CFG_H_ 2 =1 #define _KEY_CFG_H_ 3 =1 4 =1 5 =1 #define GPIO_KEY GPIO2 6 =1 #define GPIO_PIN_KEY GPIO_PIN_1 7 =1 8 =1 #define KEY GPIO_PIN_1 9 =1 #define KEY_MAP KEY 10 =1 11 =1 #define MAX_KEY_STACK 10 12 =1 #define MAX_KEY_FILTER 4 13 =1 14 =1 15 =1 16 =1 #endif 17 =1 7 8 XDATA unsigned char gcOldKey = 0; 9 XDATA unsigned char gcKeyFilter = 0; 10 XDATA unsigned char gcKeyStack[MAX_KEY_STACK] = {"\0"}; C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 37 11 XDATA unsigned char gcKeySavePtr= 0; 12 XDATA unsigned char gcKetGetPtr = 0; 13 XDATA signed char gcBLTimer = -1; 14 XDATA unsigned char gcKey = 0; //键盘键值 15 16 void Beep(uint8_t count,uint16_t freq) 17 { 18 1 UNUSED(count); *** WARNING C275 IN LINE 18 OF Src\key.c: expression with possibly no effect 19 1 UNUSED(freq); *** WARNING C275 IN LINE 19 OF Src\key.c: expression with possibly no effect 20 1 } 21 22 void InitKey(void) 23 { 24 1 GPIO_Init(GPIO_KEY,GPIO_PIN_KEY,GPIO_MODE_IN_PU); //,GPIO_PIN_KEY 25 1 //GPIO_WriteHigh(GPIO_KEY,GPIO_PIN_KEY); 26 1 _nop_(); 27 1 } 28 29 //void TaskScanKey(void) 30 31 #if TASK_WITH_PT 32 PT_THREAD(TaskScanKey(struct pt *pt1 )) 33 #else PT_THREAD(TaskScanKey(void)) #endif 36 { 37 1 unsigned char Key = GPIO_ReadPort(GPIO_KEY); //,GPIO_PIN_KEY 38 1 _nop_(); 39 1 Key = Key&KEY_MAP; 40 1 if(Key!=0x0) 41 1 { 42 2 if(Key!=gcOldKey) //digit filter 43 2 { 44 3 gcOldKey=Key; 45 3 gcKeyFilter=0; 46 3 Beep(1,100); 47 3 } 48 2 else 49 2 { //长按不放的情况 50 3 gcKeyFilter++; 51 3 52 3 if( gcKeyFilter>MAX_KEY_FILTER) //save key to stack 53 3 { 54 4 //if((Key&KEY_LOCK)!=KEY_LOCK) 55 4 //键值过滤 锁定键不允许连击 56 4 { 57 5 gcKeyFilter=0; 58 5 gcKeyStack[gcKeySavePtr]=Key; 59 5 gcKeySavePtr=(gcKeySavePtr+1)%MAX_KEY_STACK; 60 5 Beep(1,50); //beep 10ms 61 5 } 62 4 } 63 3 } 64 2 } 65 1 else 66 1 { 67 2 if(gcKeyFilter>2) //延时去抖动 ,按键松开的情况 68 2 { 69 3 gcKeyFilter=0; 70 3 gcKeyStack[gcKeySavePtr]=gcOldKey; C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 38 71 3 gcKeySavePtr=(gcKeySavePtr+1)%MAX_KEY_STACK; 72 3 Beep(1,100); //beep 10ms 73 3 } 74 2 } 75 1 #ifdef _DEBUG //printf("Key = 0x%X \n",(int)Key); #endif 78 1 79 1 UNUSED(pt1); *** WARNING C275 IN LINE 79 OF Src\key.c: expression with possibly no effect 80 1 return 0; 81 1 } 82 83 84 /************************************************************************** 85 get key code,return 0 if no key 86 ***************************************************************************/ 87 unsigned char GetKey(void) 88 { 89 1 unsigned char ret; 90 1 91 1 if(gcKetGetPtr!=gcKeySavePtr) 92 1 { 93 2 ret=gcKeyStack[gcKetGetPtr]; 94 2 gcKetGetPtr=(gcKetGetPtr+1)%MAX_KEY_STACK; 95 2 } 96 1 else 97 1 ret=0; 98 1 return ret; 99 1 } C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 39 ASSEMBLY LISTING OF GENERATED OBJECT CODE ; FUNCTION _Beep (BEGIN) ; SOURCE LINE # 16 0000 8F00 R MOV count,R7 0002 8C00 R MOV freq,R4 0004 8D00 R MOV freq+01H,R5 ; SOURCE LINE # 17 ; SOURCE LINE # 18 ; SOURCE LINE # 19 ; SOURCE LINE # 20 0006 22 RET ; FUNCTION _Beep (END) ; FUNCTION InitKey (BEGIN) ; SOURCE LINE # 22 ; SOURCE LINE # 23 ; SOURCE LINE # 24 0000 7B01 MOV R3,#01H 0002 7D02 MOV R5,#02H 0004 7F02 MOV R7,#02H 0006 120000 E LCALL _GPIO_Init ; SOURCE LINE # 26 0009 00 NOP ; SOURCE LINE # 27 000A 22 RET ; FUNCTION InitKey (END) ; FUNCTION _TaskScanKey (BEGIN) ; SOURCE LINE # 32 0000 8B00 R MOV pt1,R3 0002 8A00 R MOV pt1+01H,R2 0004 8900 R MOV pt1+02H,R1 ; SOURCE LINE # 36 ; SOURCE LINE # 37 0006 7F02 MOV R7,#02H 0008 120000 E LCALL _GPIO_ReadPort ;---- Variable 'Key' assigned to Register 'R7' ---- ; SOURCE LINE # 38 000B 00 NOP ; SOURCE LINE # 39 000C 530702 ANL AR7,#02H ; SOURCE LINE # 40 000F EF MOV A,R7 0010 604A JZ ?C0003 ; SOURCE LINE # 41 ; SOURCE LINE # 42 0012 900000 R MOV DPTR,#gcOldKey 0015 E0 MOVX A,@DPTR 0016 6F XRL A,R7 0017 600C JZ ?C0004 ; SOURCE LINE # 43 ; SOURCE LINE # 44 0019 EF MOV A,R7 001A F0 MOVX @DPTR,A ; SOURCE LINE # 45 001B E4 CLR A 001C 900000 R MOV DPTR,#gcKeyFilter 001F F0 MOVX @DPTR,A ; SOURCE LINE # 46 0020 7D64 MOV R5,#064H C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 40 0022 FC MOV R4,A ; SOURCE LINE # 47 0023 806C SJMP ?C0014 0025 ?C0004: ; SOURCE LINE # 49 ; SOURCE LINE # 50 0025 900000 R MOV DPTR,#gcKeyFilter 0028 E0 MOVX A,@DPTR 0029 04 INC A 002A F0 MOVX @DPTR,A ; SOURCE LINE # 52 002B E0 MOVX A,@DPTR 002C D3 SETB C 002D 9404 SUBB A,#04H 002F 4065 JC ?C0007 ; SOURCE LINE # 53 ; SOURCE LINE # 56 ; SOURCE LINE # 57 0031 E4 CLR A 0032 F0 MOVX @DPTR,A ; SOURCE LINE # 58 0033 900000 R MOV DPTR,#gcKeySavePtr 0036 E0 MOVX A,@DPTR 0037 FE MOV R6,A 0038 2400 R ADD A,#LOW gcKeyStack 003A F582 MOV DPL,A 003C E4 CLR A 003D 3400 R ADDC A,#HIGH gcKeyStack 003F F583 MOV DPH,A 0041 EF MOV A,R7 0042 F0 MOVX @DPTR,A ; SOURCE LINE # 59 0043 EE MOV A,R6 0044 2401 ADD A,#01H 0046 FF MOV R7,A 0047 E4 CLR A 0048 33 RLC A 0049 FE MOV R6,A 004A 7C00 MOV R4,#00H 004C 7D0A MOV R5,#0AH 004E 120000 E LCALL ?C?UIDIV 0051 900000 R MOV DPTR,#gcKeySavePtr 0054 ED MOV A,R5 0055 F0 MOVX @DPTR,A ; SOURCE LINE # 60 0056 7D32 MOV R5,#032H 0058 7C00 MOV R4,#00H 005A ?C0013: ; SOURCE LINE # 61 ; SOURCE LINE # 62 ; SOURCE LINE # 63 ; SOURCE LINE # 64 005A 8035 SJMP ?C0014 005C ?C0003: ; SOURCE LINE # 66 ; SOURCE LINE # 67 005C 900000 R MOV DPTR,#gcKeyFilter 005F E0 MOVX A,@DPTR 0060 D3 SETB C 0061 9402 SUBB A,#02H 0063 4031 JC ?C0007 ; SOURCE LINE # 68 C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 41 ; SOURCE LINE # 69 0065 E4 CLR A 0066 F0 MOVX @DPTR,A ; SOURCE LINE # 70 0067 900000 R MOV DPTR,#gcOldKey 006A E0 MOVX A,@DPTR 006B FF MOV R7,A 006C A3 INC DPTR 006D E0 MOVX A,@DPTR 006E FE MOV R6,A 006F 2400 R ADD A,#LOW gcKeyStack 0071 F582 MOV DPL,A 0073 E4 CLR A 0074 3400 R ADDC A,#HIGH gcKeyStack 0076 F583 MOV DPH,A 0078 EF MOV A,R7 0079 F0 MOVX @DPTR,A ; SOURCE LINE # 71 007A EE MOV A,R6 007B 2401 ADD A,#01H 007D FF MOV R7,A 007E E4 CLR A 007F 33 RLC A 0080 FE MOV R6,A 0081 7C00 MOV R4,#00H 0083 7D0A MOV R5,#0AH 0085 120000 E LCALL ?C?UIDIV 0088 900000 R MOV DPTR,#gcKeySavePtr 008B ED MOV A,R5 008C F0 MOVX @DPTR,A ; SOURCE LINE # 72 008D 7D64 MOV R5,#064H 008F 7C00 MOV R4,#00H 0091 ?C0014: 0091 7F01 MOV R7,#01H 0093 120000 R LCALL _Beep ; SOURCE LINE # 73 ; SOURCE LINE # 74 0096 ?C0007: ; SOURCE LINE # 79 ; SOURCE LINE # 80 0096 7F00 MOV R7,#00H ; SOURCE LINE # 81 0098 22 RET ; FUNCTION _TaskScanKey (END) ; FUNCTION GetKey (BEGIN) ; SOURCE LINE # 87 ;---- Variable 'ret' assigned to Register 'R3' ---- ; SOURCE LINE # 88 ; SOURCE LINE # 91 0000 900000 R MOV DPTR,#gcKeySavePtr 0003 E0 MOVX A,@DPTR 0004 FF MOV R7,A 0005 A3 INC DPTR 0006 E0 MOVX A,@DPTR 0007 FE MOV R6,A 0008 6F XRL A,R7 0009 6021 JZ ?C0010 ; SOURCE LINE # 92 ; SOURCE LINE # 93 000B 7400 R MOV A,#LOW gcKeyStack C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 42 000D 2E ADD A,R6 000E F582 MOV DPL,A 0010 E4 CLR A 0011 3400 R ADDC A,#HIGH gcKeyStack 0013 F583 MOV DPH,A 0015 E0 MOVX A,@DPTR 0016 FB MOV R3,A ; SOURCE LINE # 94 0017 EE MOV A,R6 0018 2401 ADD A,#01H 001A FF MOV R7,A 001B E4 CLR A 001C 33 RLC A 001D FE MOV R6,A 001E 7C00 MOV R4,#00H 0020 7D0A MOV R5,#0AH 0022 120000 E LCALL ?C?UIDIV 0025 900000 R MOV DPTR,#gcKetGetPtr 0028 ED MOV A,R5 0029 F0 MOVX @DPTR,A ; SOURCE LINE # 95 002A 8002 SJMP ?C0011 002C ?C0010: ; SOURCE LINE # 97 002C E4 CLR A 002D FB MOV R3,A 002E ?C0011: ; SOURCE LINE # 98 002E AF03 MOV R7,AR3 ; SOURCE LINE # 99 0030 22 RET ; FUNCTION GetKey (END) C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 43 NAME CLASS MSPACE TYPE OFFSET SIZE ==== ===== ====== ==== ====== ==== uint16_t . . . . . . . . . . . . . . . TYPEDEF ----- U_INT ----- 2 OPREG. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00FFH 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 ADC_PresSel_TypeDef. . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 P2 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A0H 1 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 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 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 TIM2_MODE_TIMER. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SPI_CLOCKPOLARITY_LOW. . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWMCON1. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00DAH 1 PWM_POLARITY_INVERT. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 GPIO_PIN_0 . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 int16_t. . . . . . . . . . . . . . . . TYPEDEF ----- INT ----- 2 SPI_BAUDRATEPRESCALER_64 . . . . . . . E_CONST ----- U_CHAR ----- 1 GPIO_PIN_1 . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 BTM_Timebase_TypeDef . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 IAP_MEMTYPE_EEPROM . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 GPIO_PIN_2 . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 EXTI_TRIGGER_DISABLE . . . . . . . . . E_CONST ----- U_CHAR ----- 1 UART0_Mode_Typedef . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 GPIO_PIN_3 . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ERROR. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 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 GPIO_PIN_6 . . . . . . . . . . . . . . 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 C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 44 NAME CLASS MSPACE TYPE OFFSET SIZE ==== ===== ====== ==== ====== ==== BTM_TIMEBASE_62_5MS. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 IAP_MEMTYPE_IFB. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 GPIO_MODE_OUT_PP . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 CP . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C8H 1 PWM_ComplementaryOutputPin_TypeDef . . TYPEDEF ----- U_CHAR ----- 1 SYSCLK_PresSel_TypeDef . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 ErrorStatus. . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 EXF2 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CEH 1 CHKSUMH. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00FDH 1 gcOldKey . . . . . . . . . . . . . . . PUBLIC XDATA U_CHAR 0000H 1 IAP_OperateRange_TypeDef . . . . . . . TYPEDEF ----- U_CHAR ----- 1 IAP_MemType_TypeDef. . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 XTIPLL_HIGHER_THAN_12M . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWMDTY0. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D5H 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 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 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 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 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 FunctionalState. . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 IPT1 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BBH 1 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 SPI_TXE_INT_TypeDef. . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 RCAP2H . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00CBH 1 SPI_MODE_MASTER. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SP . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0081H 1 lc_t . . . . . . . . . . . . . . . . . TYPEDEF ----- U_INT ----- 2 PWM_OUTPUTSTATE_DISABLE. . . . . . . . E_CONST ----- U_CHAR ----- 1 PWM0 . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 45 NAME CLASS MSPACE TYPE OFFSET SIZE ==== ===== ====== ==== ====== ==== OV . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D2H 1 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 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 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 SPI_ClockPolarity_TypeDef. . . . . . . TYPEDEF ----- U_CHAR ----- 1 RCLK . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CDH 1 IAPADL . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00F2H 1 PWM_PresSel_TypeDef. . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 GPIO_Mode_TypeDef. . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 bool . . . . . . . . . . . . . . . . . TYPEDEF ----- 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 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 P22. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A2H 1 C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 46 NAME CLASS MSPACE TYPE OFFSET SIZE ==== ===== ====== ==== ====== ==== P13. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0093H 1 SCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0098H 1 TIM2_COUNTDIRECTION_UP . . . . . . . . E_CONST ----- U_CHAR ----- 1 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 ADC_CHANNEL_1. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 P24. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A4H 1 P15. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0095H 1 IPINT0 . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B8H 1 WDT_OverflowTime_31_5MS. . . . . . . . E_CONST ----- U_CHAR ----- 1 _GPIO_ReadPort . . . . . . . . . . . . EXTERN CODE PROC ----- ----- 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 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 SSI_PinSelection_TypeDef . . . . . . . TYPEDEF ----- U_CHAR ----- 1 SPI_BAUDRATEPRESCALER_256. . . . . . . E_CONST ----- U_CHAR ----- 1 ADC_CHANNEL_VDD_D4 . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 WDT_OverflowTime_3_94MS. . . . . . . . E_CONST ----- U_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 gcKeySavePtr . . . . . . . . . . . . . PUBLIC XDATA U_CHAR 0001H 1 SYSCLK_PRESSEL_FOSC_D1 . . . . . . . . E_CONST ----- U_CHAR ----- 1 InitKey. . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H ----- SYSCLK_PRESSEL_FOSC_D2 . . . . . . . . E_CONST ----- U_CHAR ----- 1 TRUE . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 B. . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00F0H 1 true . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SYSCLK_PRESSEL_FOSC_D4 . . . . . . . . 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 C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 47 NAME CLASS MSPACE TYPE OFFSET SIZE ==== ===== ====== ==== ====== ==== XTIPLL_Range_TypeDef . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 GPIO_TypeDef . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 PWMCFG . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D1H 1 SPI_ClockPhase_TypeDef . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 ACC. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00E0H 1 _TaskScanKey . . . . . . . . . . . . . PUBLIC CODE PROC 0000H ----- pt1. . . . . . . . . . . . . . . . . AUTO DATA PTR 0000H 3 Key. . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1 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 gcKetGetPtr. . . . . . . . . . . . . . PUBLIC XDATA U_CHAR 0002H 1 TF1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008FH 1 ET2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ADH 1 ADCCFG1. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00AAH 1 GetKey . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H ----- ret. . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0003H 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 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 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 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 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 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 WDT_OverflowTime_TypeDef . . . . . . . TYPEDEF ----- U_CHAR ----- 1 C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 48 NAME CLASS MSPACE TYPE OFFSET SIZE ==== ===== ====== ==== ====== ==== 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 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 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 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 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 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 gcBLTimer. . . . . . . . . . . . . . . PUBLIC XDATA CHAR 0003H 1 LVR_INVALID. . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 gcKeyFilter. . . . . . . . . . . . . . PUBLIC XDATA U_CHAR 0004H 1 PWM_PRESSEL_FOSC_D8. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 GPIO0. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 DPL. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0082H 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 C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 49 NAME CLASS MSPACE TYPE OFFSET SIZE ==== ===== ====== ==== ====== ==== 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 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 UART1_FLAG_RI. . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 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 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 SPI_TXE_DISINT . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 INT0R. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00BBH 1 gcKeyStack . . . . . . . . . . . . . . PUBLIC XDATA ARRAY 0005H 10 INT1R. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00BDH 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 LVR_4_3V . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SYSCLK_PRESSEL_FOSC_D12. . . . . . . . E_CONST ----- U_CHAR ----- 1 LOW. . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 UART0_Clock_Typedef. . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 UART0_PinSelection_P15P16. . . . . . . E_CONST ----- U_CHAR ----- 1 gcKey. . . . . . . . . . . . . . . . . PUBLIC XDATA U_CHAR 000FH 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 BTM_TIMEBASE_2S. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 BTM_TIMEBASE_15_625MS. . . . . . . . . E_CONST ----- U_CHAR ----- 1 BTM_TIMEBASE_4S. . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SPI_FIRSTBIT_LSB . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PSW. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D0H 1 SPI_FIRSTBIT_MSB . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 C51 COMPILER V9.60.7.0 KEY 08/17/2024 22:06:31 PAGE 50 NAME CLASS MSPACE TYPE OFFSET SIZE ==== ===== ====== ==== ====== ==== GPIO_PIN_HNIB. . . . . . . . . . . . . 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 _Beep. . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H ----- count. . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1 freq . . . . . . . . . . . . . . . . AUTO DATA U_INT 0001H 2 MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 220 ---- CONSTANT SIZE = ---- ---- XDATA SIZE = 16 ---- PDATA SIZE = ---- ---- DATA SIZE = ---- 6 IDATA SIZE = ---- ---- BIT SIZE = ---- ---- EDATA SIZE = ---- ---- HDATA SIZE = ---- ---- XDATA CONST SIZE = ---- ---- FAR CONST SIZE = ---- ---- END OF MODULE INFORMATION. C51 COMPILATION COMPLETE. 3 WARNING(S), 0 ERROR(S)