• 基于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);
      }

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

    https://pan.baidu.com/s/1tyWUfXmeXQoryu4NTpa58Q?pwd=6yr3 

  • 相关阅读:
    【21天学习挑战赛】图像的旋转问题(二维数组)
    7-1~7-2
    C++11并发支持库函数std::call_once
    vue 封装菜单组件 来回跳转使菜单高亮
    极空间Docker安装Alist套件整合阿里云盘、百度云盘等网盘资源并挂载到本地供极影视刮削播放完整教程
    mac安装java
    C语言指针操作(五)*指向函数的指针
    迈特优×实在RPA丨每年节省人天800+,企业自动化前后的区别如此大?
    php 进程通信系列 (三)信号量
    本地开发申请ssl证书并在宝塔上给网站配置ssl
  • 原文地址:https://blog.csdn.net/m0_74295839/article/details/127943943