基于51单片机DS18B20温控风扇仿真设计

(仿真+原理图+源码+设计报告)

原理图:Altium Designer

仿真原版本:proteus 7.8

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:S0011

目录标题

  • 基于51单片机DS18B20温控风扇仿真设计
    • 功能说明
    • 仿真电路
    • 原理图
      • 总设计框图
      • 温度检测和显示电路
      • DS18B20的温度处理方法
    • 软件设计
      • 主函数
    • 设计报告
    • 资料清单

功能说明

​ 基于单片机的风扇温控仪采用DS18B20传感器,将检测到的温度转化为数字信号,单片机对输入的数字信号进行分析处理,当感应到人体温度高于上限值时,风扇全速旋转;当温度低于下限时,风扇停转;当温度处于上限值与下限之间时,风扇转速越慢,当人走30秒后自动关闭风扇。

仿真电路

原理图

总设计框图

传统电风扇供电采用的是220V交流电,电机转速分为几个档位,通过人工手动调整电机转速达到改变风速的目的,亦即,每改变一次风力,必然有人参与操作,这样就会带来诸多不便。

本文介绍了一种基于STC89C52单片机的智能电风扇调速器的设计,该设计巧妙利用红外线遥控技术、单片机控制技术、无级调速技术和温度传感技术,把智能控制技术应用于家用电器的控制中,将电风扇的电机转速作为被控制量,由单片机分析采集到的数字温度信号,再通过可控硅对风扇电机进行调速。从而达到无须人为控制便可自动调整风速的效果。

温度检测和显示电路

可以选用LM324A运算放大器作为温度传感器,将其设计成比例控制调节器,输出电压与热敏电阻的阻值成正比,但这种方案需要多次检测后方可使采样精确,过于烦琐。所以我采用更为优秀的DS18B20数字温度传感器,它可以直接将模拟温度信号转化为数字信号,降低了电路的复杂程度,提高了电路的运行质量。

DS18B20的温度处理方法

DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。与传统的热敏电阻相比,它能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。可以分别在93.75 ms和750 ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源,因而使用DS18B20可使系统结构更趋简单可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。

DS18B20简介:

(1)独特的单线接口方式:DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。

(2)在使用中不需要任何外围元件。

(3)可用数据线供电,电压范围:+3.0~ +5.5 V。

(4)测温范围:-55 ~+125 ℃。固有测温分辨率为0.5 ℃。

(5)通过编程可实现9~12位的数字读数方式。

(6)用户可自设定非易失性的报警上下限值。

(7)支持多点组网功能,多个DS18B20可以并联在惟一的三线上,实现多点测温。

(8)负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。

单线(1—wire)技术:

该技术采用单根信号线,既可传输时钟,也能传输数据,而且是双向传输。适用于单主机系统,主机能够控制一个或多个从机设备,通过一个漏极开路或三态端口连至该数据线,以允许设备在不发送数据时能释放该线,而让其他设备使用。单线通常要求外接一个5K的上拉电阻,这样当该线空闲时,其状态为高电平。

主机和从机之间的通讯分成三个步骤:初始化单线器件、识别单线器件和单线数据传输。

单线1—wire协议由复位脉冲、应答脉冲、写0、写1、读0、读1,这几种信号类型实现,这些信号中除了应答脉冲其他都由主机发起,并且所有指令和数据字节都是低位在前。

DS18B20直接将测量温度值转化为数字量提交给单片机,工作时必须严格遵守单总线器件的工作时序。

软件设计

​ 本系统的运行程序采用C语言编写,采用模块化设计,整体程序由主程序和显示、键盘扫描、红外线接收以及电机控制等子程序模块组成。

主函数

在主程序进行初始化后,开始反复检测各模块相关部分的缓冲区的标志,如果缓冲区置位,说明相应的数据需要处理,然后主程序调用相应的处理子模块。

void main()
{static uchar value;time_init();                    //初始化定时器 temperature = read_temp();        //先读出温度的值   delay_1ms(650);             temperature = read_temp();              //先读出温度的值dis_smg[0] = smg_du[temperature % 10];    //取温度的小数显示dis_smg[1] = smg_du[temperature / 10 % 10] & 0xdf; //取温度的个位显示dis_smg[2] = smg_du[temperature / 100 % 10] ;    //取温度的十位显示while(1){      key();                  //按键程序if(key_can < 10){key_with();           //设置报警温度    }if(flag_200ms == 1)      //200ms 处理一次温度程序{      flag_200ms = 0; temperature = read_temp(); //先读出温度的值if(menu_1 == 0){ smg_i = 3;dis_smg[0] = smg_du[temperature % 10];   //取温度的小数显示dis_smg[1] = smg_du[temperature / 10 % 10] & 0xdf; //取温度的个位显示dis_smg[2] = smg_du[temperature / 100 % 10] ;    //取温度的十位显示}fengshan_kz();        //风扇控制函数value ++;if(value >= 4){value = 0;if(miao != 0){miao --;    //时间减1}if(miao == 0)flag_en = 0;}if(hw == 1)  //感应到人{miao = 30;flag_en = 1;}}display();      //数码管显示函数}
}

定时器

/*************定时器0中断服务程序***************/
void time0_int() interrupt 1
{   static uchar value;          //定时2ms中断一次TH0 = 0xf8;TL0 = 0x30;     //2msvalue++;      if(value >= 150){value = 0;    flag_200ms = 1;}if(flag_lj_en == 1)       //按下按键使能{key_time ++;if(key_time >= 250) //500ms{key_time = 0;key_500ms = 1; //500mskey_value ++;if(key_value > 3){key_value = 10;flag_lj_3_en = 1; //3次后1.5秒连加大些}                        }}
}/*******************定时器1用做单片机模拟PWM 调节***********************/
void Timer1() interrupt 3  //调用定时器1
{static uchar value_l;TH1=0x0f;    //    定时中断一次TL1=0xec;   //if(pwm==1){value_l+=3;if(value_l > f_pwm_l)   //高电平{value_l=0;pwm=0;     }}else             {value_l+=3;if(value_l  > 100 - f_pwm_l)         //低电平{value_l=0;pwm=1;}}
}

设计报告

绪 论

近些年来,随着空调行业的迅速发展,空调价格的大幅度“跳水”,电风扇行业曾被普遍认为是“夕阳产业”。其实并非如此,市场人士称,家用电风扇并没有随着空调的普及而淡出市场,近两年反而出现了市场销售复苏的态势。其主要原因:一是风扇和空调的降温效果不同;(空调有强大的制冷功能,可以快速有效地降低环境温度,但电风扇的风更温和,更加适合老人儿童和体质较弱的人使用。)二是电风扇有价格优势,价格便宜而且相对省电,安装和使用都非常简单。

传统电风扇多采用机械方式进行控制,功能少,噪音大,各档的风速变化大。随着科技的发展和人们生活水平的提高,家用电器产品趋向于自动化、智能化、环保化和人性化,使得由微机控制的智能电风扇得以出现。

生活中,我们经常会使用一些与温度有关的设备。比如,现在虽然不少城市家庭用上了空调,但在占中国大部分人口的农村地区依旧使用电风扇作为降温防暑设备,春夏(夏秋)交替时节,白天温度依旧很高,电风扇应高转速、大风量,使人感到清凉;到了晚上,气温降低,当人入睡后,应该逐步减小转速,以免使人感冒。虽然电风扇都有调节不同档位的功能,但必须要人手动换档,睡着了就无能为力了,而普遍采用的定时器关闭的做法,一方面是定时时间长短有限制,一般是一两个小时;另一方面可能在一两个小时后气温依旧没有降低很多,而风扇就关闭了,使人在睡梦中热醒而不得不起床重新打开风扇,增加定时器时间,非常麻烦,而且可能多次定时后最后一次定时时间太长,在温度降低以后风扇依旧继续吹风,使人感冒;第三方面是只有简单的到了定时时间就关闭风扇电源的单一功能,不能满足气温变化对风扇风速大小的不同要求。又比如在较大功率的电子产品散热方面,现在绝大多数都采用了风冷系统,利用风扇引起空气流动,带走热量,使电子产品不至于发热烧坏。要使电子产品保持较低的温度,必须用大功率、高转速、大风量的风扇,而风扇的噪音与其功率成正比。如果要低噪音,则要减小风扇转速,又会引起电子设备温度上升,不能两全其美。为解决上述问题,我们设计了这套温控自动风扇系统。本系统采用高精度集成温度传感器,用单片机控制,能显示实时温度,并根据使用者设定的温度自动在相应温度时作出小风、大风、停机动作,精确度高,动作准确。

资料清单

资料下载链接

S0011基于51单片机DS18B20温控风扇仿真设计相关推荐

  1. 51单片机DS18B20温度报警器proteus仿真设计_可调上下限

    51单片机DS18B20温度报警器proteus仿真设计_可调上下限 (仿真+源码+原理图+报告) 原理图:Altium Designer 仿真版本:proteus 7.8 程序编译器:keil 4/ ...

  2. 基于51单片机手动计步器protues仿真设计

    基于51单片机手动计步器protues仿真设计 (源码+仿真) 仿真原版本:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0021 目录标题 基于51单 ...

  3. 基于51单片机的电子秤proteus仿真设计

    本设计仅供学习参考 基于51单片机的电子秤proteus仿真设计(仿真+程序+原理图+报告+讲解) 原理图:Altium Designer 仿真图proteus 7.8 程序编译器:keil 4/ke ...

  4. 基于51单片机多功能电磁炉仿真设计-protues

    本设计是基于51单片机的电磁炉仿真,通过51单片机的IO接口P3.0为输出口,用于控制线圈的打开和关断.其中P1.0和P1.1对微波炉功率进行调整.附件内容包含protues仿真电路和c语言代码. [ ...

  5. 基于51单片机的电子琴Protues仿真设计

    一.设计背景 基于51单片机的电子琴是一款由51单片机控制器.音频模块和硬件阵列组成的数字化乐器.它可以模拟各种乐器的音效,同时也具有许多常规电子琴所没有的高级功能. 首先,这种电子琴是以数字信号处理 ...

  6. 基于51单片机篮球计分器proteus仿真设计

    本设计是51单片机篮球计分器proteus仿真(源码+原理图+PCB+仿真+报告) 仿真:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 编号C0004 资料文件下载 ...

  7. 基于51单片机智能温控风扇设计PWM调速套件电子制作仿真

    演示视频:http://v.youku.com/v_show/id_XMzk0OTM5Nzk5Ng==.html?spm=a2hzp.8244740.0.0 将链接复制至IE浏览器打开!!! 功能操作 ...

  8. 基于51单片机智能温控风扇LCD1602液晶显示红外遥控设计

    视频演示地址:https://www.bilibili.com/video/BV1t5411u7qC/ 该设计是由AT89C51为主控芯片液晶LCD1602温度控制风扇档位变换PWM调速 没有按键情况 ...

  9. 131、基于51单片机智能电子秤HX711仿真设计

    毕设帮助.开题指导.技术解答(有偿)见文末. 目录 一.硬件电路组成 二.功能 三.电脑开发环境 四.Protues仿真 五.程序 六.原理图 七.PCB图 八.资料包括 一.硬件电路组成 本系统采用 ...

最新文章

  1. 资讯丨NVIDIA自造AI超级计算机:轻松进入世界前五
  2. Python数据结构与算法—队列
  3. javascript运行过程中的“预编译阶段”和“执行阶段”
  4. 如何隐藏你的 Linux 的命令行历史
  5. [Educational Round 5][Codeforces 616F. Expensive Strings]
  6. 8万行的insert数据,Ctrl+c、Ctrl+v后心态崩了(如何在Linux下对MySQL数据库执行sql文件)...
  7. JAVA结课_一点心情,写java结课考试之前
  8. (33)FPGA分频设计-偶数分频(第7天)
  9. linux crontab sleep,linux crontab 执行任务(7秒执行)
  10. 部分美团用户被取消支付宝支付;腾讯成全球市值最高社交媒体公司;微软首次公布GitHub产品路线图 | 极客头条
  11. 怎么自学python-你们都是怎么学 Python 的?
  12. C编程语言中整型变量在内存中的存储形式介绍
  13. JS 正则表达式 手机号码正则
  14. 11.抓取JavaScript
  15. 算法 | golang 实现 key有序map
  16. 还记得那个提速8倍的IDEA插件吗?VS Code版本也发布啦!!
  17. 手把手逆向Playcanvas天空盒编码(一次乌龙的任务)
  18. 有两个瓶子,一个瓶子是5升_隐藏的功能,装在瓶子中的消息和痴呆的面包师。...
  19. 案例 7-1.3 寻找大富翁(25 分)
  20. 鸿蒙——通用设计基础(未完待续)

热门文章

  1. JAVA 3DES加密 ECB模式 ZeroPadding填充
  2. 佳能Canon PIXMA iP6000D 打印机驱动
  3. 命令行清除redis缓存
  4. OCI 与容器镜像构建
  5. Word使用小技巧积累
  6. CSS一些简单的样式
  7. 监控软件 zabbix
  8. C. Swap Game
  9. 人工智能之BP人工神经网络C语言实现内附实现代码
  10. 概率论与数理统计笔记第一天