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主“单片机仿真汇”。在其空间中搜索关键词“微波炉”即可找到对应详细功能视频和介绍。
电路图:
部分源代码:
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);}