ImageVerifierCode 换一换
格式:DOCX , 页数:38 ,大小:282.96KB ,
资源ID:11727753      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11727753.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(电饭煲课程设计+程序教学提纲.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

电饭煲课程设计+程序教学提纲.docx

1、电饭煲课程设计+程序教学提纲电饭煲课程设计+程序 课程设计任务书 专业 年级 班 一、 设计题目 电饭煲控制器二、 主要内容电饭煲控制器有预约功能,有烹饪大米饭、粥、保温、冷饭加热等功能三、 具体要求 1.具体功能大米饭:当达到105时,停止加热,并在15分钟后通过蜂鸣器提示用户。粥:开始加热后,通过测温元件监视锅底温度,使锅底温度保持在99100.5之间(100时停止加热、99时开始加热),此种状态持续20分钟,之后通过蜂鸣器提示用户过程结束。保温:使锅底温度维持在5060之间。冷饭加热:锅底加热至100,使锅底温度保持在99100.5之间(100时停止加热、99时开始加热),此种状态持续5

2、分钟,之后通过蜂鸣器提示用户过程结束。2.定时 用户可以是电饭煲在预约时间(倒计时方式)开始工作,最长预约 时长为 12小时。3.控制面板四个发光管分别与大米饭、粥、保温、冷饭加热相对应,另一发光管用 于区分工作与预约,两位数码管用于预约时间及倒计时。按键有:开始键、 功能键、加键、减键。四、 进度安排1、了解任务要求,确定具体方案2、lcd12864液晶屏子程序设计3、DS18B20温度传子程序感器设计4、设计单片机按键功能程序5、根据任务要求编写程序,设计按键电路6、检验设计效果,完善功能五、 完成后应上交的材料电饭煲控制器论文六、 总评成绩指导教师 签名日期 年 月 日系主任 审核日期

3、年 月 日摘要电饭煲控制器有预约功能,有烹饪大米饭、粥、保温、冷饭加热等功能.。基于stc89c52单片机控制的电饭煲控制器,有lcd液晶屏显示和ds18b20温度检测功能,还有定时工作选择功能。关键字:电饭煲 温度控制 DS18B20 LCD12864 键盘按键一、任务分析与设计电路1、总体方案设计1.1、控制方案选择 方案:采用STC公司的STC89C52RC。此单片机价格低,资源多,高性价比,应用广泛,无论是从内部构造,还是编程方面,51系列单片机都相对简单容易掌握和使用。 对于本题目而言,由于电饭煲需要实现的功能少,对处理器的要求不高, 使用STC89C52RC不仅可以完全实现对电饭煲

4、的控制,还节约了成本。综合考虑,电饭煲控制器采用STC89C52RC单片机。1.2、测温模块控制选择测温模块采用数字温度传感器DS1820。DS1820是美国DALLAS半导体公司生产的可组网数字式温度传感器,其内部使用了在板(ON-B0ARD)专利技术。全部传感元件及转换电路集成在形如一只三极管的集成电路内。与其它温度传感器相比,DS1820具有以下特性:1. 独特的单线界面方式,DS1820在与微处理器连接时仅需要一条口线即可实现微处理器与DS1820的双向通讯。2.DS1820支持多点组网功能,多个DS1820可以并联在唯一的三在线,实现多点测温。3.DS1820在使用中不需任何外围元键

5、。4.测温范围55125,固有测温分辨率0.5。5.测量结果以9位数字量方式串行传送。由于在本课程设计中,电饭煲的期望温度最高值在数字温度传感器DS1820的量程内,同时,DS1820具有测温系统简单、测温精度高、连接方便、占用口线少等优点。所以,我选用DS18B20温度传感器。1.3、键盘按键方案选择由于在该课程设计中,需要的按键只要四个:开始键、功能键、加 键、减键,键盘个数较少,可以用独立式按键电路。所以我选用独立按键电路。1.4、显示方案选择方案一、使用数码管显示。数码管能显示数字,使用方法简单方便,可是显示过于单调。方案二、使用lcd12864液晶屏。lcd12864能清晰显示字符和

6、数字,显示的信息更多。因为数码管只能显示数字,过于单调,而lcd12864能显示汉字和数字,还有各种图案,能更好地进行人机沟通,达到更好的显示效果。综上所述,我选用lcd1286液晶屏。1.5、声音模块方案选择由于在该课程设计中,只需要对工作状态和工作方式的提示,用蜂鸣器产生的bee bee声音即可。1.6、功率元件模块方案选择功率元件的控制通过固态继电器来完成。固态继电器也称作固态开关。是一种由固态电子组成的新型电子开关器件,集光电藕合,大功率双向晶闸管,及触发电路,阻容吸收回路于一体.用来代替传统的电磁式继电器。实现对单相或者三相电动机的正反转控制,或者其他控制无触点无动作噪音。开关速度快

7、无火花干扰和可靠性高等特性。由于单片机学习板配有固态继电器,所以直接选用单片机学习板的继电器作为功率元件模块。2、电路设计2.1、控制模块STC89C52是一个低电压,高性能CMOS8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,STC89C52单片机在电子行业中有着广泛的应用。特点:1、兼容MCS51指令系统2、8kB可反复擦写(大于1000次)Flash ROM;3、32个双向I/O口;

8、4、256x8bit内部RAM;5、3个16位可编程定时/计数器中断;6、时钟频率0-24MHz;7、2个串行中断,可编程UART串行通道;8、2个外部中断源,共8个中断源;9、2个读写中断口线,3级加密位;10、低功耗空闲和掉电模式,软件设置睡眠和唤醒功能;11、有PDIP、PQFP、TQFP及PLCC等几种封装形式,以适应不同产品的需求。工作原理:STC89C52为8 位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC 内部寄存器、数据RAM及外部界面等功能部件的初始化,会聚调整控制,会聚测试图控制

9、,红外遥控信号IR的接收译码及与主板CPU通信等。主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。P0P3 为可编程通用I/O 脚,其功能用途由软件定义,如图1-1、1-2所示。图1-1 AT89C52的DIP封装引脚图图1-2 最小系统图2.2、测温模块测温模块采用数字温度传感器DS1820。DS1820是美国DALLAS半导体公司生产的可组网数字式温度传感器,其内部使用了在板(ON-B0ARD)

10、专利技术。全部传感元件及转换电路集成在形如一只三极管的集成电路内。与其它温度传感器相比,DS1820具有以下特性:独特的单线界面方式,DS1820在与微处理器连接时仅需要一条口线即可实现微处理器与DS1820的双向通讯。2.DS1820支持多点组网功能,多个DS1820可以并联在唯一的三在线,实现多点测温。3.DS1820在使用中不需任何外围元件。4.测温范围55125,固有测温分辨率0.5。5.测量结果以9位数字量方式串行传送。DS18B20有两种封装形式,即TO92封装和8-pinSOIC封装。每种封装的样式及引脚排列见图1-3,其引脚功能描述见表1。 图1-3 DS18B20的引脚排列序

11、号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。开漏单总线界面引脚。当被用着在寄生电源下,也可以向器件提供电源。3VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。表1 DS18B20详细引脚功能描述下图是温度检测模块原理如图1-4所示:图1-4 温度检测模块原理图2.3、键盘模块在键盘模块中,我采用独立式按键电路。特点:1)每个键独立地接入一根数据输入线。2)平时所有的数据输入线都连接成高电平;3)当任何一个按键压下时,与之相连的数据输入线被拉成低电平。4)要判断是否有键按下,只要位处理指令即可。独立连接式键盘优点是结构简单、使用方便,但随着键数的增多,所占用的IO口线

12、也增加。该系统的键盘由4个独立键盘构成。键盘的一脚接在单片机的P1.0至P1.4脚上,另外一脚接在电源地上,当有键盘按下时对 应的键盘就会有一低电平送到单片机内部。为消除触点式按键开关的机械抖动,单片机内部有程序进行消抖处理,然后确定那一个键盘被按下后来执行 程序完成该系统的指定工作。按键键盘原理图如图1-5所示: 图1-5 按键图2.4、显示模块显示模块我使用了lcd12864液晶屏。带中文字库的12864是一种具有4位/8位并行、2线或3线串行多种界面方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为12864,内置8192个16*16点汉字,和128个16*8

13、点ASCII字符集.利用该模块灵活的界面方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示84行1616点阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。其控制方法如图1-7、1-8所示。12864显示电路如图1-6所示:图1-6 12864电路图图1-7 图1-82.5、声音模块该模块使用蜂鸣器。蜂鸣器需要的驱动电流较大(50100mA),由于单片机输出低电平时的驱动电流只有十几毫安,因此要外接一个PNP三极管作为功率驱

14、动器件。当P37口输出低电平时,PNP导通,蜂鸣器正常工作,当当P37口输出高电平时,PNP截止,蜂鸣器暂停工作。原理如图1-9:图1-9蜂鸣器2.6、功率模块功率模块我选用单片机学习板上的固态继电器。如图1-10所示。图1-10 继电器电路图当单片机P36口输出低电平时,BJT管导通,LED9指示灯亮,继电器工作。二、软件设计1、程序流程图系统的软件设计采用结构化和模块化设计的方法,便于程序的编写、调试和排除错误,同时也便于检验和维护。单片机系统的软件程序主要由以下模块组成:初始化主程序、输入及显示、温度采集、功率元件控制。1.1、主流程图如图2-1所示:图2-1 系统主流程图1.2、子流程

15、图如图2-2:图2-2 系统子程序流程图1.3、功率元件控制流程图图2-2子流程图 电饭煲控制系统对电饭煲加热与否需要根据当前锅内温度以及所处的工作模式做出选择。其软件控制流程如下图所示。 控制器先通过温度传感器获得当前锅内温度,根据所处的工作模式,得到需要到达的目标温度。若当前锅内温度小于目标温度,则 控制器接通加热盘加热,否则断开加热盘,停止加热。功率元件控制流程如图2-3所示。图2-3 功率元件控制流程图1.4、定时预约工作流程图系统运行后,若按下“开始”按键,系统即可进入定时预约功能状态,表示“时”位的个位数值处于可设定状态,高位默认显示“0”。此时按下“加”键,预定时间的小时数的个位

16、将累加1,如果累加后的数值大于9,高位的数值将自动变为1;若按下“减”键,预定时间的小时数的个位将减去1。 由于本控制系统支持最大定时12小时,当小时数超出12后会溢出为0。即置定时数值时,若当前示数为12,且按下“加”键,则lcd显示的数值由12变为00。预约小时数设定完成后,按下“开始”键,系统则保存用户设定的定时时间并退出定时时间设定状态。随如图2-4所示:图2-4 定时工作流程图三、系统调试分析1、系统硬件调试按照画好的电路图把外围电路接好,主要的自己做了一个独立按键小键盘。而ds18b20温度传感器的接线比较简单,只需3跟线就完成了。2、系统软件调试12864液晶屏的原理比较好理解,

17、不要多长时间就看懂。而ds18b20温度传感器的原理就有点难懂,看了比较久才看懂。但在自己编译过程中,却出现很多错误。比如,系统无法读取ds18b20里面的温度,仔细检查程序后发现在ds18b20读取数据时间那里有错误,时间太短,导致无法读取。在编写主程序时,发现无法返回温度值给单片机,搞了很久都搞不定。后来发现是忘记了在ds18b20子程序那里加入返回函数return,加上return后,终于完成。四、心得体会在看到课程设计的题目后,我就感觉应该是挺好玩的。果然我看到了电饭煲控制器这个题目!以前在家里就修过坏了的电饭煲,可惜没能修好.经过这次的课程设计后,我想我应该能修坏了的电饭煲了!这次课

18、程设计获益良多,既加深了我c语言的知识,又让我学会了lcd12864和ds18b20的使用。而在编程过程中,一个小小的语句错误就会到致程序无法运行,更让我明白谨慎小心的重要性。在最后系统能正常运作时,整个人都有一种成功的飘然.附录程序:主程序#include#include#include#include/#include#define uchar unsigned char#define uint unsigned intsbit k1=P32; /功能按键sbit k2=P33;sbit k3=P34;sbit k4=P35;sbit a1=P10; /按键指示灯sbit b1=P11;s

19、bit c1=P12;sbit c2=P13;uchar code m1=煮饭;uchar code m2=煮粥;uchar code m3=保温;uchar code m4=冷饭加热;uchar code m5=工作状态;uchar code m6=定时状态;uchar code m7=预定时间:;uchar code m8=H;uchar m9=0123456789;uchar code m10=定时时间:;void zhufan(); /煮饭函数声明void zhuzhou(); /煲粥函数声明void baowen(); /保温函数声明void jiare(); /冷饭加热函数声明vo

20、id timing(); /定时预约函数void select();sbit y1=P36; /继电器 sbit y2=P37; /蜂鸣器uint s1=0,s=0,m=0,h=0;/秒,分,时计数/*延时*/void delay2(uint x) while(x-) uint y; for(y=125;y0;y-);/*定时器*/void time0() /定时器0 TMOD=0x01; TH0=(65536-50000)/256; /50ms TL0=(65536-50000)%256; ET0=1; TR0=1;void t0() interrupt 1 TH0=(65536-50000

21、)/256; TL0=(65536-50000)%256; s1+; if(s1=20)s+;s1=0; / 1 s if(s=60)m+;s=0; / 1 min if(m=60)h+;m=0; / 1 hour if(h=12)h=0; /12 hour /*按键功能*/ void key() if(k1=0) / 工作状态按键 delay2(10); if(k1=0) lcd_init(); /lcd初始化 a1=0;b1=1;c1=1;c2=1; lcd_pos(0,0); /显示菜单 print(m1); lcd_pos(0,3); print(m2); lcd_pos(0,6);

22、print(m3); lcd_pos(2,2); print(m4); while(!k1); /等待松开按键 while(k1&k2&k3&k4); /等待选择菜单功能 delay2(10); select(); if(k2=0) / 预定功能 按键 delay2(10); if(k2=0) lcd_init(); a1=0x02; lcd_pos(0,0); print(m7); timing(); void select() /选择4种功能 if(k1=0) /煮饭 delay2(10); if(k1=0) a1=0;b1=1;c1=1;c2=1; /工作指示灯 lcd_init();

23、lcd_pos(0,3); print(m1);/ while(!k1);/ lcd_pos(0,3);/ print(m2); zhufan(); if(k2=0) /煮粥 delay2(10); if(k2=0) a1=1;b1=0;c1=1;c2=1; lcd_init(); lcd_pos(0,3); print(m2); zhuzhou(); if(k3=0) /保温 delay2(10); if(k3=0) a1=1;b1=1;c1=0;c2=1; lcd_init(); lcd_pos(0,3); print(m3); baowen(); if(k4=0) /冷饭加热 delay

24、2(10); if(k4=0) a1=1;b1=1;c1=1;c2=0; lcd_init(); lcd_pos(0,2); print(m4); jiare(); /*煮饭 */void zhufan() uchar w1,w4; lcd_init(); lcd_pos(0,3); print(m1); y1=1; /打开继电器,开始加热 / get_temp();/ delay(100); / w4=get_temp(); while(get_temp()26)break;/ / while(1)/ lcd_pos(3,0);print(m1); / while(temp25) /温度大于

25、105C时 / get_temp();/ lcd_pos(2,0);/ dis_temp(); EA=1; while(s0;w1-) /煮饭完成,鸣笛5次 y2=0; delay2(100); delay2(100); y2=1; delay2(100); delay2(100); if(y2=1)break; baowen();/*煮粥*/void zhuzhou() uchar w1; lcd_init(); lcd_pos(0,3); print(m2); y1=1; /打开继电器,开始加热 get_temp(); /获取温度数值 while(temp100); EA=1; while(m100) y1=0; /温度大于100,停止加热 if(temp0;w1-) y2=0; delay2(100); delay2(100); y2=1; /煲粥完成,鸣笛5次 delay2(100); delay2(100); baowen(); /*保温*/void baowen() lcd_init(); lcd_pos(0,3); print(m3); while(1)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1