STC12C5A60S2单片机制作PID程序IC解密
单片机源程序如下:
- IC解密#define _MAIN_C_
- //============================
- IC解密#include "includeFile.h"
- //============================
- sbit output1=P4^0;
- sbit output=P2^4;
- //sbit ds=P3^2;
- //sbit ledred=P1^6;
- //sbit ledgreen=P1^7;
- sbit key0=P2^0;//按键引脚
- sbit key1=P2^1;
- u8 n,num;
- unsigned int TTemp = 95.33,HHumi = 99.99; //温度和湿度unsigned int Temp = 99,Humi = 99;
- unsigned int set_temper=30,temper,temp,ceshiwendu; //温度变量定义
- unsigned int s;
- float f_temp;//转换后的温度
- u8 tvalue;
- unsigned int tvaluenum1;
- unsigned int tvaluenum2,tvaluenum3,tvaluenum4,tvaluenum5;
- u8 tflag;//温度正负标志
- //void Dsplay_OLED(void);
- void delay11(i)//延时函数
- {
- u16 j;
- for(i;i>0;i--)
- for(j=110;j>0;j--);
- }
- /*********************************
- OLED显示
- ****************************/
- void Dsplay_OLED(void)//显示
- {
- AHT10_Read_Data(&TTemp,&HHumi);
- Delay1ms(100); //快速测量可能会引起传感器升温,此处降低测量速率
- //循环显示温湿度
- // OLED_ShowNum(0,0,Temp,5,16);//显示温度值
- // OLED_ShowNum(64,0,Humi,5,16);//显示湿度值
- OLED_ShowNum(0,4,set_temper,4,16);
- OLED_ShowNum(32,4,high_time,4,16);
- OLED_ShowNum(64,4,low_time,4,16);
- // OLED_ShowString(16,4,temper);
- OLED_ShowNum(0,2,TTemp/100 ,2,16);
- OLED_ShowString(16,2,".");
- OLED_ShowNum(20,2,TTemp%100/10,1,8);
- OLED_ShowNum(28,2,TTemp%10,1,8);
- OLED_ShowCHinese(40,2,1);
- // RegBuf_Input[0] = Temp;
- Delay1ms(200);
- OLED_ShowNum(60,2,HHumi/1000,2,16);
- OLED_ShowString(76,2,".");
- OLED_ShowNum(80,2,HHumi%1000/100,1,8);
- OLED_ShowNum(88,2,HHumi%100/10,1,8);
- // RegBuf_Input[1] = Humi;
- // OLED_ShowNum(36,4,Humi%10,1,8); //湿度小数点后第3位
- OLED_ShowString(96,2,"%");
- // Delay1ms(100);
- OLED_ShowNum(0,6,count,2,16);
- OLED_ShowNum(90,6,set_temper+1,2,16);
- OLED_ShowNum(32,6,tvaluenum2,4,16);
- }
- /****************************
- //获取温度
- ****************************/
- u16 get_temper()
- {
- tvalue=TTemp;//;ceshiwendu
- if(tvalue<0x0fff)
- tflag=0;
- // OLED_Clear(); //清屏
- // OLED_ShowString(40,0,"err");
- else {tvalue=~tvalue+1;tflag=1;}
- tvalue=tvalue*(0.625);//温度值扩大10倍,精确到1位小数tvalue
- temp=tvalue;
- return temp;
- }
- /*******************
- void keyscan()//键盘扫描
- {
- if(key0==0)
- {
- delay11(1);
- if(key0==0)
- {
- while(!key0);
- delay11(1);
- while(!key0);
- set_temper++;
- }
- // OLED_ShowNum(0,4,set_temper,4,16);
- delay11(1);
- }
- if(key1==0)
- {
- delay11(3);//延时去抖
- if(key1==0)
- {
- while(!key1);
- delay11(3);
- while(!key1);
- set_temper--;//温度减
- if(set_temper==0)
- {set_temper=0;}
- }
- // OLED_ShowNum(0,4,set_temper,2,16);
- }
- }

芯片解密