单片机课程设计-微波炉控制系统.doc
电气与电子信息工程学院?单片机?课程设计报告题 目: 微波炉控制系统 专业班级: 学号: 201 姓 名: 指导教师: 胡蔷、汤立刚 设计时间: 2013年12月23日2013年12月27日 设计地点: K2-407单片机、微机原理实验室 2013年11月20日 单片机 课程设计成绩评定表辩论或质疑记录:记录:1、微波炉控制系统的火力档位在仿真过程中,是有三个不同的发光二极管来控制,并没有热传感器来连接,因为是仿真所以无法做出效果来。2、开关键控制显示屏,使其启动至用户状态。可以关闭显示屏以及工作灯,但是并不能控制加热中的微波炉停止。问题:1、为什么使用矩阵式键盘?答:本次设计采用了多个按钮,如果使用独立式键盘,将占用大量的I/O口资源,所以我们采用4×4矩阵式键盘,这样可以节省大量的I/O口资源。2、为什么要使用MAX7221这个芯片?答:可以很方便地和单片机相连,未经扩展最多可用于8 位数码显示或64 段码显示。经实际使用发现,该芯片具有占用单片机I/O 口少仅三线。成绩评定依据:课程设计考勤情况 5:课程设计仿真测试情况 15课程设计辩论情况 30:完成设计任务及报告标准性50:最终评定成绩以优、良、中、及格、不及格评定 指导教师签字: 2021 年 12 月 日课程设计任务书20212021 学年第 1 学期专业班级: 指导教师:胡蔷 汤立刚工作部门: 电气与电子信息工程学院 电气自动化教研室 一、课程设计题目 单片机课程设计 二、课程设计内容含技术指标1设计目的及要求1 根据具体设计课题的技术指标和给定条件,以单片机为核心器件,能独立而正确地进行方案论证和电路设计,完成仿真操作。要求概念清楚、方案合理、方法正确、步骤完整; 2 熟悉、掌握各种外围接口电路芯片的工作原理和控制方法; 3 熟练使用单片机汇编语言或C51进行软件设计; 4 熟练使用Proteus、Keil软件进行仿真电路测试; 5 熟练使用Protel软件设计印刷电路板; 6 学会查阅有关参考资料和手册,并能正确选择有关元器件和参数;7 编写设计说明书,参考毕业设计论文格式撰写设计报告。2设计内容题目名称: 微波炉控制系统 本课题主要是对家用微波炉控制系统的研究,确定系统的整体方案,编写程序来实现微波炉控制的根本功能。微波炉控制系统设计是以AT89C51单片机为核心的。系统具体包含显示电路,键盘电路,计时控制电路,火力输出电路,响铃提示电路等多个局部。设计制作一个微波炉控制器电路,具有三档微波加热功能,分别表示微波加热为大火、中火、小火,模拟仿真中用不同颜色发光二极管模拟。实现工作步骤:复位待机检测显示电路设置输出功能和定时器初值启动定时和工作开始结束加热、音响提示。 按键启动时间设置,最大预设数为23小时59分59秒。设定时间初值后,按档位选择键,启动相应的微波加热;另一方面使计时电路以秒为单位作倒计时。当计时到时间小于20s,给出声音提示,即扬声器输出提示音。三、课程设计考核方法与成绩评定根据过程、报告、辩论等确定设计成绩,成绩分优、良、中、及格、不及格五等。2021年 月 日 第一章 控制系统总述1.系统框图系统待机用户设定开始加热完成、提示一般的家用微波炉操作流程都包括定时、档位选择、启动等。所以微波炉工作大致可以四个步骤:系统待机用户时间、档位、火力设置系统工作完成、提示。系统框图2.系统功能实现系统启动时,8位数码管显示零时、零分、零秒,即00-00-01。火力输出档位通过三个不同颜色的发光二极管显示(分别表示大火、小火、中火)。键盘分按键K0,K1,K2,K3,K4,K5,K6,RESET八个按键RESET复位键采用独立式键盘。K0键为微波炉的启动与关闭。K1、K2、K3键为档位选择键,分别代表大火、中火、小火,选择后相应的发光二极管会发亮。K4键为时、分、秒设定选择键。K5、K6键分别为时间的加减设定。RESET为复位键。每次按下按键后系统都会启动音响发生模块发出“嘀的声音。选择适宜的档位,微波炉启动数码管开始倒计时,当倒计时到软件程序设定的固定时间20s会进行倒计时提醒,此时会发出提示声音。工作状态档位设置用户设置系统待机系统上电时间设定系统复位按K0启动 初始时间为00-00-01K1、K2、K3分别代表大、中、小Reset复位K4、K5+K6-3.控制电路设计 微波炉控制系统以AT89C51单片机为核心,通过外接设备进行微波炉的显示、火力输出、定时设计,来完成系统设计的要求。 内部定时器电源电路单片机音响发生电路矩阵键盘电路档位显示电路8位数码管显示电路门电路设计火力输出电路系统的总体框图控制电路设计局部以AT89C51单片机控制电路为核心,由定时器电路,显示电路,键盘电路,门电路,电源电路,音响发声电路,火力输出电路,档位显示电路共同组成微波炉控制系统电路,在本设计中,我们对火力输出电路原理只作解释,不作硬件电路的设计。第二章 方案论证1. 档位输出方案方案一:我们可以通过扩展芯片对单片机的I/O口进行扩展,将单片机的一个I/O端口扩展成三个输出端口以便节省单片机的I/O口资源。方案二:直接利用单片机的三个I/O口进行档位控制。单片机扩展芯 片单片机 I/O I/O I/O方案一 方案二结论:鉴于单片机含有丰富的I/O口资源,所以我们采用方案二,无须扩展。2. 计时控制方案方案一:使用专门的时钟芯片控制,我们可以采用专门的时钟控制芯片能够保证高精度、操作简单等,能够实现单片机的准点定时控制。方案二:AT89C51 单片机内部就含有定时器,我们可以使用一个定时器和计数器结合,加上12M晶振的驱动,实现定时、计数控制。结论:我们采用方案二,单片机灵活性高,方案二节省器件,使电路简化,有很高的性价比,对于计时的精度我们可以通过软件设计来弥补调整。3键盘设计方案方案一:独立式键盘,每个独立按键单独占有一根I/O接口线,每个I/O口的工作状态互不影响,此类键盘采用端口直接扫描方式。缺点是当按键较多时占用单片机的I/O数目较多,优点是电路设计简单,且编程极其容易。在按键不多的情况下我们可以采用独立式键盘。独立式键盘如图。方案二:4×4矩阵式键盘,此类键盘是采用行列扫描方式,优点是当按键较多时可以降低占用单片机的I/O口数目,节省单片机的I/O口资源。结论:我们采用方案二,因为本次设计采用了多个按钮,如果使用独立式键盘,将占用大量的I/O口资源,所以我们采用4×4矩阵式键盘,这样可以节省大量的I/O口资源。矩阵式键盘。独立式键盘 矩阵式键盘4显示设计方案方案一:采用数码管显示,数码经济适用,只需简单的驱动芯片,即可驱动显示,但是信息量少。方案二:采用液晶显示,某些液晶显示器具有汉字显示功能,用液晶来实现显示功能,不仅可以实现根本的显示信息,而且可以显示丰富的符号指示信息以及文字指示信息,如AM/PM,闹钟符号等,信息量丰富且直观易懂。而且液晶显示有功耗低,体积小,重量轻,寿命长,绿色环保等优点。结论:根据设计要求,我们只需实现定时显示,只要能显示时间即可,信息量少,只需显示时、分、秒。所以我们采用8位数码管进行显示,完全能够到达设计要求。5火力输出方案根据设计要求,只需设计高、中、低三档功能,无需多档位控制。只需输出大火、中火、小火三档火力。因此,我们只需模拟出三档火力即可。我们通过三种不同颜色的发光二极管即可到达设计要求。6响铃提示方案 我们可以使用单片机的一个I/O端口,然后接上扬声器,通过软件方式,修改延时、周期,来到达响铃提示的效果。7方案确定经过比拟和分析,得出了较理想的方案:1计时单元由软件编程来实现。定时采用单片机内部定时器来实现,即通过单片机内部定时器产生中断,再通过软件编程实现进行计数,从而实现时、分、秒的倒计时。2时间显示采用8位LED数码管显示时、分和秒。档位显示采用3个不同颜色的发光二极管显示,分别表示大火、中火、小火三档火力。3键盘采用单片机4×4矩阵式键盘,端口输入电平,通过单片机扫描相应端口电平来判断按键的抬起与按下。4响铃提示直接由单片机控制输出,连接在扬声器在电阻上叠加推动扬声器发声。第三章 硬件设计1.微波炉控制系统仿真硬件原理图 时钟电路:AT89C51系列单片机的内部振荡器,由一个单极反相器组成。我们一般采用12M的晶振,因为一个机器周期为1/12时钟周期,所以这样用12M的话,一个时钟周期为12us那么定时器计一次数就是1us。时钟电路内部结构图复位电路: 复位电路的根本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。 2键盘电路设计在按键设计中,为了满足设计的要求,需要使用的按键较多所以我们采用4×4矩阵式键盘,矩阵式键盘比拟节省单片机的I/O的资源。键盘的接口分别连入单片机I/O接口的P0.0,P0.1,P0.2,P0.3,P0.4,P0.5,P0.6,P0.7。通过单片机内部判断这些I/O接口来确定按键是否被按下。Key05、Key06、Key07、Key08通过一个与门接到P3.2接口,这样可以通过P3.2口来判断有没有按键被按下。通过特定的扫描程序对键盘进行扫描。P3.2接口为中断0接口,也可用此端口进行中断操作。为了防止电路出现异常而无法控制特设计了一个复位按键。 矩阵式键盘电路3. 档位显示电路设计档位显示模块是由三个发光二极管显示,分别代表“大火、“中火、“小火三个火力档位,直接将发光二极管通过三极管接至单片机I/O接口通过单片机发送低电平使发光二极管发光,用来模拟三个档位输出。具体电路设计如图。档位显示电路设计注:以上火力输出电路LED1、LED2、LED3分别代表大火、中火、小火,在研究中我们将采用不同颜色的发光二极管分别代表大火、中火、小火进行模拟仿真。4显示电路设计根据前面章节的分析与方案选择,我们只需实现定时显示,只要能显示时间即可,信息量少,只需显示时、分、秒。所以我们采用8位数码管进行显示,完全能够到达设计要求,我们选择MAX7221作为8位LED驱动芯片。5. 数码管我们采用数码管动态驱动。动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制翻开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能节省大量的I/O端口,而且功耗更低。AT89C51单片机的 分别接MAX7221 的DIN、CS、CLK引脚。显示电路6. 响铃、提示电路设计在微处理器的发声装置成为蜂鸣器buzzer。一般来说,蜂鸣器就是小型喇叭speaker,也是一种电感性负载。单片机驱动蜂鸣器的信号为各频率的脉冲。7. 蜂鸣器发声原理蜂鸣器的声音是由蜂鸣器的振动产生的。蜂鸣器就像一个电磁铁,电流经过它即可产生磁性,这样蜂鸣器里发生的膜片将被吸住;电流消失时,膜片将被放开。假设要产生频率为f的脉冲,那么需要在T时间内进行吸放各一次,换言之,产生磁性、消除此磁性的时间各位T/2,称为半周期。响铃、提示电路8. 火力大小输出设计 微波炉的火力大小是由内部功率调节器设定的。功率调节器也由定时器所用的同一电机驱动。 实际工作时,当设定好功率值后,功率调节器便控制磁控管工作一段时间再休止一段时间,并按一定周期不断循环这个过程,直至微波炉工作结束。这里假设磁控管在个循环周期内的工作时间为t1,休止时间为t2,那么一个循环周期T=t1+t2,可清楚地看出功率调节器控制微波输出功率的方式。循环周期T取值很有讲究,从加热角度考虑取短些好,但太短将使功率调节开关频繁动作,影响磁控管的工作稳定和使用寿命。正如前文所提到的,在本文的研究中我们只显示档位输出,对微波炉火力的大小比例不作设计模拟。第三章 软件设计系统软件设计主要是对微波炉系统程序进行设计。系统程序总体可以分成主程序、键盘显示模块程序、计时模块程序等。主程序跟据系统的工作流程,系统可分为四个状态,分别是:系统待机状态,用户设置状态,微波炉加热状态和响铃、提示状态。我们将使用C语言对系统程序进行编写,下面我们分别对这这些程序进行详细设计和研究。1. 显示程序设计我们主要是使用数码管驱动芯片MAX7221,实现8位数码管显示的。流程图MAX7221流程图和图显示子程序流程图。开始声明变量延时程序CS=0写地址,片选置低YNaddr << = 1有进位DIN=CYYCLK=1;_nop_();CLK=0发送数据、锁存数据循环8次YN返回 MAX7221流程图开始声明驱动信号数组声明延迟函数初始化MAX7221返回显示8位 显示程序流图2. 键盘模块程序设计本次设计主要采用的是4×4矩阵式键盘,其中包含4行、4列,构成一个4×4的数组。键盘的扫描方式 有低电平扫描、高电平扫描两种方式。当我们进行扫描时,将扫描信号送入行,再由列信号读取键盘状态。开始声明变量扫描初始值读取数组数据输出 延时下一个扫描码4次扫描返回YN键盘模块程序流程图3. 计时模块程序设计通过单片机内部定时器0进行时间控制,单片机外接晶振,在主程序中设置定时器初值来获得1Hz的中断。流程图如下。声明变量开始设定定时器中断设置定时量TH0,TL0,启动定时停滞开始重新设定定时量50次Y重新计数秒加160s?秒归0,分加1Y60minY分归0,时加124hY时归0填入显示区返回NNNN主程序 计时程序流程图4. 系统待机程序设计我们接通电源后系统进入待机状态,此时LED亮,当翻开系统后将进入用户设置状态,如下图。系统待机状态调用显示程序用户状态设置按键系统待机框图系统通过判断单片机P3.2接口的输入电压来判断按键是否按下,具体流程图如下。显示程序P3.2=1键盘扫描程序N开始返回 系统待机流程图5用户设定程序设计系统启动时,8位数码管显示零时、零分、零秒,即00-00-01。火力输出档位通过不同颜色的发光二极管显示(分别表示大火、小火、中火)。键盘分按键K0,K1,K2,K3,K4,K5,K6,REST八个按键。用户可以通过按键进行档位和时间的设定,首先按下K0键启动微波炉,K1、K2、K3键为档位选择键,选择后相应的发光二极管会发亮。K4键为时、分、秒设定选择键。K5、K6键分别为时间的加减设定。第四章 仿真结果整个软件系统采用模块化的程序设计方法,共分为初始化,显示程序,准备程序,运行程序,定时器程序,声音发声程序等。微波炉初始化界面: 微波炉运行界面:第五章 总 结 微波炉控制系统设计以单片机为核心。目前,很多学校有单片机开发的课程,很多企业都致力于高性能单片机的开发,提高单片机的性能和利用,单片机正向智能化、低功耗、高精度方向开展。小到家用电器,大到工业控制系统如自动化生产线,单片机在这些领域都有所建树。以微波炉控制系统为研究对象,旨在阐述并实现单片机的根本功能。相关工作总结如下。经过一段时间以来的学习,不断地从设计中总结和修改,并按着预期的要求反复的论证和测试。本着学习的态度,以完善设计的可靠性和稳定性,将整个设计分模块化的进行,并将每个模块加以分析和论证,成功后再联系在一起,最终到达总体效果。1. 存在的问题1.目前,从功能上分析,系统存在误差,主要是系统倒计时的计时误差和时钟的走时误差,我们可以选择适当的参数,完全能够满足设计要求。2.按键的控制较少,只实现了时间选择,火位档选择的按键,运用率较低。可以添加更多的功能配置。本设计微波炉控制系统只是实现了微波炉的根本功能,与市面上的微波炉相比,功能较少,但可以进一步开发这方面的功能。2. 系统的改良扩展改良:在本次设计中,微波炉的控制在报警系统上有待改良,系统上电后,会出现短暂的报警。但是由于仿真的报警频率较高,所以总会出现类似凤鸣的声音,需要改良。该进:系统上,除了有时间定时以及火力控制外,可以给微波炉控制添加一个开关门系统。微波炉只有在关门后才可以进行倒计时,并实施加热。改良:可以添加温度控制,和实时温度显示屏。可以更为直观的观测加热中食物的温度。如假设温度过高,可以立即停止微波炉的运行。改良:复位电路的控制。如果出现温度过高,或者因人为操作而产生的报警,复位电路应采取应急措施。使微波炉自动断电,实施自行保护措施。3. 个人小结本次课程设计是基于单片机的微波炉控制系统,我从多个方面去对熟悉理解单片机。整个课程设计下来,我们不仅可以灵活运用单片机的理论知识,编程等方面的能力也有了很大的提高。在本次设计中,我主要是在软件设计和软件仿真并没有做实物。但是经过这么长时间的努力,还是很好的完成了自己的课程设计。我也更加体会到了,我们在学习生活中要有足够的耐心,足够的细心,在分析、解决问题的同时,不断地进取,不断地创新,不断地充实自己。