PCB 如下:
BOM 表如下:
装配实物图:
2.2 电源板
电源板主要包括电源驱动部分、蜂鸣器驱动电路、继电器驱动电路与连接到控制板的接线口,原理图设计如下:
其中对于电源驱动部分,由 220V 交流电经过保险丝、压敏电阻等,由变压器变成 10.5V,通过 MB10S 桥式整流器由交流转换成直流电输出给 78L05 输出 5V 作为 VCC。
PCB 如下:
BOM 表如下:
装配实物图:
三、软件设计
3.1 总体框架
按照分层的概念,整个电饭煲功能可以分区硬件驱动层与用户应用层。
对于硬件驱动层,分为:
1、数码管驱动
2、按键驱动
3、发光二极管驱动
4、蜂鸣器驱动
5、继电器驱动
对于用户应用层,分为:
1、待机状态
2、工作状态
3、取消状态
各个状态有各自的功能。
思维导图如下:
3.2 功能细化
3.2.1 开机
数码管与LED全亮1秒,1秒后数码管显示“- -”,LED全部熄灭。
3.2.2 各按键功能
功能选择:
(一)、按“功能选择”键,可依次从煮饭-慢炖-粥/汤-保温之间循环切换,所对应的LED点亮;
(二)、选择功能后,无其他操作5秒后自动进入工作状态数码管显示“- -”并往下跳动;
(三)、无其他操作5秒后只能按下“保温取消”键进行取消,取消后LED全灭,数码管显示“- -”。
保温/取消:
(一)、在待机状态下数码管显示“- -”,按“保温取消”键直接进入保温状态。备注:在通电状态下保温时长为24小时;
(二)、在工作状态下数码管显示“- -”并往下跳动,按“保温取消”键可取消操作进行重新操作。
(三)、按“取消”键,功能重新依次从煮饭-慢炖-粥/汤-保温之间循环切换
定时:
(一)、按“定时”键可进行定时设定,煮饭和保温无定时设定;
(二)、按“功能选择”键选择好功能后,再按“定时”键对所选功能进行定时设定。
预约:
(一)、按“预约”键可进行预约设定,保温无预约设定;
(二)、按“功能选择”键选择好功能后,再按“预约”键对多选功能进行预约设定;
(三)、预约时间操作完成后,无其他操作5秒后进入预约状态,指示灯开始闪烁。
3.2.3 电饭煲定时与预约功能
煮饭:
(一)、数码管显示“- -”并间隔1s闪烁,“煮饭”LED点亮;
(二)、无其他操作5秒后,数码管显示“- -”并往下一直跳动,蜂鸣器响一声;
(三)、无其他操作5秒后只能按下“保温取消”键进行取消,取消后LED全灭,数码管显示“- -”;
(四)、5秒内按“预约”键,数码管显示“0.5”,每按一下“预约”键,数码管显示数值增加0.5,一直到显示“10.”(注意显示一个点)切换为数值每次增加1,一直到显示“24.”,再按一下“预约”键就显示“0.0”,无其他操作5秒后,数码管显示“预约值”(不闪烁),“煮饭”LED间隔1秒闪烁,蜂鸣器响一声
慢炖:
(一)、数码管显示“1.0”并间隔1秒闪烁,“慢炖”LED点亮;
(二)、无其他操作5秒后,数码管显示“1.0”不闪烁,蜂鸣器响一声;
(三)、无其他操作5秒后只能按下“保温取消”键进行取消,取消后LED全灭,数码管显示“- -”;
(四)、按“定时”键每次数码管显示数值增加0.5,从显示“1.0”到“4.0”循环;
(五)、5秒内按“预约”键,数码管显示“0.5”,每按一下“预约”键,数码管显示数值增加0.5,一直到显示“10.”切换为数值每次增加1,一直到显示“24.”,再按一下“预约”键就显示“0.0”,无其他操作5秒后,数码管显示“预约值”(不闪烁),“慢炖”LED间隔1秒闪烁,蜂鸣器响一声。
粥/汤:
(一)、数码管显示“10”(注意不显示点)并间隔1秒闪烁,“粥/汤”LED点亮;
(二)、无其他操作5秒后,数码管显示“- -”并往下一直跳动,蜂鸣器响一声;
(三)、无其他操作5秒后只能按下“保温取消”键进行取消,取消后LED全灭,数码管显示“- -”;
(四)、按“定时”键,在数码管显示“10”到“50”范围每次数值增加10,按至显示“50”后再按变为显示“1.0”,在显示“1.0”到“4.0”范围每次增加0.5,按至显示“4.0”后再按变为显示“10”。
(五)、5秒内按“预约”键,数码管显示“0.5”,每按一下“预约”键,数码管显示数值增加0.5,一直到显示“10.”切换为数值每次增加1,一直到显示“24.”,再按一下“预约”键就显示“0.0”,无其他操作5秒后,数码管显示“预约值”(不闪烁),“粥/汤”LED间隔1秒闪烁,蜂鸣器响一声。
保温:
(一)、数码管显示“bb” 并间隔1秒闪烁,“保温”LED点亮;
(二)、无其他操作5秒后,数码管“bb”不闪烁,蜂鸣器响三声;
(三)、无其他操作5秒后只能按下“保温取消”键进行取消,取消后LED全灭,数码管显示“- -”。
3.2.4 电饭煲加热功能
煮饭:
煮饭功能煮饭测试:
(一)、进入工作后开始加热,持续加热到130℃后停止,温度降至105℃继续加热50秒,加热停止后温度降至100℃进入7分钟倒计时;
(二)、在七分钟倒计时期间,停止加热2分钟,加热30秒,停止加热2分30秒,加热30秒,之后等待时间结束进入保温。
慢炖:
定时“1.0”功能加水测试:
(一)、实际工作1小时,显示部分以倒计时形式显示,从“1.0”开始->“59”-> … -> “01”;
(二)、进入工作后开始加热,15分钟后关闭加热(温度92℃)、17分40秒开启加热(温度95℃)、18分55秒关闭加热(温度96℃)、19分40秒开启加热(温度97℃)、10秒后关闭加热、30秒后开启加热、如此反复间断加热10秒、不加热30秒,直到到达时间,到达时间后蜂鸣器鸣叫三声进入保温模式。
粥/汤:
定时“10”功能测试:
(一)、实际工作时长57分15秒,显示部分以“- -”往下刷新,在最后十分钟显示“10”开始每分钟倒计时;
(二)、进入工作后开始加热,14分钟后关闭加热(温度95℃)、16分15秒开启加热(温度96℃)、然后进入间断加热,加热8秒、不加热32秒,直到到达时间,到达时间后蜂鸣器鸣叫三声进入保温模式。
定时“1.0”功能测试:
(一)、大约加热1个小时后,显示“59”倒计时;
(二)、间断加热同上。
保温:
保温功能加水测试:
(一)、72℃开启加热、80℃关闭加热。
3.2.5 其他说明
- 煮饭工作时间约40分钟;
- 慢炖工作时间约60分钟;
- 粥/汤工作时间约75分钟;
- 保温功能可用于加热饭菜工作时间约20分钟
- 每次按按键响一声
- 预约时间到,长鸣一声
3.3 主流程图
3.4 主函数程序
#include <cms.h>
#include "typedef.h"
#include "main.h"
#include "buzzer.h"
#include "task.h"
#include "display.h"
#include "key.h"
#include "working.h"
static volatile bool Flag_Main;
/\*\*
\* @brief 毫秒延时函数
\* @param x:毫秒数
\* @retval 无
\*/
void DelayXms(unsigned char x)
{
unsigned char i = 0;;
while(x--)
{
asm("clrwdt");
while(--i)
{
asm("nop");
asm("nop");
asm("nop");
asm("nop");
}
}
}
/\*\*
\* @brief 系统寄存器初始化
\* @param 无
\* @retval 无
\*/
void SysInit(void)
{
asm("nop");
asm("clrwdt");
//预分频给TMR0
OPTION_REG =0;
//内部振荡器8M
OSCCON = 0X71;
//允许所有未被屏蔽的中断、外设中断
INTCON = 0xC0;
//配置上拉情况
WPUA = 0B00000010;
WPUB = 0B01100000;
WPUC = 0B00000001;
//配置IO状态
TRISA = 0B00000010;
TRISB = 0B11100000;
TRISC = 0B00000001;
}
/\*\*
\* @brief 定时器初始化
\* @param 无
\* @retval 无
\*/
void TimerInit(void)
{
//---------------------------------------
//125us中断初始化
PR2 = 249; //赋初值
TMR2IF = 0; //清中断标志位
TMR2IE = 1; //允许Timer2中断
T2CON = 0x04; //开启Timer2,预分频值为1,后分频比为1:1
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**
**深知大多数嵌入式工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**
**因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**



**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**


**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
**如果你觉得这些内容对你有帮助,可以+V:Vip1104z获取!!! (备注:嵌入式)**
<img src="https://img-community.csdnimg.cn/images/73bb5de17851459088c6af944156ee24.jpg" alt="img" style="zoom: 67%;" />
# 最后
**资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~**
**你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!**
asnv-1712386152279)]
[外链图片转存中...(img-zO5aCbqp-1712386152279)]
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
**如果你觉得这些内容对你有帮助,可以+V:Vip1104z获取!!! (备注:嵌入式)**
<img src="https://img-community.csdnimg.cn/images/73bb5de17851459088c6af944156ee24.jpg" alt="img" style="zoom: 67%;" />
# 最后
**资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~**
**你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!**
**[更多资料点击此处获qu!!](https://bbs.csdn.net/topics/618376385)**