智能电饭煲控制系统课程设计_第1页
智能电饭煲控制系统课程设计_第2页
智能电饭煲控制系统课程设计_第3页
智能电饭煲控制系统课程设计_第4页
智能电饭煲控制系统课程设计_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、 广州学院课程设计说明书 智能电饭煲控制系统设计 院(系) 机械工程学院 专 业 机械工程及自动化 班 级 学生姓名 指导老师 2012 年1月1日 课 程 设 计 任 务 书兹发给2009级机械工程及自动化 班学生 课程设计任务书,内容如下:1 设计题目: 智能电饭煲控制系统设计 2 应完成的项目: (1) 智能电饭煲控制系统整体方案设计 (2) 智能电饭煲控制系统硬件电路设计 (3) 智能电饭煲控制系统软件程序设计 (4) 完成电路原理图1张、软件程序清单1份 3 参考资料以及说明: 1余永权.单片机与家用电器智能化技术M.北京:电子工业出版社,1995. 2李士勇.模糊控制·神

2、经控制和智能控制论M.黑龙江:哈尔滨工业大学出版社,1998 3周鲜成.模糊电饭煲的控制原理J.株洲工学院学报,2000, 14 (6) : 35-37. 4李宇成,卢俊峰.电饭煲的模糊控制器J.北方工业大学学报,1998, 10 (3) : 85-90.4 本设计任务书于2012 年12月24日发出,应于2013年1月4日前完成,然后进行答辩。指导教师 签发 2012 年 12 月 24 日课程设计评语:课程设计总评成绩:指导教师签字:年 月 日目 录摘要2第一章 绪论11.1 背景及发展11.2 设计任务错误!未定义书签。第二章 智能电饭煲控制系统整体设计方案错误!未定义书签。第三章 智能

3、电饭煲控制系统硬件设计33.1 单片机的选择33.2 传感器DS18B20的简介错误!未定义书签。3.3 显示模块的设计53.4 键盘模块的设计6 3.5 火力控制模块73.6 电源模块设计83.7功率调节8第四章 智能电饭煲控制系统软件设计104.1主程序设计104.2子程序设计11定时功能控制流程114.2.2 加热功能控制流程13结束语14参考文献15附 录16附录1:智能电饭煲控制系统电路原理图16附录2:智能电饭煲控制系统软件源程序清单17摘要本次课程设计是以AT89C52单片机为核心器件,设计了智能电饭煲控制系统。在当今科技发达的时代,智能科技成为了我们生活中必不可少的生活帮手,在

4、家用电器中运用智能科技可以使我们的生活更加方便。智能电饭煲的设计原则就是“方便人们的生活”。本次的课程设计是先对电饭煲的发展状况进行了阐述,分析了电饭煲的发展趋势,以及智能电饭煲的发展优势。在此基础上,确定了本课题智能电饭煲控制系统整体设计方案。其次,从实用性、智能化、节约成本、环保节能等角度出发,对智能电饭煲控制系统的硬件、软件进行了详细设计。按照实现功能对硬件、软件进行了功能划分,并对各部分的原理、实现方法进行了详细说明。关键词:智能控制,电饭煲,单片机,传感器第一章 绪论1.1 背景及发展 电饭煲,又称作电锅、电饭锅。是利用电能转变为内能的炊具,常见的电饭锅分为保温自动式、定时保温式以及

5、新型的微电脑控制式三类。现在已经成为日常家用电器,电饭煲的发明缩减了很多家庭花费在煮饭上,在今天,电饭煲已经成了家庭必备的电器之一。电饭煲最初是机械式控制,这种控制方式具有结构简单、技术门槛低、价格便宜等优点,但同时也有功能单一、控制方式不灵活等不足之处。近年来,随着电子技术的发展,元器件的制造成本不断下降,电饭煲也迎来了智能化的春天。智能电饭煲修改过去功能简单的煮饭模式,将煮食这一事件细分为煮饭、煲汤、煮粥等多种任务模式,此外还具有预约定时,自动保温及功率选择等功能,提升了产品的人性化设计,使得煮食过程更加方便、快捷,满足了人们的需求。1.2设计任务 试设计电饭煲控制器,要求可以有预约煮饭、

6、定时做饭功能、煮饭、煮粥等功率选择具体要求如下。1.2.1 控制策略 控制系统支持对煮饭时间进行提前预约,定时时间到后自动进行煮饭,煮饭结束后自动转入保温模式。1.2.2 定时 用户可以是电饭煲在预约时间(倒计时方式)开始工作。1.2.3 功率选择 煮饭、煮粥时可选择不同的功率,相对于煮饭,煮粥的功率可选择较小。1.2.4 显示器 本设计中选用LCD-1602作为显示器件,用于向用户传递更多的信息,包括定时时间显示、工作模式显示、故障提示等信息。第2章 智能电饭煲控制系统整体设计方案 智能电饭煲控制系统硬件电路按照功能可划分为七个组成部分,即控制系统单片机最小系统工作电路、控制系统电源电路、按

7、键输入电路、温度传感器电路、LED状态指示电路、LCD显示电路以及电饭锅加热电路。图一 智能电饭煲控制系统组成图 第三章 系统硬件设计 3.1 单片机的选择 中央处理模块单片机芯片通过比较,选用了 AT89C521单片机来作为本系统的核心,图二所示的是单片机的最小系统电路。图二 智能电饭煲控制系统单片机最小系统电路 3.2传感器DS18B20简介 DS18B20数字温度计是DALLAS公司生产的1Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。 DS18B20是一款功能独特的产品,其特点如下: (

8、1)、只要求一个端口即可实现通信。 (2)、在DS18B20中的每个器件上都有独一无二的序列号。 (3)、实际应用中不需要外部任何元器件即可实现测温。 (4)、测量温度范围在55。C到125。C之间。 (5)、数字温度计的分辨率用户可以从9位到12位选择。 (6)、内部有温度上、下限告警设置。 DS18B20有两种封装形式,即TO92封装和8-pinSOIC封装。每种封装的样式及引脚排列见图三,其引脚功能描述见表3-2。图三DS18B20的引脚排列表3-2 DS18B20详细引脚功能描述序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以

9、向器件提供电源。3VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。3.3显示模块设计 液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,本设计中选用的字符型液晶模块是一种用5x7点阵图形来显示字符的液晶显示器,根据显示的容量可以分为1行16个字、2行16个字、2行20个字等等,本设计中选用常用的2行16个字的1602液晶模块。LCD-1602共有引脚16个,各引脚的功能如下: 第1脚:VSS为地电源 第2脚:VDD接5V正电源 第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高。 第4脚:RS为寄存器选择,高电平选择数据寄存器、低电平时

10、选择指令寄存器。 第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。 第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。 第714脚:D0D7为8位双向数据线。 第1516脚:BLA(BL1):LED背光正极。需要背光时,BLA串接一个限流电阻接VDD,BLK接地,实测该模块的背光电流为50mA左右,一般接一个几十欧姆的电阻。 BLK(BL2):LED背光地端。如图四所示。 图四为显示模块电路3.4键盘模块设计 该系统的键盘

11、由5个独立键盘构成,包括一个中断键盘单元。来完成智能电饭煲的手动控制。键盘的一脚接在单片机的p1.0至p1.5脚上,另外一脚接在电源地上,当有键盘按下时对应的键盘就会有一低电平送进单片机内部。为消除触点式按键开关的机械抖动,单片机内部有程序进行消抖处理,然后确定那一个键盘被按下后来执行程序完成该系统的指定工作。 该控制系统键盘接入电路如图五所示。图五 控制系统键盘输入电路3.5火力控制模块设计 电饭煲采用加热盘作为加热部件,加热盘需要直接与220V交流电压相连接,而且功率一般在1500瓦以上,因此其工作电流也比较大。因此控制系统需要专门设计驱动加热盘的电路,如图五所示 本设计中采用继电器驱动加

12、热盘与220V交流电源接通。 原因有二,一是继电器具有驱动电流大,控制简单,稳定可靠的优点,适合电饭煲中开关频率不高的应用场合。二是继电器的线圈与输出节点之间有天然的隔离作用,无需另外添加光耦等隔离器件。 本电路中加热盘驱动电路如图。单片机引脚通过驱动NPN三极管间接驱动继电器。当与之相连的单片机引脚电平为高时,三极管处于导通状态,继电器线圈中有电流流过,从而触电吸合。电路中将继电器触点通过插接器件引出,方便将加热盘与电源串接起来。 其中,R8为限流电阻,阻值定为3.3K。D1为二极管,在此电路中起到对继电器线圈续流作用,避免线圈感生高电压击穿三极管。图六 控制系统热盘驱动电路 3.6 电源模

13、块设计 本设计中,控制系统电源电路设计如图3-6所示。 220V交流电源由J1接入电路,后经变压器T1将220V降压为8.5V交流电压,该低交流电压经N1进行全波整流,变为脉动直流,最后,该脉动直流经过低压差稳压芯片78L05稳定为纹波系数较小的5V直流电源。 图七 整流流程图3.7 功率调节设计 本电饭煲功率调节电路,可获得四挡火力,用以适应不同火候的要求。 电路工作原理 电路原理图如图九所示。调节波段开关SA的挡位,可以改变电容C1的充放电速率。利用C1两端交流电压通过双向触发二极管VD3去触发双向晶闸管VS导通、并改变了VS的导通角,使负载RL两端交流电压随之发生变化。 发光二极管VD2

14、、VD5作为信号指示,由于导通角不同,发光亮度各异。SA置于“1”挡,VD5显示;SA置于“4”挡,则VD2显示;R5是限流电阻,用来保护VS。电阻R7、电容C2为吸收回路,用来吸收SA在选挡时所产生的干扰脉冲,否则在SA选挡过程中将对电视机、音响及其他电声器件产生一定的干扰; 元器件选择 电容C1选用0.1uF/160V,C2选0.022uF/400V(涤纶电容器)。电阻R1为56k、1/2W,R2为39k、1/4W,R3为27k、1/4W,R4为2k、1/4W,R5为47、1/2W,R6为100k、1/2W(可变),R7为300、1/4W,R8为43k、1/2W。二极管VD1、VD4用1N

15、4004。发光二极管VD2用BT104(黄色),VD5用BT103(绿色)。触发二极管VD3为DB3或VR60。双向晶闸管V5用TLC226B(3A/400V)或TLC336A(3A/600V)。波段开关SA用KZX-1-2D-11W。负载RL为交流220V/1500W(加热盘)。 图九 功率调节电路第4章 智能电饭煲控制系统软件设计4.1 主程序设计 系统的软件设计采用结构化和模块化设计的方法,便于程序的编写、调试和排除错误,同时也便于检验和维护。根据设计的要求和前面描述的控制器系统硬件设计的具体情况,单片机系统的软件程序主要由以下模块组成:初始化主程序、输入及显示、温度采集、火力控制。主程

16、序流程图如图11所示。 图11 主程序结构图4.2子程序设计4.2.1 定时功能控制流程 软件实现该功能的流程如图12所示。 系统运行后,若按下“SET”按键,系统即可进入预设定时时间状态,此时“时”位数值开始闪烁,表示“时”位数值处于可设定状态。此时按下“ADD”键,预定时间的小时数将累加1,若按下“DEC”键,预定时间的小时数减1。 本控制系统支持最大定时12小时,当小时数超出12后会溢出为0。即置“时”位数值时,若当前示数为12,且按下“ADD”键,则小时数由12变为0时0分。 小时数设定完成后,按下“OK”键,进入设定“分”状态,同时“分”位数值开始闪烁。此时按下“ADD”键,预定时间

17、的分钟数加1,若按下“DEC”键,则预定时间的分钟数减1。 若当前的分钟数为59,且按下“ADD”键,则分钟数溢出为0,同时小时数加1;若当前分钟数为0,且按下“DEC”键,则分钟数溢出为59,同时小时数减少1。 分钟数设定完成后,再次按下“OK”键,系统则保存用户设定的定时时间并退出定时时间设定状态。 随后系统暂停所处的工作模式,进入倒计时程序。定时时间到,系统自动进入预定的工作模式,或煮饭或煲汤或保温。图12 定时功能控制流程4.2.2 加热功能控制流程 智能电饭煲控制系统对电饭煲加热与否需要根据当前锅内温度以及所处的工作模式做出选择。其软件控制流程如图13所示。 控制器先通过置于盖顶的温

18、度传感器获得当前锅内温度,根据所处的工作模式,得到需要到达的目标温度。若当前锅内温度小于目标温度,则控制器接通加热盘加热,否则断开加热盘,停止加热。图13加热功能控制流程图结束语 本次的电饭煲控制系统设计完全实现智能控制,包括预约煮饭、煮粥、定时做饭、煮粥、做饭功率的选择等功能。预约和定时做饭时间可随意调节,预约结束后自动进行相应的预约动作。 这次课程设计是对我学习微机原理及单片机课程的检验及实际应用能力一次提高。在编写程序之前,我们查阅了大量的相关资料,力求做到规范清晰。编程的过程中,我们遇到了很多问题,但在同学和老师的帮助下都得到了解决。经过两个星期的课程设计,我得到了充分的锻炼,不仅对单

19、片机的学习有深刻的理解,同时也增强了我们的毅力和处理突发问题的能力。课程设计是一次很好的实践动手机会,通过这次设计,我们学会了如何将所知识学以致用。为我们的毕业设计奠定了良好的基础。参考文献1余永权.单片机与家用电器智能化技术M.北京:电子工业出版社,1995.2李士勇.模糊控制·神经控制和智能控制论M.黑龙江:哈尔滨工业大学出版社,19983周鲜成.模糊电饭煲的控制原理J.株洲工学院学报,2000, 14 (6) : 35-37.4李宇成,卢俊峰.电饭煲的模糊控制器J.北方工业大学学报,1998, 10 (3) : 85-90.附 录附录1:智能电饭煲控制系统电路原理图附录2:智能

20、电饭煲控制系统软件源程序清单CPU:AT89C51晶振:24M版本:V1.0日期:2012.03/=/#include<reg51.h>#include<intrins.h> #include<string.h> /-#define PORT P2 #define NEGATIVE10#define POSITIVE11#define Y0XFF#define N0x00#define LOW0X00#define HI0x01/读端口数据-#define POWERON(P1&(1<<0)>>0)/p1.0#define P

21、OWEROFF(P1&(1<<1)>>1)/p1.1#define MODEL(P1&(1<<2)>>2)/p1.2#define ADD(P1&(1<<3)>>3) /P1.3#define DEC(P1&(1<<4)>>4) /P1.4#define OK(P1&(1<<5)>>5) /P1.5/写端口数据-sbit HOT=P30;sbit workingled=P31;sbit timerled=P32;sbit banwenl

22、ed=P33;sbit baotangled=P34;sbit zhufanled=P35;sbit RS=P00; sbit RW=P01; sbit EN=P02; sbit DQ=P17; /-unsigned char code shuzidaima=0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x2d,0x2b;unsigned char temp_lowbyte_unprocess; unsigned char temp_hibyte_unprocess; unsigned char temp_xiao;unsigned ch

23、ar temp_ge;unsigned char temp_shi;unsigned char temp_bai;unsigned char temp_fuhao;/-unsigned char poweron=N;unsigned char model=0;unsigned char dest_temp=0;unsigned char now_temp=255;signed int min_num=0;unsigned char timersetting_state=0;unsigned char timing_state=N;unsigned int loop=0;unsigned cha

24、r loop1=0;unsigned char loop2=0;unsigned int loop3=0;/*=子程序=*/-/函数名:delay()/-void delay() unsigned int i; for(i=0;i<=800;i+) ; /-/-/函数名:lcd_wcomd()/-void lcd_wcomd(unsigned char command) RS=0; RW=0; PORT=command; delay(); EN=1; _nop_(); EN=0; delay(); /-/函数名:lcd_wdata()/-void lcd_wdata(unsigned c

25、har dat) RS=1; RW=0; PORT=dat; delay(); EN=1; _nop_(); EN=0; delay();/-/函数名:lcd_ini()/-void lcd_init() lcd_wcomd(0x01); lcd_wcomd(0x06); lcd_wcomd(0x0c); lcd_wcomd(0x38); /-/函数名:printchar()/-void printchar(unsigned char zifu) unsigned char j,k; k=strlen(zifu); for(j=0;j<=k-1;j+) lcd_wdata(zifuj);

26、/-/函数名:display_num()/-void display_num(unsigned char shuzi_in) lcd_wdata(shuzidaimashuzi_in);/-/函数名:display_1602()/-void display_1602()lcd_wcomd(0x80+0x00);printchar("Model:");lcd_wcomd(0x80+0x07);if(timersetting_state>=1)printchar("TimerSet ");else if(model=0)printchar("

27、- - ");if(model=1)printchar("KeepWarm");if(model=2)printchar("PotSoup ");if(model=3)printchar("CookRice");/-/函数名:delay1()/-void delay1(unsigned int n) for(n;n>0;n-) ;/-/函数名:rest_1820()/-void rest_1820() DQ=0; DQ=1; delay1(77);/-/函数名:write_18b20(unsigned char xie

28、can)/-void write_18b20(unsigned char xiecan) unsigned char xie_i; for(xie_i=1;xie_i<=8;xie_i+) DQ=0; delay1(1); _nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_(); _nop_(); _nop_();/DQ=1; DQ=0x01&xiecan; delay1(6); _nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_(); DQ=1; _nop_();_nop_();_nop_(

29、); _nop_();_nop_(); xiecan=xiecan>>1; /-/函数名:read_18b20()/-unsigned char read_18b20()unsigned char du_i;unsigned char outdata_1820=0x00; unsigned char tmp_du=0x00; for(du_i=1;du_i<=8;du_i+) DQ=1; DQ=0; _nop_ _nop_(); DQ=1; _nop_();tmp_du=P1&0x80;tmp_du=tmp_du<<0; outdata_1820=outd

30、ata_1820|tmp_du;delay1(8);if(du_i=8)break;outdata_1820=outdata_1820>>1; return(outdata_1820);/-/函数名: readtemp_conver()/-void readtemp_conver() rest_1820(); write_18b20(0xcc); write_18b20(0x44); /-/函数名: readtemp_readdata()/-void readtemp_readdata() rest_1820(); write_18b20(0xcc); write_18b20(0x

31、be); temp_lowbyte_unprocess=read_18b20(); temp_hibyte_unprocess=read_18b20(); /-/函数名:hex_dec()/-unsigned char chazhi(unsigned char h_data) if(h_data<=0x05) if(h_data=0x00)return(0);if(h_data=0x01)return(1);if(h_data=0x02)return(2);if(h_data=0x03)return(3);if(h_data=0x04)return(4);if(h_data=0x05)r

32、eturn(5); else if(h_data<=0x0a)if(h_data=0x06)return(6);if(h_data=0x07)return(7);if(h_data=0x08)return(8);if(h_data=0x09)return(9); if(h_data=0x0a)return(10);else if(h_data=0x0b)return(11); if(h_data=0x0c)return(12); if(h_data=0x0d)return(13); if(h_data=0x0e)return(14); if(h_data=0x0f)return(15);

33、else return(0); unsigned int hex_dec(unsigned char hex_canshu) unsigned int dec_jiegou; unsigned char hex_gao,hex_di; hex_di=hex_canshu&0x0f; hex_gao=hex_canshu>>4; hex_di=chazhi(hex_di); hex_gao=chazhi(hex_gao); dec_jieguo=hex_gao*16+hex_di; return(dec_jieguo);/-/函数名:key()/-void key() if(

34、POWERON=LOW) poweron=Y; workingled=0; model=0; if(POWEROFF=LOW) poweron=N;workingled=1;model=0;if(poweron=Y) if(model>1&&now_temp>dest_temp) model=1;if(MODEL=LOW&&loop>3)model+;if(model=4)model=1;loop=0;if(ADD=LOW&&timersetting_state>=1&&loop>3) if(time

35、rsetting_state=1) min_num=min_num+60;if(min_num>720) min_num=0;if(timersetting_state=2) min_num=min_num+1;if(min_num>720) min_num=0;loop=0;if(DEC=LOW&&timersetting_state>=1&&loop>3) if(timersetting_state=1)min_num=min_num-60;if(min_num<=0) min_num=0;if(timersetting_state=2)min_n

温馨提示

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

评论

0/150

提交评论