单片机根据温湿度控制风速源程序电路图单片机解密
单片机解密单片机源程序如下:
- /*温湿度实时监测显示,温度测量范围为0~+50℃; 湿度测量范围为20%~90%;
- 1m/s=3.6km/h
- fs = 25*v m/s = 90*v km/h V单位是 伏
- ===========================================================================================*/
- #include"main.h"
- sbit set=P2^3; //设置
- sbit yw=P2^2; //移位
- sbit add=P2^1; //+
- sbit cut=P2^0; //-
- sbit change=P3^7; //切换
- sbit red=P1^3;sbit green=P1^4;//超限指示灯,上限,下限
- //===================================adc0832================================================
- sbit cs=P1^0; //片选
- sbit clk=P1^1;//时钟
- sbit dio=P1^2;//数据
- //===========================================================================================
- extern uchar TH,RH;//温度整数,湿度整数部分
- extern uchar dat[3];//风速上限,下限,初始化标记
- uchar code word1[16]= {" Wind = km/h "};//km/h 调整界面
- uchar code word12[16]={"Wind= km/h L00"};//km/h
- uchar code word11[16]={"Wind= m/s L00"};//m/s
- uchar code word2[16]= {"Tem= C Hum= %"};//word2[4]word2[5]C word2[13]word2[14]%
- uchar code hehe[16]= {"Wind upper limit"};//设置风速上限界面
- uchar code haha[16]= {"Wind lower limit"};//设置风速下限界面
- uchar adcdat;
- uint sum=0; //5次adcdat数据之和
- uchar fs=0; //风速默认 km/h
- bit flag1=0; //默认 0(km/h) 1(m/s)
- uchar dengji=0;
- /**************开机初始化保存的数据*****************/
- void init_eeprom()
- {
- read(0x20);read(0x22);read(0x24);//先读
- if(dat[2]!=22) //新的单片机初始单片机内部eeprom
- {
- dat[0]= 20;//初始上限
- dat[1]= 3; //初始下限
- dat[2]=22;
- EA=0;
- eraze(0x20);delay1m(5);write(0x20);delay1m(5);//保存上限
- eraze(0x22);delay1m(5);write(0x22);delay1m(5);//保存下限
- eraze(0x24);delay1m(5);write(0x24);delay1m(5);//保存标记数据
- EA=1;
- }
- }
- void main()
- {
- uint i;uint j;uchar k;//动态延时变量
- init_1602();
- delay1m(100); //延时等待1602稳定
- RH_founction();
- init_eeprom();
- while(1)
- {
- if(!change)//切换单位显示
- {
- delay1m(10);
- if(!change)
- {
- flag1 = ~flag1;
- if(flag1==0)//显示km/h 等级
- {
- w_string(0x80,word12);
- }
- else if(flag1==1)//显示m/s
- {
- w_string(0x80,word11);
- }
- }
- while(!change);
- }
- //=======================================================================
- i++;if(i>2000)//动态延时读取温湿度值
- {
- i=0;RH_founction();
- DHT11_display(0xc0+4,TH/10+0x30,TH%10+0x30); //显示温度
- DHT11_display(0xc0+13,RH/10+0x30,RH%10+0x30); //显示湿度
- }

芯片解密