单片机在电饭锅上的应用课程设计样本.docx
- 文档编号:14682820
- 上传时间:2023-06-26
- 格式:DOCX
- 页数:26
- 大小:417.63KB
单片机在电饭锅上的应用课程设计样本.docx
《单片机在电饭锅上的应用课程设计样本.docx》由会员分享,可在线阅读,更多相关《单片机在电饭锅上的应用课程设计样本.docx(26页珍藏版)》请在冰点文库上搜索。
单片机在电饭锅上的应用课程设计样本
引言2
1电饭锅原理与构造3
2MCS─51单片机在电饭锅上应用6
3程序设计12
6结束语20
参照文献20
附录Ⅰ:
电路原理接线图21
引言
电饭锅是一种可以进行蒸、煮、炖、煨、焖等各种加工当代化炊具。
它不但可以把食物做熟,并且可以保温,使用起来清洁卫生,没有污染,省时省力,是家务劳动当代化不可缺少用品之一。
随着科技、经济发展,人们生活水平不断提高,工作生活节奏亦加快,延时预制食品也成了人们寻常工作生活中需要。
当前,己有智能电子电饭锅在做饭/粥时,是将米和水同步放入锅中,接通电饭锅电源后,电饭锅即自动进入做饭/粥程序,当做饭/粥完毕后,电饭锅即进入保温状态。
这就需要咱们用智能程序控制电饭锅煮饭保温时间,本设计重要简介MSC-51系列单片机在电饭锅应用及程序。
本次设计过程中借鉴某些智能家电书和设计手册,吸取书中自己本没掌握知识,并得到徐祖华、肖金凤教师悉心协助。
对此深表谢忱。
1、电饭锅原理及构造
1.1电饭锅原理
电饭锅是运用发热板,在铝质锅底部煮饭。
发热板内藏电热线,这电热线是由自动开关控制,发热板中央有一圆孔,孔内有一感温软磁,它借着弹簧向上顶贴着锅底。
这是一种纯铁氧体。
它在100℃或如下时,可以被永久磁铁吸引。
但当升至103℃时,则失去磁性,不再受永久磁铁吸引。
当按下开关按键,开关横杆把磁铁向上顶贴着感温软磁;这时,发热线接通,开始加热。
当锅内饭沸腾后,锅内水就徐徐减少,当水开始蒸干,锅内温度就由100℃上升。
当升至103℃时,感温软磁就不受磁铁吸引,开关杠杆因弹簧弹力及自身重力而下降,压使接触点分开,发热线就断电,同步,接通另一保温电路,保持饭温度在70℃左右。
智能电饭煲重要由电源某些和控制电路构成,主控电路与热敏电阻形成反馈回路,主控电路实现两种功能,一是采集热敏电阻反馈回来温度值,二是根据顾客选用工作方式,对继电器工作方式变化来对电热盘加热控制。
控制办法大至为:
当电热盘温度达到当前规定后,继电器开关打开,以切断电热盘电源,当下降到一定温度范畴后通电加热,闭合继电器,以使电热盘始终保持在适合温度之内。
电饭锅重要由顶盖温度传感器、底盘温度传感器、驱动电路、加热盘、继电器和数码管等构成。
通过控制温度传感器来控制煮饭时间,运用这些资源完毕电饭煲具备如下功能:
1、精煮,2、超快煮,3、冷饭加热,4、小米量,5、45分稀饭,6、2小时粥,7、1小时汤,8、2小时汤。
并且具备人性化操作界面,使用者很容易掌握。
电饭煲功能不再只是简简朴单煮饭了,它可以完毕许许多多功能,它是人们寻常生活中不可缺少家庭好帮手,正是由于智能控制,人们生活才变得越来越简朴。
1.2电饭煲煮饭过程简介
要想煮出高质量米饭,就要掌握各种大米吸水量,加温时间,控温过程,维持沸腾时间,停止升温过程,焖饭过程等规律。
煮饭过程实质上就是使大米由难觉得人体所消化吸取β淀粉转化成为人体较易吸取α淀粉过程,通过大量实践和摸索,一次抱负煮饭过程可以抽象成如下几种过程:
吸水过程
在适合温度下,让大米尽量吸取水分,这样煮出来米饭更加饱满,口感更好。
让大米含水量达到25%左右,温度越高,吸水越快。
但是温度一旦超过60度,大米中具有β淀粉就会转化成α淀粉,会变成糊状,因此控制温度在60度如下是非常有必要,普通控制在35度左右为最佳温度。
升温过程
这一种过程必要使锅内热量充分对流,以至于不会导致夹生饭。
普通说来,加热值沸腾时间最佳是10分钟。
维持沸腾
为了使β淀粉充分转化成为α淀粉,需要在沸腾状态下,温度大概控制在98度左右,维持20分钟左右,可以通过控制继电器开与闭来实现温度控制。
补炊过程
断电之后,温度会慢慢下降,当温度降到100度左右时候,在通电一段时间,将锅内多余水分蒸发掉,补炊时间依照个人而定。
焖饭过程
在补炊过程结束后,锅内基本上没有太多水分,应停止加热,运用余热来进行焖饭,增进大米α淀粉生成。
普通焖饭时间大概控制在12分钟左右。
保温过程
整个煮饭过程结束后,自动进入保温模式,温度低于65度左右,加热盘就会对锅体进行加热。
使用者在此种状态下就可以享用美食了。
3功能简介
运用凌阳8位单片机开发智能电饭煲具备如下两大功能:
3.1煲煮功能
1)精煮
选取精煮功能,按下开始键,电饭煲开始加热,大概45分钟后电饭煲进入焖饭状态,此时数码显示"n",10分钟后,电饭煲进入保温状态,数码显示"b",这表白饭已经煮好。
2)超快煮
选取超快煮功能,按下开始键,电饭煲开始加热,大概30分钟后电饭煲进入焖饭状态,此时数码显示"n",8分钟后饭煮好,电饭煲进入保温状态,数码显示"b",这表白饭已经煮好。
3)冷饭加热
选取冷饭加热功能,按下开始键,电饭煲开始加热,大概15分钟后电饭煲进入保温状态,数码显示"b",这表达冷饭加热完毕。
4)小米量煮
选取小米量煮功能,按下开始键,电饭煲开始加热,大概40分钟后电饭煲进入焖饭状态,此时数码显示"n",10分钟后饭煮好,电饭煲进入保温状态,这表白小米量饭已经煮好。
5)45分钟稀饭
选取45分钟稀饭功能,按下开始键,电饭煲开始加热,此时数码显示"-",45分钟后粥已煮好。
6)2小时粥
选取2小时粥功能,按下开始键,电饭煲开始加热,此时数码显示"2",2小时后粥已经煮好。
7)1小时汤
选取1小时汤功能,按下开始键,电饭煲开始加热,此时数码显示"1",1小时后汤已经熬好。
8)2小时汤
选取2小时汤功能,按下开始键,电饭煲开始加热,此时数码显示"2",2小时后汤已经熬好。
注:
以上4种功能模式中,每一种功能结束之后都自动进入保温模式,数码显示"b"。
1.3定期功能
选取相应功能后设立相应定期时间,按下开始键,定期开始,每过1小时显示时间数减1。
在定期时间内,依照定期时间和所需过程时间差电饭锅就能自动启动,自动加热,自动保温,完毕选取功能,例如如果45分钟稀饭定期2小时话,电饭煲会在1小时15分钟时候开时启动加热工作,并进入45分钟稀饭功能模式。
2、MSC-51单片机在电饭锅上应用
美国INTEL公司生产MCS一51系列单片机具备很强功能,它被广泛应用于各种自动化控制系统上。
咱们应用其中8051单片机微机电脑控制器控制电饭锅。
用微电脑控制电饭锅可依照煮制各种不同食品需要,编制各种不同程序,实现不同控制,提高煮制食品质量,使其更可口,味道更美。
此外还可以实现各种状态显示和定期等功能,使用者可直观地看到煮制食品进展状况,在操作上也能有一种轻松,新颖感觉。
相称于分立元件电路来讲,用电脑控制电路简朴,可靠性高,成本低。
因此。
运用微电脑实现各种家电产品控制自动化,智能化是一种发展方向。
2.1控制规定
咱们参照了国外几种不同先进产品,并结合国内实际状况,制定了如下控制规定:
一、煮制食品控制曲线
咱们制定了六种煮制食品控制曲线.它们分别如图l所示:
这六种控制曲线被定义为六种菜单,使用者可依照煮制食品需要任意选取。
二、显示
采用4位LFD数码管显示时间,显示精度为l分钟。
用LED发光管批示定期、预煮、煮炯、保温五种工作状态和白米饭、糯米饭、什锦饭、糙米饭、粥五种菜单
程序。
三、鸣响提示
当触动按键和饭煮熟时都由蜂鸣器发出鸣响提示。
四、定期
最大定期时间为12小时50分钟,所设定定期时间为饭煮熟时时间,采用倒计时计时方式,设定精度为10分钟,直接用轻触按键输入,时间设定可递
增和递减,也可进行单步和迅速设定。
五、自动保护
具备内锅不在锅体内时不能加电自动保护功能,具备软件和硬件超保护功能。
2.2硬件设计
硬件电路原理图如图2所示,采用内部带R(>M8051单片机做微解决器,它具备丰富指令系统和很强功能,可使控制电路构造简朴体积小,可靠性高。
8051芯片有四个八位输入/输出口PO,P1,P2,P3.选P1,P2口为时间、状态和菜单显示输出口,采用动态扫描显示方式,P1口输出通过三极管送到数码管段和显示状态、菜单发光二极管,P2口输出通过三极管分时选通数码管位和相应状态、菜单发光二极管oPO口为操作按键输入口,低电平有效。
P3.0和P3.1分别通过反向器G1:
B,G1:
F和三极管T17,T18驱动主加热盘和副加热元件可控硅TM1,TM2,接入反向器G1:
B.G1:
F可防止单片机复位时可控硅瞬间导通现象.P3.2口经三极管T16驱动蜂鸣器BEo
由干被控温度是一种持续变化模仿量信号,而单片机只能解决数字量信号,这就需要模/数转换电路,现采用品有负温度系数测温型热敏电阻RT为温度传感器,它和电位器W1、电容C2,施密特触发器G1:
A构成多谐振荡器,RT阻值随被测温度变化而变化,因而振荡器输出频率也随RT阻值变化而变化,这样就实现了把模仿量信号转变成频率变化方波信号,单片机记录在单位时间内周期数就可得到被测温度值。
这一信号通过反向器G1:
B输入到P3.S口,单片机运用该信号进行多点闭环温度控制。
电位器W1起温度微调作用。
温度传感器RT装在锅体底部,间接反映锅内温度。
TFUSE是热保险管,起超温保护作用。
SW为机电连锁微动开关,当内锅在锅体内时,开关sw受压闭合,电路接通,控制器正常工作,否则不能工作,这样可避免发热盘空载加热现象。
HC()()K为主发热盘。
H一WARM为副发热元件,装在锅体侧面和顶部,重要起保温作用。
电路可分别安装在两块电路板上,一块为显示操作板,装在温度较低锅体顶部或侧面。
另一块为可控硅和电源板,可装在锅体底部。
3、程序设计
主程序框图如下图3所示
主程序判断确有按键输入时,启动蜂鸣器,鸣响0.25后由计时中断服务程序来关闭蜂鸣器。
由按键输入执行保温程序时,必要是没有菜单和定期输入状况下,且先执行慢速加热至73C程序后才进入保温程序。
保温时间限制为10小时。
温度采样子程序在保温和加热时调用,进行温度控制。
CTI为采
样计数器,其流程图见图4。
为提高测量精确性,应用多次间隔时间采样取其平均值办法来减小测量误差,在间隔采样过程中如持续浮现20次超过正常范畴温度值,则判断为测温电路故障,停止执行正常程序,并做出相应显示和蜂鸣报警。
CTO设立为计时器,每隔。
.15发出一次中断申请,入口地址为。
ooBH,中断服务程序做相应各种计时操作解决,中断服务流程图见图4。
选用定期程序判断,如果没有进行过时间设定,74H位为零,就判断为没有设立定期,否则74H位
由1,执行定期煮制程序。
3.2操作阐明
接通电源后时间显示屏闪烁显示“o:
00”为正常。
程序选取键:
按该键可循环选取五种设定程序,分别由发光二极管进行显示。
保温键:
如果没有按过其他键,按该键可直接进入保温状态,保温批示灯亮,否则无效。
时间设定键:
可设定定期煮制时间,最大定期时间为12小时50分钟。
启动键:
1)按动该键就确认了所选取程序和定期时间,并开始执行程序,相应工作状态批示灯亮;2)如按动该键前没有选取程序和设定期间,按动该键后直接执行白米饭程序;3)按动该键并保持约2秒钟则跳过预煮直接进入煮制过程;4)当选取煮粥程序时,第一次按动该键后,时间显示屏闪烁显示煮制时间,该时间可在1:
30一4:
00时间范畴内设定,第二次按动该键后,就确认了所设定输入并开始执行程序;5)执行定期程序过程中,按该键则暂停正常时间显示,所显示是选取程序煮制时间,释放该键后恢复正常时间显示。
3.3程序
includehardware.inc
.includeS480.inc
.includeResource.inc
definevoice_start00//开始//
definevoice_cool01//煮饭//
definevoice_fcool02//快煮//
definevoice_bw06//保温//
definevoice_down07//定期减//
definevoice_up08//定期加//
definevoice_off09//返回//
definevoice_alarm10//请放入内锅//
.definevoice_ok11//请享用//
.definevoice_set12//请设定//
.definevoice_high13//注意温度过高//
//*******************************************//
//系统初始化子程序//
//*******************************************//
.public_System_Initial
_System_Initial:
.proc
r1=0x0002
[P_SystemClock]=r1//初始化系统时钟//
r1=0xFF80
[P_IOA_Dir]=r1
r1=0xFFE0
[P_IOA_Attrib]=r1
r1=0xFFE0
[P_IOA_Data]=r1//初始化A口//
r1=0xFFFB
[P_IOB_Dir]=r1
r1=0xFFFF
[P_IOB_Attrib]=r1
r1=0x0004
[P_IOB_Data]=r1//初始化B口//
r1=0x0004//时基选取//
[P_TimeBase_Setup]=r1
intoff//关中断//
r1=0x0105
[P_INT_Ctrl]=r1//初始化中断//
intfiq,irq//开中断//
retf
.endp
//*********************************************//
//段显子程序//
//*********************************************//
.DATA
Show_tabble:
.dw0x003F,0x0006,0x005B,0x004F,0x0066
.dw0x006D,0x007D,0x0007,0x007F,0x006F
.code
.public_Show
_Show:
.proc
BP=Show_tabble
r1+=BP//求显示码地址//
r1=[r1]//求出显示码//
r1=r1lsl4
r1=r1lsl4//移至高8位//
r2=[P_IOA_Buffer]
r2&=0x8000
r1|=r2
[P_IOA_Data]=r1//输出显示//
retf
.endp
//******************************************//
//计时子程序//
//******************************************//
.iram
.public_end_120
.var_end_120=0
.code
.public_Time_Count
_Time_Count:
.proc
r1=[_STATUS]
cmpr1,0
jeCount_end
r1=[T1_1]//取第一种数据//
r1+=[T1_2]//第一种数据和第二个数据相加//
r1+=[T1_3]//前三个数据相加//
r1+=[T1_4]//前四个数据相加//
cmpr1,0//和与0相比较//
jeTime2_Count//等于0转到定期2计数//
r1=[_end_120]
cmpr1,120//与否到了120次//
jneADD_1//不到转向ADD_1继续相加//
r1=0x00
[_end_120]=r1//到了清0为下次中断作准备//
call_Time_count_down1//调用预置减子程序//
jmpTime_Count_Over
ADD_1:
r1=r1+1
[_end_120]=r1
Time_Count_Over:
r1=[P_IOA_Buffer]//一次中断计时后秒点反相//
r2=0x8000
r1^=r2
[P_IOA_Data]=r1
jmpCount_end
Time2_Count:
r1=[T2_1]//取第一种数据//
r1+=[T2_2]//第一种数据和第二个数据相加//
r1+=[T2_3]//前三个数据相加//
r1+=[T2_4]//前四个数据相加//
cmpr1,0
jeCount_end
r1=[_end_120]
cmpr1,120
jneADD_2
r1=0x00
[_end_120]=r1
call_Time_count_down2
jmpCount_end
ADD_2:
r1+=1
[_end_120]=r1
Count_end:
retf
.endp
//过温检测子程序//
//**********************************************//
.public_Over_Temp
_Over_Temp:
.proc
r1=[_STATUS]
cmpr1,1
jnet_exit
r1=[_Tempreature_value]
cmpr1,36
jnbt_exit//与36即150度比较,温度超过150度时报警并跳到程序开始//
r1=voice_high
[_Announce_Buff]=r1
call_PlayRespond
r1=0
[_STATUS]=r1
pc=0x0000
t_exit:
retf
.endp
//温度采集子程序//
//*********************************************//
.ram
.public_Tempreature_value
.var_Tempreature_value
.code
.public_ReadAD
_ReadAD:
.proc
r3=900
[_Tempreature_value]=r3
retf
.endp
//计时加预置子程序//
//***************************************************//
.public_Time_up
_Time_up:
.proc
r1=[_WHICH_TIME]
cmpr1,0x01
jetimeup2
call_Time_up1_sub
jmptime_exit_up
timeup2:
call_Time_up2_sub
time_exit_up:
r1=voice_up
[_Announce_Buff]=r1
call_PlayRespond
retf
.endp
//计时减预置子程序//
//***************************************************//
.public_Time_down
_Time_down:
.proc
r1=[_WHICH_TIME]
cmpr1,0x01
jetimedown2
call_Time_down1_sub
jmptime_exit_down
timedown2:
call_Time_down2_sub
time_exit_down:
r1=voice_down
[_Announce_Buff]=r1
call_PlayRespond
retf
.endp
//预置1设定减子程序//
//*******************************************************//
.public_Time_down1_sub
_Time_down1_sub:
.proc
r1=[T1_1]//取第一种数据//
r1+=[T1_2]//第一种数据和第二个数据相加//
r1+=[T1_3]//前三个数据相加//
cmpr1,0
jesub1_exit_down
r1=[T1_3]//取第三个数据//
cmpr1,0//判断与否到了0//
jnesub1_exit_05//不到0跳转//
r2=5//到5后写0//
[T1_3]=r2
r1=[T1_2]//取第二个数据//
cmpr1,0//比较与否到了0//
jnesub1_exit_09//不到0跳转减1//
r2=9//到0后写9//
[T1_2]=r2
r2=[T1_1]
r2-=1
[T1_1]=r2
jmpsub1_exit_down
sub1_exit_09:
r2=[T1_2]
r2-=1
[T1_2]=r2//减1操作//
jmpsub1_exit_down
sub1_exit_05:
r2=[T1_3]
r2-=1
[T1_3]=r2//减1操作//
sub1_exit_down:
retf
.endp
//煮饭子程序//
//********************************************//
.public_COOL
_COOL:
.proc
r1=1
[cool_status]=r1
cool_test1:
r1=[_Tempreature_value]
cmpr1,537//与否到了50度//
jacool_test1//不不大于537即不大于50度时循环//
r1=0
[cool_status]=r1
cool_test2:
r1=[_Tempreature_value]
cmpr1,687//与否到了40度//
jbecool_test2//不大于等于687即不不大于40度时循环//
cool_test5:
r1=1
[cool_status]=r1
cool_test3:
r1=[_Tempreature_value]
cmpr1,140
jaecool_test3//不不大于140即不大于98度时循环等待//
r1=0
[cool_status]=r1
cool_test4:
r1=[_Tempreature_value]
cmpr1,68//不大于68即不不大于等于125度时跳出//
jbecool_exit
cmpr1,144//不不大于97度时停止加热等待,不大于时循环加热//
jbcool_test4
jmpcool_test5
cool_exit:
r1=[_Tempreature_value]
cmpr1,132//不不大于100度时停止加热等待,否则继续加热//
jbecool_exit
r1=1
[cool_status]=r1
cool_test6:
r1=[_Tempreature_value]
cmpr1,77//不不大于120度时加热结束//
jacool_test6
r1=0
[cool_status]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 电饭锅 应用 课程设计 样本