标题:
温控风扇stm32c8t6单片机程序
[打印本页]
作者:
lmq123456
时间:
2023-8-1 11:26
标题:
温控风扇stm32c8t6单片机程序
当温度大于等于27°时,电机风扇以80%的占空比工作且进行高温预警蜂鸣器以0.5s为周期鸣叫,红色led以0.3s为周期交替闪烁,温度小于等于24°时风扇停转,绿色led常亮。其他温度以风扇以占空比50%工作,指示灯全灭。
单片机源程序如下:
#include "stm32f10x.h" // Device header
#include "Delay.h"
#include "OLED.h"
#include "Timer.h"
#include "dht11.h"
#include "Motor.h"
#include "PWM.h"
#include "stdio.h"
uint16_t Num=0; //定时器计数变量
uint8_t wendu=0; //温度
uint8_t shidu=0; //湿度
uint8_t Motor_Mode=3; //电机模式
uint8_t Motor_Speed=0; //占空比
void Sys_Mode(uint8_t temp);
int main(void)
{
OLED_Init();
Timer_Init();
DHT11_Init();
Motor_Init();
OLED_ShowCharacters(1, 1, 7);
OLED_ShowCharacters(1, 3, 28);
OLED_ShowCharacters(1, 5, 29);
OLED_ShowCharacters(1, 7, 30);
OLED_ShowCharacters(2, 1, 7);
OLED_ShowCharacters(2, 2, 13);
OLED_DisplayString(2, 5, ":");
OLED_ShowCharacters(2, 5, 9);
OLED_ShowCharacters(3, 1, 27);
OLED_ShowCharacters(3, 2, 13);
OLED_DisplayString(3, 5, ":");
OLED_DisplayString(3, 8, "%");
OLED_ShowCharacters(4, 1, 31);
OLED_ShowCharacters(4, 2, 32);
OLED_ShowCharacters(4, 3, 33);
OLED_DisplayString(4, 7, ":");
OLED_DisplayString(4, 10, "%");
while (1)
{
DHT11_Read_Data(&wendu,&shidu);
if(wendu>26) Sys_Mode(1);
else if(wendu<25) Sys_Mode(3);
else Sys_Mode(2);
OLED_DisplayNum(2, 6, wendu, 2);
OLED_DisplayNum(3, 6, shidu, 2);
OLED_DisplayNum(4, 8, Motor_Speed, 2);
PWM_SetCompare3(Motor_Speed);
}
}
void Sys_Mode(uint8_t temp)
{
switch(temp)
{
case 1:
Motor_Speed=80;
if(Num%5==0)
GPIO_ResetBits(GPIOA, GPIO_Pin_4);
else GPIO_SetBits(GPIOA, GPIO_Pin_4);
if(Num%3==0)
GPIO_ResetBits(GPIOA, GPIO_Pin_5);
else GPIO_SetBits(GPIOA, GPIO_Pin_5);
GPIO_ResetBits(GPIOA, GPIO_Pin_6);//绿色LED灭
break;
case 2:
Motor_Speed=50;
GPIO_ResetBits(GPIOA, GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6);//三输出引脚全部置低电平
break;
case 3:
Motor_Speed=0;
GPIO_ResetBits(GPIOA, GPIO_Pin_4 | GPIO_Pin_5);
GPIO_SetBits(GPIOA, GPIO_Pin_6);//绿色LED常亮
break;
}
}
void TIM3_IRQHandler(void)
{
if (TIM_GetITStatus(TIM3, TIM_IT_Update) == SET)
{
Num ++;
TIM_ClearITPendingBit(TIM3, TIM_IT_Update);
}
}
复制代码
原理图:无
仿真:无
Keil代码下载:
程序.7z
(185.62 KB, 下载次数: 21)
2023-8-1 13:41 上传
点击文件名下载附件
程序代码
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1