目录
一、主要功能
1、数码液晶显示当前温度和风扇挡位
2、按键设置温度阈值
3、通过当前温度自动调节风扇转速
二、使用步骤
基于51单片机的智能温控风扇系统是一个集温度传感、PWM调速和自动控制于一体的综合性项目。下面为您提供完整的系统设计方案和核心代码实现。
三、硬件资源
1、51单片机核心模块
2、按键模块
3、温度传感器
4、电机模块
5、数码管显示模块
四、软件设计
#include<reg51.h>
#include<intrins.h> //包含头文件
#define uchar unsigned char
#define uint unsigned int //宏定义
////////////////////
sbit dj=P1^0;//电机控制端接口
sbit DQ=P1^6;//温度传感器接口
//////////按键接口/////////////////////////////////
sbit key1=P3^5;//设置温度
sbit key2=P3^6;//温度加
sbit key3=P3^7;//温度减
//////////////////////////////////////////////////////
sbit w1=P2^4;
sbit w2=P2^5;
sbit w3=P2^6;
sbit w4=P2^7; //数码管的四个位
uchar table[22]=
{0x3F,0x06,0x5B,0x4F,0x66,
0x6D,0x7D,0x07,0x7F,0x6F,
0x77,0x7C,0x39,0x5E,0x79,0x71,
0x40,0x38,0x76,0x00,0xff,0x37};//'-',L,H,灭,全亮,n 16-21
uint wen_du; //温度变量
uint shang,xia; //对比温度暂存变量
uchar dang;//档位显示
uchar flag;
uchar d1,d2,d3;//显示数据暂存变量
void delay(uint ms)
{
uchar x;
for(ms;ms>0;ms--)
for(x=10;x>0;x--);
}
void delay_18B20(uint i)
{
while(i--);
}
void main() //主函数
{
uchar j;
dj=0;
shang=30;
xia=20;
for(j=0;j<80;j++) //先读取温度值,防止开机显示85
ReadTemperature();
while(1) //进入while循环
{
ReadTemperature(); //读取温度值
for(j=0;j<100;j++)zi_dong();//自动温控模式
}
}
五、实验现象
演示视频:

