摘要:介绍了以AT89S52为控制核心实现豆浆机定时的一种方法。详细论述了系统的硬件组成、各功能部分的电路设计和系统的软件设计。给出了关键功能部分的电路图、单片机的程序设计流程。系统在实际应用中,工作稳定可靠。
关键词:单片机;豆浆机;温度传感器;实时时钟
0 引言
本系统是设计一个由定时开关控制的豆浆机。由于目前市面上一些定时的豆浆机几乎都是定时30min或15min而不能任意进行定时设置。本设计可通过按键预置时间,通过计数器倒计时的方式进行计数。当达到预置时间时,通过单片机控制豆浆机自动开启,从而不用早起,能节约时间,节省资源,当豆浆煮熟以后自动保温或者断电。
1 系统组成
系统由单片机、键盘输入电路、液晶电路、缺水检测电路、溢出检测电路、82废检测电路、报警指示电路等组成。硬件结构框图如图1所示。
1.1 单片机系统
系统采用AT89S52作为控制核心,配备键盘和液晶显示电路。
AT89S52是Atmel公司新推出的一种低功耗、高性能CMOS 8位徽控制器,它具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。其性能完全可以满足系统的要求。
键盘用于设定豆浆机启动时间和调整系统时间。
液晶显示采用OCM12864,它内带汉字字库,可以方便地显示汉字及图形;可以同时显示4×8个单元,可以一次显示系统所有状态信息;显示的内容不需要刷新,节省了单片机的资源;电路结构简单,便于控制,功耗低。
1.2 温度传感器
系统采用集成温度传感器DS18B20作为测量温度的部件。传感器与单片机的连接电路如图2所示。
DS18B20是美国Dallas半导体公司的单总线数字化温度传感器。全部传感元件及转换电路集成在形如一只三极管的集成电路内,体积小、使用灵活方便。主要特性;适应电压范围宽,在寄生电源方式下可由数据线供电;支持多点组网功能;温范围-55~+125℃;分辨率高达12位;最大转换时间750ms;测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。图2中,4.7k电阻作为上拉电阻,提高数据线的电流。
1.3 时钟芯片
系统采用专用时钟芯片DS1302,它和单片机的连接电路如图3所示。DS1302是一个慢速充电时钟芯片,包括实时时钟/日历和31字节的静态RAM。它经过一个简单的串行接口与微处理器通信。实时时钟/日历提供秒、分、时、日、周、月和年等信息。对于小于31天的月,月末的日期自动进行调整,还包括了闰年校正的功能。
1.4 缺水检测电路 缺水检测电路主要用来检测是否缺水,防止干烧,如果检测到缺水则可以自动加水。其电路如图4所示。不缺水时P1.6输入为低电平,缺水时为高电平。水位惰况检测反馈路径为:加热管外壳(接线路板地)→水→电极→R22→P1.6,当容器内无水或水量低于水位线,即水浸不到电极时,P1.6为高电平,然后自动加水;当容器内水量达到水位线时(即水量浸到电极时),P1,6为低电平,P1.5输出高电平,将控制加热的相应继电器吸合,加热管正常加热。
1. 5 溢出检测电路
溢出检测电路主要是用来防止浆沫溢出。其电路如图5所示。豆浆溢出情况检测反馈路径为:加热管外壳(接线路板地)→豆浆及浆沫→防溢电极→R23→P1.7,当豆浆沸腾泡沫向上溢时,防溢检测电极接触到泡沫浆液,使P1.7由高电平变为低电平,P1.5输出低电平,将控制加热的相应继电器不吸合,加热管停止加热。当泡沫下落后,P1.7变为高电平,P1.5输出高电平,控制加热的相应继电器吸合,加热管正常加热,不断反复进行防溢延煮。
1.6 82度检测电路
82度检测电路是通过一个比较器电路来实现的。其电路如图6所示。比较器由双运放LM358和电阻、电容、稳压管组成,LM358采用12V供电,当LM358的负输入端电压高于正输入端电压时,输出为低电平,稳压管D1截止,P2.1输入为低电平;当LM358的负输入端电压低于正输入端电压时,输出为10~11V的电压,此时稳压管D1导通,P2.1输入为高电平(4.3V)。
负端输入电压随热敏电阻R20阻值的变化而变化。负温度系数(NTC)热敏电阻R20是采用单一高纯度材料、具有接近理论密度结构的高性能陶瓷,它最基本的性质就是电阻值随温度上升而下降。电阻变化与温度变化的具体关系如式(1)所示: R1=R0*exp[R*(1/T1-1/T0)] (1)
其中,R0和R1为电阻值,T0和T1为绝对温度,B值是一个表征NTC的电阻值与绝对温度的关系的常数。热敏电阻的B值并非是恒定的,其大小因材料构成而异,最大甚至可达5K/℃,因此在较大的温度范围内应用式1时,将会与实测值之间存在一定误差,本系统中使用的NTC热敏电阻的参数为:25℃时的阻值为22K,B值为4300,代入式(1)可以求得R1为2.2K时的温度为82℃。当温度小于82℃时,热敏电阻的阻值大于2.2K,此时负端输入电压低于正端输入电压,输出为高电平,当温度高于82℃时,热敏电阻的阻值小于Z2K,此时负端输入电压高于正端输入电压,输出为低电平,停止加热,开始打浆。
3 软件设计
对于51系列单片机,目前常用的语言有汇编和单片机C语言。本系统单片机软件采用Keil C51程序编写。主要由主程序、读取温度子程序、读取时间子程序、键盘扫描和液晶显示子程序、报警子程序等部分组成。读取温度子程序功能:完成对DS18B20的复位及温度的读取。D S18B20是单总线芯片,对时序要求严格,用Keil C51编写程序时,采用“while(--i);”语句实现短时间的精确延时。键盘扫描和液晶显示子程序完成定时的设定及各种信息的显示;读取时间子程序完成DS1302的初始化和当前时间的读取。流程图如图7所示。
4 结束语
本系统对豆浆机定时做了改进,充分发挥了AT89S52单片机强大的控制能力,采用了低成本的实时时钟芯片DS1302,可以灵活设置豆浆机的工作时间,实现了豆浆机的预约定时及全自动制作豆浆。系统操作方便、成本低,在实际应用中收到了满意的效果。 |