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

演示视频:http://v.youku.com/v_show/id_XMzk0OTM5Nzk5Ng==.html?spm=a2hzp.8244740.0.0
将链接复制至IE浏览器打开!!!
功能操作说明:
本设计包括四个按键,单片机复位按键,设置按键,加键,减键。
开机运行后读取温度值,根据默认设置上下限决定电机运行档位。没有按键按下情况下会一直运行。
按下设置键后进入设置模式,第一次按下设置温度底限,第二次按下设置温度高限,再次按下回到正常模式。
加键按下,温度值加并且闪烁。
减键按下,温度值减并且闪烁。

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
好的,以下是一个基于51单片机智能小车pwm调速程序的示例代码,供您参考: ```c #include <reg52.h> // 定义电机驱动模块的端口 sbit IN1 = P1^0; sbit IN2 = P1^1; sbit IN3 = P1^2; sbit IN4 = P1^3; // 定义定时器相关寄存器 sfr T2MOD = 0xC9; // 定时器2模式寄存器 sfr AUXR = 0x8E; // 辅助寄存器 sfr TH2 = 0xD6; // 定时器2高8位 sfr TL2 = 0xD7; // 定时器2低8位 // 定义全局变量 unsigned int speed = 0; // 电机转速,占空比范围为0-100 // 定时器2中断服务函数 void timer2_isr() interrupt 5 { static unsigned int count = 0; count++; if (count <= speed) { IN1 = 1; IN2 = 0; IN3 = 1; IN4 = 0; } else { IN1 = 0; IN2 = 0; IN3 = 0; IN4 = 0; } if (count >= 100) { count = 0; } } // 初始化定时器2 void init_timer2() { T2MOD |= 0x02; // 设置定时器2为16位自动重载模式 AUXR |= 0x04; // 定时器2时钟选择为Fosc/12 TH2 = 0xFF; // 定时器2初值设为65535-5000=60535,定时5ms TL2 = 0x7B; EA = 1; // 开启总中断 ET2 = 1; // 开启定时器2中断 TR2 = 1; // 启动定时器2 } // 主函数 void main() { init_timer2(); // 初始化定时器2 while (1) { // 读取外部传感器数据并处理,得到电机转速 // ... // 将电机转速转换为占空比,存放在全局变量speed中,范围为0-100 // ... } } ``` 以上代码实现了一个基于51单片机智能小车pwm调速程序,其中使用定时器2来生成PWM信号,控制电机的转速和方向。在主函数中,我们可以读取外部传感器数据并处理,得到电机转速,并将电机转速转换为占空比,存放在全局变量speed中。在定时器2中断服务函数中,我们根据当前的计数值count和电机转速speed来控制电机的转速和方向。需要注意的是,本示例代码中只控制了一个电机,如果需要控制多个电机,需要根据实际情况进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

单片机设计爱好者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值