电子孵化器设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A/D接口图
3.3
本设计使用24C04作为E2PROM,用于存储温度设定及时间设定。24C04的”写”启动总线(I2C)—发送器件寻址字节—应答—发送数据寻址地址—回答—发送第一个数据—应答--……发送第N个数据—应答—停止总线;写地址可以指定第一个数据地址后连续送数。”读”所有的操作几乎一样,只是在读完8位数据以后,从设备不是发出ACK(低电平),而是直接给SETB SDA,然后发出停止总线信号即可结束本次读。
CPU最小系统图
单片机在开机时都需要复位,以便中央处理CPU以及其他功能部件都处于一个确定的初始状态,并从这个状态开始工作。单片机的复位后是靠外部电路实现的,在时钟电路工作后,只要在单片机的RST引脚上出现24个时钟振荡脉冲(2个机器周期)以上的高电平,单片机便可实现初始化状态复位。
复位电路图
3.2
{
if(!Key3)//二次判断K3是否按下
{
Tem_decimal++;//温度的小数部分++
if(Tem_decimal>9)//若温度的小数部分>9,置0
Tem_decimal=0;
}
}
温度传感器DS18B20是Dallas公司生产的单总线数字化温度传感器,它采用单根信号线传输数据,而且数据传输是双向的。它能直接读出被测温度,因此可以通过简单的编程实现温度显示与温度控制。本设计温度设置控制范围为0-50℃,上下限温度在程序中设定,可实现升温也可进行降温。
温度传感器图
PCF8591是具有I2C总线接口的8位A/D及D/A转换器,在与CPU的信息传输过程中,仅靠时钟线SCL和数据线SDA就可以实现。由两部分组成,一部分是模拟芯片,另一部分数字芯片,其中模拟部分由高性能的12位D/A转换器和参考电压组成。数字部分由控制逻辑电路,逐次逼近型寄存器的三态缓冲器组成。
本设计的内容为恒温控制鸡蛋孵化系统,使用温度传感器检测温度,使用LCD对温度进行实时显示,使用电热丝以及风机对温度进行控制,使用串行E2PROM接口,用于存储温度设定及时间设定。
2.
N
Y
总体设计思路流程图
系统结构框图
3.
3.1
CPU最小系统包括AT89S52单片机、可编程I/O接口、晶振电路、按键复位电路。其中晶振采用11.0592MHz的晶振。起振电容一般采用15~33uF,并且电容离晶振越近越好,晶振离单片机越近越好,本设计中采用30pF。
重庆理工大学
嵌入式接口技术综合设计
题目:AT89S52智能孵化控制器设计分析
二级学院计算机科学与工程
专 业计算机科学与技术
班 级37-3
学生姓名许鸿兴
教 师
时 间
成 绩
摘要
关键词:
1.
随着电子技术的发展,使用单片机对光、电、声波、温度等的控制已成为工业生产与自动化控制中最常见的工艺。使用单片机对温度进行检测,显示,存储并进行实时控制,在工业生产中已得到广泛应用。
Tem_integer=0;
}
}
if(!Key4)//如果K2按下
{
if(!Key2)//二次判断K2是否按下
{
Tem_integer--;//温度的整数部分--
if(Tem_integer<0)//若温度的整数部分<0,Tem_integer置50
Tem_integer=50;
}
}
if(!Key4)//如果K3按下
此模块的源程序如下:
if(Tn!=Ts)//当前温度不等于设置的温度
{
beep();//蜂鸣器响三声
beep();
beep();
if(Tn>Ts)//当前温度大于设置的温度
{
Hot=1;//打开加热器
Cool=0;//关闭风机
}
else//当前温度小于于设置的温度
{
Hot=0;//关闭加热器
Cool=1;//打开风机
24C04接口图
3.4
在此设计中,通过按键更改温度值,更改精度为0.1℃,但测量的精度为±0.2℃。更改的值通过1602LCD显示。
当按下K1键一次时,温度整数部分+1,自加至50后变为0;当连续按住K1键时,温度整数部分一直自加至50后变为0。当按下K2键一次时,温度整数部分-1,自减至0后变为50;当连续按住K1键时,温度整数部分一直自减至0后变为50。
}
}
LCDdiplay();//LCD显示当前温度,设置温度、时间信息
4.2
NN
Y
串行E2PROM对温度、时间的写Y
串行E2PROM对温度、时间的写
4.3
N
Y
N
Y
温度显示及键盘程序流程图
这部分程序的功能是判断是否有按键按下,若没有,则返回;若有,则用消抖法两次判断是哪个按键按下,然后在LCD上显示出来。
此模块的源程序如下:
LCDdiplay();//LCD显示当前温度,设置温度、时间信息
if(!Key1)//如果K1按下
{
delayms(10);//延时10ms
if(!Key1)//二次判断K1是否按下
{
Tem_integer++;//温度的整数部分++
if(Tem_integer>50)//若温度的整数部分>50,Tem_integer置零
当按下K3键一次时,温度小数部分+1,自加至9后变为0;当连续按住K1键时,温度小数部分一直自加至9后变为0。当按下K4键一次时,温度小数部分-1,自减至0后变为9;当连续按住K1键时,温度整数部分一直自减至0后变为9。
键盘接口电路
使用1602LCD实时显示设定的温度、以及当前温度。第一行显示设定的温度,显示格式为“XX.X℃”,第二行显示当前的温度,显示格式为“YY.Y℃”,第三行显示当前的时间,显示格式为“ZZZZ.ZZ.ZZ.ZZ.ZZ.ZZ”(年月日时分秒)。设定的温度可通过按键进行更改,更改的同时输出显示。
1602LCD电路
3.5
系统中的风机及加热器(统称电机)必须通过继电器与单片机连接,并使用单片机对电机进行开断电的控制。
加热器及风机驱动电路
4.
4.1
N
Ywk.baidu.com
Y
N
温度控制流程图
这部分程序的功能是将现在的温度与设定的温度进行比较,若当前温度不等于设定的温度,则蜂鸣器响起警报。然后判断若当前温度>设定的温度,则关闭加热器,打开风机;若当前温度<设定的温度,则关闭风机,打开加热器。并实时将当前温度通过LCD显示。
相关文档
最新文档