单片机课程设计智能豆浆机控制系统设计.docx
《单片机课程设计智能豆浆机控制系统设计.docx》由会员分享,可在线阅读,更多相关《单片机课程设计智能豆浆机控制系统设计.docx(15页珍藏版)》请在冰豆网上搜索。
![单片机课程设计智能豆浆机控制系统设计.docx](https://file1.bdocx.com/fileroot1/2023-2/1/ae9ff09f-9b1b-497d-9d6c-456d437f8898/ae9ff09f-9b1b-497d-9d6c-456d437f88981.gif)
单片机课程设计智能豆浆机控制系统设计
摘要
本智能豆浆机的控制系统是基于AT89S52单片机来实现的,其主
功能有:
1.可以手动和自动对各种谷物和豆类进行加热和粉碎,工作模式分手动粉碎,手动加热和自动三种。
2.在豆浆机工作的过程中,数码管能给予温度和工作模式的显示。
3.在豆浆机工作过程中能对液位溢出和豆浆机干烧进行检查,发现后能蜂鸣报警并停止相关工作。
4.豆浆机工作完成时,能蜂鸣报警,提醒用户。
豆浆机的自动工作流程有软件控制:
先判断是否干烧,再加热到80度,然后停止加热,进行粉碎并在间隙进行加热,再度检查液位,是否干烧,再进行加热,进入防溢延煮过程,防溢延煮后,发出报警声,提示豆浆已做好。
液位溢出保护和防干烧保护用中断来控制,其检测由于没有防溢电极,功能用开关来模拟实现。
摘要---------------------------------------------------------------------------------------------1
第一章绪论--------------------------------------------------------3
1.1引言--------------------------------------------------------3
1.2原理--------------------------------------------------------3
第二章设计方案与实现功能-------------------------------------------4
2.1设计思路----------------------------------------------------4
2.2实现功能----------------------------------------------------5
第三章系统硬件电路设计---------------------------------------------5
3.1单片机的选择------------------------------------------------5
3.2温度检测电路的设计------------------------------------------6
3.2.1DS-18B20数字温度传感器介绍---------------------------6
3.2.2电路设计-----------------------------------------------7
3.3加热电路的设计----------------------------------------------7
3.4电机电路设计------------------------------------------------8
3.5数码管显示电路设计------------------------------------------9
3.6防干烧及防溢出电路的设计-----------------------------------10
3.7报警电路的设计---------------------------------------------11
3.8复位电路的设计---------------------------------------------12
3.9时钟电路和按键电路设计-------------------------------------13
第四章系统软件的设计--------------------------------------------13
4.1编程思路---------------------------------------------------13
第五章总结--------------------------------------------------------15
参考文献-----------------------------------------------------------17
附录一:
豆浆机控制系统硬件图---------------------------------------18
附录二:
豆浆机控制系统软件程序-------------------------------------18
评语表--------------------------------------------------------------------------------------------
第一章绪论
1.1引言
豆浆机是一种新型的家用饮用机,以黄豆为原料,可以直接加工出可口的热豆浆饮品。
豆浆机由粉碎黄豆的电机、豆浆机加热器和控制电路三大部分组成。
用AT89S52单片机研制的智能豆浆机的控制系统,当放入适量泡好的黄豆,加入适量的冷水,把豆浆机的电源插头插入220V交流电源,豆浆机指示灯亮起,按下按钮,先对豆浆机进行水位放干烧检测,符合要求后加热管开始对水进行加热,当水温达到80℃左右,停止加热,启动电机开始粉碎,电机按间歇方式粉碎。
并在间隙同时加热,粉碎过后,继续对豆浆加热,当豆浆沫接触到防溢电极时,停止加热,并蜂鸣报警,当液位下降,则继续加热。
在粉碎的处理上采用了正反8次粉碎过程,一般情况下,可完全保证黄豆和其他谷物被彻底粉碎,此后再进行最后的加热,豆浆就加工完成了。
在豆浆机的工作过程中若缺水,则会关闭加热器和电机,并发出报警声,加水后才能继续使用。
由此可见,智能豆浆机只要按下启动按键并选择自动功能后,豆浆机就开始工作,一会儿就能喝到美味又营养的豆浆。
整个过程由单片机全自动控制,并全程进行安全检测,让你用起来更加的方便、更加的安全。
1.2原理
本智能豆浆机控制系统设计原理如下图所示:
第二章设计方案与实现功能
2.1设计思路
我们设计的智能型豆浆机主要由电机、加热管、水位传感器,感温探棒、防溢电极、单片机控制面板、控制按钮以及声光报警器件等几部分组成。
电机负责粉碎打浆,加热管进行加热煮浆,感温探棒进行水温测量,水位传感器进行水位测量,防溢电极防止豆浆加热溢出,采用蜂鸣器和双色灯进行声光报警,控制面板根据命令和输入状态信号,模糊控制各个部件按程序进行加热、粉碎等系列工作全自动完成。
我们确定了以下设计方案:
(1)上电后对水位进行判断,防止添水过多或干烧;在整个工作过程中,对水位实时检测,严防无水干烧。
全过程处于无水报警,停止工作状态:
在加热、粉碎、自动工作期间,任何时刻提起豆浆机,都会停止工作并报警。
当重新将豆浆机放入水中后,回复以前工作状态。
(2)粉碎。
串励电机工作转速可达到12kr/s左右,1min时间便可将豆粒彻底粉碎。
但由于该电机不可长时间连续运转,所以粉碎时间分为4个15s完成,间歇停机15s。
前7s正转,后8s反转。
为了提高工作效率,充分利用粉碎间歇时间进行豆浆加热。
(3)加热。
加热分为“粉碎前预加热”、粉碎间歇加热”和“煮浆加热”三个过程。
“煮浆加热过程”即粉碎后加热的沸腾,间隔2分钟后再加热。
“粉碎前预加热”是将水温加热至80℃,缩短粉碎后加热至豆浆沸腾的时间,防止粉碎后煮浆时间过长所易造成的糊锅现象,此外还有出浆率高、豆浆口味更佳的效果。
当豆浆产生的泡沫碰到防溢电极时,转为降功率加热,结束并报警。
(4)命令输入。
命令输入采用“启/停”、加热”、粉碎”三个按键。
豆浆机接通电源后或停止状态下按“启/停”键进行全自动工作,按“加热”键则进行单独加热5min操作,按“粉碎”键则进行单独粉碎15s操作;在全自动、单独加热或单独粉碎等工作过程中,若按“启/停”键将停止一切操作,恢复到起始状态。
(5)声光报警。
为了便于人们监测整个工作过程,在工作状态切换时,有红绿灯的显示和蜂鸣提示,工作完毕声光报警十次。
工作过程中如有危险操作,也进行声光报警。
(6)采用软硬件抗干扰技术,提高系统工作的稳定性。
硬件上主要是采用滤波电路抑制干扰源,WDT监控电路防止因干扰造成的程序错乱和死机现象。
软件上主要采用填码技术、指令冗余技术、设置模块入口标志和智能恢复现场等技术配合硬件增强系统的抗干扰能力。
自检模式:
同时按下“加热”“粉碎”键,持续2秒钟以上,进入自检模式。
蜂鸣器、指示灯同时鸣叫、闪烁3次,每次间隔0.5秒,然后指示灯常亮,加热1秒,降功率加热1秒,电机工作1秒后,全部停止。
报警方式为蜂鸣器、指示灯同时鸣叫、闪烁,每次间隔1秒。
2.2实现功能
整体有3种操作,分别为:
单独加热,单独粉碎和自动,其中自动设计流程为:
1.先将黄豆和水加热到80度。
2.停止加热,开启电机进行粉碎,粉碎时间分为4个15s完成,间歇停机15s。
前7s正转,后8s反转。
为了提高工作效率,充分利用粉碎间歇时间进行豆浆加热。
3.电机停止,继续加热,4.完成豆浆制作,并有蜂鸣提醒用户功能。
由于没有防溢电极,采用开关来模拟,并在第一次和第二次加热之前,闭合开关,模拟防干烧,在第三次加热时闭合开关模拟防溢出。
并在全过程用温度传感器反馈温度。
第三章系统硬件电路设计
3.1单片机的选择
AT89S52是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,AT89S52在众多嵌入式控制应用系统中得到广泛应用。
主要性能特点:
1、4kBytesFlash片内程序存储器;
2、128bytes的随机存取数据存储器(RAM);
3、32个外部双向输入/输出(I/O)口;
4、5个中断优先级、2层中断嵌套中断;
5、6个中断源;
6、2个16位可编程定时器/计数器;
7、2个全双工串行通信口;
8、看门狗(WDT)电路;
9、片内振荡器和时钟电路;
10、与MCS-51兼容;
11、全静态工作:
0Hz-33MHz;
12、三级程序存储器保密锁定;
13、可编程串行通道;
14、低功耗的闲置和掉电模式。
3.2温度检测电路设计
当豆浆机正常工作时,需要先加热到80℃左右的温度,然后停止加热继续下一步的工作,所以这就需要一个温度传感器来检测水温,这里我选用的是DS-18B20数字温度传感器来模拟。
其具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。
3.2.1DS-18B20数字温度传感器介绍
DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚T0-92小体积封装形式,温度测量范围为-55度到+125度,可编程为9位-12位A/D转换精度,测温分辨率可达0.0625度,被测温度用符号扩展的16位数字量方式串行输出。
主机控制DS18B20完成温度转换必须经过三个步骤:
初始化、ROM操作指令、存储器操作指令。
必须先启动DS18B20开始转换,再读出温度转换值。
本程序仅挂接一个芯片,使用默认的12位转换精度,外接供电电源,读取的温度值高位字节送WDMSB单元,低位字节送WDLSB单元,再按照温度值字节的表示格式及其符号位,经过简单的变换即可得到实际温度值。
3.2.2电路设计
由于独特的一线接口,只需要一条口线通信,DS18B20可以使用外部电源VDD,也可以使用内部的寄生电源。
当VDD端口接3.0V—5.5V的电压时是使用外部电源;当VDD端口接地时使用了内部的寄生电源。
无论是内部寄生电源还是外部供电,I/O口线要接5KΩ左右的上拉电阻。
电路图如图3.2所示
图3.2
3.3加热电路的设计
加热电路的作用是通过加热管把磨成粉末的黄豆煮熟,本设计使用的加热器的功率为1000W,单片机输出电流经三极管放大,来驱动继电器闭合,使加热管发热把豆浆煮熟,当单片机工作时,赋给P3.0一个高电平,使三极管Q2饱和导通,电流流过继电器RL1,使触点闭合,于是加热管通电开始对水加热,当温度达到80度时,温度传感器将温度信号传给单片机,单片机检测到这个信号后,使P3.0脚变为低电平,三极管Q2截止,继电器触点断开,电阻停止加热。
在实验中由于没有加热管,将用指示灯来代替加热管。
电路图设计如图3.3
图3.3
3.4电机电路设计
豆浆机的磨浆是通过电机把黄豆搅拌成粉沫,电机选用的是步进电机来模拟,步进电机是将电脉冲信号转变为角位移或线位移的控制元件。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响。
步进电机必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。
步进电机的主要特性:
1步进电机必须加驱动才可以运转,驱动型号必须为脉冲信号,没有脉冲的时候,步进电机静止,如果加入适当的脉冲信号,就会以一定的角度(称为步角)转动。
转动的速度和脉冲的频率成正比。
2本步进电机的步进角度为7.5度,一圈360度,需要48个脉冲完成。
3步进电机有瞬间启动和急速停止的优越特性。
4改变脉冲的顺序,可以改变转动的方向。
在电路的设计中,我们将用到uln2003来驱动,驱动端口位P1.0,P1.1,P1.2,P1.3。
驱动器控制电机转动,使其完成4个15s的粉碎过程,间歇停机15s。
前7s正转,后8s反转。
电路设计图如下:
3.5数码管显示电路设计
在单片机系统中,常常用LED数码数码管显示器来显示各种数字或符号。
由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。
在本豆浆机控制系统中我们采用的是74LS47和38译码器来实现数码管动态扫描显示。
在本系统中:
为了简化程序,采用了74LS47和74LS138.即P0口的P0.0,P0.1,P0.2,P0.3四个端口接到74ls47进行硬件数码管译码,然后输出到数码管部分的数据口。
P0.4,P0.5,P0.6三个端口接到74ls138进行38译码,然后输出到数码管的位控制口。
电路设计图如图3.5
图3.5
3.6防干烧及防溢出电路的设计
防干烧及防溢出电路的作用是以传感器作为信息采集系统的前端单元来控制自动豆浆机缺水时干烧及沸腾溢出等问题。
这里采用开关S5,S6模拟传感器来检测干烧及沸腾溢出,分别与单片机的P3.3,P3.4连接,用开关的闭开模拟高低电平,这样就可以通过单片机检测电平的高低来检测干烧及沸腾时的溢出状态。
电路图设计如下图3.4
图3.4
这里当S5闭合时,给单片机一个高电平信号,表示豆浆溢出,开关打开时表示正常没有溢出。
同理,当S6闭合时,输入高电平表示干烧,开关打开时表示正常。
3.5报警电路的设计
在豆浆机控制系统的设计中,我们设计了当豆浆机干烧和豆浆制作完成两种情况的蜂鸣报警,声音信号电流从单片机的P3.2脚输入到蜂鸣器发出声音,通过事先编写的程序,在单片机的控制下,系统开始工作,当上述两种情况中的一种发生时,单片机P3.2脚自动输出一个高平,使蜂鸣器通电导通,于是蜂鸣器发出报警,提醒用户。
图3.5
3.6复位电路的设计
整个复位电路包括芯片内、外两部分。
外部电路产生的复位信号(RST)送斯密特触发器,再有片内复位电路在每个机器周期的S5P2时刻对斯密特触发器的输出进行采样,然后才得到内部复位操作所需的信号。
本设计中我们使用的是上电自动复位,其是通过外部复位电路的电容充电来实现的,只要电源Vcc的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就完成了系统的复位初始化。
电路图如图3.6.
3.7时钟电路和按键电路设计
89S51单片机内部带有时钟电路,因此,只需要在片外通过XTAL1和XTAL2引脚接入定时控制单元(晶体振荡器和电容),即可构成一个稳定的自激振荡器。
振荡器的工作频率一般可达0-40MHz,C1和C2虽然没有严格的要求,但电容的大小影响振荡器振荡的稳定性和起振的快速性,通常选择范围在10-30pF。
按键电路是通过+5V和三个接在P3.5口、P3.6口、P3.7口连接形成通路,按键按下时,单片机接口产生高电平,单片机通过软件检测电平就可以知道是什么功能。
设计电路图如图3.7
图3.7
第四章系统软件设计
4.1编程思路
豆浆机控制系统的流程图设计
通电
先上电初始化,然后检测水位,如果水位过低则,由报警,声光报警电路发出声光提示主人。
正常工作三种方式,第一种单独加热,第二种单独转动,第三种自动停启,通过按钮实现,分别对应p3.5,p3.6,p3.7口
若执行第一种方式,p3.0开启,开始加热,加热5分钟后,加热结束,在此过程中,若有自动停启键被按下,则停止加热,结束
若执行第二种方式,启动电机,正反转动15s,大约正反个3圈,停止转动,在此过程中若有自动停启键被按下,则停转动加热,结束
若执行第三种方式,则开始对豆浆机的冷水进行加热,当加热到80℃以后,则停止加热,开始进行打浆程序,打15秒停15秒,按这样的方式循环4次,检测水位,若干烧,则报警并停止程序,否则,继续程序,打浆程序结束后开始进行对面浆进行再加热,加热5分钟待溢出,溢出后自动进入防溢延煮程序,加热1分钟,停止1分钟,直到结束。
豆浆加工完成后,单片机发出报警提醒主人豆浆煮好。
但因为我的水平有限,此电路中也存在着一定的问题,比如说三端集成稳压器会产生热损失,温度传感器NTC温度传感器在本设计中只是检测了一个温度,当温度达到80度时单片机进行下一步工作,在这里没有充分的利用它的功能及优点。
总之,此设计以单片机AT89C51作为核心的控制元件,配合其他器件,使豆浆机的控制系统县有功能强、性能可靠、电路简单、成本低的特点,加工经过优化的程序,使其有很高的智能化水平。
第五章总结
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术的发展,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。
因此作为机电的大学生来说掌握单片机的开发技术是十分重要的。
回顾起此次单片机课程设计,我仍感慨颇多,的确,从选题到定稿,从理论到实践,在接近三个星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对单片机汇编语言掌握得不好……尤其是调试了,悲剧——数码管不显现,步进电机,只会向一个方向转,而我们编程是正反转的。
我的心啊,忽然就凉透了半截,怎么会这样子。
我们就拿着程序反复分析,反复修改但还是没有效果,老师的指导为我们提供了很大的动力,随后在写软件同学的深入思索下,程序被慢慢的修改完整,调式也慢慢接近我们所期望的结果。
经过老师的指导和团队的辛苦改正,困难终于被克服,成功调试了。
通过这次课程设计之后,得以把以前所学过的知识重新温故。
很感谢学校和老师给我们安排了这次课程设计,让我真正感受到的是合作的重要,许多时候都是组员的讨论,老师的指导中的一句半句启发了我,就出现的让人欣喜的结果;理论知识同样很重要,有些问题都是由于基础知识掌握不好才出现的。
这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在老师的辛勤指导下,终于游逆而解。
同时,在老师那里我学得到很多实用的知识,我再次表示感谢!
同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!
参考文献
[1]张静谟编著.单片机中级教程.北京.北京航空航天大学出版社,2006年10月.
[2]林伸茂编著.8051单片机彻底研究基础版.北京.人民邮电出版社.2004.
[3]杨将新,李华军等编著.单片机程序设计及应用.北京.电子工业出版社.2006年3月.
[4]周润景,郝晓霞编著.传感器与检测技术.北京.电子工业出版社.2009年4月.
[5]于永,戴佳等编著.51单片机C语言常用模块与综合系统设计实例精讲(第2版).北京.电子工业出版社.2008年10月.
[6]王守中编著.读就通51单片机开发.北京.电子工业出版社.2011年2月.
[7]阎石主编.数字电子技术基础(第五版).北京.高等教育出版社.2006年5月.
[8]徐科军主编.传感器与检测技术(第2版).北京.电子工业出版社.2010.
[9]51测试网.XL1000实验指导书.
[10]周冰,李田等编著.AltiumDesignerSummer09从入门到精通.北京.机械工业出版社.2011
[11]穆秀春,冯新宇等编著.AltiumDesigner原理图与PCB设计.北京.电子工业出版社.2011.
[12]刘武发,刘德平主编.机电一体化设计基础.北京.化学工业出版社.2007.
[13]韩广兴主编.微处理器及控制电路识图.北京.电子工业出版社.2009.
附录一豆浆机控制系统硬件图
附录二豆浆机控制系统软件程序
评语表例样
课程设计题目
设计者
课程设计指导小组评语
课程设计成绩
签字