IC解密STC8A8K64D4单片机增强型PWM输出
| IC解密/************* 功能说明 ************** 使用PWM0_3,PWM1_3产生互补的SPWM. IC解密主时钟选择24MHZ, PWM时钟选择1T, PWM周期2400, 死区12个时钟(0.5us).正弦波表用200点. IC解密输出正弦波频率 = 24000000 / 2400 / 200 = 50 HZ. 本程序从P6.0(PWM0_3)输出正相脉冲, 从P6.1(PWM1_3)输出反相脉冲(互补). ******************************************/ #include "reg51.h" //包含此头文件后,里面声明的寄存器不需要再手动输入,避免重复定义 #include "intrins.h" #include "T_SineTable.h" #define MAIN_Fosc 24000000L //定义主时钟 #define PWM_DeadZone 12 /* 死区时钟数, 6 ~ 24之间 */ typedef unsigned char u8; typedef unsigned int u16; typedef unsigned long u32; //手动输入声明"reg51.h"头文件里面没有定义的寄存器 sfr TH2 = 0xD6; sfr TL2 = 0xD7; sfr IE2 = 0xAF; sfr INT_CLKO = 0x8F; sfr AUXR = 0x8E; sfr P_SW1 = 0xA2; sfr P_SW2 = 0xBA; sfr PWMSET = 0xF1; sfr PWMCFG = 0xF6; sfr P4 = 0xC0; sfr P5 = 0xC8; sfr P6 = 0xE8; sfr P7 = 0xF8; sfr P1M1 = 0x91; //PxM1.n,PxM0.n =00--->Standard, 01--->push-pull sfr P1M0 = 0x92; // =10--->pure input, 11--->open drain sfr P0M1 = 0x93; sfr P0M0 = 0x94; sfr P2M1 = 0x95; sfr P2M0 = 0x96; sfr P3M1 = 0xB1; sfr P3M0 = 0xB2; sfr P4M1 = 0xB3; sfr P4M0 = 0xB4; sfr P5M1 = 0xC9; sfr P5M0 = 0xCA; sfr P6M1 = 0xCB; sfr P6M0 = 0xCC; sfr P7M1 = 0xE1; sfr P7M0 = 0xE2; sbit P00 = P0^0; sbit P01 = P0^1; sbit P02 = P0^2; sbit P03 = P0^3; sbit P04 = P0^4; sbit P05 = P0^5; sbit P06 = P0^6; sbit P07 = P0^7; sbit P10 = P1^0; sbit P11 = P1^1; sbit P12 = P1^2; sbit P13 = P1^3; sbit P14 = P1^4; sbit P15 = P1^5; sbit P16 = P1^6; sbit P17 = P1^7; sbit P20 = P2^0; sbit P21 = P2^1; sbit P22 = P2^2; sbit P23 = P2^3; sbit P24 = P2^4; sbit P25 = P2^5; sbit P26 = P2^6; sbit P27 = P2^7; sbit P30 = P3^0; sbit P31 = P3^1; sbit P32 = P3^2; sbit P33 = P3^3; sbit P34 = P3^4; |

芯片解密