200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 基于stm32单片机智能温控风扇控制系统Proteus仿真

基于stm32单片机智能温控风扇控制系统Proteus仿真

时间:2021-09-04 01:06:39

相关推荐

基于stm32单片机智能温控风扇控制系统Proteus仿真

资料编号:103 下面是相关功能视频演示:

103-基于stm32单片机智能温控风扇控制系统Proteus仿真(源码+仿真+全套资料)

功能介绍:采用stm32单片机、ds18b20温度传感器采集温度,通过判断当前的温度值是否超过预设值,来控制风扇电机和指示灯的打开与关闭,预设值程序可调,温度采用LCD1602显示。程序采用C语言,有中文注释,容易看懂,仿真采用Proteus

下面是部分程序展示:

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

}

}

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);

}

下面是该资料的分享下载链接:

/s/1tyWUfXmeXQoryu4NTpa58Q?pwd=6yr3

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。