历史上的今天
返回首页

历史上的今天

今天是:2024年12月21日(星期六)

2020年12月21日 | 单片机根据温湿度控制风速

2020-12-21 来源:51hei

电路原理图如下:

单片机源程序如下:

/*温湿度实时监测显示,温度测量范围为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);           //显示湿度

    }

                //=======================================================================

                j++;if(j>300)

    {

      j=0;

                        adcdat=read_adc_convert();//读出ADC转换的结果

                        sum=sum+adcdat;

                        k++;

                        if(k>=10)

                        {

                                k=0;

                                adcdat=sum/10;  //风速ad值,adcdat/51等于电压,*90等于风速

        if(adcdat<=1)adcdat=0;

                                fs=adcdat*1.76; //fs=((float)adcdat/51)*90;

                                //==================================报警判断===============================================

                                if(fs>dat[0]){red=0;green=1;}

                                else if(fs                                else if((fs<=dat[0])&&(fs>=dat[1])){red=1;green=1;}

                                //==================================等级判断==============================================

                                if(fs<1)dengji=0;

                                else if((fs>=1)&&(fs<=5))dengji=1;

                                else if((fs>=6)&&(fs<=11))dengji=2;

                                else if((fs>=12)&&(fs<=19))dengji=3;

                                else if((fs>=20)&&(fs<=28))dengji=4;

                                else if((fs>=29)&&(fs<=38))dengji=5;

                                else if((fs>=39)&&(fs<=49))dengji=6;

                                else if((fs>=50)&&(fs<=61))dengji=7;

                                else if((fs>=62)&&(fs<=74))dengji=8;

                                else if((fs>=75)&&(fs<=88))dengji=9;

                                else if((fs>=89)&&(fs<=102))dengji=10;

                                else if((fs>=103)&&(fs<=117))dengji=11;

推荐阅读

史海拾趣

CDI-DIODE公司的发展小趣事

随着环保意识的日益增强,电子行业也开始向绿色生产转型。CDI-DIODE公司积极响应这一趋势,投入大量资源研发环保型二极管产品,并采用环保材料和生产工艺。这种绿色生产方式不仅降低了公司的生产成本,也符合了社会的可持续发展需求,为公司的未来发展奠定了坚实的基础。

这五个故事虽然是虚构的,但它们反映了电子行业中企业可能面临的一些共同挑战和机遇。无论对于CDI-DIODE公司还是其他企业,这些故事都具有一定的借鉴意义。

Amecon Magnetics公司的发展小趣事

为了进一步扩大市场份额和提升竞争力,Amecon Magnetics公司积极寻求与行业内外的合作伙伴建立战略合作关系。通过与知名电子企业、科研机构以及上下游企业的紧密合作,公司不仅获得了更多的市场资源和技术支持,还成功将产品推广至更广泛的应用领域。这种合作与共赢的战略布局为公司的快速发展奠定了坚实的基础。

FORMOSA公司的发展小趣事

随着物联网和智能家居概念的普及,一家名为“FORMOSA智能科技”的公司专注于研发和生产智能家居硬件产品。该公司推出的智能音箱、智能门锁、智能照明等系列产品,凭借其出色的性能、便捷的操作和良好的用户体验,在市场上迅速获得了消费者的青睐。FORMOSA智能科技还积极与各大智能家居平台进行合作,实现了产品的互联互通和智能化管理。通过不断的技术创新和市场拓展,该公司成功推动了智能家居产品的普及和应用。

Blue Giga公司的发展小趣事

为了扩大市场份额和提升品牌影响力,Blue Giga积极寻求与各行业领导者的合作。它与微软、谷歌、英特尔等知名企业建立了战略合作伙伴关系,共同推动物联网和无线连接技术的发展。这些合作不仅为Blue Giga带来了更多的商业机会,也提升了其在行业中的地位。

EOREX公司的发展小趣事

在电子行业的早期,EOREX公司由一群热衷于技术创新的工程师创立。他们专注于研发高性能的半导体芯片,以满足当时市场对更快、更稳定电子产品的需求。通过不断的技术创新和产品迭代,EOREX逐渐在半导体领域树立了良好的口碑,吸引了众多合作伙伴和投资者的关注。随着公司规模的扩大,EOREX不断加大对研发的投入,推出了更多具有竞争力的产品,逐渐在电子行业中崭露头角。

GainSpan ( Telit)公司的发展小趣事

风华高科自成立以来,一直注重技术创新和产品多元化发展。公司不断投入研发资源,成功开发出多种新型电子元器件和电子材料,如片式电阻器、片式电感器、超小型铝电解电容器等。这些产品广泛应用于通讯、消费、计算机、汽车电子等领域,满足了市场多样化的需求。同时,公司还建立了完善的质量管理体系,确保产品质量符合国际标准。

问答坊 | AI 解惑

UC/OS在 320 2812 上的移植和研究

https://bbs.eeworld.com.cn/thread-77147-1-1.html 这里有更加详细的论文!…

查看全部问答>

常用运算放大器型号简介

常用运算放大器型号简介 好辛苦才找到,大家就给点辛苦费吧....…

查看全部问答>

SDK的安装问题

我安装的SDK为什么有的可以在EVC里看得到有的看不到?…

查看全部问答>

请问关于 RHAPSODY.V6.2 的问题

请问一下,有哪位大侠用过 vxworks下的建模软件I-LOGIX.RHAPSODY.V6.2,我在网上下了个这个软件,但结果不能安装,请问上怎么回事呢,我还有个6.0版本的,能安装,但结果却没有帮助文件,就没法学习怎么使用,也很恼火,请高手指点一下,我想学习在vxworks下 ...…

查看全部问答>

重金酬谢!!!!! 求破解手机 代码

重金酬谢!!!!! 求破解手机   代码 现在有个机型是CDMA的 原来是日文和英文 现在想改为法文或其他文字!~!!!!!!!! 芯片\"三洋高通\" 重金酬谢!!!!! 联系13681843776…

查看全部问答>

哪位配置过8962的CAN可以接收任意ID数据

想用CAN接收任意ID的数据,不知道哪位配置过,谢谢…

查看全部问答>

MDK编译提示错误

LedINT.c(36): warning:  #1-D: last line of file ends without a newline     每一个工程都有,为什么?…

查看全部问答>

USBASP制作不成功,希望高手帮忙!!!

半年内做了好几个手工板,一直没有成功,电路是按上面压缩包里做的,固件也是按照里边做的,下载的时候用的也是USBASP下载线下载的,但是插上电脑以后显示 [img]file:///C:/Users/Administrator.PC-20120816MPVV/AppData/Roaming/Tencent/Users/ ...…

查看全部问答>

SM5812-001传感器用51如何才能获得数据

请大家帮个忙看看这个传感器如何写驱动!我自己写了一下但是没有获得数据!我估计是我通信没做好!…

查看全部问答>