基于单片机的多温度检测系统的设计与protues仿真
}
void alarm ()
{ if(((term_H } pulse(5,1,1); 第五章 仿真调试及小节 5.1仿真结果 在KEIL下编译项目,进入调试方式后全速运行,然后切换到Proteus环境,此时在屏幕上将会显示出各测温点的温度值,如图6-12所示。用鼠标指向某传感器的或点击左键,屏幕上对应位置的温度值将随之增减,如果某个传感器的温度值总是为0,应检查它的序列号是否与数组二维数组id中所定义的值一致。 多路采样周期的估算: 采样周期由两部分组成:(1)启动总线上所有的DS18B20同时开始转换到转换结束,最长不超过750ms。(2)逐一选定总线上的DS18B20,并读取其温度。根据读写时序,分析rdbyte()及wrbyte(),读写一字节的时间均小于1ms,所以单片机对每一路DS18B20,从发匹配命令到读出其温度值,不会超过10ms。如果总线上挂接了10只传感器,则采样周期小于850ms。 仿真图如图所示: (1)如图5.1所示,此图是四个DS18B20温度传感器巡回检测四点温度,并且只挂接在一根总线上,与P1.0引脚相连。 图 5.1 基于单片机的多温度检测系统的设计与protues仿真 (2)如图5.2是四个温度传感器所检测的四点温度值,经过单片机80 C51的处理,送LCD液晶显示器显示的值。A是U2的温度值30,B-U3-25,C-U4-23,D-U5-27。 图 5.2 (3)图5.3是按下按键S1后,LCD显示的是温度上下限初始值,H-代表温度的上限值50,L-代表温度的下限值10。 图5.3 (4)如图5.4所示:此图为调整温度上下限之后的显示数值,如果四点温度在60和5之间单片机急不发出报警命令,只要有任意一点或多点温度大于上限或低于下限,单片机就会发出报警命令,蜂鸣器响起,然后做出相关的操作。 图 5.4 5.2调试及小节 本文利用Proteus与KEIL C51对单片机多点温度测量系统进行了仿真设 计.从本文结果可以看出,利用Proteus进行单片机系统的仿真设计可以极大地简化单片机程序在目标硬件上的调试工作,大幅度节省制作电路板的时间,对于提高产品的开发效率、降低开发成本等有重要作用. 硬件电路的简单是以软件的复杂为代价的,所以在程序编写和调试的过程中稍一粗心就会出现错误,包括时间延时不够,设置参数的类型有误,按键子程序放置位置不妥等错误。本程序经过反复的调试修改,虽然能达到预期的基本目标,但是还有很多地方需要完善,如开始仿真时机器会扫描错误代码而使电路报警,报警的同时可以使数码管闪烁,还可以利用剩余的I/O口挂接更多的DS18B20等。 本课题通过分析对比各种不同的温度传感器,选定DS18B20,这种单总线数字温度传感器的通信方式比较独特,软件编写要求的比较新颖,特点突出。用其构建的系统有很多优点:硬件连线简单,省去了使用模拟传感器要进行放大、A/D转换等工作,由于它的级联功能,一条总线可挂接多个传感器测量不同位置的温度,根据DS18B20唯一的序号识别不同传感器在各自位置的温度。 基于单片机的多温度检测系统的设计与protues仿真 需要注意的是, 在系统安装及工作之前应将主机逐个与DS1820 挂接,以读出其序列号。另外,由于DS1820 单线通信功能是分时完成的,遵循严格的时隙概念,因此, 系统对DS1820 和各种操作必须按协议进行,即:初始化DS18B20 (发复位脉冲)—发ROM功能命令—发存储器操作命令—处理数据。现场温度直接以“一线总线”的数字方式传输,每一个自带地址,大大减少了系统的电缆数,提高了系统的稳定性和抗干扰性。 通过调试成型系统发现了DS18B20除了上述优点外,还有一些缺点,如:简单的硬件连接的代价是复杂的软件时序,DS18B20在测量温度的时候,灵敏度不够高,温度快速变化时无法迅速显示出其变化。通过一系列的实验发现:由DS18B20构建的测温小系统适用于环境温度监控,对温度小变化较敏感;不适合应用于要求实时性强、温度跨度大的测温方