3.DS1820使用中注意事项
DS1820虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:
(1)较小的硬件开销需要相对复杂的软件进行补偿,由于DS1820与微处理器间采用串行数据传送,因此,在对DS1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序设计时,对DS1820操作部分最好采用汇编语言实现。
(2)在DS1820的有关资料中均未提及单总线上所挂DS1820数量问题,容易使人误认为可以挂任意多个DS1820,在实际应用中并非如此。当单总线上所挂DS1820超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。
(3)连接DS1820的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DS1820进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。
(4)在DS1820测温程序设计中,向DS1820发出温度转换命令后,程序总要等待DS1820的返回信号,一旦某个DS1820接触不好或断线,当程序读该DS1820时,将没有返回信号,程序进入死循环。这一点在进行DS1820硬件连接和软件设计时也要给予一定的重视。 2.4 功能按键
在单片机系统中重要的一点是消除按键的抖动所造成的干扰,为了消除这样的干扰,可以采用硬件消除和软件消除。硬件消除电路如图7 所示。用两个与非门构成一个RS触发器。当按键未按下时输出为1;刚键按下时输出为0。此时即使用按键的机器性能,使按键因弹性抖动而产生瞬时断开(抖动跳开B),只要按键不返回原来状态A,双稳态电路的状态不会改变,输出保持为0,不会产生抖动的波形。也就是说,即使B点的电压波形是抖动的,但经双稳态电路之后,其输出为正规的矩形波。
图7 按键电路
但是硬件消抖的方法无疑增加了系统的硬件成本,所以本次设计采用的是软件消抖的方法。软件消抖
是在按键按下时加一段延迟时间,相当于屏蔽一连串的极短的脉冲,从而实现了按键的消抖。
2.5 压缩机,风机、电磁阀控制
压缩机,风机工作原理是制冷系统内制冷剂的低压蒸汽被压缩机吸入并压缩为高压蒸汽后排至冷凝器。同时轴流风扇吸入的室外空气流经冷凝器,带走制冷剂放出的热量,使高压制冷剂蒸汽凝结为高压液体。高压液体经过过滤器、节流机构后喷入蒸发器,并在相应的低压下蒸发,吸取周围的热量。同时贯流风扇使空气不断进入蒸发器的肋片间进行热交换,并将放热后变冷的空气送向室内。如此室内空气不断循环流动,达到降低温度的目的。 而冰箱没有风扇靠自然对流来进行热量交换。电磁阀的工作原理非常简单,阻流板就象一个闸门,一个弹簧让它处于关闭状态,上面一个电磁铁芯,铁芯(低部橡胶)压在阻流板中间(凸起)的一个小眼儿上,外面一个电磁线圈,接通电源后铁芯别吸上去,小眼儿开始进气,压力达到顶开弹簧后电磁阀打开。
第三章 主要系统软件设计
3.1 主程序
主程序由初始化,键盘扫描,显示,温度采集,压缩机控制和中断报警,为系统软件的主干部分,其流程图如图8所示:
图8 主程序流程图
3.2 温度采集程序
温度采集程序主要是完成DS18B20传感器的初始化、读暂存器里的数字温度值,以及完成数字温度到实际温度的换算。
3.3 键盘程序
图9 温度采集流程图
键盘程序主要是在自动模式下,对冰箱内的温度进行设定,键盘程序主要是采用扫描的方法,因为AT89C51的中断入口少,外扩中断增加了编程的难度,所以采用扫描方式。在程序上采用软件消抖的方法。
图10 按键执行流程图
3.4 压缩机启动与停止
压缩机的启停、控制阀门的通断和加热棒的 开通与关断时将通过将采集来的数据与预设的温度进行比较,从而确定是否将以上相关的电气设备开启。包括自动模式和智能模式。一般情况下冷藏室的温度小于冷冻室的温度。几个典型温度值:
1.(冷藏室温度>冷藏室设定值)&&(冷冻室温度>冷冻室设定值):启动压缩机,打开阀门,关闭加热棒 2. (冷藏室温度<=冷藏室设定值)&&(冷冻室温度>冷冻室设定值):启动压缩机,关闭阀门,关闭加热棒 3. (冷冻室温度<冷冻室设定值)&&( (冷藏室温度<冷藏室设定值):关闭压缩机,关闭阀门,打开加热棒 3.5 延时程序
延时程序是让单片机执行空的语句或者利用循环语句for或者是while语句使单片机一直停留在原地,直到循环结束,从而完成延时。 3.6 定时器
定时器是在冰箱门打开的时候开始定时,定时一分钟如果冰箱门还没有关上就启动报警电路,消音按键是关闭中断、关闭定时器从而消除报警的声音,是电冰箱工作在消音模式下。
3.7 显示程序
Led数码管显示函数,是将采集的数据或者是键盘设定的温度值显示出来,可以通过按键来切换要现实的数据,是人机接口的重要组成部分。
数码管分为共阳极合共阴极,他们的不同只是在段选与位选的高低电平不同,所以采用的编码方式也不同,本次设计是采用共阳数码管。
图12 定时器函数
图13显示函数
第四章 分析与结论
通过此项设计的分析可得到如下结论:
1.本系统运用单片机速度快、体积小、价格低廉的8位MCS51单片机,可以做出可行、可靠性强的自动控制产品---电冰箱温度的控制系统。实现了电冰箱温度的自动控制。
2.在单片机应用环境不是很恶劣的地方,利用软件抗干扰也可以达到精度不高的要求,而且,节省了硬件资源,降低了产品设计成本,有助于产品的推广、民用化。
3.本系统的设计尽量简化电路,提高软件质量。
4.本系统支持多功能模块。如果再加上少许外围器件,如语音芯片,环境温度传感器,在软件方面采用模糊控制技术,可以使电冰箱的智能化大大提高。
感悟:通过十几天的课程设计,不但学到了新的知识,并且对学过的知识有了更深的理解。本次课程设计的难点是整体结构设计和程序设计。整体结构要完成键盘、显示、温度传感器和压缩机的布局,程序设计要完成完成采集温度数据、在数码管上显示、以及控制压缩机启停等的时序关系。知识是实时更新的,我们要不断地学习的新知识是建立在旧的知识系统之上的,掌握好学习过的知识,才能及时补充新的知识。 总之,这一次的课程设计让我学到了很多的知识。