资料编号:104 下面是相关功能视频演示:
104-基于stm32单片机的智能恒温箱游泳池控制系统Proteus仿真(源码+仿真+全套资料)
功能介绍:
采用stm32单片机,程序可以设置最高值和最低值,当温度超过最高值,制冷电机启动,当温度低于最低值,加热电机启动,使整个系统维持一个恒温状态,适用于恒温箱、恒温游泳池、恒温鱼缸之类等等应用,全套资料齐全:
下面是部分程序展示:
int main(void)
{
SystemCoreClockUpdate ();
LCD1602_Init();
LCD1602_ShowStr(2,0,"tempe=000.0C",13);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitTypeDef g;
g.GPIO_Mode = GPIO_Mode_Out_PP;
g.GPIO_Speed = GPIO_Speed_10MHz;
g.GPIO_Pin = GPIO_Pin_8 ;
GPIO_Init(GPIOB,&g);
GPIO_SetBits(GPIOB,GPIO_Pin_8); //输出1
t=DS18B20_DQ_IN;
while(t){
DS18B20_IO_OUT(); //SET PG11 OUTPUT
DS18B20_DQ_OUT=0; //拉低DQ
Delay_DS18B20(750); //拉低750us
DS18B20_DQ_OUT=1; //DQ=1
Delay_DS18B20(15); //15US
DS18B20_IO_IN(); //SET PG11 INPUT
Delay_DS18B20(100);
t=DS18B20_DQ_IN;
// LCD_ShowNum(13,0,t);
}
tem=DS18B20_Get_Temp();
Delay_DS18B20(1000000);
LED_Init(); //初始化IO口
while(1)
{
tem=DS18B20_Get_Temp();//读取温度
if( tem>0) //温度为正
{ a=tem/100;
b=tem%100/10;
c=tem%10;
LCD_ShowChar(8,0,'+');
LCD_ShowNum(9,0,a);
LCD_ShowNum(10,0,b);
LCD_ShowNum(12,0,c);
if(tem>100) //设置比较值,100是指10.0℃
{
GPIO_ResetBits(GPIOA,GPIO_Pin_1); //输出0
GPIO_ResetBits(GPIOA,GPIO_Pin_2); //输出0
}
else
{
GPIO_SetBits(GPIOA,GPIO_Pin_1); //输出1
GPIO_SetBits(GPIOA,GPIO_Pin_2); //输出1
}
if(tem<50) //设置比较值,50是指5.0℃
{
GPIO_ResetBits(GPIOA,GPIO_Pin_3); //输出0
GPIO_ResetBits(GPIOA,GPIO_Pin_4); //输出0
}
else
{
GPIO_SetBits(GPIOA,GPIO_Pin_3); //输出1
GPIO_SetBits(GPIOA,GPIO_Pin_4); //输出1
}
}
else //温度为负
{
// tem1=(int)tem;
// tem1=abs(tem1);
tem1=-(tem);
tem1=tem1+1;
a=tem1/100;
b=tem1%100/10;
c=tem1%10;
LCD_ShowChar(8,0,'-');
LCD_ShowNum(9,0,a);
LCD_ShowNum(10,0,b);
LCD_ShowNum(12,0,c);
}
Delay_DS18B20(100000);
}
下面是该资料的分享下载链接:
https://pan.baidu.com/s/1kkHsvaIII-DqPtD_m6z14A?pwd=p3gb