C51 COMPILER V9.60.7.0 SC92F8003_PWM 08/17/2024 22:06:32 PAGE 1 C51 COMPILER V9.60.7.0, COMPILATION OF MODULE SC92F8003_PWM OBJECT MODULE PLACED IN .\Objects\sc92f8003_pwm.obj COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE SC92F8003_Lib\src\sc92f8003_pwm.c OMF2 OPTIMIZE(8,SPEED) BROWSE INCDIR(.\Sr -c;.\Task;.\Task\cpu_port\S92F8003A;.\Task\cfg;.\Task\pt_thread;.\SC92F8003_Lib\Inc) DEBUG CODE LISTINCLUDE SYMBOLS PRINT -(.\Listings\sc92f8003_pwm.lst) PREPRINT(.\Listings\sc92f8003_pwm.i) OBJECT(.\Objects\sc92f8003_pwm.obj) line level source 1 //************************************************************ 2 // Copyright (c) 深圳市赛元微电子有限公司 3 // 文件名称 : sc92f8003_pwm.c 4 // 作者 : 5 // 模块功能 : PWM固件库函数C文件 6 // 局部函数列表: 7 // 最后更正日期: 2018/9/4 8 // 版本 : V1.0 9 // 说明 : 10 //************************************************************* 11 12 #include "sc92f8003_pwm.h" 1 =1 //************************************************************ 2 =1 // Copyright (c) 深圳市赛元微电子有限公司 3 =1 // 文件名称 : sc92f8003_pwm.h 4 =1 // 作者 : 5 =1 // 模块功能 : PWM固件库函数头文件 6 =1 // 局部函数列表: 7 =1 // 最后更正日期: 2018/9/4 8 =1 // 版本 : V1.0 9 =1 // 说明 : 10 =1 //************************************************************* 11 =1 12 =1 #ifndef _SC92F8003_PWM_H_ 13 =1 #define _SC92F8003_PWM_H_ 14 =1 15 =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 C51 COMPILER V9.60.7.0 SC92F8003_PWM 08/17/2024 22:06:32 PAGE 2 23 =3 24 =3 /*system*/ 25 =3 sfr PCON = 0x87; //电源管理控制寄存器 26 =3 27 =3 /*interrupt*/ 28 =3 sfr IP1 = 0XB9; //中断优先级控制寄存器1 29 =3 sfr IP = 0xB8; //中断优先权控制寄存器 30 =3 sfr IE = 0xA8; //中断控制寄存器 31 =3 sfr IE1 = 0XA9; //中断控制寄存器1 32 =3 33 =3 /*PORT*/ 34 =3 sfr P2PH = 0xA2; //P2口模式控制寄存器 35 =3 sfr P2CON = 0xA1; //P2口模式控制寄存器 36 =3 sfr P2 = 0xA0; //P2口数据寄存器 37 =3 sfr P1PH = 0x92; //P1口模式控制寄存器 38 =3 sfr P1CON = 0x91; //P1口模式控制寄存器 39 =3 sfr P1 = 0x90; //P1口数据寄存器 40 =3 sfr P0PH = 0x9B; //P0口模式控制寄存器 41 =3 sfr P0CON = 0x9A; //P0口模式控制寄存器 42 =3 sfr P0 = 0x80; //P0口数据寄存器 43 =3 44 =3 /*TIMER*/ 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*/ C51 COMPILER V9.60.7.0 SC92F8003_PWM 08/17/2024 22:06:32 PAGE 3 85 =3 sfr BTMCON = 0XCE; //低频定时器控制寄存器 86 =3 sfr WDTCON = 0xCF; //WDT控制寄存器 87 =3 88 =3 89 =3 sfr OTCON = 0X8F; //输出控制寄存器 90 =3 91 =3 /*INT*/ 92 =3 sfr INT0F = 0XBA; //INT0 下降沿中断控制寄存器 93 =3 sfr INT0R = 0XBB; //INT0 上降沿中断控制寄存器 94 =3 sfr INT1F = 0XBC; //INT1 下降沿中断控制寄存器 95 =3 sfr INT1R = 0XBD; //INT1 上降沿中断控制寄存器 96 =3 sfr INT2F = 0XC6; //INT2 下降沿中断控制寄存器 97 =3 sfr INT2R = 0XC7; //INT2 上降沿中断控制寄存器 98 =3 99 =3 /*IAP */ 100 =3 sfr IAPCTL = 0xF6; //IAP控制寄存器 101 =3 sfr IAPDAT = 0xF5; //IAP数据寄存器 102 =3 sfr IAPADE = 0xF4; //IAP扩展地址寄存器 103 =3 sfr IAPADH = 0xF3; //IAP写入地址高位寄存器 104 =3 sfr IAPADL = 0xF2; //IAP写入地址低8位寄存器 105 =3 sfr IAPKEY = 0xF1; //IAP保护寄存器 106 =3 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; C51 COMPILER V9.60.7.0 SC92F8003_PWM 08/17/2024 22:06:32 PAGE 4 144 =3 sbit T2 = T2CON^1; 145 =3 sbit CP = T2CON^0; 146 =3 147 =3 148 =3 /*IP*/ 149 =3 sbit IPADC = IP^6; //ADC中断优先控制位 0:设定 ADC的中断优先权是 “低” 1:设定 AD -C的中断优先权是 “高” 150 =3 sbit IPT2 = IP^5; //PWM中断优先控制位 0:设定 PWM的中断优先权是 “低” 1:设定 PW -M 的中断优先权是 “高” 151 =3 sbit IPUART = IP^4; //SIF中断优先控制位 0:设定 SIF的中断优先权是 “低” 1:设定 SI -F的中断优先权是 “高” 152 =3 sbit IPT1 = IP^3; //Timer1中断优先控制位 0:设定 Timer 1的中断优先权是 “低” 1:设 - Timer 1的中断优先权是 “高” 153 =3 sbit IPINT1 = IP^2; //32K Base Timer中断优先控制位 0:设定 32K的中断优先权是 “低” - 1:设定 32K的中断优先权是 “高” 154 =3 sbit IPT0 = IP^1; //Timer0中断优先控制位 0:设定 Timer 0的中断优先权是 “低” 1:设 - Timer 0的中断优先权是 “高” 155 =3 sbit IPINT0 = IP^0; 156 =3 157 =3 /*IE*/ 158 =3 sbit EA = IE^7; //中断使能的总控制 0:关闭所有的中断 1:打开所有的中断 159 =3 sbit EADC = IE^6; //ADC中断使能控制 0:关闭ADC中断 1:打开ADC中断 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 */ C51 COMPILER V9.60.7.0 SC92F8003_PWM 08/17/2024 22:06:32 PAGE 5 198 =3 sbit P27 = P2^7; 199 =3 sbit P26 = P2^6; 200 =3 sbit P25 = P2^5; 201 =3 sbit P24 = P2^4; 202 =3 sbit P23 = P2^3; 203 =3 sbit P22 = P2^2; 204 =3 sbit P21 = P2^1; 205 =3 sbit P20 = P2^0; 206 =3 207 =3 #endif 5 =2 #include "stdint.h" 1 =3 #ifndef _STD_INT_H_ 2 =3 #define _STD_INT_H_ 3 =3 typedef signed long int32_t; 4 =3 typedef unsigned long uint32_t; 5 =3 typedef signed char int8_t; 6 =3 typedef unsigned char uint8_t; 7 =3 typedef signed int int16_t; 8 =3 typedef unsigned int uint16_t; 9 =3 #endif 6 =2 7 =2 #define enableInterrupts() EA=1 /** 开启总中断 **/ 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 16 =1 17 =1 typedef enum { 18 =1 PWM_PRESSEL_FOSC_D1 = (uint8_t)0x00, //PWM预分频为Fosc/1 C51 COMPILER V9.60.7.0 SC92F8003_PWM 08/17/2024 22:06:32 PAGE 6 19 =1 PWM_PRESSEL_FOSC_D2 = (uint8_t)0x10, //PWM预分频为Fosc/2 20 =1 PWM_PRESSEL_FOSC_D8 = (uint8_t)0x20, //PWM预分频为Fosc/8 21 =1 PWM_PRESSEL_FOSC_D32 = (uint8_t)0x30 //PWM预分频为Fosc/32 22 =1 } PWM_PresSel_TypeDef; 23 =1 24 =1 typedef enum { 25 =1 PWM0 = (uint8_t)0x01, //PWM输出通道选择:PWM0 26 =1 PWM1 = (uint8_t)0x02, //PWM输出通道选择:PWM1 27 =1 PWM2 = (uint8_t)0x04, //PWM输出通道选择:PWM2 28 =1 PWM3 = (uint8_t)0x08, //PWM输出通道选择:PWM3 29 =1 PWM4 = (uint8_t)0x10, //PWM输出通道选择:PWM4 30 =1 PWM5 = (uint8_t)0x20, //PWM输出通道选择:PWM5 31 =1 PWM6 = (uint8_t)0x40 //PWM输出通道选择:PWM6 32 =1 } PWM_OutputPin_TypeDef; 33 =1 34 =1 typedef enum { 35 =1 PWM0PWM3 = (uint8_t)0x00, //PWM互补模式通道选择:PWM0、PWM3 36 =1 PWM1PWM4 = (uint8_t)0x01, //PWM互补模式通道选择:PWM1、PWM4 37 =1 PWM2PWM5 = (uint8_t)0x02 //PWM互补模式通道选择:PWM2、PWM5 38 =1 } PWM_ComplementaryOutputPin_TypeDef; 39 =1 40 =1 typedef enum { 41 =1 PWM_OUTPUTSTATE_DISABLE = ((uint8_t)0x00), //该PIN脚作为GPIO 42 =1 PWM_OUTPUTSTATE_ENABLE = ((uint8_t)0x01) //该PIN脚作为PWM 43 =1 } PWM_OutputState_TypeDef; 44 =1 45 =1 typedef enum { 46 =1 PWM_POLARITY_NON_INVERT = ((uint8_t)0x00), //PWM输出不反向 47 =1 PWM_POLARITY_INVERT = ((uint8_t)0x01) //PWM输出反向 48 =1 } PWM_Polarity_TypeDef; 49 =1 50 =1 void PWM_DeInit(void); 51 =1 void PWM_Init(PWM_PresSel_TypeDef PWM_PresSel,uint16_t PWM_Period); 52 =1 void PWM_OutputStateConfig(uint8_t PWM_OutputPin,PWM_OutputState_TypeDef PWM_OutputState); 53 =1 void PWM_PolarityConfig(uint8_t PWM_OutputPin,PWM_Polarity_TypeDef PWM_Polarity); 54 =1 void PWM_IndependentModeConfig(PWM_OutputPin_TypeDef PWM_OutputPin, uint16_t PWM_DutyCycle); 55 =1 void PWM_ComplementaryModeConfig(PWM_ComplementaryOutputPin_TypeDef PWM_ComplementaryOutputPin,uint16_t PW -M_DutyCycle); 56 =1 void PWM_DeadTimeConfig(uint8_t PWM012_RisingDeadTime,uint8_t PWM345_fallingDeadTime); 57 =1 void PWM_Cmd(FunctionalState NewState); 58 =1 void PWM_ITConfig(FunctionalState NewState, PriorityStatus Priority); 59 =1 FlagStatus PWM_GetFlagStatus(void); 60 =1 void PWM_ClearFlag(void); 61 =1 62 =1 #endif 63 =1 64 =1 /******************* (C) COPYRIGHT 2018 SinOne Microelectronics *****END OF FILE****/ 13 14 /************************************************** 15 *函数名称:void PWM_DeInit(void) 16 *函数功能:PWM相关寄存器复位至缺省值 17 *入口参数:void 18 *出口参数:void 19 **************************************************/ 20 void PWM_DeInit(void) 21 { 22 1 PWMCFG = 0X00; 23 1 PWMCON0 = 0X00; 24 1 PWMPRD = 0X00; 25 1 PWMDTYA = 0X00; 26 1 PWMDTY0 = 0X00; 27 1 PWMDTY1 = 0X00; C51 COMPILER V9.60.7.0 SC92F8003_PWM 08/17/2024 22:06:32 PAGE 7 28 1 PWMDTY2 = 0X00; 29 1 PWMCON1 = 0X00; 30 1 PWMDTYB = 0X00; 31 1 PWMDTY3 = 0X00; 32 1 PWMDTY4 = 0X00; 33 1 PWMDTY5 = 0X00; 34 1 PWMDTY6 = 0X00; 35 1 IE1 &= 0XFD; 36 1 IP1 &= 0XFD; 37 1 } 38 39 /************************************************** 40 *函数名称:void PWM_Init(PWM_PresSel_TypeDef PWM_PresSel, uint16_t PWM_Period) 41 *函数功能:PWM初始化配置函数 42 *入口参数:PWM_PresSel 预分频选择 43 PWM_Period PWM周期配置 44 *出口参数:void 45 **************************************************/ 46 void PWM_Init(PWM_PresSel_TypeDef PWM_PresSel, uint16_t PWM_Period) 47 { 48 1 PWMCON0 = (PWMCON0 & 0XCC) | PWM_PresSel | (uint8_t)(PWM_Period & 0X0003); //预分频及周期的低2位 49 1 PWMPRD = (uint8_t)(PWM_Period >> 2); //周期高八位 50 1 } 51 52 /************************************************** 53 *函数名称:void PWM_OutputStateConfig(uint8_t PWM_OutputPin, PWM_OutputState_TypeDef PWM_OutputState) 54 *函数功能:PWMx输出使能/失能配置函数 55 *入口参数:PWM_OutputPin PWMx选择 56 PWM_OutputState PWM输出状态配置 57 *出口参数:void 58 **************************************************/ 59 void PWM_OutputStateConfig(uint8_t PWM_OutputPin, PWM_OutputState_TypeDef PWM_OutputState) 60 { 61 1 if(PWM_OutputState == PWM_OUTPUTSTATE_ENABLE) 62 1 { 63 2 PWMCON1 |= PWM_OutputPin; 64 2 } 65 1 else 66 1 { 67 2 PWMCON1 &= (~PWM_OutputPin); 68 2 } 69 1 } 70 71 /************************************************** 72 *函数名称:void PWM_PolarityConfig(uint8_t PWM_OutputPin, PWM_Polarity_TypeDef PWM_Polarity) 73 *函数功能:PWMx正/反向输出配置函数 74 *入口参数:PWM_OutputPin PWMx选择 75 PWM_Polarity PWM输出正/反向配置 76 *出口参数:void 77 **************************************************/ 78 void PWM_PolarityConfig(uint8_t PWM_OutputPin, PWM_Polarity_TypeDef PWM_Polarity) 79 { 80 1 if(PWM_Polarity == PWM_POLARITY_INVERT) 81 1 { 82 2 PWMCFG |= PWM_OutputPin; 83 2 } 84 1 else 85 1 { 86 2 PWMCFG &= (~PWM_OutputPin); 87 2 } 88 1 } 89 C51 COMPILER V9.60.7.0 SC92F8003_PWM 08/17/2024 22:06:32 PAGE 8 90 /************************************************** 91 *函数名称:void PWM_IndependentModeConfig(PWM_OutputPin_TypeDef PWM_OutputPin, uint16_t PWM_DutyCycle -) 92 *函数功能:PWMx独立工作模式配置函数 93 *入口参数:PWM_OutputPin PWMx独立通道选择 94 PWM_DutyCycle PWM占空比配置 95 *出口参数:void 96 **************************************************/ 97 void PWM_IndependentModeConfig(PWM_OutputPin_TypeDef PWM_OutputPin, uint16_t PWM_DutyCycle) 98 { 99 1 PWMCON1 &= 0X7F; //设置PWM为独立模式 100 1 switch(PWM_OutputPin) //设置占空比 101 1 { 102 2 case PWM0: 103 2 PWMDTYA = PWMDTYA & 0XFC | (PWM_DutyCycle % 4); 104 2 PWMDTY0 = (uint8_t)(PWM_DutyCycle >> 2); 105 2 break; 106 2 case PWM1: 107 2 PWMDTYA = PWMDTYA & 0XF3 | ((PWM_DutyCycle % 4) << 2); 108 2 PWMDTY1 = (uint8_t)(PWM_DutyCycle >> 2); 109 2 break; 110 2 case PWM2: 111 2 PWMDTYA = PWMDTYA & 0XCF | ((PWM_DutyCycle % 4) << 4); 112 2 PWMDTY2 = (uint8_t)(PWM_DutyCycle >> 2); 113 2 break; 114 2 case PWM3: 115 2 PWMDTYA = PWMDTYA & 0X3F | ((PWM_DutyCycle % 4) << 6); 116 2 PWMDTY3 = (uint8_t)(PWM_DutyCycle >> 2); 117 2 break; 118 2 case PWM4: 119 2 PWMDTYB = PWMDTYB & 0XFC | (PWM_DutyCycle % 4); 120 2 PWMDTY4 = (uint8_t)(PWM_DutyCycle >> 2); 121 2 break; 122 2 case PWM5: 123 2 PWMDTYB = PWMDTYB & 0XF3 | ((PWM_DutyCycle % 4) << 2); 124 2 PWMDTY5 = (uint8_t)(PWM_DutyCycle >> 2); 125 2 break; 126 2 case PWM6: 127 2 PWMDTYB = PWMDTYB & 0XCF | ((PWM_DutyCycle % 4) << 4); 128 2 PWMDTY6 = (uint8_t)(PWM_DutyCycle >> 2); 129 2 break; 130 2 default: 131 2 break; 132 2 } 133 1 } 134 135 /************************************************** 136 *函数名称:void PWM_ComplementaryModeConfig(PWM_ComplementaryOutputPin_TypeDef PWM_ComplementaryOutpu -tPin, uint16_t PWM_DutyCycle) 137 *函数功能:PWMxPWMy互补工作模式配置函数 138 *入口参数:PWM_ComplementaryOutputPin PWMxPWMy互补通道选择 139 PWM_DutyCycle PWM占空比配置 140 *出口参数:void 141 **************************************************/ 142 void PWM_ComplementaryModeConfig(PWM_ComplementaryOutputPin_TypeDef PWM_ComplementaryOutputPin, uint16_t P -WM_DutyCycle) 143 { 144 1 PWMCON1 |= 0X80; //设置PWM为互补模式 145 1 switch(PWM_ComplementaryOutputPin) //设置占空比 146 1 { 147 2 case PWM0PWM3: 148 2 PWMDTYA = PWMDTYA & 0XFC | (PWM_DutyCycle % 4); C51 COMPILER V9.60.7.0 SC92F8003_PWM 08/17/2024 22:06:32 PAGE 9 149 2 PWMDTY0 = (uint8_t)(PWM_DutyCycle >> 2); 150 2 break; 151 2 case PWM1PWM4: 152 2 PWMDTYA = PWMDTYA & 0XF3 | ((PWM_DutyCycle % 4) << 2); 153 2 PWMDTY1 = (uint8_t)(PWM_DutyCycle >> 2); 154 2 break; 155 2 case PWM2PWM5: 156 2 PWMDTYA = PWMDTYA & 0XCF | ((PWM_DutyCycle % 4) << 4); 157 2 PWMDTY2 = (uint8_t)(PWM_DutyCycle >> 2); 158 2 break; 159 2 default: 160 2 break; 161 2 } 162 1 } 163 164 /************************************************** 165 *函数名称:void PWM_DeadTimeConfig(uint8_t PWM012_RisingDeadTime, uint8_t PWM345_fallingDeadTime) 166 *函数功能:PWM互补工作模式下死区时间配置函数 167 *入口参数:PWM012_RisingDeadTime PWM死区上升时间 168 PWM345_fallingDeadTime PWM死区下降时间 169 *出口参数:void 170 **************************************************/ 171 void PWM_DeadTimeConfig(uint8_t PWM012_RisingDeadTime, uint8_t PWM345_fallingDeadTime) 172 { 173 1 PWMDTY3 = (PWM012_RisingDeadTime | (PWM345_fallingDeadTime << 4)); 174 1 } 175 176 /***************************************************** 177 *函数名称:void PWM_Cmd(FunctionalState NewState) 178 *函数功能:PWM功能开关函数 179 *入口参数:FunctionalState NewState 功能启动/关闭选择 180 *出口参数:void 181 *****************************************************/ 182 void PWM_Cmd(FunctionalState NewState) 183 { 184 1 if (NewState != DISABLE) 185 1 { 186 2 PWMCON0 |= 0X80; 187 2 } 188 1 else 189 1 { 190 2 PWMCON0 &= ~0X80; 191 2 } 192 1 } 193 194 /***************************************************** 195 *函数名称:void PWM_ITConfig(FunctionalState NewState, PriorityStatus Priority) 196 *函数功能:PWM中断初始化 197 *入口参数:FunctionalState NewState 中断使能/关闭选择 198 PriorityStatus Priority 中断优先级选择 199 *出口参数:void 200 *****************************************************/ 201 void PWM_ITConfig(FunctionalState NewState, PriorityStatus Priority) 202 { 203 1 if (NewState != DISABLE) 204 1 { 205 2 IE1 |= 0X02; 206 2 } 207 1 else 208 1 { 209 2 IE1 &= 0XFD; 210 2 } C51 COMPILER V9.60.7.0 SC92F8003_PWM 08/17/2024 22:06:32 PAGE 10 211 1 212 1 if(Priority == LOW) 213 1 { 214 2 IP1 |= 0X02; 215 2 } 216 1 else 217 1 { 218 2 IP1 &= 0XFD; 219 2 } 220 1 } 221 222 /***************************************************** 223 *函数名称:FlagStatus PWM_GetFlagStatus(void) 224 *函数功能:获得PWM中断标志状态 225 *入口参数:void 226 *出口参数:FlagStatus PWM中断标志状态 227 *****************************************************/ 228 FlagStatus PWM_GetFlagStatus(void) 229 { 230 1 return (FlagStatus)(PWMCON0 & 0X40); 231 1 } 232 233 /***************************************************** 234 *函数名称:void PWM_ClearFlag(void) 235 *函数功能:清除PWM中断标志状态 236 *入口参数:void 237 *出口参数:void 238 *****************************************************/ 239 void PWM_ClearFlag(void) 240 { 241 1 PWMCON0 &= 0XBF; 242 1 } 243 244 /******************* (C) COPYRIGHT 2018 SinOne Microelectronics *****END OF FILE****/ C51 COMPILER V9.60.7.0 SC92F8003_PWM 08/17/2024 22:06:32 PAGE 11 ASSEMBLY LISTING OF GENERATED OBJECT CODE ; FUNCTION PWM_DeInit (BEGIN) ; SOURCE LINE # 20 ; SOURCE LINE # 21 ; SOURCE LINE # 22 0000 E4 CLR A 0001 F5D1 MOV PWMCFG,A ; SOURCE LINE # 23 0003 F5D2 MOV PWMCON0,A ; SOURCE LINE # 24 0005 F5D3 MOV PWMPRD,A ; SOURCE LINE # 25 0007 F5D4 MOV PWMDTYA,A ; SOURCE LINE # 26 0009 F5D5 MOV PWMDTY0,A ; SOURCE LINE # 27 000B F5D6 MOV PWMDTY1,A ; SOURCE LINE # 28 000D F5D7 MOV PWMDTY2,A ; SOURCE LINE # 29 000F F5DA MOV PWMCON1,A ; SOURCE LINE # 30 0011 F5DB MOV PWMDTYB,A ; SOURCE LINE # 31 0013 F5DC MOV PWMDTY3,A ; SOURCE LINE # 32 0015 F5DD MOV PWMDTY4,A ; SOURCE LINE # 33 0017 F5DE MOV PWMDTY5,A ; SOURCE LINE # 34 0019 F5DF MOV PWMDTY6,A ; SOURCE LINE # 35 001B 53A9FD ANL IE1,#0FDH ; SOURCE LINE # 36 001E 53B9FD ANL IP1,#0FDH ; SOURCE LINE # 37 0021 22 RET ; FUNCTION PWM_DeInit (END) ; FUNCTION _PWM_Init (BEGIN) ; SOURCE LINE # 46 ;---- Variable 'PWM_Period' assigned to Register 'R4/R5' ---- ;---- Variable 'PWM_PresSel' assigned to Register 'R7' ---- ; SOURCE LINE # 47 ; SOURCE LINE # 48 0000 ED MOV A,R5 0001 5403 ANL A,#03H 0003 FE MOV R6,A 0004 E5D2 MOV A,PWMCON0 0006 54CC ANL A,#0CCH 0008 4F ORL A,R7 0009 4E ORL A,R6 000A F5D2 MOV PWMCON0,A ; SOURCE LINE # 49 000C AE04 MOV R6,AR4 000E ED MOV A,R5 000F 7802 MOV R0,#02H 0011 ?C0036: 0011 CE XCH A,R6 0012 C3 CLR C C51 COMPILER V9.60.7.0 SC92F8003_PWM 08/17/2024 22:06:32 PAGE 12 0013 13 RRC A 0014 CE XCH A,R6 0015 13 RRC A 0016 D8F9 DJNZ R0,?C0036 0018 F5D3 MOV PWMPRD,A ; SOURCE LINE # 50 001A 22 RET ; FUNCTION _PWM_Init (END) ; FUNCTION _PWM_OutputStateConfig (BEGIN) ; SOURCE LINE # 59 ;---- Variable 'PWM_OutputPin' assigned to Register 'R7' ---- ;---- Variable 'PWM_OutputState' assigned to Register 'R5' ---- ; SOURCE LINE # 60 ; SOURCE LINE # 61 0000 EF MOV A,R7 0001 BD0103 CJNE R5,#01H,?C0003 ; SOURCE LINE # 62 ; SOURCE LINE # 63 0004 42DA ORL PWMCON1,A ; SOURCE LINE # 64 0006 22 RET 0007 ?C0003: ; SOURCE LINE # 66 ; SOURCE LINE # 67 0007 F4 CPL A 0008 52DA ANL PWMCON1,A ; SOURCE LINE # 68 ; SOURCE LINE # 69 000A ?C0005: 000A 22 RET ; FUNCTION _PWM_OutputStateConfig (END) ; FUNCTION _PWM_PolarityConfig (BEGIN) ; SOURCE LINE # 78 ;---- Variable 'PWM_OutputPin' assigned to Register 'R7' ---- ;---- Variable 'PWM_Polarity' assigned to Register 'R5' ---- ; SOURCE LINE # 79 ; SOURCE LINE # 80 0000 EF MOV A,R7 0001 BD0103 CJNE R5,#01H,?C0006 ; SOURCE LINE # 81 ; SOURCE LINE # 82 0004 42D1 ORL PWMCFG,A ; SOURCE LINE # 83 0006 22 RET 0007 ?C0006: ; SOURCE LINE # 85 ; SOURCE LINE # 86 0007 F4 CPL A 0008 52D1 ANL PWMCFG,A ; SOURCE LINE # 87 ; SOURCE LINE # 88 000A ?C0008: 000A 22 RET ; FUNCTION _PWM_PolarityConfig (END) ; FUNCTION _PWM_IndependentModeConfig (BEGIN) ; SOURCE LINE # 97 ;---- Variable 'PWM_DutyCycle' assigned to Register 'R4/R5' ---- ;---- Variable 'PWM_OutputPin' assigned to Register 'R7' ---- ; SOURCE LINE # 98 C51 COMPILER V9.60.7.0 SC92F8003_PWM 08/17/2024 22:06:32 PAGE 13 ; SOURCE LINE # 99 0000 53DA7F ANL PWMCON1,#07FH ; SOURCE LINE # 100 0003 EF MOV A,R7 0004 24FE ADD A,#0FEH 0006 603E JZ ?C0011 0008 24FE ADD A,#0FEH 000A 6058 JZ ?C0012 000C 24FC ADD A,#0FCH 000E 6071 JZ ?C0013 0010 24F8 ADD A,#0F8H 0012 7003 JNZ $ + 5H 0014 020000 R LJMP ?C0014 0017 24F0 ADD A,#0F0H 0019 7003 JNZ $ + 5H 001B 020000 R LJMP ?C0015 001E 24E0 ADD A,#0E0H 0020 7003 JNZ $ + 5H 0022 020000 R LJMP ?C0016 0025 243F ADD A,#03FH 0027 6003 JZ $ + 5H 0029 020000 R LJMP ?C0018 ; SOURCE LINE # 101 ; SOURCE LINE # 102 002C ?C0010: ; SOURCE LINE # 103 002C ED MOV A,R5 002D 5403 ANL A,#03H 002F FF MOV R7,A 0030 E5D4 MOV A,PWMDTYA 0032 54FC ANL A,#0FCH 0034 4F ORL A,R7 0035 F5D4 MOV PWMDTYA,A ; SOURCE LINE # 104 0037 AE04 MOV R6,AR4 0039 ED MOV A,R5 003A 7802 MOV R0,#02H 003C ?C0037: 003C CE XCH A,R6 003D C3 CLR C 003E 13 RRC A 003F CE XCH A,R6 0040 13 RRC A 0041 D8F9 DJNZ R0,?C0037 0043 F5D5 MOV PWMDTY0,A ; SOURCE LINE # 105 0045 22 RET ; SOURCE LINE # 106 0046 ?C0011: ; SOURCE LINE # 107 0046 ED MOV A,R5 0047 5403 ANL A,#03H 0049 25E0 ADD A,ACC 004B 25E0 ADD A,ACC 004D FF MOV R7,A 004E E5D4 MOV A,PWMDTYA 0050 54F3 ANL A,#0F3H 0052 4F ORL A,R7 0053 F5D4 MOV PWMDTYA,A ; SOURCE LINE # 108 0055 AE04 MOV R6,AR4 0057 ED MOV A,R5 C51 COMPILER V9.60.7.0 SC92F8003_PWM 08/17/2024 22:06:32 PAGE 14 0058 7802 MOV R0,#02H 005A ?C0038: 005A CE XCH A,R6 005B C3 CLR C 005C 13 RRC A 005D CE XCH A,R6 005E 13 RRC A 005F D8F9 DJNZ R0,?C0038 0061 F5D6 MOV PWMDTY1,A ; SOURCE LINE # 109 0063 22 RET ; SOURCE LINE # 110 0064 ?C0012: ; SOURCE LINE # 111 0064 ED MOV A,R5 0065 5403 ANL A,#03H 0067 C4 SWAP A 0068 54F0 ANL A,#0F0H 006A FF MOV R7,A 006B E5D4 MOV A,PWMDTYA 006D 54CF ANL A,#0CFH 006F 4F ORL A,R7 0070 F5D4 MOV PWMDTYA,A ; SOURCE LINE # 112 0072 AE04 MOV R6,AR4 0074 ED MOV A,R5 0075 7802 MOV R0,#02H 0077 ?C0039: 0077 CE XCH A,R6 0078 C3 CLR C 0079 13 RRC A 007A CE XCH A,R6 007B 13 RRC A 007C D8F9 DJNZ R0,?C0039 007E F5D7 MOV PWMDTY2,A ; SOURCE LINE # 113 0080 22 RET ; SOURCE LINE # 114 0081 ?C0013: ; SOURCE LINE # 115 0081 ED MOV A,R5 0082 5403 ANL A,#03H 0084 C4 SWAP A 0085 33 RLC A 0086 33 RLC A 0087 54C0 ANL A,#0C0H 0089 FF MOV R7,A 008A E5D4 MOV A,PWMDTYA 008C 543F ANL A,#03FH 008E 4F ORL A,R7 008F F5D4 MOV PWMDTYA,A ; SOURCE LINE # 116 0091 AE04 MOV R6,AR4 0093 ED MOV A,R5 0094 7802 MOV R0,#02H 0096 ?C0040: 0096 CE XCH A,R6 0097 C3 CLR C 0098 13 RRC A 0099 CE XCH A,R6 009A 13 RRC A 009B D8F9 DJNZ R0,?C0040 C51 COMPILER V9.60.7.0 SC92F8003_PWM 08/17/2024 22:06:32 PAGE 15 009D F5DC MOV PWMDTY3,A ; SOURCE LINE # 117 009F 22 RET ; SOURCE LINE # 118 00A0 ?C0014: ; SOURCE LINE # 119 00A0 ED MOV A,R5 00A1 5403 ANL A,#03H 00A3 FF MOV R7,A 00A4 E5DB MOV A,PWMDTYB 00A6 54FC ANL A,#0FCH 00A8 4F ORL A,R7 00A9 F5DB MOV PWMDTYB,A ; SOURCE LINE # 120 00AB AE04 MOV R6,AR4 00AD ED MOV A,R5 00AE 7802 MOV R0,#02H 00B0 ?C0041: 00B0 CE XCH A,R6 00B1 C3 CLR C 00B2 13 RRC A 00B3 CE XCH A,R6 00B4 13 RRC A 00B5 D8F9 DJNZ R0,?C0041 00B7 F5DD MOV PWMDTY4,A ; SOURCE LINE # 121 00B9 22 RET ; SOURCE LINE # 122 00BA ?C0015: ; SOURCE LINE # 123 00BA ED MOV A,R5 00BB 5403 ANL A,#03H 00BD 25E0 ADD A,ACC 00BF 25E0 ADD A,ACC 00C1 FF MOV R7,A 00C2 E5DB MOV A,PWMDTYB 00C4 54F3 ANL A,#0F3H 00C6 4F ORL A,R7 00C7 F5DB MOV PWMDTYB,A ; SOURCE LINE # 124 00C9 AE04 MOV R6,AR4 00CB ED MOV A,R5 00CC 7802 MOV R0,#02H 00CE ?C0042: 00CE CE XCH A,R6 00CF C3 CLR C 00D0 13 RRC A 00D1 CE XCH A,R6 00D2 13 RRC A 00D3 D8F9 DJNZ R0,?C0042 00D5 F5DE MOV PWMDTY5,A ; SOURCE LINE # 125 00D7 22 RET ; SOURCE LINE # 126 00D8 ?C0016: ; SOURCE LINE # 127 00D8 ED MOV A,R5 00D9 5403 ANL A,#03H 00DB C4 SWAP A 00DC 54F0 ANL A,#0F0H 00DE FF MOV R7,A 00DF E5DB MOV A,PWMDTYB C51 COMPILER V9.60.7.0 SC92F8003_PWM 08/17/2024 22:06:32 PAGE 16 00E1 54CF ANL A,#0CFH 00E3 4F ORL A,R7 00E4 F5DB MOV PWMDTYB,A ; SOURCE LINE # 128 00E6 AE04 MOV R6,AR4 00E8 ED MOV A,R5 00E9 7802 MOV R0,#02H 00EB ?C0043: 00EB CE XCH A,R6 00EC C3 CLR C 00ED 13 RRC A 00EE CE XCH A,R6 00EF 13 RRC A 00F0 D8F9 DJNZ R0,?C0043 00F2 F5DF MOV PWMDTY6,A ; SOURCE LINE # 129 ; SOURCE LINE # 130 ; SOURCE LINE # 131 ; SOURCE LINE # 132 ; SOURCE LINE # 133 00F4 ?C0018: 00F4 22 RET ; FUNCTION _PWM_IndependentModeConfig (END) ; FUNCTION _PWM_ComplementaryModeConfig (BEGIN) ; SOURCE LINE # 142 ;---- Variable 'PWM_DutyCycle' assigned to Register 'R4/R5' ---- ;---- Variable 'PWM_ComplementaryOutputPin' assigned to Register 'R7' ---- ; SOURCE LINE # 143 ; SOURCE LINE # 144 0000 43DA80 ORL PWMCON1,#080H ; SOURCE LINE # 145 0003 EF MOV A,R7 0004 14 DEC A 0005 6021 JZ ?C0021 0007 14 DEC A 0008 603C JZ ?C0022 000A 2402 ADD A,#02H 000C 7054 JNZ ?C0024 ; SOURCE LINE # 146 ; SOURCE LINE # 147 000E ?C0020: ; SOURCE LINE # 148 000E ED MOV A,R5 000F 5403 ANL A,#03H 0011 FF MOV R7,A 0012 E5D4 MOV A,PWMDTYA 0014 54FC ANL A,#0FCH 0016 4F ORL A,R7 0017 F5D4 MOV PWMDTYA,A ; SOURCE LINE # 149 0019 AE04 MOV R6,AR4 001B ED MOV A,R5 001C 7802 MOV R0,#02H 001E ?C0044: 001E CE XCH A,R6 001F C3 CLR C 0020 13 RRC A 0021 CE XCH A,R6 0022 13 RRC A 0023 D8F9 DJNZ R0,?C0044 0025 F5D5 MOV PWMDTY0,A C51 COMPILER V9.60.7.0 SC92F8003_PWM 08/17/2024 22:06:32 PAGE 17 ; SOURCE LINE # 150 0027 22 RET ; SOURCE LINE # 151 0028 ?C0021: ; SOURCE LINE # 152 0028 ED MOV A,R5 0029 5403 ANL A,#03H 002B 25E0 ADD A,ACC 002D 25E0 ADD A,ACC 002F FF MOV R7,A 0030 E5D4 MOV A,PWMDTYA 0032 54F3 ANL A,#0F3H 0034 4F ORL A,R7 0035 F5D4 MOV PWMDTYA,A ; SOURCE LINE # 153 0037 AE04 MOV R6,AR4 0039 ED MOV A,R5 003A 7802 MOV R0,#02H 003C ?C0045: 003C CE XCH A,R6 003D C3 CLR C 003E 13 RRC A 003F CE XCH A,R6 0040 13 RRC A 0041 D8F9 DJNZ R0,?C0045 0043 F5D6 MOV PWMDTY1,A ; SOURCE LINE # 154 0045 22 RET ; SOURCE LINE # 155 0046 ?C0022: ; SOURCE LINE # 156 0046 ED MOV A,R5 0047 5403 ANL A,#03H 0049 C4 SWAP A 004A 54F0 ANL A,#0F0H 004C FF MOV R7,A 004D E5D4 MOV A,PWMDTYA 004F 54CF ANL A,#0CFH 0051 4F ORL A,R7 0052 F5D4 MOV PWMDTYA,A ; SOURCE LINE # 157 0054 AE04 MOV R6,AR4 0056 ED MOV A,R5 0057 7802 MOV R0,#02H 0059 ?C0046: 0059 CE XCH A,R6 005A C3 CLR C 005B 13 RRC A 005C CE XCH A,R6 005D 13 RRC A 005E D8F9 DJNZ R0,?C0046 0060 F5D7 MOV PWMDTY2,A ; SOURCE LINE # 158 ; SOURCE LINE # 159 ; SOURCE LINE # 160 ; SOURCE LINE # 161 ; SOURCE LINE # 162 0062 ?C0024: 0062 22 RET ; FUNCTION _PWM_ComplementaryModeConfig (END) ; FUNCTION _PWM_DeadTimeConfig (BEGIN) C51 COMPILER V9.60.7.0 SC92F8003_PWM 08/17/2024 22:06:32 PAGE 18 ; SOURCE LINE # 171 ;---- Variable 'PWM345_fallingDeadTime' assigned to Register 'R5' ---- ;---- Variable 'PWM012_RisingDeadTime' assigned to Register 'R7' ---- ; SOURCE LINE # 172 ; SOURCE LINE # 173 0000 ED MOV A,R5 0001 C4 SWAP A 0002 54F0 ANL A,#0F0H 0004 4F ORL A,R7 0005 F5DC MOV PWMDTY3,A ; SOURCE LINE # 174 0007 22 RET ; FUNCTION _PWM_DeadTimeConfig (END) ; FUNCTION _PWM_Cmd (BEGIN) ; SOURCE LINE # 182 ;---- Variable 'NewState' assigned to Register 'R7' ---- ; SOURCE LINE # 183 ; SOURCE LINE # 184 0000 EF MOV A,R7 0001 6004 JZ ?C0026 ; SOURCE LINE # 185 ; SOURCE LINE # 186 0003 43D280 ORL PWMCON0,#080H ; SOURCE LINE # 187 0006 22 RET 0007 ?C0026: ; SOURCE LINE # 189 ; SOURCE LINE # 190 0007 53D27F ANL PWMCON0,#07FH ; SOURCE LINE # 191 ; SOURCE LINE # 192 000A ?C0028: 000A 22 RET ; FUNCTION _PWM_Cmd (END) ; FUNCTION _PWM_ITConfig (BEGIN) ; SOURCE LINE # 201 ;---- Variable 'Priority' assigned to Register 'R5' ---- ;---- Variable 'NewState' assigned to Register 'R7' ---- ; SOURCE LINE # 202 ; SOURCE LINE # 203 0000 EF MOV A,R7 0001 6005 JZ ?C0029 ; SOURCE LINE # 204 ; SOURCE LINE # 205 0003 43A902 ORL IE1,#02H ; SOURCE LINE # 206 0006 8003 SJMP ?C0030 0008 ?C0029: ; SOURCE LINE # 208 ; SOURCE LINE # 209 0008 53A9FD ANL IE1,#0FDH ; SOURCE LINE # 210 000B ?C0030: ; SOURCE LINE # 212 000B ED MOV A,R5 000C 7004 JNZ ?C0031 ; SOURCE LINE # 213 ; SOURCE LINE # 214 000E 43B902 ORL IP1,#02H ; SOURCE LINE # 215 C51 COMPILER V9.60.7.0 SC92F8003_PWM 08/17/2024 22:06:32 PAGE 19 0011 22 RET 0012 ?C0031: ; SOURCE LINE # 217 ; SOURCE LINE # 218 0012 53B9FD ANL IP1,#0FDH ; SOURCE LINE # 219 ; SOURCE LINE # 220 0015 ?C0033: 0015 22 RET ; FUNCTION _PWM_ITConfig (END) ; FUNCTION PWM_GetFlagStatus (BEGIN) ; SOURCE LINE # 228 ; SOURCE LINE # 229 ; SOURCE LINE # 230 0000 E5D2 MOV A,PWMCON0 0002 5440 ANL A,#040H 0004 FF MOV R7,A ; SOURCE LINE # 231 0005 22 RET ; FUNCTION PWM_GetFlagStatus (END) ; FUNCTION PWM_ClearFlag (BEGIN) ; SOURCE LINE # 239 ; SOURCE LINE # 240 ; SOURCE LINE # 241 0000 53D2BF ANL PWMCON0,#0BFH ; SOURCE LINE # 242 0003 22 RET ; FUNCTION PWM_ClearFlag (END) C51 COMPILER V9.60.7.0 SC92F8003_PWM 08/17/2024 22:06:32 PAGE 20 NAME CLASS MSPACE TYPE OFFSET SIZE ==== ===== ====== ==== ====== ==== uint16_t . . . . . . . . . . . . . . . TYPEDEF ----- U_INT ----- 2 OPREG. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00FFH 1 P0 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0080H 1 SSDAT. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 009FH 1 P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1 P2 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A0H 1 EUART. . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ACH 1 TMCON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008EH 1 AC . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D6H 1 FlagStatus . . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 RESET. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 OTCON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008FH 1 PWM_OutputState_TypeDef. . . . . . . . TYPEDEF ----- U_CHAR ----- 1 EA . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AFH 1 T2 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C9H 1 int32_t. . . . . . . . . . . . . . . . TYPEDEF ----- LONG ----- 4 PWMCON0. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D2H 1 PWMCON1. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00DAH 1 PWM_POLARITY_INVERT. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 int16_t. . . . . . . . . . . . . . . . TYPEDEF ----- INT ----- 2 _PWM_PolarityConfig. . . . . . . . . . PUBLIC CODE PROC 0000H ----- PWM_OutputPin. . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1 PWM_Polarity . . . . . . . . . . . . * REG * DATA U_CHAR 0005H 1 ERROR. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWM_PRESSEL_FOSC_D32 . . . . . . . . . E_CONST ----- U_CHAR ----- 1 EADC . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AEH 1 IE . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A8H 1 OPINX. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00FEH 1 CP . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C8H 1 PWM_ComplementaryOutputPin_TypeDef . . TYPEDEF ----- U_CHAR ----- 1 PWM_DeInit . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H ----- ErrorStatus. . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 EXF2 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CEH 1 CHKSUMH. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00FDH 1 PWMDTY0. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D5H 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 CHKSUML. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00FCH 1 PWMDTY2. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D7H 1 P1PH . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0092H 1 RI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0098H 1 PWMDTY3. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00DCH 1 P2PH . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A2H 1 SUCCESS. . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 CY . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D7H 1 PWMDTY4. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00DDH 1 TI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0099H 1 PWMDTY5. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00DEH 1 IPT0 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B9H 1 PWMDTY6. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00DFH 1 FunctionalState. . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 IPT1 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BBH 1 IPT2 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BDH 1 HIGH . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 _PWM_ComplementaryModeConfig . . . . . PUBLIC CODE PROC 0000H ----- C51 COMPILER V9.60.7.0 SC92F8003_PWM 08/17/2024 22:06:32 PAGE 21 NAME CLASS MSPACE TYPE OFFSET SIZE ==== ===== ====== ==== ====== ==== PWM_ComplementaryOutputPin . . . . . * REG * DATA U_CHAR 0007H 1 PWM_DutyCycle. . . . . . . . . . . . * REG * DATA U_INT 0004H 2 RCAP2H . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00CBH 1 SP . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0081H 1 PWM_OUTPUTSTATE_DISABLE. . . . . . . . E_CONST ----- U_CHAR ----- 1 PWM0 . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 OV . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D2H 1 PWM1 . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 ITStatus . . . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 IAPADE . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00F4H 1 RCAP2L . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00CAH 1 PWM2 . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWM3 . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWM4 . . . . . . . . . . . . . . . . . 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 PWMDTYB. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00DBH 1 ADCCON . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00ADH 1 PWM6 . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 RCLK . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CDH 1 IAPADL . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00F2H 1 _PWM_IndependentModeConfig . . . . . . PUBLIC CODE PROC 0000H ----- PWM_OutputPin. . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1 PWM_DutyCycle. . . . . . . . . . . . * REG * DATA U_INT 0004H 2 PWM_PresSel_TypeDef. . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 bool . . . . . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 TCLK . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CCH 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 _PWM_DeadTimeConfig. . . . . . . . . . PUBLIC CODE PROC 0000H ----- PWM012_RisingDeadTime. . . . . . . . * REG * DATA U_CHAR 0007H 1 PWM345_fallingDeadTime . . . . . . . * REG * DATA U_CHAR 0005H 1 P20. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A0H 1 P11. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0091H 1 P21. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A1H 1 P12. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0092H 1 P22. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A2H 1 P13. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0093H 1 SCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0098H 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 P24. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A4H 1 P15. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0095H 1 IPINT0 . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B8H 1 P25. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A5H 1 P16. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0096H 1 IPINT1 . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BAH 1 C51 COMPILER V9.60.7.0 SC92F8003_PWM 08/17/2024 22:06:32 PAGE 22 NAME CLASS MSPACE TYPE OFFSET SIZE ==== ===== ====== ==== ====== ==== P26. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A6H 1 P17. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0097H 1 SSCON0 . . . . . . . . . . . . . . . . SFR DATA U_CHAR 009DH 1 P27. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A7H 1 SSCON1 . . . . . . . . . . . . . . . . SFR DATA U_CHAR 009EH 1 SSCON2 . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0095H 1 PWM_ClearFlag. . . . . . . . . . . . . PUBLIC CODE PROC 0000H ----- IAPCTL . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00F6H 1 IE1. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A9H 1 TRUE . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 B. . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00F0H 1 PWM_Polarity_TypeDef . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 IAPKEY . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00F1H 1 BTMCON . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00CEH 1 PWMCFG . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D1H 1 ACC. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00E0H 1 ET0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A9H 1 _PWM_OutputStateConfig . . . . . . . . PUBLIC CODE PROC 0000H ----- PWM_OutputPin. . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1 PWM_OutputState. . . . . . . . . . . * REG * DATA U_CHAR 0005H 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 TF1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008FH 1 ET2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ADH 1 ADCCFG1. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00AAH 1 RB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009AH 1 TF2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CFH 1 TH0. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008CH 1 _PWM_ITConfig. . . . . . . . . . . . . PUBLIC CODE PROC 0000H ----- NewState . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1 Priority . . . . . . . . . . . . . . * REG * DATA U_CHAR 0005H 1 TH1. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008DH 1 PWM0PWM3 . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 TB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009BH 1 TH2. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00CDH 1 uint8_t. . . . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 P. . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D0H 1 PWM1PWM4 . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SM0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009FH 1 TL0. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008AH 1 SM1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009EH 1 WDTCON . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00CFH 1 TL1. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008BH 1 PWM2PWM5 . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 SM2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009DH 1 TL2. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00CCH 1 PWM_POLARITY_NON_INVERT. . . . . . . . E_CONST ----- U_CHAR ----- 1 RS0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D3H 1 TR0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008CH 1 RS1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D4H 1 PWM_OUTPUTSTATE_ENABLE . . . . . . . . E_CONST ----- U_CHAR ----- 1 TR1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008EH 1 IPUART . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BCH 1 TR2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CAH 1 PWM_PRESSEL_FOSC_D1. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 C51 COMPILER V9.60.7.0 SC92F8003_PWM 08/17/2024 22:06:32 PAGE 23 NAME CLASS MSPACE TYPE OFFSET SIZE ==== ===== ====== ==== ====== ==== int8_t . . . . . . . . . . . . . . . . TYPEDEF ----- CHAR ----- 1 PWM_PRESSEL_FOSC_D2. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 PWMPRD . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D3H 1 DPH. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0083H 1 PWM_PRESSEL_FOSC_D8. . . . . . . . . . E_CONST ----- U_CHAR ----- 1 DPL. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0082H 1 EINT0. . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A8H 1 P0CON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 009AH 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 INT2F. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C6H 1 REN. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009CH 1 ADCVH. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00AFH 1 T2MOD. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C9H 1 T2CON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C8H 1 _PWM_Cmd . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H ----- NewState . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1 _PWM_Init. . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H ----- PWM_PresSel. . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1 PWM_Period . . . . . . . . . . . . . * REG * DATA U_INT 0004H 2 ADCVL. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00AEH 1 SET. . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 FALSE. . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 INT0R. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00BBH 1 INT1R. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00BDH 1 PriorityStatus . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1 INT2R. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C7H 1 LOW. . . . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 F0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D5H 1 DISABLE. . . . . . . . . . . . . . . . E_CONST ----- U_CHAR ----- 1 F1 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D1H 1 PSW. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D0H 1 PWM_GetFlagStatus. . . . . . . . . . . PUBLIC CODE PROC 0000H ----- uint32_t . . . . . . . . . . . . . . . TYPEDEF ----- U_LONG ----- 4 MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 478 ---- CONSTANT SIZE = ---- ---- XDATA SIZE = ---- ---- PDATA SIZE = ---- ---- DATA SIZE = ---- ---- IDATA SIZE = ---- ---- BIT SIZE = ---- ---- EDATA SIZE = ---- ---- HDATA SIZE = ---- ---- XDATA CONST SIZE = ---- ---- FAR CONST SIZE = ---- ---- END OF MODULE INFORMATION. C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)