简易微波炉控制器的设计与实现

合集下载

简易微波炉控制器的设计与实现

简易微波炉控制器的设计与实现

数电综合实验报告简易微波炉控制器的设计与实现班级:姓名:学号:日期::设计课题的任务要求---------------------------------------------------------- 3 基本要求:------------------------------------------------------------- 3提高要求:------------------------------------------------------------- 3 二:系统设计(包括设计思路、总体框图、分块设计)----------------------------- 3 设计思路--------------------------------------------------------------- 3总体框图--------------------------------------------------------------- 3分块设计--------------------------------------------------------------- 4 1分频器------------------------------------------------------- 42:防抖模块--------------------------------------------------- 43:控制器 ----------------------------------------------------- 44:数据装载 --------------------------------------------------- 54:倒计时模块 ------------------------------------------------ 65:译码模块 ---------------------------------------------------- 76:数码管驱动模块 -------------------------------------------- 77:火力显示 --------------------------------------------------- 88: led显示模块----------------------------------------------- 99:蜂鸣器模块------------------------------------------------- 9 三:仿真波形及波形分析------------------------------------------------------- 91:控制器仿真-------------------------------------------------- 92数据装载仿真------------------------------------------------ 103倒计时模块:---------------------------------------------- 104:decoder译码电路模块---------------------------------------- 115:驱动数码管模块 -------------------------------------------- 116: led显示模块---------------------------------------------- 117:蜂鸣器模块 ---------------------------------------------- 12&总体仿真 ---------------------------------------------------- 12 四:源程序------------------------------------------------------------------- 121:分频器 ----------------------------------------------------- 122:防抖模块 -------------------------------------------------- 133:控制器 ---------------------------------------------------- 144:数据装载模块 -------------------------------------------- 165:倒计时模块 ------------------------------------------------ 179:火力模块 -------------------------------------------------- 2311:蜂鸣器模块 ----------------------------------------------- 27 五:功能说明----------------------------------------------------------------- 28 六:元件清单和利用情况------------------------------------------------------ 28 七:故障和问题分析---------------------------------------------------------- 28八:总结和结论-------------------------------------------------------------- 29一:设计课题的任务要求设计制作一个简易微波炉控制器。

微波炉控制系统的设计与实现

微波炉控制系统的设计与实现

微波炉控制系统的设计与实现微波炉是当今家庭中必不可少的家用电器之一,其方便、快捷、安全的特点受到了人们的欢迎。

然而,微波炉在工作过程中需要通过控制系统来调节电磁波的输出,以确保食品的加热效果和安全性。

因此,设计和实现一个稳定可靠的微波炉控制系统是必不可少的。

一、控制系统的功能需求微波炉控制系统主要需要完成如下功能:电源控制、电磁波输出控制、时间计时和显示以及安全机制的设计。

其中,电源控制需要控制微波炉的电源输入和输出,以保证稳定工作;电磁波输出控制主要用于调节电磁波的输出功率;时间计时和显示则是通过LED显示屏或者液晶屏来显示时间,并进行倒计时;安全机制用于保证用户的安全,在炉门未关闭时自动切断电源。

二、控制系统的工作原理微波炉的工作原理是通过控制系统来调节电源输入和输出电磁波的功率、频率和时序。

当用户开启微波炉时,系统首先进行电源控制,确保电源正常工作,然后进入电磁波输出控制阶段。

在输出控制阶段中,系统根据用户设定的输出功率和烹饪时间来控制电磁波的输出功率和时序,以确保食品能够均匀加热。

同时,系统还需要进行时间计时和显示,为用户提供倒计时和时间显示功能。

当烹饪结束时,系统自动关闭电源,同时启动安全机制,切断电源,以保证用户的安全。

三、控制系统的硬件设计控制系统的硬件主要包括中央处理器(CPU)、晶振、存储器、显示屏、光电传感器和电源控制模块等。

其中,CPU是控制系统的核心,用于控制微波炉的工作流程。

晶振则提供稳定的时钟信号,为系统提供精准的时间计时功能。

存储器用于存储微波炉的各种工作参数和数据,以便后续的查询和更新。

显示屏则提供时间计时和烹饪过程的显示功能,便于用户操作和使用。

光电传感器则用于检测炉门的关闭状态,以触发安全机制的启动。

电源控制模块用于对电源进行控制和管理,确保系统的稳定性和安全性。

四、控制系统的软件设计控制系统的软件设计涉及到编程语言、操作系统和控制程序的编写等方面。

在编程语言方面,常用的有C语言、汇编语言和嵌入式语言等。

VHDL微波炉控制器设计

VHDL微波炉控制器设计

目录一、绪论 (2)二、关键技术简介 (2)2.1 FPGA简介 (2)2.2 VHDL语言概述 (2)2.3 ALTIUM DESIGNER简介 (3)三、微波炉定时控制器的设计方案分析 (4)3.1 系统设计的要求 (4)3.2 系统总体功能描述 (4)3.3 各模块的功能实现 (5)3.3.1 输入模块 (5)3.3.2 状态控制模块 (5)3.3.3 显示模块 (5)四、系统详细设计 (7)4.1控制模块 (7)4.1.1状态转换控制 (7)4.1.2数据装载 (9)4.1.3 烹饪计时 (10)4.1.4 控制模块的实现 (11)五、系统仿真 (11)5.1状态控制器仿真 (11)5.2 数据装载器的仿真 (12)5.3 烹饪计时器的仿真 (13)六、结论 (14)一、绪论随着人民生活水平的提高,微波炉开始进人越来越多的家庭,它给人们的生活带来了极大的方便。

微波炉由 2450MHz 的超高频来加热食物。

它省时、省电、方便和卫生。

作为现代的烹饪工具,微波炉的控制器体现着它的重要性能指标。

目前大部分微波炉控制器采用单片机进行设计,电路比较复杂,性能不够灵活。

本文采用先进的EDA技术,利用ALTIUM DESIGNER工作平台和VHDL设计语言,设计了一种新型的微波炉控制器系统。

该系统具有系统复位、时间设定、烹饪计时等功能,在 FPGA 上实现。

二、关键技术简介2.1 FPGA简介FPGA(Field-Programmable GateArray),即现场可编程门阵列,它是在PAL、 GAL、CPLD 等可编程器件的基础上进一步发展的产物。

它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

目前以硬件描述语言(Verilog 或 VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC 设计验证的技术主流。

微波炉控制器

微波炉控制器

微波炉控制器微波炉是一种微波加热食品的现代化烹调灶具,它由电源、磁控管、控制电路和烹调腔组成。

其中,微波炉控制器部分完成各工作状态之间的切换功能,可以通过硬件语言描述的数字系统来实现。

详细分析微波炉控制器的原理和组成结构,并设计一个简单的具有定时和信息显示功能的微波炉控制器。

一、系统设计要求设计一个具备定时和信息显示功能的微波炉控制器。

要求该微波炉控制器能够在任意时刻取消当前工作,复位为初始状态。

可以根据需要设置烹调时间的长短,系统最长的烹调时间为59分59秒;开始烹调后,能够显示剩余时间的多少。

显示微波炉控制器的烹调状态。

二、系统设计方案分析上述设计要求,微波炉控制器可由以下四个电路模块组成:状态控制电路,其功能是控制微波炉工作过程中的状态转换,并发出相关控制信号;数据装载电路,其功能是根据控制信号选择定时时间,测试数据或计时完成信息的载入;计时电路,其功能是对时钟进行减法计数,提供烹调完成时的状态信号;显示译码电路,其功能是显示微波炉控制器的各状态信息。

图1 微波炉控制器的系统框图微波炉控制器的系统框图如图1所示。

其中,CLK为时钟输入信号,时钟上升沿敏感;RESET为复位信号,高电平有效时系统复位清零;TEST为数码显示管测试信号,高电平有效,用于测试显示管是否正常工作;SET_T为烹调时间设置信号,高电平有效时允许设置烹调时间;DATA为定时时间输入信号,用于设置烹调时间的长短,其由高到低分别表示定时时间分、秒的十位,个位;START为烹调开始信号,高电平有效时开始烹调;输出信号COOK指示微波炉状态,高电平时表示烹调进行时;SEC0、SEC1、MIN0、MIN1分别表示秒个位、秒十位、分个位、分十位。

顶层模块的RTL原理图如下:微波炉控制器的工作流程如下:首先,对系统进行复位清零,使其各电路模块均处于初始状态;当烹调时间设置信号SET_T有效时,读入时间信号DATA[15…0]的取值,此时系统自动复位并显示设置的时间信息,按下开始键START,系统进入烹调状态,COOK信号变为高电平,时钟计数器开始减法计数,显示剩余烹调时间。

微波炉控制器设计[1]

微波炉控制器设计[1]

二、文献综述现有市售的微波炉其主要弊端为:不能按既有程序进行烹调,在节能方面也未做过多考虑。

烹调经验告诉我们,家常菜大多可按固定程序烹调、炖肉、煮饭、烘烤。

若采取分时、分档火力加热,则可节能。

微波炉控制系统功能比较齐全,在火力档位设了解冻、烹调、烘烤、保温、自定义加热、自定义烹调以及按给定程序烹调等七种主要功能,其中程序烹调共设置了八种不同的烹调流程,供用户选择。

在控制方面,实现了智能化,信息化管理,并且具有密码开锁功能,即只有知道相应模式键继续运行的号码的人,才能对该机进行操作等等功能。

STC12C5404AD单片机是具有全新流水线和精简指令集结构的高速率、低功耗新一代单片机。

它带有8路10位精度ADC、4路PWM/PCA(可编程计数器阵列)、SPI同步通信口以及内部集成的MAX810专用复位电路。

这些特点不但增加了开发者的使用灵活性,同时还可以帮助用户减小PCB尺寸和系统成本。

此外,STC12C5404AD型处理器还可以通过串口(P3.0/P3.1)直接下载用户程序,从而使其适合于在系统(ISP)及在应用(IAP)中编程,因而可为许多计算密集的嵌入式控制应用领域提供功能强大、使用灵活且性价比高的解决方案。

STC12C5404AD是STC系列单片机,采用RISC型CPU内核,兼容普通8051指令集,片内含有10KB Flash 程序存储器,2KB Flash 数据存储器,512B RAM 数据存储器,同时内部还有看门狗(WDT);片内集成MAX810专用复位电路、8通道10位ADC以及4通道PWM,具有在系统编程(ISP)和在应用编程(IAP),片内资源丰富、集成度高、使用方便。

STC12C5404AD对系统的工作进行实施调度,实现外部输入参数的设置、蓄电池及负载的管理、工作状态的指示等。

电磁式继电器一般由铁芯、线圈、衔铁、触点簧片等组成。

只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。

微波炉控制器实验报告

微波炉控制器实验报告

上海电力学院嵌入式软件开发基础实验报告题目:专业:电子科学与技术年级:姓名:学号:一.实验原理通过定时器模块、LCD模块、键盘模块等几个模块来实现微波炉控制程序。

表7-1 HD44780引脚信号图7-1 MCU与LCD的连接图7-2 HD44780原理框图列线n1n2n3n4MCU内部上拉电阻键盘接线原理图1 2 3 4 5 6 7 8行线m1m2m3m4+5V接MCU的PTA引脚PTH接线PTH7--LED1_CS3PTH6--LED1_CS2PTH5--LED1_CS1PTH4--LED1_CS0PTH3--SPI2_SSPTH2--SPI2_SPSCKPTH1--SPI2_MOSIPTH0--SPI2_MISO二.实验设备及其连接1.PC 机 一台 2.S12嵌入式开发系统 一台 3.4*4键盘 一个 4. HD44780兼容LCD 一个三.实验内容本次我的期末实验是实现一个基本微波炉控制程序,其功能是当我通过4*4键盘随意输入一个时间,之后我按动键盘上的A 键,LCD 上开始从我输入的时间开始倒计时直到为零为止,如果在倒计时的过程中我按动键盘上的B 键,则键盘将会复位要求重新输入时间。

四.试验程序(1)实验主程序//头文件#include "Includes.h" //总头文件INT8U put1(char c) { char c1; c1=c/10+0x30; return c1; }INT8U put2(char c)PTA 口(KEY1-8)Vcc{char c1;c1=c%10+0x30;return c1;}INT8U put3(INT8U a,INT8U b){INT8U c;c=(a-0x30)+(b-0x30)*10;return c;}//主函数int main(void){ INT8U A[6] ="000000";int f,i;int count=0;int ROB=0;INT8U remember;//定义初始显示缓存并赋初值const INT8U* g_DispalyInit = "please sulu time 00:00:00 ";//receive_data中存放从串口接收来的要被显示的32个数据INT8U receive_data[32];DISABLE_INTERRUPTS; //禁止总中断//1. 芯片初始化MCUInit();//2. 模块初始化KB_Init(); //(2) 键盘初始化SCIInit(); //(1) 串行口初始化LCDInit(); //(2) LCD初始化TimerInit(); //(2) 定时器1初始化//3. 内存初始化//(1) "时分秒"缓存初始化(00:00:00)time[0] = 0;time[1] = 0;time[2] = 0;//(2) 临时变量remember初始化remember = time[2];//(3) 全局变量TimInterCount初始化TimInterCount = 0;//3. 开放总中断ENABLE_INTERRUPTS;//4. 开放各模块中断EnableIOint; //KB_P.7-4输入引脚允许中断EnableSCIReInt; //(1) 开放SCI0接收中断EnableT1OVInt; //(2) 开放定时器1溢出中断//4. LCD显示初始化LCDShow((INT8U *)g_DispalyInit);//程序总循环入口while (1){ if(ROB!=1){for(i=0;i<6;i++){A[i] = KB_Def(KB_valueN);}time[0]=put3(A[1],A[0]);time[1]=put3(A[3],A[2]);time[2]=put3(A[5],A[4]);ROB=1;}if(count!=1){if(KB_DefValue =='A')count=1;elsegoto isrTIMER1;}memcpy(receive_data,"please wait time : : ",32);if (time[2] != remember){ //SCISendN(3, time);//发送当前"时分秒"receive_data[20]=put1( time[0] ) ;receive_data[21]=put2( time[0] ) ;receive_data[23]=put1( time[1] ) ;receive_data[24]=put2( time[1] ) ;receive_data[26]=put1( time[2] ) ;receive_data[27]=put2( time[2] ) ;remember = time[2];LCDShow((INT8U *)receive_data);//remember中存放当前秒值}if(KB_DefValue=='B'){ROB=0;count=0;time[0] = 0;time[1] = 0;time[2] = 0;}isrTIMER1:f=0;}}(2)实验模块程序1、定时模块:#include "Timer.h"void TimerInit(void){TSCR2 = 0x03;TSCR1 = 0x80;}void TimerUpDate(void){if (time[2] != 0){time[2]--;goto isrTIMER1_exit;}if((time[1] == 0)&(time[0] == 0)){goto isrTIMER1_exit;}elsetime[2] = 60;if (time[1] != 0){time[1]--;goto isrTIMER1_exit;}elsetime[1] = 60;if (time[0] != 0){time[0]--;goto isrTIMER1_exit;}elsetime[0] = 0;isrTIMER1_exit:TimInterCount = 0;}2、LCD模块#include "LCD.h" //液晶显示头文件void LCDInit(void){INT16U i;//定义数据口(PTB0-7)为输出LCDData_D = 0xFF; //数据口为输出//定义控制口(PTC0-2)为输出LCDCtrl_D |= (1<<LCDE);LCDCtrl_D |= (1<<LCDRS);LCDCtrl_D |= (1<<LCDRW);//设置指令LCDCtrl &= ~(1<<LCDRS); //RS、R/W=00,写指令LCDCtrl &= ~(1<<LCDRW);LCD_Command(0x38);//||||||||____ 可设任意值(0/1)//||||||______ F = 0,5*7点阵模式//|||||_______ N = 1,2行显示//||||________ DL = 1,8位数据总线//|||_________ 固定为001LCD_Command(0x08); //关显示,关光标显示,不闪烁LCD_Command(0x01); //清屏for (i=0; i<20000; i++); //延时>1.6msLCD_Command(0X06);LCD_Command(0x14); //光标右移一个字符位,AC自动加1 LCD_Command(0x0C); //开显示,关光标显示,不闪烁}void LCDShow(INT8U str[]){INT8U i;//1. LCD初始化LCDInit();//2. 显示第1行16个字符//2.1设置显示首地址LCDCtrl &= ~(1 << LCDRS); //RS,R/W = 00(写的是指令)LCDCtrl &= ~(1 << LCDRW);LCD_Command(0x80); //后7位为DD RAM地址(0x00) //2.2写16个数据到DD RAMLCDCtrl |= 1 << LCDRS; //RS,R/W = 10(写的是数据)LCDCtrl &= ~(1 << LCDRW);//将要显示在第1行上的16个数据逐个写入DD RAM中for (i = 0;i < 16;i++){LCD_Command(str[i]);}//3. 显示第2行16个字符//3.1设置显示首地址LCDCtrl &= ~(1 << LCDRS); //RS,R/W = 00(写的是指令)LCDCtrl &= ~(1 << LCDRW);LCD_Command(0xC0); //后7位为DD RAM地址(0x40) //3.2再写16个数据到DD RAMLCDCtrl |= 1 << LCDRS; //RS,R/W = 10(写的是数据)LCDCtrl &= ~(1 << LCDRW);//将要显示在第2行上的16个数据逐个写入DD RAM中for (i = 16;i < 32;i++){LCD_Command(str[i]);}}void LCD_Command(unsigned char cmd){INT8U i;//1.等待> 40usfor (i=0; i<200; i++);for (i=0; i<200; i++);for (i=0; i<200; i++);for (i=0; i<200; i++);//2.数据送到LCD的数据线上LCDData = cmd;//3.给出E信号的下降沿,使数据写入LCDLCDCtrl |= (1<<LCDE);asm("NOP");asm("NOP");asm("NOP");asm("NOP");asm("NOP");asm("NOP");asm("NOP");asm("NOP");asm("NOP");asm("NOP");asm("NOP");asm("NOP");LCDCtrl &= ~(1<<LCDE); //Lcd结束接收数据for (i=0; i<200; i++);for (i=0; i<200; i++);for (i=0; i<200; i++);for (i=0; i<200; i++);}3、键盘模块#include "KB.h" //键盘扫描识别头文件void KB_Init(void){KB_P = 0x00; //复位KB_PKB_D = 0x0F; //定义7-4为输入,3-0为输出KB_PE = 0xF0; //定义KB_P.7-4允许上拉或下拉KB_PS = 0x00; //定义KB_P.7-4上拉电阻,并且下降沿产生中断KB_IE = 0x00; //定义KB_P.7-4输入引脚禁止中断KB_IF = 0xFF; //清除键盘中断标志位(写1清)}INT8U KB_Scan1(void){INT8U line,i,tmp;line=0xFE; //使第一根行线为0(低电平)for (i = 1; i <= 4; i++) //最多将扫描4根行线{//当前扫描的一行,输出低电平tmp = KB_P;tmp |= 0X0F;KB_P = tmp & line;asm("NOP");asm("NOP");//读取键盘口数据寄存器tmp = KB_P;//通过观察4根列线中是否出现低电平来判断当前行有无按键tmp &= 0XF0; //仅保留列线的值if (tmp != 0xF0) //当前行有键按下{tmp=KB_P; //读取扫描到的键值break; //退出循环不再扫描}else //当前行无按键,准备扫描下一行line = (line << 1) | 0x01;}if (i == 5) //无按键,以后将返回0xfftmp = 0xFF;return (tmp);}INT8U KB_ScanN(INT8U KB_count){INT8U i,KB_value_last,KB_value_now;if (0 == KB_count || 1 == KB_count)return KB_Scan1();//先扫描一次得到的键值,便于下面比较KB_value_now = KB_value_last = KB_Scan1();//以下多次扫描消除误差for (i=0; i<KB_count-1; i++){KB_value_now = KB_Scan1();if (KB_value_now == KB_value_last)return KB_value_now; //返回扫描的键值elseKB_value_last = KB_value_now;}return 0xFF; //返回出错标志const INT8U KB_Table[]={0xEE,'F',0xDE,'B',0xBE,'7',0x7E,'3',0xED,'E',0xDD,'A',0xBD,'6',0x7D,'2',0xEB,'D',0xDB,'9',0xBB,'5',0x7B,'1',0xE7,'C',0xD7,'8',0xB7,'4',0x77,'0',0x00};INT8U KB_Def(INT8U KB_valve){INT8U KeyPress;INT8U i;INT8U j;i = 0;while (1){j = KB_Table[i];//与0(定义表结束标志)相比较if (j == 0) //=0,即表中无次定义值{KeyPress = 0xFF; //返回0xFFbreak;}else{//与键值相比较if(j == KB_valve) //找到{KeyPress = KB_Table[i+1]; //取键定义值break;}else{i += 2; //指向下一个键值,继续判断}}}return KeyPress; //返回键定义值(3)头文件1、[Includes.h]总头文件//1.包含通用头文件#include "Type.h" //类型别名定义#include "isr.h" //中断处理函数头文件#include "MCUInit.h" //芯片初始化头文件//2.包含面向硬件对象头文件#include "LCD.h" //液晶显示头文件#include "SCI.h" //串行通信头文件#include "Timer.h" //定时器头文件#include "KB.h" //键盘扫描识别头文件//3.全局变量声明INT8U TimInterCount; //中断次数INT8U time[3]; //存放时,分,秒INT8U KB_DefValue;INT8U KB_valueN;#pragma LINK_INFO DERIV ATIVE "mc9s12dg128b"2、[KB.h]键盘扫描识别头文件//键盘扫描识别需要用到的头文件#include <mc9s12dg128.h> //MCU映像寄存器名#include "Type.h" //类型别名定//键盘扫描识别寄存器及标志位定义#define KB_P PTH //键盘接在PTH口上#define KB_D DDRH //相应的方向寄存器#define KB_PE PERH //相应的上拉下拉电阻允许寄存器#define KB_PS PPSH //相应的极性选择寄存器#define KB_IE PIEH //相应的中断允许寄存器#define KB_IF PIFH //相应的中断标志寄存器///键盘扫描识别函数声明void KB_Init(void); //键盘初始化INT8U KB_Scan1(void); //扫描读取键值INT8U KB_Def(INT8U KB_valve); //键值转为定义值INT8U KB_ScanN(INT8U KB_count); //多次扫描键盘3、[LCD.h]液晶显示头文件//液晶显示需要用到的头文件#include <mc9s12dg128.h> //MCU映像寄存器名#include "Type.h" //类型别名定义//液晶显示寄存器及标志位定义#define LCDData PORTB //lcd显示数据传送口#define LCDData_D DDRB //数据口方向寄存器#define LCDCtrl PTM //lcd控制信号传送口#define LCDCtrl_D DDRM //控制口方向寄存器#define LCDRS 2 //lcd寄存器选择信号PTM2#define LCDRW 3 //读写信号接PTM3#define LCDE 6 //lcd使能信号接PTM6//液晶显示相关函数声明void LCDInit(void); //液晶显示初始化void LCDShow(INT8U str[]); //在HD44780显示屏上显示数据void LCD_Command(INT8U cmd); //执行给定的cmd命令4、[Timer.h]定时器头文件//定时器需要用到的头文件#include <mc9s12dg128.h> //MCU映像寄存器名#include "Type.h" //类型别名定义//定时器相关函数声明void TimerInit(void); //定时器初始化函数声明void TimerUpDate(void); //定时器更新函数声明//外部变量声明extern INT8U time[3]; //存放时,分,秒extern INT8U TimInterCount; //中断次数五.实验小结通过本次试验我跟进一步的运用了编程软件,并且掌握了综合型实验编程,编程过程中我遇到了许多问题,最终我都一一解决了,可是最终我的实验功能还是没有达到我预想的功能,我输入的时间是乱码,并且在LCD显示的时间也是乱码,这个问题我到最后也没有解决,因而我的这个程序是失败的。

可编程微波炉控制器系统设计E

可编程微波炉控制器系统设计E

可编程微波炉控制器系统设计(E)
一.任务
设计制作一个微波炉控制器电路,具有三档微波加热功能,分别表示微波加热为烹调、烘烤、解冻,试验中用LED 模拟。

示意图如下:
二.要求
1.基本要求
(1) 制定一个在不同功能时火力的控制时序表。

具有三档微波加热功
能,分别表示微波炉工作状态为烹调、烘烤、解冻,试验使用LED 模拟。

(2) 实现工作步骤:复位待机——〉检测显示电路——〉设置输出功
能和定时器初值——〉启动定时和工作开始——〉结束烹调、音响提示。

(3) 在上电或手动按复位键时,控制器输出的微波功率控制信号为0,
微波加热处于待机状态,时间显示电路显示为
00.00。

(4) 具有4位时间预置电路,按键启动时间设置,最大预设数为99
分99秒。

(5) 设定初值后,按开启键,一方面按选择的挡位启动相应的微波加
热;另一方面使计时电路以秒为单位作倒计时。

当计时到时间为0则断开微波加热器,并给出声音提示,即扬声器输出2~3s 的双音频提示音。

(6)若在待机状态时按测试键,则4位数码管交替显示全亮和全灭两种状态,以检测数码管各发光段的好坏。

2.发挥部分
(1)微波炉火力档位的增加。

(2)输出显示方面的扩展。

(3)实现智能控制、信息控制。

三.评分标准。

智能微波炉控制系统及设计讲解

智能微波炉控制系统及设计讲解

4"b0011: {g,f,e,d,c,b,a}= 7"b0110000;

4"b0100: {g,f,e,d,c,b,a}= 7"b0011001;

4"b0101: {g,f,e,d,c,b,a}= 7"b0010010;

4"b0110: {g,f,e,d,c,b,a}= 7"b0000010;
谢谢大家!
• BCD = {B3,B2,B1,B0} ;
• case (BCD)

4"b0000: {g,f,e,d,c,b,a}= 7"b1000000;

4"b0001: {g,f,e,d,c,b,a}= 7"b1111001;

4"b0010: {g,f,e,d,c,b,a}= 7"b0100100;

end S4 :begin if(i2&i3) NS=S6; if(~i1&i2) NS=S7;
end
S5 :begin if( ~i1&i3) NS=S6; if(~i2&i3) NS=S7;
end S6 :b in
if(i1& i2) NS=S2; if(i1&~i3) NS=S8; end S7 :begin if( i1& i2) NS=S2; if( i1& i3) NS=S8; end default :begin NS=START;
– 我的设计存在的问题是 ,每次加热的时间最多99 秒 ,没有检查功能。
二 、设计的背景 、 目的和意义
• 随着控制技术和智能技术的发展 ,微波炉也向着智能化、 信息化发展 。而现有市售的微波炉其主要弊端:不能按既 有程序进行烹调 , 需要使用者根据食物的类型、数量、温 度等因素去设定微波炉的工作时间 , 若设定的工作时间过 长 ,含水分较多的食物可能会产生过热碳化的现象,若时 间过短则达不到预期的烹调效果 。针对这些问题 ,我认为 有必要研制一种操作简单且烹调效果好的微波炉 ,根据一 些家常菜按固定程序烹调的现象 ,可采取分时、分档火力 加热 ,节时又节能。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数电综合实验报告--简易微波炉控制器的设计与实现班级:姓名:学号:日期::设计课题的任务要求--------------------------------------------------- 3基本要求: ----------------------------------------------------------- 3提高要求: ----------------------------------------------------------- 3 二:系统设计(包括设计思路、总体框图、分块设计)----------------------- 3设计思路 ------------------------------------------------------------- 3总体框图 ------------------------------------------------------------- 4分块设计 ------------------------------------------------------------- 41 分频器---------------------------------------------------- 42:防抖模块-------------------------------------------------- 53:控制器---------------------------------------------------- 54:数据装载-------------------------------------------------- 64:倒计时模块------------------------------------------------ 75:译码模块--------------------------------------------------- 8 6:数码管驱动模块------------------------------------------- 87:火力显示------------------------------------------------- 98:led 显示模块--------------------------------------------- 109:蜂鸣器模块----------------------------------------------- 10三:仿真波形及波形分析------------------------------------------------- 111:控制器仿真----------------------------------------------- 122 数据装载仿真--------------------------------------------- 123 倒计时模块:--------------------------------------------- 134:decoder 译码电路模块-------------------------------------- 135:驱动数码管模块------------------------------------------- 146:led 显示模块--------------------------------------------- 147:蜂鸣器模块----------------------------------------------- 148:总体仿真------------------------------------------------- 15四:源程序------------------------------------------------------------- 151:分频器--------------------------------------------------- 152:防抖模块------------------------------------------------- 163:控制器--------------------------------------------------- 164:数据装载模块---------------------------------------------- 195:倒计时模块----------------------------------------------- 209:火力模块------------------------------------------------- 2611:蜂鸣器模块---------------------------------------------- 32五:功能说明----------------------------------------------------------- 33 六:元件清单和利用情况------------------------------------------------- 33 七:故障和问题分析----------------------------------------------------- 33八:总结和结论------------------------------------------ 错误!未定义书签。

:设计课题的任务要求设计制作一个简易微波炉控制器。

基本要求:1、微波炉的火力有大、中、小三档可选。

用一个按键实现火力的选择,用点阵显示火力档位,点阵的显示随着按键的按下次数而变化,没有选择时默认的火力为大。

2、微波加热时间在 0-59分59秒之间可选。

用 4个按键分别设置加热时间各位的长度,用数码管显示加热时间。

3、设置一个开始键,按下此键后开始加热。

加热过程中,用数码管倒计时显示剩余时间。

4、加热过程中,不能修改火力和加热时间。

5、加热完成后蜂鸣器至少鸣响两声以提醒使用者加热已结束,加热结束后回到等待状态。

6、设置复位键,任何时候按下复位键可以取消加热,回到等待状态,只有在等待状态下才可以修改火力和加热时间。

提高要求:1、用8个LED灯作为加热进度显示条,随着加热时间的增加匀速增加点亮LED灯的个数,无论加热时间是多长,最后都必须将8个LED灯全部点亮。

2、增加烧烤功能,用一个键选择微波或烧烤功能,用一个数码管指示当前处于微波还是烧烤功能。

3、烧烤火力和加热时间要求与微波功能相同。

4、自拟其它功能。

二:系统设计(包括设计思路、总体框图、分块设计)设计思路由一个总的控制器完成各个状态的转换。

主要分两个大状态,一为没有开始前的可编辑状态。

二为开始后的不可编辑状态。

所以总的控制器中应有个edit 输出控制各个模块是否可改变。

Start 开始前,为设置时间状态和火力状态和烧烤选择状态。

Start 开始后 edit 变量为 0,各个模块不可在编辑。

控制器转入倒计时模块,同时led 灯进入工作状态。

需要注意的是需要为所有模块设置 reset 输入,以重置各个模块状态值。

主要考虑问题:1 :由于键盘输入不稳定,数字跳变太快,所以需要加键盘防抖模块。

2:键盘防抖模块需要特殊的频率,所以分频器模块不止一个。

综上,主要涉及以下几个模块。

分频器,键盘防抖模块,控制器,数据选择,数据装载,数字译码,数码管显示模块,led进度显示模块,火力选择和显示模块,倒计时模块,蜂鸣器模块总体框图分块设计1分频器1hz用于倒计时,100hz是时间输入防抖所用频率,1Okhz是火力防抖所用(也可以用1OOhz的,不过就是输入稳定性略差)2 :防抖模块左边为时间输入防抖,右边为火力输入和开始键的防抖。

3:控制器■i FT HBI Al I l I'controller.t in st I■ H --F P ——;- ■-fl ~ ~ ■ | ■ —.1B B J ■ • ■ 'r・■ - j •=- —- f -■rL—^T"■ if S —< ■ ~ ^Ji状态控制器的功能根据输入信号和自身当时所处的状态完成状态的转换和输出相应的控制信号,其模块框图如图所示。

其中,输出信号LD_D ONE旨示数据装载电路载入的烹调结束的状态信息的显示的驱动信息数据;LD_CLK显示数据装载电路的设置的时间数据;LD_EDIT用于输出给其他分模块以便设置是否可改变;C00指示烹饪的状态,并提示计时器进行减法计算;DATA[15..O]:将key转化为二进制编码;KEY为定时时间输入信号,用于设置烹饪时间的长短,其高到低分别表示时间分、秒的十位、个位。

当LD_DON有效时,输出烹调结束数据。

当LD_CLK t效时,输出烹调的设置时间数据。

DATAIM[15 .0]LD TEST完成信息显示状态脇去计豹定时狀态图4状态控制器状态转撫图4 :数据装载.loaderDATA0UT[15 3] -—*LOAD —kLD CLKLD DO忖E当LD_DON有效时,输出烹调结束的信息数据数据。

当L_CLK有效时,输出烹调的设置时间数据。

由于结构内部用到与或表达式LOAD<=LD_TEST OR LD_DONE OR LD_CLK;TEMP:=LD_TEST&LD_DONE&LD_CLK;必须3个变量才能使用,所以LD-Test是用于完成这个表达式的。

程序中默认接地。

inslIOiaCOOK SEC0[3 0]' —i ---------------I LOAD SEC1[3 0]' —i ---------------iCLKMIN0(3..D|'! k I! ■ DATA[15..O]MINip.O] 1 r Fn r iDONE电路计时模块可以由十进制减法计数器和六进制减法计数器级联组成,其 中,两个十进制的减法计数器用于分、秒的个位减法计数,两个六进制的减法计 数器用于分、秒的十位减法计数。

由六进制计数器和十进制计数器级联构成的计 时模块原理图如图所示。

LOAD 有效时完成装入功能,C00( EN 有效时执行减计数;载已存的数据; DON 返回给控制器,MIN 和SEC 显示所剩时间和测试状态信息、 烹调结束状态信 息等。

:counter:qudong1-彳.- ctkt[6 0]'1I■ t1[6 0] a[5. 0]f■t2[6 .0]H■t3[6 .0]H't4[6 0]I-t5ii edit1in £1221 ■'| ■ - sw-l !: -Bs F""TV =r r , ■ ■ ■- r i■ e ia -B B ■ = f B ■ irr- i ■ H :■■■— s ・ i -n-Ha! T ? i■ ve ■:・“t「用 ----- >曲眩i[6』]〉xuanze[5 C]5:译码模块用于将counter 输出的sec 和min 信号转化成数码管显示信号。

相关文档
最新文档