STM32 Proteus UCOSII系统微波炉控制系统DS18B20-0057

STM32 Proteus UCOSII系统微波炉控制系统DS18B20-0057

Proteus仿真小实验:

STM32 Proteus UCOSII系统微波炉控制系统DS18B20-0057

功能:

硬件组成:STM32F103R6单片机 +LCD1602显示器+多个按键+蜂鸣器+DS18B20温度传感器+3个LED灯表示档位+加热指示灯+完成指示灯+蜂鸣器

单片机程序使用UCOSII操作系统,按键扫描任务 显示任务 倒计时计算任务  温度采集任务

1.温度设置有三个档位低温 (20°),中温 (30°),高温 (50°),分别用显示 LED黄、绿、红灯显示。

2.定时时长可以设置为 10min,用两个键调整  ,按一次  加一分钟,按一次  减一分钟,在加热过程中可以调整加热时间

当到达设定时间长度时或者提前温度超过温度档位,蜂鸣器报警提示,LED 灯闪烁,同时时间归零

3.有个复位键,时间没到就可以归零。

4.用1602 显示屏,一个显示当前温度 (用到 ds18b20 传感器),一个显示定时倒计时。倒计时为零时,触发蜂鸣器会提示结束

有功能视频哦:

可以哔哩哔哩B站搜索UP主“单片机仿真汇”。在其空间中搜索关键词“微波炉”即可找到对应详细功能视频和介绍。

电路图:

STM32 Proteus UCOSII系统微波炉控制系统DS18B20-0057_第1张图片

 

部分源代码:

void main()

{

//温度采集任务

//设置任务优先级

#define Wendu_task_PRIO        2 

//设置任务堆栈大小

#define Miao_STK_SIZE        128

//任务堆栈

OS_STK Wendu_task_STK[Miao_STK_SIZE];

//任务函数

void Wendu_task(void *pdata);

//LCD显示任务

//设置任务优先级

#define LCD1602_TASK_PRIO        4 

//设置任务堆栈大小

#define LCD1602_STK_SIZE    128

//任务堆栈

OS_STK LCD1602_TASK_STK[LCD1602_STK_SIZE];

//任务函数

void LCD1602_task(void *pdata);

//时间计算任务

//设置任务优先级

#define TIME_TASK_PRIO        1 

//设置任务堆栈大小

#define TIME_STK_SIZE   128

//任务堆栈

OS_STK TIME_TASK_STK[TIME_STK_SIZE];

//任务函数

void TIME_task(void *pdata);

//按键处理任务

//设置任务优先级

#define KEY_TASK_PRIO        9 

//设置任务堆栈大小

#define KEY_STK_SIZE   128

//任务堆栈

OS_STK KEY_TASK_STK[KEY_STK_SIZE];

//任务函数

void KEY_task(void *pdata);}

你可能感兴趣的:(Proteus仿真,stm32,proteus,嵌入式硬件)