资源描述
辽 宁 工 业 大 学
电子综合设计和制作 课程设计(论文)
题目:可编程微波炉控制系统设计
院(系): 电子和信息工程学院
专业班级: 电子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;
}}}}
展开阅读全文