基于51单片机的温控风扇-数码管显示-风扇人体感应

发布者:BoldDreamer最新更新时间:2021-10-15 来源: eefocus关键字:51单片机  温控风扇  数码管显示 手机看文章 扫描二维码
随时随地手机看文章

一.硬件方案

系统采用51单片机作为控制平台对风扇转速进行控制。可由用户设置高、低温度值,测得温度值在高低温度之间时打开风扇弱风档,当温度升高超过所设定的温度时自动切换到大风档,当温度小于所设定的温度时自动关闭风扇。风扇控制状态随外界温度而定,并通过PWM的方式控制风扇的转速。


主要由51单片机+最小系统+数码管显示模块+数码管驱动模块+温度采集模块+人体感应模块+风扇模块+按键模块等构成:

在这里插入图片描述

二.设计功能

(1)采用DS18B20温度传感器测温,三级管驱动数码管显示温度和风扇的档位,人体感应模块检测是否有人。

(2)共3个按键:1设置、2键加、3键减。按一下设置可以设置上限值,再按下设置下限,均可以按键加减调整;

(3)利用PWM调速,当温度低于下限时,风扇步转动,当温度处于上下限之间时,1档转动(风速50%转速转动),当温度超过上限时,风扇全速转动。

(4)红外人体传感器检测周围是否有人,当周围无人时,风扇停止转动。


三.设计原理图

(1)原理图主要采用AD软件进行设计,如图:

在这里插入图片描述

(2)Protues仿真图如下:

(3)PCB图如下:

在这里插入图片描述

四.软件设计

(1)程序流程图

(2)主程序源码


/****************主函数***************/

void main()

{

static uchar value;

time_init();                    //初始化定时器 

pwm=1;

hw = 1;

while(1)

{

key(); //按键程序

if(key_can < 10)

{

key_with(); //设置温度

}

if(flag_200ms == 1)     //200ms 处理一次温度程序

{    

flag_200ms = 0;

temperature = read_temp()%1000; //先读出温度的值

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;

}

}


}

}


/*************定时器0中断服务程序***************/

void time0_int() interrupt 1

{

static uchar value; //定时2ms中断一次

TH0 = 0xf8;

TL0 = 0x30;     //2ms

value++;   

display(); //数码管显示函数

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; //500ms

key_value ++;

if(key_value > 3)

{

key_value = 10;

flag_lj_3_en = 1; //3次后1.5秒连加大些

}

}

}

}

关键字:51单片机  温控风扇  数码管显示 引用地址:基于51单片机的温控风扇-数码管显示-风扇人体感应

上一篇:基于51单片机的红外计数器-1602显示
下一篇:基于51单片机的金属探测仪

推荐阅读最新更新时间:2024-11-10 13:45

51单片机实验——输出占空比为1:3的矩形波
1.实验题目: 设单片机的时钟为12MHz,请利用定时器T2编出使P4.6引脚输出周期为3s的矩形波程序,要求占空比系数为1:3,观察灯LED10的变化。(在一个周期内,高电平所占的时间叫占空。) 2.KEIL代码 #include reg51.h sbit LED=P1^6; void main() { TMOD &=0X0F; TMOD |=0x01;//选择定时器T0的工作模式1 TH0 = (65536 - 50000)/256;//高四位初值 TL0 = (65536 - 50000)%256;//低四位初值,每隔50ms溢出 EA = 1; //开总中断 ET0 = 1; TR0
[单片机]
基于51单片机按键控制喇叭发出多种声音
具体实现功能: 51单片机按键控制喇叭发出多种声音。 设计介绍 51单片机简介 51单片是一种低功耗、高性能CMOS-8位微控制器,具有8K可编程Flash存储器,使得其为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 51系列单片机具有以下标准功能: 8k字节Flash,512字节RAM, 32位I/O口线,看门狗定时器, 内置4KB EEPROM, MAX810复位电路, 三个16位定时器/计数器, 一个6向量2级中断结构, 全双工串行口。 另外, 51系列在空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机停止工作,直到下一个中
[单片机]
基于<font color='red'>51单片机</font>按键控制喇叭发出多种声音
为何MCS-51单片机要中断系统扩展?定时器怎样作外部中断源?
为什么MCS-51单片机要用到中断系统扩展? 答:虽然MCS-51已经提供了两个外部中断申请输入端INT0、INT1,但在外部中断请求源需求仍然较多时,就要用到中断系统扩展。 定时器作为外部中断源时,用什么方法实现? 答:当MCS-51的两个定时/计数器选择为计数方式时,T0或T1引脚上发生的负跳变将使T0或T1计数器加1。利用它,就可以把T0、T1作为外部中断请求输入线,而定时器的溢出中断就可以作为外部中断请求的标志。
[单片机]
51单片机上AD和DA操作
一、ADC0804的操作 1、试验板上ADC0804的接线图 AD芯片上的第5管脚INTR没有接线,因为该实验板读取A/D数据没有用中断法,所以可以不接该引脚。 2、芯片的操作时序图如下 操作芯片时基本按照此顺序操作各个引脚。操作过程:在此实验中要连续转换连续读取数据,就将CS一直置低,没有用到中断也不用操作INTR引脚,剩下就只用操作WR和RD引脚,首先将WR置低,经过tW(WR)L时间后拉高WR,转换开始,经过1~8个A/D时钟周期1/fCLK和内部Tc时间后,转换完成;接着将RD置低,经过tACC时间后数字输出口上的数据达到稳定状态,此时直接读取数字输出端口数据,读完数据直接拉高RD。 3、用单片机控制ADC
[单片机]
<font color='red'>51单片机</font>上AD和DA操作
51单片机模拟I2C接口实例
电路原理图 iframe id="iframe_0.17500257049687207" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://www.baiheee.com/Documents/090107/090107114949/pic1.gif?_=2962239%22%20style=%22border:none;max-width:660px%22%3E%3Cscript%3Ewindow.onload%20=%20functio
[单片机]
51单片机流水灯实验
上次我们完成了51单片机最小开发板的制作,这次我将在这块最小开发板上来进行一个简单的入门实验 流水灯实验。当你能让LED灯按照你的想法随意闪烁时,那不只是视觉上的享受,你还会发现单片机是一个多么神奇的东西啊,它居然能按照人的意思来控制LED灯。这个实验完成后,你将会初步体会到单片机的魔力,你将因它不可自拔。赶快来开始我们的实验吧! 51单片机流水灯实验硬件电路设计 系统电路图主要包括电源部分 晶振电路 复位电路 发光二极管(LED灯) 电路原理图如下: 流水灯实验硬件电路制作 这个流水灯实验硬件电路的制作很简单,只需在51单片机上任选一组I/O口(这里选的是P2口)外接8个发光二级管即可。 流
[单片机]
STC15W4K48S4的直接USB-ISP功能!51单片机最方便的下载
正在检测目标单片机 ... 单片机型号: STC15W4K48S4 固件版本号: 7.3.1T 当前芯片的硬件选项为: . 下次冷启动后系统时钟源为内部IRC振荡器 . 内部振荡器的频率未调节 . 掉电唤醒定时器的频率: 37.133KHz . P3.2和P3.3与下次下载无关 . 上电复位时增加额外的复位延时 . 复位引脚用作普通I/O口 . 检测到低压时复位 . 低压检测门槛电压 : 2.63 V . 低压时不能进行EEPROM操作 . CPU-Core最高工作电压 : 2.78 V . 上电复位时,硬件不启动内部看门狗 . 上电自动启动内部看门狗时的预分频数为 : 256 . 空闲状态时看门狗定
[单片机]
STC15W4K48S4的直接USB-ISP功能!<font color='red'>51单片机</font>最方便的下载
51单片机】普通I/O口模拟SPI口C语言程序
89C51系列单片机都不带SPI口,所在在这种情况下,我们可以模拟SPI口来现实我们要的功能,程序如下: //-----------------------函数声明,变量定义------------ #include #include sbit SCK=P1^0; // 将p1.0口模拟时钟输出 sbit MOSI=P1^1; // 将p1.1口模拟主机输出 sbit MISO=P1^2; // 将p1.1口模拟主机输入 sbit SS1=P1^3; // 将p1.1口模拟片选 #define delayNOP(); {_nop_();_nop_();_nop_();_nop_();}; //-------------------
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved