此智能风扇是基于51单片机和proteus的仿真设计,功能如下:
1. Timer0 PWM控制电机转速
2. DHT11采集温湿度
3. LCD1602显示温湿度及电机状态
4. 按键控制电机加减速启停等
5. 串口控制电机加减速启停等
功能框图如下:
Proteus仿真界面如下:
下面就各个模块逐一介绍,
- DHT11温湿度采集模块
51单片机在使用DHT11模块时需要注意时序问题,因为51单片机的时钟频率并不高这里选择是11.0592Mhz, 微妙级延时需要精确。
启动DHT11:
DHT11读取温湿度:
- 风扇控制
AT89C51并没有PWM这个功能模块,这里使用软件模拟的方法产生PWM,周期使用20ms即可。
- 按键控制
按键可以控制电机启动停止加速减速,加减速是通过改变电机占空比实现的,占空比增加则电机加速占空比减小则电机减速,电机启停是通过控制TIMER0实现的,因为TIMER0控制电机PWM的产生。
电机停止:
电机加速:
- 串口控制
Proteus中可以添加串口控制接口,在程序中加入串口控制指令则仿真的时候可以输入指令模拟串口控制。
- LCD1602显示
LCD1602可以显示DHT11采集到的温湿度,也可以显示电机的占空比和电机控制状态。
更新LCD1602:
另外在proteus中也加入了示波器功能,仿真时则可以看到电机控制脚的波形,按键或者串口控制改变占空比时波形也会发生相应的变化,电机转速的改变也能直观的看出来。