- 1、本文档共17页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于单片机的声控燃气灶设计论文
基于凌阳单片机的智能化燃气灶设计
摘要:文章以凌阳公司16位单片机SPCE061A为核心,与传统电子燃气灶结合,设计出家庭厨房应用的智能化燃气灶。该燃气灶。在硬、软件设计中,系统采用SPCE061A型单片机为控制核心,使用C语言为编程语言,提高了系统整体的稳定性。
关键词:燃气灶;SPCE061A;燃气灶是家庭普及率非常高的厨房电器,科技在不断发展,燃气灶也在不断更新换代,百姓的生活逐步走向自动化、完美化。电子燃气灶正在朝着自动化、智能化方向发展。本文设计的智能燃气灶实现了功能。设计并实现智能燃气灶,对于实现厨房智能化、自动化有着重要的现实意义。
一、工作原理
SPCE061A单片机、步进电机、脉冲点火器,光耦隔离器、51单片机等组成。
图片1:普通燃气灶 图片2:SPCE061A单片机 图片3:步进电机
图片4:光耦隔离器 图片5:脉冲点火器
智能燃气灶系统的工作原理:
当系统接收到来自使用者的“左转”(小火)语音信号时,由单片机给出相应信号控制步进电机调节反转合适角度燃气器阀减小燃气进气量,从而实现减小火力;
当系统接收到来自使用者的“熄火”语音信号时,由单片机给出相应信号控制步进电机调节燃气阀停止供气,以达到熄火目的。
二、硬件设计
我们选择凌阳公司(Sunplus)开发的16位SPCE061A,它的突出优点是低功耗和功能集成,内部的语音资源可实现语音功能,并适合于自动信号采集、等领域应用。
该系统的控制部分电路,主要由SPCE061A单片构成,其中通过来部分以凌阳SPCE061A单片机为控制核心。
(一)
点火部分由两部分组成,包括和部分。用于。光耦隔离器制板图
(二)火力控制部分
火力控制主要有两种方法,一种是通过传统旋钮进行对火力大小进行控制,另一种是,从大火力转到小火力控制时通过发出控制信号,控制,然后再控制阀调节来调节火力大小和关断燃气灶的。控制火力过程如下,,将燃气灶点燃并让火力处于中火位置。当需要大火时,使用者发出“大火”语音信号,CPU接收到语音信号并给出相应控制信号,控制步进电机产生相应动作,调节燃气阀增大进气量,从而增加火力。当需要小火时,使用者发出“小火”语音信号,CPU接收到语音信号并给出相应控制信号,控制步进电机产生相应动作,调节燃气阀减小进气量,从而减小火力。
三、软件设计
本系统使用凌阳单片机支持的C语言进行编写,程序采用模块化的编程方法,将程序分为主程序、、等几部分。
主程序流程图
1
(二)
SPCE061A语音程序
#include bsrsd.h
#define NAME_ID 0x100
#define COMMAND_ONE_ID 0x101
#define COMMAND_TWO_ID 0x102
#define COMMAND_THREE_ID 0x103
#define COMMAND_FOUR_ID 0x104
#define RSP_INTR 0
#define RSP_NAME 0
#define RSP_FIRE 1
#define RSP_GUARD 2
#define RSP_AGAIN 3
#define RSP_NOVOICE 4
#define RSP_NAMEDIFF 5
#define RSP_CMDDIFF 6
#define RSP_STAR 7
#define RSP_MASTER 8
#define RSP_HERE 9
#define RSP_GUNSHOT 0
#define RSP_PATROL 11
#define RSP_READY 12
#define RSP_COPY 13
#define RSP_NOISY 14
//..................全程变量....................
int gActivated = 0; //该变量用于检测是否有触发命令,当有识别出语句
//为触发名称则该位置1
int gTriggerRespond[] = {RSP_MASTER, RSP_HERE, RSP_MASTER};
int gComm2Respond[] = {RSP_PATROL, RSP_READY, RSP_COPY};
extern void ClearWatchDog();
int PlayFlag = 0;
void PlayRespond(int Result)
{
BSR_StopRecognizer();
SACM_S480_Initial(1);
SACM_S480_Play(Result, 3, 3);
while((SACM_S480_St
文档评论(0)