歡迎交流
分享一個(gè)51單片機(jī)做的自動(dòng)控制系統(tǒng).
ds18b210溫度大于等于45℃時(shí)加速正轉(zhuǎn)/小于等于10℃時(shí)加速反轉(zhuǎn).
75℃時(shí)達(dá)到全速正轉(zhuǎn)/0℃時(shí)達(dá)到全速反轉(zhuǎn).
溫度回到10℃至45℃之間時(shí)電機(jī)逐漸停止.
觀察轉(zhuǎn)速時(shí)以數(shù)字為準(zhǔn),而不以直觀速度為準(zhǔn).
因?yàn)樵诟咿D(zhuǎn)速下反而會(huì)覺得其轉(zhuǎn)速很低.
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
單片機(jī)源程序如下:
- //-----------------------------------------------------------------
- // 名稱: 溫度控制直流電機(jī)轉(zhuǎn)速
- //-----------------------------------------------------------------
- // 說明: 大于等于45℃時(shí)加速正轉(zhuǎn)/小于等于10℃時(shí)加速反轉(zhuǎn)
- // 75℃時(shí)達(dá)到全速正轉(zhuǎn)/0℃時(shí)達(dá)到全速反轉(zhuǎn)
- // 溫度回到10℃至45℃之間時(shí)電機(jī)逐漸停止轉(zhuǎn)動(dòng)
- //
- //-----------------------------------------------------------------
- #include <reg51.h>
- #include <intrins.h>
- #include <stdio.h>
- #define INT8U unsigned char
- #define INT16U unsigned int
- extern INT8U Temp_Value[]; //傳感器返回的兩字節(jié)溫度原始數(shù)據(jù)
- extern INT8U Read_Temperature(); //讀傳感器溫度函數(shù)
- extern void delay_ms(INT16U x);
- extern void LCD_Initialise();
- extern void LCD_ShowString(INT8U, INT8U,INT8U *) reentrant;
- sbit MA = P1^0; //電機(jī)方向控制端(MA,MB)
- sbit MB = P1^1;
- sbit PWM1 = P1^2; //PWM調(diào)整控制端
- INT8U Back_Temp_Value[] = {0xFF,0xFF}; //溫度數(shù)據(jù)備份
- char Temp_Disp_Buff[17]; //顯示緩沖
- float f_Temp = 35.0; //浮點(diǎn)溫度值
- //-----------------------------------------------------------------
- // T0定時(shí)器溢出中斷函數(shù)控制電機(jī)正/反轉(zhuǎn),并輸出PWM信號(hào)控制轉(zhuǎn)速
- //-----------------------------------------------------------------
- void T0_INT() interrupt 1
- {
- }
- //-----------------------------------------------------------------
- // 主函數(shù)
- //-----------------------------------------------------------------
- void main()
- {
- }
復(fù)制代碼
所有資料51hei提供下載(源碼還未完成):
12 溫度控制直流電機(jī)轉(zhuǎn)速.zip
(30.33 KB, 下載次數(shù): 29)
2018-6-3 17:10 上傳
點(diǎn)擊文件名下載附件
|