標題:
單片機溫控風扇含proteus仿真和keil源程序
[打印本頁]
作者:
superle
時間:
2018-4-27 14:55
標題:
單片機溫控風扇含proteus仿真和keil源程序
溫度控制直流電動機轉仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png
(17.98 KB, 下載次數(shù): 106)
下載附件
2018-4-29 01:05 上傳
單片機源程序如下:
#include<reg52.h>
#include<intrins.h>
#include"define.h"
#include"delay.h"
#include"LCD1602.h"
#include"DS18B20.h"
#include"HL_alarm.h"
sbit KEY3 = P3^5; //定義開始/停止
void zhuan();
unsigned char timer1;
//***********************************************************************/
void main()
{ if(KEY3==0) //第一次檢測是否有鍵按下
{
PWM=0;MA=~MA;MB=~MB;
delay(1);
return;
}
else
{LCD_init();
set_alarm_HL();
DS_read_temperature();
TMOD=0x01;
TH0=-50000/256;
TL0=-50000%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{}
}
}
void timer0() interrupt 1
{ if(KEY3==0) //第一次檢測是否有鍵按下
{ TH0=-50000/256;
TL0=-50000%256;
DS_read_temperature();//讀取溫度
if((HI_alarm==1)||(LO_alarm==1))
alarm();
if(DS_OK==0)
return;//如果讀取錯誤,返回從新再讀
display_temperature();
buffer_line1[10]='S';//*********修改成STOP
buffer_line1[11]='T';//*********修改成STOP
buffer_line1[12]='O';//*********修改成STOP
buffer_line1[13]='P';//*********修改成STOP
PWM=0;MA=~MA;MB=~MB;
delay(1);
return;
}
else
{
TH0=-50000/256;
TL0=-50000%256;
DS_read_temperature();//讀取溫度
if((HI_alarm==1)||(LO_alarm==1))
alarm();
if(DS_OK==0)
return;//如果讀取錯誤,返回從新再讀
display_temperature();
if(sign_temp<=45&&sign_temp>=15)
{
MA=1;
MB=0;
if(sign_temp<25) //等于45或65時停止轉動,占空比0
{ buffer_line1[10]='S';//*********修改成STOP
buffer_line1[11]='T';//*********修改成STOP
buffer_line1[12]='O';//*********修改成STOP
buffer_line1[13]='P';//*********修改成STOP
PWM=0;
delay(1);
return;
}
buffer_line1[10]='R';//*********修改成RUN
buffer_line1[11]='U';//*********修改成RUN
buffer_line1[12]='N';//*********修改成RUN
buffer_line1[13]=' ';//*********修改成
zhuan();
}
else
{
MA=0;
MB=0;
}
}
}
void zhuan()
{
TMOD|= 0x10; //設置定時計數(shù)器工作方式1為定時器
TH1 = 0xFE;
TL1 = 0x0C; //--定時器賦初始值,12MHZ下定時0.5ms--//
ET1 = 1; //開啟定時器1中斷
EA = 1;
TR1 = 1; //開啟定時器
if(timer1>50) //PWM周期為50*0.5ms
{
timer1=0;
}
if(timer1 < sign_temp) //改變sign_temp這個值可以改變直流電機的速度
{
PWM=1;
}
else
{
PWM=0;
}
}
void Time1(void) interrupt 3 //3 為定時器1的中斷號 1 定時器0的中斷號 0 外部中斷1 2 外部中斷2 4 串口中斷
{
TH1 = 0xFE; //重新賦初值
TL1 = 0x0C;
timer1++;
}
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
溫控風扇改進PWM.zip
(102.84 KB, 下載次數(shù): 307)
2018-4-27 14:53 上傳
點擊文件名下載附件
溫控風扇 含proteus仿真和keil—C語言源程序
下載積分: 黑幣 -5
作者:
犀牛圣斧魔王
時間:
2018-5-31 15:16
樓主好人啊
作者:
liwen711
時間:
2018-6-11 16:32
怎么下載呀,大佬我真的很需要
作者:
bila銀
時間:
2019-6-9 23:40
真的是太有用啦
作者:
418916
時間:
2019-6-10 21:42
求下載啊
作者:
418916
時間:
2019-6-10 21:43
樓主牛逼啊
作者:
qxdqx
時間:
2019-7-7 09:57
多謝啦!!!!!!!!!!!!!!!!!!
作者:
jmr
時間:
2019-12-16 20:34
特別好
作者:
18240721760
時間:
2019-12-18 08:56
這里面有連接線路圖嗎?
作者:
A60885262
時間:
2019-12-19 14:32
支持!
作者:
lb1392107767
時間:
2020-4-10 19:06
頂一個,很強
作者:
我神金
時間:
2024-7-2 00:18
頂一個,好用
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1