文章目录

  • 一、功能简介
  • 二、软件设计
  • 三、实验现象
  • 联系作者

一、功能简介

本项目使用Proteus8仿真51单片机控制器,使用LCD1602液晶、按键、蜂鸣器、L298N电机驱动模块、直流电机、DS18B20温度传感器等。

系统运行后,LCD1602显示传感器检测的温度值;
默认以自动模式运行,若按下K4键切换为手动模式,此时可以
通过K1和K2控制风扇加减速,风扇档位共5档(0-5)。当再次按下K4键切换为自动模式;自动模式下,实时检测温度值,当温度高于上限且在2C范围内,以3档运行。当温度高于上限且在4C范围内,以4档运行。当温度高于上限且在6C范围内,以5挡运行。当温度高于上限且超过6C范围,以5档运行且蜂鸣器报警。若温度在上下限范围内,风扇以2档运行。若温度低于下限,风扇停止。可通过K3键进入阈值设置,K1和K2调节。
主要功能如下:
1、温度检测与LCD显示
2、超上限温度越高风扇越快
3、低下限风扇停止
4、温度阈值设置
5、超限报警


二、软件设计

/*
作者:嗨小易(QQ:3443792007)
*///系统开机界面显示
void sys_open_show(void)
{lcd1602_clear();lcd1602_show_string(0,0,"Tp:    C");lcd1602_show_string(14,0,"Au");lcd1602_show_string(0,1,"TL:  C");lcd1602_show_string(10,1,"TH:  C");
}//系统数据获取
void sys_data_get(void)
{static u8 i=0;while(1){//温度获取i++;if(i%1==0){TR0=0;//关闭定时器sys_ctrl.temp=ds18b20_read_temperture()*10;TR0=1;//打开定时器}     break;}
}//系统数据显示
void sys_data_show(void)
{u8 buf[5];while(1){//温度显示buf[0]=sys_ctrl.temp/100+0x30;buf[1]=sys_ctrl.temp%100/10+0x30;buf[2]='.';buf[3]=sys_ctrl.temp%100%10+0x30;buf[4]='\0';lcd1602_show_string(3,0,buf);//温度阈值显示lcd1602_show_nums(3,1,sys_ctrl.templ,2,0);lcd1602_show_nums(13,1,sys_ctrl.temph,2,0);//阈值闪烁指示switch(sys_ctrl.mode){case 1://温度下限lcd1602_show_string(3,1,"  ");delay_ms(50);lcd1602_show_nums(3,1,sys_ctrl.templ,2,0);break;case 2://温度上限lcd1602_show_string(13,1,"  ");delay_ms(50);lcd1602_show_nums(13,1,sys_ctrl.temph,2,0);break;}//档位显示lcd1602_show_nums(10,0,sys_ctrl.gear,1,0);//手动状态显示if(sys_ctrl.auto_flag)lcd1602_show_string(14,0,"SD");else lcd1602_show_string(14,0,"Au");break;         }
}//系统数据设置
void sys_data_set(void)
{u8 key=0;key=key_scan(0);//自动手动模式设置if(key==KEY4_PRESS){sys_ctrl.auto_flag=!sys_ctrl.auto_flag;}//阈值模式设置else if(key==KEY3_PRESS){sys_ctrl.mode++;if(sys_ctrl.mode>2)sys_ctrl.mode=0;}//阈值设置模式下,K1和K2加减if(sys_ctrl.mode!=0){//加if(key==KEY1_PRESS){switch(sys_ctrl.mode){case 1://温度下限sys_ctrl.templ++;if(sys_ctrl.templ>99)sys_ctrl.templ=0;break;case 2://温度上限sys_ctrl.temph++;if(sys_ctrl.temph>99)sys_ctrl.temph=0;break;}    }//减else if(key==KEY2_PRESS){switch(sys_ctrl.mode){case 1://温度下限sys_ctrl.templ--;if(sys_ctrl.templ<0)sys_ctrl.templ=99;break;case 2://温度上限sys_ctrl.temph++;if(sys_ctrl.temph<0)sys_ctrl.temph=99;break;}    }   }//手动模式下,档位调节if(sys_ctrl.auto_flag==1){//加速if(key==KEY1_PRESS){sys_ctrl.gear++;if(sys_ctrl.gear>5)sys_ctrl.gear=5;}//减速else if(key==KEY2_PRESS){sys_ctrl.gear--;if(sys_ctrl.gear<0)sys_ctrl.gear=0;}     }
}//应用控制系统
void appdemo_show(void)
{u8 i=10;ENA=0;//关闭电机输出sys_parm_init();//系统参数初始化lcd1602_init();ds18b20_init();//读取温度数据,等待稳定while(i--){sys_ctrl.temp=ds18b20_read_temperture()*10;delay_ms(100);   }pwm_init(0XFF,0XD1,100,0);//初始时,PWM占空比为0dc_motor_dir_ctrl(0);sys_open_show();//系统开机界面显示while(1){    sys_data_get();//系统数据获取sys_data_show();//系统数据显示sys_data_set();//系统数据设置sys_fun_ctrl();//系统功能控制}
}

三、实验现象

演示视频:https://space.bilibili.com/444388619





联系作者

专注于51单片机、STM32、国产32、DSP、Proteus、ardunio、ESP32、物联网软件开发,PCB设计,视频分享,技术交流。

【Proteus仿真】【51单片机】智能温控风扇设计相关推荐

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

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

  2. 51单片机的温控风扇设计

    一.硬件方案 系统采用51单片机作为控制平台对风扇转速进行控制.可由用户设置高.低温度值,测得温度值在高低温度之间时打开风扇弱风档,当温度升高超过所设定的温度时自动切换到大风档,当温度小于所设定的温度 ...

  3. 51单片机智能温控风扇

    大三上学期写的一个课程设计,完成的功能就是读取当前环境温度,在数码管上显示,并根据其驱动风扇转动的快慢,另用键盘扫描实现了总开关,超过一定阈值蜂鸣器响起.用51单片机由于芯片问题,使用两个定时器,很容 ...

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

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

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

    基于51单片机DS18B20温控风扇仿真设计 (仿真+原理图+源码+设计报告) 原理图:Altium Designer 仿真原版本:proteus 7.8 程序编译器:keil 4/keil 5 编程 ...

  6. 基于stm32单片机智能温控风扇控制系统Proteus仿真

    资料编号:103  下面是相关功能视频演示: 103-基于stm32单片机智能温控风扇控制系统Proteus仿真(源码+仿真+全套资料) 功能介绍:采用stm32单片机.ds18b20温度传感器采集温 ...

  7. 【电路】基于单片机智能睡眠枕系统设计-基于单片机音乐喷泉制作设计-基于单片机智能温控风扇调速系统设计-基于单片机智能自动循迹小车控制系统设计-基于数字电路的4人投票系统设计(仿真,报告)毕设课设资料

    1620基于单片机智能睡眠枕系统设计-文档+PPT+PCB图+原理图+源码 智能睡眠枕主要由lcd屏幕.蓝牙.压力传感器.蜂鸣器.单片机等等组成,用户可通过四个独立按键进行操控(四个按键从左至右为1. ...

  8. 单片机毕业设计 stm32智能温控风扇设计与实现 - 嵌入式 物联网

    文章目录 1 简介 2 绪论 2.1 课题背景 3 系统设计 3.1 系统架构 3.2 硬件部分 3.2.1 DS18B20 简介 3.2.2 LCD1602 液晶屏简介 3.3 软件部分 3.3.1 ...

  9. 51单片机PWM温控风扇定时关闭手动自动DS18B20测温LCD1602显示

    实践制作DIY- GC0018-PWM温控风扇 一.功能说明: 基于51单片机设计-PWM温控风扇 功能介绍: 1. STC89C52单片机 +LCD1602 +多个按键+风扇+风扇驱动电路+DS18 ...

  10. 基于51单片机智能有毒气体检测仪设计(煤气、酒精、co)(转发分享)

    本设计由STC89C52单片机电路+LCD1602液晶显示电路+MQ-2甲烷传感器模块电路+MQ-3酒精传感器模块电路+MQ-9 CO传感器电路+A/D采样PCF8591电路+蜂鸣器报警电路+LED指 ...

最新文章

  1. 关于Python的一点学习总结(55-time的使用)
  2. 在html页面中加入矢量图,HTML页面插入SVG的多种方式
  3. 通过Nginx配置多域名访问
  4. mysql无法与外部健形成约束_MySQL Rails:错误:150“外键约束不正确”
  5. 滚动后mouseleave失效_大型调心滚子轴承偏载失效案例详情
  6. 如何使用ISO升级TrueNAS主要版本
  7. c 不安装oracle,安装oracle 10g 的艰难之旅
  8. 显示js对象所有属性和方法的函数
  9. java编程——图片旋转
  10. java开启注解扫描,详解Spring框架注解扫描开启之配置细节
  11. 素数问题c语言程序,判断素数问题(C语言实现)
  12. Redis安装部署(Windows/Linux)
  13. CC2430串口设置问题解决后的感想
  14. 关于“嵌入式系统设计师”的了结。
  15. 树规? bzoj4007 战争调度
  16. SELCO T2900.0010有一种保护器叫幸福
  17. 小微企业——信贷政策分析
  18. 关于vue3中无config文件
  19. Spring系列学习之Spring Cloud Contract测试消息传递
  20. 生产线标准工时怎么算?工厂管理者必须要知道的

热门文章

  1. linux下要熟练掌握的常用快捷键和命令
  2. android自动切换输入法,一种动态切换Android系统输入法的弹出模式的方法
  3. 怎么用计算机把浓度转换成PH,ph浓度换算(ph怎么换算OH浓度)
  4. python账号怎么注销_登录后如何注销
  5. 资料员报考建筑八大员报考建筑资料员工程竣工资料整理的举措
  6. AFM测试图像假象及其应对
  7. windows 7 下让 Delphi 2010 开发的程序具备UAC管理员权限
  8. 配置Druid(德鲁伊)数据源
  9. drcom上网登录窗不弹出_无线网络连接后不能弹出浏览器登录页面是怎么回事?
  10. 百斗卫星互动地图服务协议