• 主页
  • 随笔
  • 相册
  • 投资
  • 辉光钟
  • 实用工具
  • 未来ガジェット研究所
所有文章 关于我

  • 主页
  • 随笔
  • 相册
  • 投资
  • 辉光钟
  • 实用工具
  • 未来ガジェット研究所

智能温控风扇设计(基于51系列单片机)

2021-08-12
字数统计: 629字   |   阅读时长: 2分

实现功能:

1.检测与人距离自动开启风扇
2.随温度升高自动调节风扇转速
3.在液晶屏上显示当前环境温度
4.显示当前电机转速
5.根据按键调节设定温度值(可选)

所用元器件:

1.普中科技HC6800——EM3 V2.2开发板(STC89C52)
2.温度传感器DS18B20(开发板上接口,连接P3.7)
3.液晶显示LCD1602(开发板上接口,data连接P0口,E=P2.7,RW=P2.5,RS=P2.6)
4.德飞来直流电机模块(直流电机、电机控制芯片L9110S)
5.电机驱动芯片(开发板上步进电机驱动芯片,或使用L298N[需要外接供电])

整体程序框图

部分重要代码及详细注释

/*******************************************************************************
* 函 数 名      : Time0
* 函数功能	 : 定时器0的中断函数,负责根据温度调节转速
*******************************************************************************/
void Time0(void) interrupt 1   
{
    TH0 = 0xF0;  //重新赋初值
    TL0 = 0x00;
    timer0++;  
        if(22>Temperature_0 && Temperature_0>=20){pwm_set=0;}	
        else if(25>Temperature_0 && Temperature_0>=22){pwm_set=2;}
        else if(28>Temperature_0 && Temperature_0>=25){pwm_set=4;}
        else if(32>Temperature_0 && Temperature_0>=28){pwm_set=8;}
        else if(Temperature_0>=32){pwm_set=10;}
        else{pwm_set = 0;}
    if(timer0>100)  //PWM周期为100*初值填充数ms
        {
            timer0=0;
        }
        if(timer0 <pwm_set*10)	//改变占空比
        {
            PWM=1;
        }
        else
        {
            PWM=0;
        }  
}
/*******************************************************************************
* 函 数 名       : Time2
* 函数功能		 : 设置定时器T2中断函数,定时读取温度设置温度初值和转速
*******************************************************************************/
void Time2(void) interrupt 5
{
    int flag =0;
    float x=0;
    TF2 = 0;
    TH2 = 0x3C; //设置定时时间,0.05s
    TL2 = 0xB0;
    flag++;
    if(flag=10){//10次中断读取一次,0.5s读取一次
    flag = 0;
    num = TH1;
    num <<= 8;
    num |= TL1;
    x = num*30;//电机模块上转盘有4个缺口,转速是每分钟转速。2x60/4=30。
    num = x;
    TL1 = 0;
    TH1 = 0;
    }
}
/*******************************************************************************
* 函数名         : main
* 函数功能	 : 主函数
*******************************************************************************/
void main(void)
{	TimeConfig();		 //初始化T0和T1
    Time2Config();		 //初始化T2
    LcdInit();			 //初始化LCD1602
    LcdWriteCom(0x8B);	//写地址 80表示初始地址
    while(F0==1){		//用红外控制是否开启,不用时可以直接置为1。
    void Key_Check();	//键盘扫描程序,可以删除
        EA = 0;		//在液晶显示之前,先关闭所有中断,防止液晶显示时中断打断导致显示出现异常
        Temperature_0 = Ds18b20ReadTemp();
        TChange();		//温度转换,防止零下温度显示为+
        EA = 1;
        LcdDisplay(Temperature_0);
        Delay500ms();	//10*1ms刷一次

最终成果

视频就不展示了,太紧张说的语无伦次。
赏

不要去改变过去的既定事实,去改变结果吧

支付宝
  • 单片机项目
  • blog

扫一扫,分享到微信

微信分享二维码
不是人主宰了权力,而是权力的逻辑主宰了人
知我罪我,唯有春秋
© 2025 鹤望兰
鄂ICP备2020018027号-1
  • 所有文章
  • 关于我

tag:

  • 2020年
  • 2021年
  • 2021Q1
  • 证券投资
  • 2021Q2
  • 2022Q1
  • 2022Q2
  • 2021Q3
  • 2022年
  • 2022Q3
  • 2023Q3
  • 2023Q1
  • 2023Q2
  • 2023年
  • 檄文
  • 优秀古文
  • 2024Q1
  • 政治经济
  • Stable Diffusion
  • AI画图
  • Fate/Grand Order
  • 画集
  • MarkDown
  • 电锯人
  • cosplay
  • 空之境界
  • 阿尔托莉雅
  • Saber
  • Steins;Gate
  • Fate stay/night
  • Fate
  • 武内崇
  • 贞德 [Alter]
  • 辉夜大小姐想让我告白
  • 电力电子
  • やがて君になる
  • 经典控制理论
  • 随笔
  • 贺词
  • 剧评
  • 人民的名义
  • 命运石之门
  • 学生手册
  • 人民的民意
  • 单片机项目
  • 自动控制理论
  • 正余弦算法
  • 2024Q2
  • 2024Q3
  • 变频器使用
  • 电机控制
  • 2024年
  • 小波变换
  • 信号分析
  • 2025Q1
夹杂在妄想与现实的缝隙中 <br><br>只做了一点微小的工作<br><br>ヽ(*゚д゚)ノ < カイバー