功能:非智能模式下,可以使用按键或手机蓝牙切换风扇的档位。当风扇处于智能模式下,风扇档数仅通过环境温度控制,按键与手机蓝牙不能控制风扇档数。任何模式下都可以通过按键或手机蓝牙切换至另一模式,同时手机还可以获取风扇所处环境当前温度。

实现:

利用定时器0产生pwm方波控制风扇的转速

void Timer0Init()
{TMOD|=0X01;//选择为定时器模式,工作方式1,仅用TR0打开启动。TH0 = 0xfc;  //配置1ms定时TL0 = 0x18;TR0 = 1;  ET0 = 1;   //打开定时器中断EA = 1;   //打开总中断
}
void time0(void) interrupt 1
{TH0 = 0xfc;   //配置1ms定时TL0 = 0x18;timer0++;    //timer0开始计数,每1毫秒加一if(timer0>5)  //PWM周期为5毫秒{timer0=0;}if(timer0 <speed)  {PWM=1;}else{PWM=0;}
}

ds18b20读取一次温度时间太长且任一步骤不能被打断,这使ds18b20读取温度与定时中断产生pwm波不能协调工作,说以将ds18b20读取温度放入定时中断分为多步进行,每中断一次进行一步。

void time0(void) interrupt 1
{switch(step){TH0 = 0xfc;  //配置1ms定时TL0 = 0x18;case 0:Ds18b20Init();break;case 1:Ds18b20WriteByte(0xcc);break;case 2:Ds18b20WriteByte(0x44);break;case 3:Ds18b20Init();break;case 4:Ds18b20WriteByte(0xcc);break;case 5:Ds18b20WriteByte(0xbe);break;case 6:tml = Ds18b20ReadByte();break;case 7:tmh = Ds18b20ReadByte();break;case 8: temp = tmh;temp <<= 8;temp |= tml;break;case 9: display(temp);break;} step++;step%=10;
}  

按键:将常开按键的一端接地,另一端接一个I/O口,程序开始时将此I/O口置于高电平,平时无键按下时I/O口保持高电平。当有键按下时,此I/O口与地短路迫使I/O口为低电平。按键释放后,单片机内部的上拉电阻使I/O口仍然保持高电平。

uint keyctrl()
{if(k3==0&&speed==5&&smart==0)     //检测按键K3是否按下{  Delay1ms(1);   //消除抖动 一般大约1msif(k3==0)     //再次判断按键是否按下{speed=2;   //占空比0.4}while(!k3);   //检测按键是否松开}else if(k3==0&&speed==2&&smart==0)     {  Delay1ms(1);   if(k3==0)   {speed=4;  //占空比0.8}while(!k3);    }else if(k3==0&&speed==4&&smart==0)  {   Delay1ms(1);   if(k3==0)   {speed=5; //占空比1}while(!k3);   }else if(k4==0)    //检测按键K4是否按下{ Delay1ms(1);   //消除抖动 一般大约1msif(k4==0)     //再次判断按键是否按下{smart=~smart;}while(!k4);     //检测按键是否松开 }return speed;
}

手机控制使用蓝牙串口APP与连接单片机的hc05通讯

void UartConfig()
{TMOD|=0x20;      //设置计数器1的工作方式2TH1=0xfd; TL1=0xfd;      //设置计数器1的初值,决定波特率9600 PCON=0x00;      // 波特率倍增0x00不加倍SCON=0x50;        //设置工作方式1 开启接受允许EA=1;          //开启总中断ES=1;           //开启串口接受中断TR1=1;           //计数器1开始运行
}
void sendDat(uchar dat)
{SBUF=dat;       //接收到的数据放入发送缓存器发送while(!TI);       //等待发送数据完成TI=0;             //清除发送完成标志位
}

.................................................

仿真图

仿真视频https://www.bilibili.com/video/BV1444y1z7EQ

基于stc89c52的智能温控风扇相关推荐

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

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

  2. 基于单片机的智能温控风扇的设计与实现

    功能介绍 以STM32单片机作为主控系统: 液晶显示当前温度,风速等级,自动手动模式息: DS18B20检测当前的温度: 按键设置温度上限: 手动模式下: 直接控制风扇档位,可以开启/关闭风扇: 自动 ...

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

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

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

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

  5. 毕业设计 stm32智能温控风扇系统 - 单片机 嵌入式

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

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

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

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

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

  8. c语言温度高于启动 温度低于关闭,基于单片机C语言万年历智能温控风扇设计报告-proteus大赛.pdf...

    万年历智能温控风扇 广东科学技术职业学院 机械与电子工程学院 Proteus仿真大赛 作品名称:万年历智能温控风扇 班 级:09 应电一班 姓 名:冯德就.梁泽豪 万年历智能温控风扇 摘 要 单片机得 ...

  9. c语言设计温控系统,基于单片机的智能温控系统的设计与实现

    吴虹佳++林军 摘要:本文设计了以STC89C52单片机作为控制平台的智能温控系统,该智能系统可以依据温湿度对电器设备的工作模式和工作状态进行控制.用E18-D80NK红外光电开关检测人体信号,选择温 ...

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

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

最新文章

  1. Java 必须掌握的 20+ 种 Spring 常用注解
  2. php roadrunner,使用RoadRunner 加速 Laravel 应用
  3. SiteMesh:一个优于Apache Tiles的Web页面布局、装饰框架
  4. webpack 原理图_webpack打包原理
  5. fastjson转list嵌套_FastJson的学习之JSON互相转Map集合,List集合,JavaBean
  6. Linux centos7安装nfs及服务端配置
  7. 20220213-CTF MISC-a_good_idea(stegsolve工具的使用)-2017_Dating_in_Singapore
  8. Linux常用指令总结二~~
  9. 分页,条件查找后再分页
  10. shell取mysql数据_通过shell读取mysql数据——20120417
  11. 【图像隐写】基于matlab FRFT+SVD盲水印嵌入+攻击+提取【含Matlab源码 1757期】
  12. linux监控进程挂死,linux系统下实时监控进程以及定位杀死挂起的进程
  13. 在我一生中最猥琐的时候遇见你(1)
  14. HiJson(Json格式化工具)64位 V2.1.2绿色版
  15. 如何删除MySQL服务
  16. 数据分析师是做什么的?数据分析师岗位职责
  17. xbox360 无线手柄 通过cmd_vel控制小乌龟运动
  18. Day2:Surveying China’s livestreaming economy
  19. 关于echart 饼图显示不出来 挖坑总结
  20. 黑盒渗透测试指导之XML注入

热门文章

  1. jade2html 在线转换,jade转化为html
  2. Notepad++实现verilog语法检查
  3. CCA分析图如何解读_欧易/鹿明生物云平台:点点鼠标,轻松完成RDA/CCA分析
  4. 2020年物联网平台调研报告
  5. 【INDIRECT】函数教你制作多级下拉菜单
  6. proteus单片机仿真入门攻略(含元器件名称及它的图形)
  7. 智力题解题报告 No.4 9个点10个线
  8. java毕业设计开题报告javaweb户籍管理系统|户口
  9. 企业产品互联网推广的有效方法
  10. 微软私有云服务器,微软私有云