微波炉控制器的设计与分析_第1页
微波炉控制器的设计与分析_第2页
微波炉控制器的设计与分析_第3页
微波炉控制器的设计与分析_第4页
微波炉控制器的设计与分析_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

用HT46X23设计微波炉控制器实例分析微波炉控制器工作环境相对比较恶劣。首先是炉腔温度比较高,控制器附近温度也会比较高,达到60°C〜70°C;另一方面,微波辐射对单片机抗干扰要求也很高,在做多次快速开关门试验中,当少量微波泄露时,对控制器有一定辐射,以及反复开通和关断大功率负载会产生较强干扰。所以选择合适单片机十分重要,在多年家电产品设计中,经常用盛群半导体(Holtek)48系列及46系列8bit单片机设计微波炉控制器,无论在适应工作环境还是抗干扰等方面都完全满足要求,在成本及供货等方面比国外芯片也有更明显优势。本文通过实际产品为例,以产品功能要求、方案确定和芯片选型、硬件设计、软件规划及编写等几部分介绍如何用单片机设计微波炉控制器。字串1功能要求设计产品首先了解产品要求,了解越详细设计反复修改就越少,特别是关于影响芯片选型及输出控制等跟硬件直接相关部分。本文介绍微波炉控制器主要功能如下:微波加热,功率有10档。烧烤加热,功率有2档。热风烘烤加热,温度多档。混合加热,有三种组合模式:烧烤加微波、烘烤加微波、烘烤加烧烤。自动解冻,重量选择有20档。自动菜单,6大类,各类分别有重量选择。显示:88:88数码管,四周带14个图标。按键:有功能选择键、启动键、取消键、热风烘烤键,时钟及定时键,自动菜单各功能键,总共11个。编码开关:调节加热时间。另有蜂鸣器、门检测和门灯控制。字串6方案确定和芯片选型了解产品详细要求后,需要确定具体实现方案,首先是选择合适单片机。选择合适型号主要要看两个方面:硬件资源和软件资源。要选择合理单片机首先必须了解单片机各系列及各款资源,再了解需要什么样资源,下面分别从硬件和软件来说明怎样根据要求选择单片机。在选择单片机时,整个产品方案也基本确定。硬件相关资源硬件相关资源是指外围硬件相关如I/O数量、特殊驱动、工作电压等。字串1首先,选择合适单片机系列。看供电电压及工作温度抗干扰能力等是否满足要求。盛群MCU在系统振荡频率小于4MHz时供电电压供电范围为2.2V〜5.5V,当8MHz时则为3.3V〜5.5V,要提高系统抗干扰能力,最用5V电压供电,当供电电压较高时,MCU内部所有逻辑电平幅值较高,容差电压大,干扰更强才能改变其逻辑状态。工作温度,选择Holtek48和46系列工业级单片机,工作温度范围为-40C〜85C,完全能满足微波炉控制器工作温度要求。在选择合适系列时,还要看特殊资源要求,如中断口、PWM、蜂鸣器驱动、A/D转换等;在此产品具体要求中,需要检测炉腔温度以及在产品中需要对交流风扇调速,温度检测需要A/D转换,交流风扇调速控制需要有过零中断,所以,在这个产品中选择了46系列单片机。但此产品不需要LCD驱动、高精度A/D转换及比较器等资源,则不选择HT46R6X、HT46R5X、HT46R1X等系列,而选择HT46R2X系列。字串5再就是选择具体I/O要求和什么样封装单片机,在Holtek单片机中同型号单片机有多种封装,如HT46R23有DIP28或SOP28封装,也有DIP24或SOP24封装,其I/O分别为23个和19个。根据前面提到功能要求,其I/O需求列举如下:继电器驱动:微波、烧烤、热风烘烤、门灯/转盘、散热风扇共5个输出ports0蜂鸣器驱动:1个输出ports按键有11个:11个输入port门状态检测:1个输入port编码开关检测:2个输入port显示数码管:5个COM,9个段,需14输出port过零中断检测:1个中断输入port温度检测:1个A/D输入port简单加起来总共需要20个输出port,16个输入port。考虑复用I/O,将9个数码驱动段和5个公共端同时做输入检测;温度检测只能用A/D口PB.0,过零检测只能用单独中断PA.5来检测,所以总共需要22个I/O,所以选择28PINHT46R2x可以满足要求。字串2软件相关资源软件相关资源主要包括程序空间即ROM大小和数据空间RAM多少,当功能较多且复杂时需要更多ROM和RAM;当然还有定时器、中断、以及其它某些特殊资源;前面已经选择了28PIN封装46R2X系列单片机,此产品功能相对比较丰富,程序空间要求比较多,选择4KROM和192byteRAMHT46R23应该能够满足要求,同样封装可以选择28PINHT46R24,它有8KROM和384byteRAM,可以做后备选择,这样不必担心资源不够时换IC,反复修改硬件就很麻烦。总之,在选择资源时,要软硬兼顾,如果程序简单,硬件资源要求高,则可以选择封装小、I/O少单片机,另外增加扩展IC来扩展I/O;当程序复杂,硬件资源要求少时,则选择较小封装、软件资源多单片机。字串3硬件电路设计在选择主芯片时,已经在考虑部分电路设计了,显示、按键检测、输出驱动等都考虑了,由于篇幅有限,只简单介绍几个关键问题:门检测电路:给单片机检测门开关信号同时,还要控制微波、烧烤、热风烘烤继电器电源。供电部分:考虑数码管显示内容较多,驱动电流大,变压器尽量选择继电器和单片机独立供电,一方面降低变压器功率,同时可以让单片机电源不受继电器工作状态影响。过零检测和触发:选择合适光耦和可控硅驱动电路,实现过零驱动,过零检测电路注意适当滤波和隔离,减少通过电源耦合干扰。微波炉控制器电路原理图如图1字串3740)this.width=740"border=undefined>图1HT46X23微波炉原理图字串2另外,PCB设计时注意强弱电分开,注意电源与地分布,注意生产工艺性问题等。总之,合理硬件设计和PCB布板对保证产品功能和性能十分重要。字串2软件规划及编写芯片配置选项设定根据硬件电路,将按键、编码开关及门检测部分内部设置上拉电阻;盛群单片机LVD功能很可靠,所以复位电路直接接到VCC,那么在设置配置选项时一定要开启低电压复位功能,不开启容易上电复位不良。下面将主要选项设定列举如下:PA3/PFD:EnablePFDPull-HighPB:EnablePull-HighPC:DisablePull-HighPD:EnableOSC:CrystalWDTclocksource:WDTOSCWDT:EnableLVR:EnableLVRvoltage:3.2VCLRWDT:TwoInstructions.软件整体规划及模块化分解将复杂功能分解,通过变量传递各模块之间关联内容,模块内部则尽量独立完成,这样让程序可移植性提高,调试更快。把复杂问题简单化是程序编写重要原则。字串41)主程序通过调用各子程序,整合各模块功能。数码管扫描显示对时间要求比较高,而且各个公共端要平均分配时间,所以主程序执行周期选择固定周期。另外编码开关也是扫描检测方式,当编码开关旋转很快时,脉冲频率较高,扫描周期也不能太长,综合整体,主程序选择4ms为执行周期,但显示和按键及编码开关则执行2次,相当于2ms扫描周期。如果用4MHz晶振,4ms时间可以执行4000条指令,程序设计合理情况下完全可以运行完各子程序,不担心出现当处理事件多时显示闪烁等问题。2)编码开关、按键及门状态检测因编码开关、按键及门状态检测I/O都同显示驱动I/O复用,所以需统一处理。先关闭显示COM,检测SEG上状态,再关闭SEG,再检测COM上状态。此部分程序还要完成按键检测及消抖动处理、编码开关检测、门状态去抖动检测,以有效按键变量、编码开关左右旋转标志、门状态等为输出。其它子程序根据按键、编码开关操作和门状态执行对应操作和功能。字串33)过零检测及过零触发过零检测在外部中断程序中完成,中断后根据当前运行状态设置散热风扇半功率、全功率和关三种状态。开和关状态直接设置控制光耦状态,当需要半功率时,需要记录中断次数,调整导通和关闭周期,这里没有用调整可控硅导通移相方法调功,可减少电磁辐射。4)按键设置按键操作设置程序输入条件为有效按键和编码开关左右旋转标志,再细分每个按键分别处理,在什么条件下设置对应工作时间、输出模式、显示模式、蜂鸣器鸣叫等。5)显示状态设置设置4字节保存显示数字部分内容,另2字节保存四周图标变量,由于四周图标有闪烁和不闪烁状态,另2字节设置图标闪烁状态。6)显示输出扫描根据显示状态变量8字节变量内容,设置数码管对应COM和SEG,扫描显示输出。7)加热输出及功率控制设置字串7加热和功率控制程序通过统一变量输入,设置当前微波、烧烤、热风还是几种混合加热,以及设置内灯及散热风扇输出等。8)温度检测及计算设置A/D转换,检测热敏电阻值,并滤波处理,以及开路短路保护检测。其输出为故障状态标志和当前炉腔温度。在热风烘烤输出程序中根据温度设置对应加热状态。9)时钟、定时及运行时间计算及对应输出模式切换程序中关于时间设置很多,大多都在这个子程序中完成,如时钟计算、预约比较、倒计时、自动功能多段加热模式切换等。10)蜂鸣器设置两个变量buz_n,buz_long来设置蜂鸣器鸣叫次数和单声鸣叫长度。可单独设置buz_long值为单声鸣叫,在上电和按键操作时设置单声鸣叫。当定时结束或定时启动或故障提示等情况时,需要设置鸣叫多时,设置buz_n值就可以了。字串811)定时中断子程序定时中断子程序相对很简单,只设置中断次数记录就可以了。由于蜂鸣器鸣叫频率为2KHz,所以定时中断时间为250us。其中内容比较多部分是:按键操作、显示状态设置、时钟、定时及运行时间计算及对应输出模式切换、加热输出及功率设置等部分。在软件编写中,变量规划很重要,下面还列出了几个典型变量规划:整个产品主要工作模式用run_state来记录:run_stateequ[40h]s_hotfanequrun_state.0;热风烘烤s_microequrun_state.1;微波s_grillequrun_state.2;烧烤s_mixequrun_state3;混合模式s_autoequrun_state.4;自动解冻s_muequrun_state.5;自动菜单工作模式s_fastequrun_state.6;快速启动模式显示模式用dsp_state来记录:dsp_stateequ[41h]s_timeequdsp_state.0;显示时钟状态字串1_s_timerequdsp_state.1;显示定时时间状态s_off_tequdsp_state.2;显示倒计时状态s_codeequdsp_state.3;显示菜单或工作模式状态加热模式heat_mode变量来控制当前输出,其具体数据说明如下:0则关闭所有输出。bit0_bit3(10_1)保存微波100%/90%/80%/70%/60%/50%/40%/30%/20%/10%/10档,即最后4bit来记录微波输出功率,在自动解冻、自动菜单、混合等非简单微波模式时,加热功率输出时只需要判断此变量,就直接设置微波输出。bit4_bit5保存烧烤功率100%和50%。bit7保存热风烘烤输出。当有混合状态时,则同时设置对应位就可以了。合理设计变量对整个程序编写很有用,同时也是对产品功能规划和理解具体化,找出主要和关键控制关系,设计合适、适当通用算法。而且对于经常编写同类产品时,移植程序变得很简单;比如将此产品数码管换为LCD显示时,基本上只需要将显示输出部分修改为驱动显示IC或显示RAM就可以了,其显示得内容还是显示时间、定时、倒计时时间、菜单或模式,只需要修改对应得显示表就可以了。字串1程序编写和程序调试软件简单规划后,就需要具体编写,将任务分解后,每部分已经比较简单了,调试时可以考虑各子程序单独调试,人为模拟输入各种情况下数据及状态,检查输出是否正确。再将相关联一起调试。除非很有把握,不要将程序全编写完了再调试,那样就不知道到底哪里有问题。程序简单题纲如下:;定义常量,某些固定值,多次用到或经常修改常量,单独定义后调用。buz_l0equ50d;50*4=200ms设置所有默认蜂鸣器鸣叫声音长度。sw_t0equ70d;有效按键响应时间,按键去抖动时间。。。。。。;定义I/O,将各输入/输出单独按功能或原理图网络标号定义,当原理图修改时方便软件修改buz_pequpa.3grill_pequpc.0micro_pequpc.1字串9;定义变量,run_stateequ[40h];或则用自动变量定义;程序开始org0hjmpstart_lorg04H;外部中断向量jmpint_set;跳转过零中断处理程序org08H;定时中断向量,中断周期为250usmovtemp_a,a;保存mova,statusmovtemp_s,ainct_int0;每次中断0.25usmova,temp_smovstatus,amova,temp_areti;中断处理程序,注意先保存用到ACC和标志寄存器status,返回前恢复int_set:......;中断处理程序,设置风扇输出reti;主程序开始start_l:;初始化RAM、I/O、timer、中断等,一般先将通用RAM全清零;注意继电器等关键变量初始化,否则上电时继电器可能会跳一下。;初始化某些特殊变量;主循环程序部分main:callsw_in_set;注意按键设置会将显示关闭,则显示输出程序在后calldsp_out_set;显示扫描程序callsw_out_set;按键功能及状态设置callad_tem_set;A/D转换及温度计算calldsp_state_set;显示状态计算字串9main_delay_2ms:mova,t_int0;0.25*8=2等待2ms时间到suba,8snzcjmpmain_delay_2mscallsw_in_set;注意按键设置会将显示关闭,则显示输出程序在后calldsp_out_set;调用显示扫描程序callheat_out_set;调用加热状态及功率设置callbuz_set;调用蜂鸣器设置子程序calltime

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论