欢迎交流
分享一个51单片机做的自动控制系统.
ds18b210温度大于等于45℃时加速正转/小于等于10℃时加速反转.
75℃时达到全速正转/0℃时达到全速反转.
温度回到10℃至45℃之间时电机逐渐停止.
观察转速时以数字为准,而不以直观速度为准.
因为在高转速下反而会觉得其转速很低.
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- //-----------------------------------------------------------------
- // 名称: 温度控制直流电机转速
- //-----------------------------------------------------------------
- // 说明: 大于等于45℃时加速正转/小于等于10℃时加速反转
- // 75℃时达到全速正转/0℃时达到全速反转
- // 温度回到10℃至45℃之间时电机逐渐停止转动
- //
- //-----------------------------------------------------------------
- #include <reg51.h>
- #include <intrins.h>
- #include <stdio.h>
- #define INT8U unsigned char
- #define INT16U unsigned int
- extern INT8U Temp_Value[]; //传感器返回的两字节温度原始数据
- extern INT8U Read_Temperature(); //读传感器温度函数
- extern void delay_ms(INT16U x);
- extern void LCD_Initialise();
- extern void LCD_ShowString(INT8U, INT8U,INT8U *) reentrant;
- sbit MA = P1^0; //电机方向控制端(MA,MB)
- sbit MB = P1^1;
- sbit PWM1 = P1^2; //PWM调整控制端
- INT8U Back_Temp_Value[] = {0xFF,0xFF}; //温度数据备份
- char Temp_Disp_Buff[17]; //显示缓冲
- float f_Temp = 35.0; //浮点温度值
- //-----------------------------------------------------------------
- // T0定时器溢出中断函数控制电机正/反转,并输出PWM信号控制转速
- //-----------------------------------------------------------------
- void T0_INT() interrupt 1
- {
- }
- //-----------------------------------------------------------------
- // 主函数
- //-----------------------------------------------------------------
- void main()
- {
- }
复制代码
所有资料51hei提供下载(源码还未完成):
12 温度控制直流电机转速.zip
(30.33 KB, 下载次数: 29)
|