程序设计全自动豆浆机课程设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

全自动豆浆机的设计1课程设计名称:程序设计题目:全自动豆浆机的设计学期:2013-2014学年第二学期专业:班级:姓名:学号:指导教师:辽宁工程技术大学全自动豆浆机的设计2课程设计成绩评定表学期2013-2014(二)姓名专业班级课程名称程序设计论文题目全自动豆浆机的设计评定指标评定指标分值得分知识创新性20理论正确性20内容难易性15结合实际性10知识掌握程度15书写规范性10工作量10总成绩100评语:任课教师时间2014年5月26日备注课程设计任务书一、设计题目全自动豆浆机的设计3全自动豆浆机的设计二、设计任务设计单片机控制下的全自动豆浆机,详细介绍其硬件和软件设计,并对各个功能模块做详细介绍。三、设计计划本设计共1周。第1天:针对选题查资料,确定设计方案;第2天:方案分析比较,电路原理设计,进行元器件及参数选择;选用芯片参考:电源、稳压器、变压器。第3天:编写主程序流程图和软件程序;第4天:利用Multisim或PROTUES电路仿真,画电路原理图;第5天:编写整理设计报告。四、设计要求1、绘制软件流程图并利用汇编语言编写软件程序;2、绘制系统硬件原理图;3、形成设计报告。指导教师:教研室主任:2014年5月26日摘要本设计是基于单片机AT89C51的全自动豆浆机控制器。在保持豆浆机原有打浆、文火加热等功能基础上还能实现以下功能:加热及磨浆,水位检测及沸腾溢出检测,报警,主全自动豆浆机的设计4动消泡等。通过控制器使加热和制浆同时进行,将现有的时间缩短一半。加热和磨浆也是分步进行的,也省去了一部分时间。通过各个子程序与主程序的相互联系,实现了豆浆机的各个功能。关键字:省时;AT89C51;主动消泡目录1全自动豆浆机的功能分析············································12控制系统的软件功能分析············································1全自动豆浆机的设计52.1主程序框图·······················································22.2矩阵式键盘实现的模式选择框图···································32.3加热粉碎完成报警及液位控制模块框图····························42.4液位溢出或者过低报警框图·······································42.5显示程序框图·····················································52.6定时程序框图·····················································63全自动豆浆机控制系统主要程序·····································7结论·································································13参考文献·····························································141全自动豆浆机的功能分析豆浆机的控制系统以单片机AT89C51为控制核心,结合控制传感器,加热及磨浆电路,水位检测及沸腾溢出电路,报警电路,主动消泡装置的控制,达到只要启动豆浆机以后,所有的控制过程都实现完全自动化的目的。第一步为初始化程序,第二步为水位检测程序,全自动豆浆机的设计6第三步为水加热程序,第四步为粉碎程序,第五步为烧煮豆浆程序,第六步为报警程序。图12控制系统的软件功能分析软件上就是对单片机的编程了,在编程前需要画出一个流程图,根据豆浆机控制系统的设计要求及目的,即插上电源按下按钮后,先对豆浆机进行水位检测,符合要求后加热管开始对水进行加热,这时加热管是以1500w的功率对水加热的。当水温达到80℃左右,启动磨浆电机开始磨浆,磨浆电机不间断的打浆,磨浆的同时对豆浆这时加热管改为750w的功率工作。当豆浆研磨完毕时电动机停止运转,加热管改为400w的功率对豆浆进行加热。最后阶段使用350W对豆浆加热,由于加热的缘故会豆浆上溢,当豆浆沫接触到防溢电极时,暂停磨浆,启动主动消泡装置,进行消泡。这样直到豆浆加工完成,间歇30秒后发出声音信号。实际工作中,打浆的时候会有少量的豆浆溅到防溢电极上,这时就需要一个延时子程序对其进行延时使得豆浆机不会产生误操作。按照上述对高效省时的豆浆机控制系统的要求,完成豆浆机控制系统设计的流程图后,对单片机进行软件的编程来配合硬件的设计以至于完成整个豆浆机控制系统的设计。2.1主程序框图单片机缺水检测模块溢出检测模块电动机驱动报警模块加热驱动晶振电路电源电路主程序初始化开始全自动豆浆机的设计7NY中断返回YYN图22.2矩阵式键盘实现的模式选择框图置P2为输入开始选择相应模式,并显示。同时显示加热和粉碎的时间及调用正计时程序完成报警,调用所有显示程序调用键盘扫描程序,有键按下?调用加热粉碎程序,是否有中断调用显示程序,初始化显示090124AND执行超液位中断程序执行烧干和溢出容器中断程序全自动豆浆机的设计8NYYNNYYNYYNYNYN图32.3加热粉碎完成报警及液位控制模块框图延时20ms消抖延时20ms消抖按键识别选择模式1选择模式3选择模式2有按键按下?有按键按下?按键释放?按键释放?KEY3按下?KEY2按下?KEY1按下?RET定时加热开始全自动豆浆机的设计9图42.4液位溢出或者过低报警框图NY图52.5显示程序框图定时粉碎定时加热定时粉碎定时加热完成报警RET加热时是否超液位或者液位过低中断,停止加热,延时适当时间返回继续加热设置显示起始位置开始全自动豆浆机的设计10NY图62.6定时程序框图查显示数据字型码取显示数据RET显示数据是否显示完设置TMOD开始全自动豆浆机的设计11NY图73全自动豆浆机控制系统主要程序voiddelay(uintz)//延时子函数{uintx,y;for(x=z;x0;x--)TH0,TL0置初值0定时器是否溢出允许定时器工作等待,并调用正计时显示程序及模式显示程序RET全自动豆浆机的设计12for(y=110;y0;y--);}//main:主函数voidmain(void){io_init();//端口初始化SP=0x5F;MOT=0;HET=0;MOTS=0;HETS=0;P1=0xFF;TIMER_init();flag=0;flag_buz=0;EA=1;while(LOW==1)BUZ=0;//有水检测,防止干烧while(KEY==1);//判键delay(10);while(KEY==1);if(HIG){HETS=1;//水位不超,开始工作LEDS=1;TR1=1;}while(1)//循环检测{if(LOW)//水烧干,停止工作,LED灭{HETS=0;MOTS=0;LEDS=0;TR1=0;BUZS=1;}if(MOTS==1)MOT=0;//到打浆时间,电机工作elseMOT=1;if(HETS==1)HET=0;全自动豆浆机的设计13elseHET=1;if(LEDS==1)LED=0;elseLED=1;if(BUZS==1)BUZ=0;elseBUZ=1;if(flag_buz){for(i=0;i10;i++){delay(1500);BUZ=!BUZ;}}//-------------------------------------------------------------------//Timer1Int:定时中断子程序,用于显示输出及按键延时计时,1ms//-------------------------------------------------------------------voidTimer1Int(void)interrupt3{TH1=0x3C;//定时1sTL1=0xB0;Num1++;//超时计数if(Num1=1800){if(HIG==0)delay(1000);if(HIG==0){HETS=0;//加热3分钟内碰防溢电极停止工作MOTS=0;TR1=0;BUZ=0;}else{HETS=1;//1500W加热3分钟MOTS=0;}全自动豆浆机的设计14}if(Num11800&&Num1=3000){if(HIG==0)delay(1000);if(HIG==0){HETS=0;//加热2分钟内碰防溢电极停止T1TR1=0;TR0=1;MOTS=1;}else{HETS=1;//1500W加热2分钟电机运行2分钟MOTS=1;}}if(Num13000&&Num1=3600){if(HIG==0)delay(1000);if(HIG==0){TR1=0;//加热1分钟内碰防溢电极停止T1TR0=1;HETS=0;MOTS=1;}HETS=1;//400W加热1分钟elseHETS=0;HETS=1;//350W加热4分钟elseHETS=0;if(HIG==0)delay(1000);if(HIG==0){全自动豆浆机的设计15TR0=1;}}if(Num16000){LEDS=0;//时间到,全部停止HETS=0;TR0=0;MOTS=0;TR1=0;flag_buz=1;}}voidTimer0Int(void)interrupt1{TH0=0x3C;//定时1sTL0=0xB0;Num2++;//超时计数Num3++;//超时计数if(Num11800&&Num1=3000){if(Num2=50){HETS=0;//停止加热5s}if(Num250&&Num2=100){HETS=1;//加热5s}if(Num2100){TR0=0;TR1=1;Num2=0;}}if(Num13000&&Num1=3600)全自动豆浆机的设计16{if(Num210&&HIG==0){HETS=0;//泡沫碰防溢电极超1s,停止加热flag=1;}if(flag==1&&Num210&&Num2=60){HETS=0;//延迟5s}if(flag==1&&Num260&&Num2=110){HETS=1;//加热5s}if(flag==1&&Num2110){TR0=0;TR1=1;Num2=0;flag=0;}}if(Num13900&&Num1=6000){if(Num2=10&&HIG==0){HETS=1;//泡沫碰防溢电极超1sNum3=0;flag=1;}if(flag==1&&Num210&&Num3=60){HETS=1;//延迟5sMOTS=1;}if(flag==1&&Num360){MOTS=0;TR0=0;TR1=1;全自动豆浆机的设计17Num2=0;Num3=0;flag=0;}}结论豆浆机的控制系统以单片机AT89C51为控制核心,该程序实现了豆浆机的全过程,包括加热及磨浆电路,水位检测及沸腾溢出电路,报警电路,主动消泡装置的控制等操作。通过按键模拟水位合适检测,如果按下的键和水位合适键相同,说明水位合适,否则继续检测直到水位合适为止。通过中断程序来实现系统间的转换,延时子程序对其进行延时使全自动豆浆机的设计18得豆浆机不会产生误操作,防溢电极时,暂停磨浆,启动主动消泡装置,进行消泡。通过主程序和子程序的相互结合,完成了全自动豆浆机的程序设计。参考文献[1]王千.实用电子电路大全[M],北京:电子工业出版社,2009[2]何立民.单片机应用技术选编[M],北京:北京航空大学出版社,2011[3]李华.MCS-51系列单片机使用接口技术[M],北京:北京航空航天大学出版社,2010[4]彭为.单片机典型系统设计实例精讲,北京:电子工业出版社,2009全自动豆浆机的设计19[5]潘

1 / 19
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功