资源描述
课设可编程微波炉控制系统设计
25
2020年4月19日
文档仅供参考,不当之处,请联系改正。
辽 宁 工 业 大 学
电子综合设计与制作 课程设计(论文)
题目:可编程微波炉控制系统设计
院(系): 电子与信息工程学院
专业班级: 电子081班
学 号:
学生姓名: 刘德志
指导教师:
起止时间: .12.26— .01.6
课程设计(论文)任务及评语
院(系):电子与信息工程学院 教研室:电子信息教研室
学 号
学生姓名
刘德志
专业班级
电子081
课程设计题目
可编程微波炉控制系统设计
课程设计(论文)任务
任务和要求:
设计制作一个微波炉控制器电路,具有三档微波加热功能,分别表示微波加热为烹调、烘烤、解冻,试验中用LED模拟。。
1. 制定一个在不同功能时火力的控制时序表。具有三档微波加热功能,分别表示微波炉工作状态为烹调、烘烤、解冻,试验使用LED模拟。
2. 实现工作步骤:复位待机——〉检测显示电路——〉设置输出功能和定时器初值——〉启动定时和工作开始——〉结束烹调、音响提示。
3. 在上电或手动按复位键时,控制器输出的微波功率控制信号为0,微波加热处于待机状态,时间显示电路显示为00.00。
4. 具有4位时间预置电路,按键启动时间设置,最大预设数为99分99秒。
进度计划
1、布置任务,查阅资料,理解掌握系统的控制要求。(1天)
2、确定设计思路,设计可编程微波炉控制系统框图。(2天)
3、绘制微波炉控制系统各个部分的电路原理图。(2天)
4、编写微波炉控制系统的控制程序。(2天)
5、对系统进行仿真,分析系统性能。(2天)
6、撰写、打印报告(1天)
指导教师评语及成绩
平时: 论文质量: 答辩:
总成绩: 指导教师签字:
学生签字:
年 月 日
注:成绩:平时20% 论文质量60% 答辩20% 以百分制计算
摘要
今年来随着计算机技术的发展,单片机开始得到广泛的应用。由于其功能强,体积小,功耗低,价格便宜,工作可靠,使用方便使单片机在自动控制,智能仪表以及各种家用电器中得到广泛的应用。
可编程微波炉控制系统设计采以微控制器为核心,基于RTX51 编制软件系统,结合四位数码管(LED)显示以及必要的外围电路,完成微波炉的可编程智能控制。系统由计时控制、火力设定、用户界面几大模块组成。能够根据键盘输入完成相应的功能,同时使用LED 显示系统状态。
关键词:微控制器、微波炉、控制器
目录
第1章 绪论 1
1.1概述 1
1.2文本的研究内容 1
第2章 系统的硬件设计 2
2.1系统的总体框图 2
2.2键盘模块的设计 2
2.3 档位显示电路设计 4
2.4 时间显示电路设计 4
2.5 门电路设计 5
第3章 系统的软件设计 6
3.1显示程序设计 6
3.2 计时程序设计 7
3.3用户设定状态设计 8
3.4微波炉加热状态 8
第4章 课程设计总结 10
参考文献: 11
附录Ⅰ:系统总体电路图 12
附录Ⅱ: 器件清单 13
附录Ⅲ:软件设计程序 14
第1章 绪论
1.1概述
在日常生活和工作中,我们常常见到定时控制,如扩印过程中的曝光定时等。早期常见的一些时间控制单元都使用模拟电路设计制作的,其定时准确性和重复精度都不是很理想,现在基本上都是基于数字技术的新一代产品,随着单片机性能价格比的不断提高,新一代产品的应用也越来越广泛,大可构成复杂的工业过程控制系统,完成复杂的控制功能。小则能够用于家电控制,甚至能够用于儿童电子玩具。它功能强大,体积小,质量轻,灵活好用,配以适当的接口芯片,能够构造各种各样、功能各异的微电子产品。
随着电子技术的飞速发展,家用电器和办公电子设备逐渐增多,不同的设备都有自己的控制器,使用起来很不方便。根据这种实际情况,设计了一个单片机多功能定时系统,它能够避免多种控制器的混淆,利用一个控制器对多路电器进行控制,同时又能够进行时钟校准和定点打铃。它能够执行不同的时间表(考试时间和日常作息时间)的打铃,能够任意设置时间。这种具有人们所需要的智能化特性的产品减轻了人的劳动,扩大了数字化的范围,为家庭数字化提供了可能。
1.2文本的研究内容
本文的主要工作是掌握控制应用技术,显示技术,电子技术等相关知识,设计制作一个微波炉控制器电路,具有三档微波加热功能,分别表示微波加热为烹调、烘烤、解冻,试验中用LED模拟。实现工作步骤:复位待机——〉检测显示电路——〉设置输出功能和定时器初值——〉启动定时和工作开始——〉结束烹调、音响提示。在上电或手动按复位键时,控制器输出的微波功率控制信号为0,微波加热处于待机状态,时间显示电路显示为00.00。具有4位时间预置电路,按键启动时间设置,最大预设数为99分99秒。设定初值后,按开启键,一方面按选择的挡位启动相应的微波加热;另一方面使计时电路以秒为单位作倒计时。当烹调结束即时间显示为00.00时由扬声器提示。具体的问题有:
(1)如何进行时间设置(分、秒)和时钟倒计时功能;
(2)如何设计智能火力控制
(3)如何设计显示模块显示时间;
(4)如何设计按键设置。
第2章 系统的硬件设计
电路设计部分以单片机控制电路为核心由定时器电路,显示电路,键盘电路,门电路,电源电路,音响发声电路,火力输出电路,档位显示电路共同组成微波炉控制系统电路。
2.1系统的总体框图
系统以AT89C52单片机为核心,连接各外部电路完成人机交互等各功能的控制。系统的总体框图如下图2.1
图2.1系统总体框图
A
T
8
9
C
5
1
内部定时器
LED显示电路
档位显示电路
电源电路
按键输入电路
输出电路
音响发声电路
门电路
2.2键盘模块的设计
在按键设计中K0,K1,K2,K3分别连入单片机I/O接口的P3.0,P3.1,P3.2,P3.3。经过单片机内部判断这4个I/O接口来确定按键是否被按下。列外为了防止系统出现异常无法操作另设手动复位按键K4接单片机RES。如图2.2
图2.2按键电路
按键功能如下表:
K0
K1
K2
K3
K4
火力调节
定时器分加1
定时器秒加1
定时器清零
手动复位
K0为火力调节,按下K0微波炉火力依次为烹调→烘烤→解冻→烹调;
K1定时器分调节,没按一次定时器时间增加1分钟;
K2定时器秒调节,没按一次定时器时间增加1秒钟;
K3若设定时间是出现错误能够令定时器清零重新设定;
K4系统出现错误无法运行,能够手动设置复位。
2.3 档位显示电路设计
显示电路有五个LED组成其中D0为电源显示,接通电源则D0亮;D1、D2、D3为档位显示模块,分别代表“烹调”、“烘烤”、“解冻”三个档位,直接将发光二极管接至单片机I/O接口经过单片机发送低电平使发光二极管发光;D4为扬声器工作显示,当烹饪结束扬声器报警时D4亮。如图2.
图2.3档位显示电路
2.4 时间显示电路设计
时间显示采用数码管的动态驱动,将四个数码管"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,因此我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。经过分时轮流控制各个数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能节省大量的I/O端口,而且功耗更低。
用单片机的P0口连接4位数码管的段端口,用P2.0—P2.3分别接数码管的四个使能端。如图2.4
图2.4数码管显示电路
2.5 门电路设计
为避免在微波炉加热过程中突然打开炉门而造成危险的后果,能够设置门电路在炉门打开时停止当前加热状态。如图2.5
图2.5门电路
第3章 系统的软件设计
3.1显示程序设计
显示程序经过分时轮流控制各个数码管的COM端,使各个数码管轮流受控显示,流程图如图3.1
DISPLAY
循环4次
延时1ms
R0←R0+1右移一位
P2←(37H)
P0←A
A←查表求显示编码
A←((R0))
字位指针指向
数码管第一位
返回
图3.1显示程序
3.2 计时程序设计
SUBONE
返回
主程序
调用SUBONE子程序
重装定时初值
用户设定世间初值
32H(秒)33H(十秒)
34H(分)35H(十分)
T0中断服务程序
设定定时初值(Tl2、TH2)
允许T0中断(ET0 EA)
经过单片机内部定时器2进行时间控制,单片机外接11.0592M晶振,在主程序中设置定时器初值来获得1Hz的中断。如图3.2
返回
(35H)=#ff?
34H←#9
(35H)←(35H)-1
(34H)=#ff?
33H←#5
(34H)←(34H)-1
(33H)=#ff?
32H←#9
(33H)←(33H)-1
(32H)=#ff?
(32H)←(32H)-1
图3.2计时程序
3.3用户设定状态设计
在用户设定状态用户经过按键进行档位和时间的设定,再微波炉炉门关闭的状态按下K0建则进入加热状态,按K1键用户能够在三个档位上进行切换,按K2和K3键进行时间加减设定,如图3.3
设置初始显示
时间为00:00
是
否
炉门是否关闭
K0是否按下
K1是否按下
微波炉加热状态
档位切换子程序
K2是否按下
时间分增加
K3是否按下
时间秒增加
是
否
否
否
是
是
是
否
图3.3用户设定
3.4微波炉加热状态
微波炉加热状态有三种,分别为烹调、烘烤、解冻。跟据用户之前设置的档位系统会进入相应的加热状态。具体状态图如下图3.4
图3.4加热状态
计时程序倒计时
计时程序倒计时
停
止
加
热
停
止
加
热
烹调
烹调
时间是否0
K0是否按下
炉门是否开启
显示子程序
时间是否1/4sj
K0是否按下
炉门是否开启
显示子程序
否
是
是
否
否
停
止
加
热
计时程序倒计时
烹调
K0是否按下
时间是否1/2sj
炉门是否开启
显示子程序
‘烹调’档位
第4章 课程设计总结
经过一段时间以来的学习,不断的从设计中总结和修改,并按着预期的要求重复的论证和测试。本着学习的态度,以完善设计的可靠性和稳定性,将整个设计分模块化的进行,并将每个模块加以分析和论证,成功后再联系再一起,最终达到总体效果。
主要完成了以下几个方面的内容:
1.制定一个在不同功能时火力的控制时序表。具有三档微波加热功能,分别表示微波炉工作状态为烹调、烘烤、解冻,试验使用LED模拟。
2.实现工作步骤:复位待机——〉检测显示电路——〉设置输出功能和定时器初值——〉启动定时和工作开始——〉结束烹调。
3.在上电或手动按复位键时,控制器输出的微波功率控制信号为2,微波加热处于中火状态,时间显示电路显示为00:00。
4.具有2位时间预置电路,按键启动时间设置,最大预设数为99分99秒。
5.设定倒计时初值后,按下开启按键,一方面按选择的挡位启动相应的微波加热;另一方面使计时电路以分为单位作倒计时。当计时到时间为0时微波炉自动停止工作。
参考文献:
[1]雷思孝,李伯成,雷向莉.单片机原理及实用技术.西安:西安电子科技大学出版社,
[2]袁东.《51单片机应用开发实战手册》.北京:电子工业出版社, :65-81
[3] 谢宜仁.《单片机接口技术实用宝典》.北京:机械工业出版社, :
34-53
[4] 唐继贤.《51单片机工程应用实例》.北京:北京航空航天大学出版社, :65-78
[5] 谢自美. 电子线路设计*实验*测试.武汉:华中科技大学出版社.1998
[6] 杨欣,王玉凤,刘湘黔.《51单片机应用实例详解》.北京:清华大学出版社, : 38-64
[7] 李朝清.《单片机原理与接口技术》.第三版.北京:北京航空航天大学出版社, :43-85
[8] 王东峰,王会良,董冠强.《单片机C语言应用100例》.北京:电子工业出版社, :56-73
附录Ⅰ:系统总体电路图
附录Ⅱ: 器件清单
器件
数量
AT89C51单片机
1
11.0592MHz晶振
1
四位数码管
1
30pf电容
2
22uf极性电容
1
电阻
7
按键
5
单刀单掷开关
1
LED发光管
5
晶闸管
3
扬声器
1
附录Ⅲ:软件设计程序
/*
1、按键能够调整功率
2、按键能够调节定时时间
3、定时时间到继电器吸合
*/
#include <reg52.h>
sbit KEY1=P3^0;
sbit KEY2=P3^1;
sbit KEY3=P3^2;
sbit KEY4=P3^3;
sbit led1=P1^4;
sbit led2=P1^5;
sbit led3=P1^6;
sbit w1=P3^4;
sbit w2=P3^5;
code unsigned char table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,
0xf8,0x80,0x90}//共阳数码管 0-9
unsigned char StrTab[2];
unsigned char a1=0,a2=0;
unsigned char flag1,flag2,b;
void Delay(unsigned int del)
{
unsigned int i,j;
for(i=0; i<del; i++)
for(j=0; j<400; j++) ;
}
void Displaypro(unsigned char a1,unsigned char a2)
{
w2=1;
w1=0;
P2=table[a1];
Delay(1);
w1=1;
w2=0;
P2=table[a2];
Delay(1);
}
main()//主函数
{ TMOD=0x11;//定时器0 10ms in 12M crystal 用于计时
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;
TR0=0;
//定时器1用于动态扫描
TH1=0xF8;
TL1=0xf0;
ET1=1;
TR1=1;
EA =1;
flag1=1;
flag2=0;
Displaypro(a1,a2);
while(1)//主循环
{
if(flag1==0)
led1=0;
else
led1=1;
if(flag1==1)
led2=0;
else
led2=1;
if(flag1==2)
led3=0;
else
led3=1;
if(!KEY1) //按键1去抖以及动作
{
Delay(1);
if(!KEY1)
{
while(!KEY1);
flag1++;
if(flag1==3)
flag1=0;
}}
if(!KEY2) //按键1去抖以及动作
{Delay(1);
if(!KEY2)
{ while(!KEY2);
a1++;
if(a1==10)
a1=0; //正常时间 小时 加1
Displaypro(a1,a2);
}}
if(!KEY3) //按键去抖以及动作
{ Delay(1);
if(!KEY3)
{ while(!KEY3);
a2++;
if(a2==10)
a2=0;
Displaypro(a1,a2);
}}
if(!KEY4) //按键去抖以及动作
{ Delay(1);
if(!KEY4)
{ while(!KEY4);
TR0=1;
Displaypro(a1,a2);
}}}}
/********************************/
/* 定时中断1 */
/********************************/
void time1_isr(void) interrupt 3 using 0//定时器1用来动态扫描
{
TH1=0xF8;//重入初值
TL1=0xf0;
Displaypro(a1,a2);
}
/********************************/
/* 定时中断0 */
/********************************/
void tim(void) interrupt 1 using 1
{
static unsigned char count;//定义内部静态变量
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
count++;
if (count==20)
{
count=0;
b++;
if(b==60)
{b=0;
a2--;
if(a2==-1)
{ a2=9;
if(a1>0)
a1--;
}
if(a1==0&&a2==0)
{TR0=0;
flag1=4;
}}}}
展开阅读全文