图13 LCD与单片机的接口电路图
2.5 报警电路设计
本设计的报警电路采用高温和低温报警,报警温度上下限可以通过按键控制进行设定。报警器与单片机的连接图中绿色的LED灯代表正常温度指示灯,图中三极管的主要作用是对电流信号进行放大,其次是利用其三种特殊的工作状态(截止状态、放大状态、饱和状态)来实现LED灯与蜂鸣器的切换工作。当所检测的温度在预先设置的报警温度范围内时,正常温度指示灯处于亮的状态,蜂鸣器不工作;当所检测温度超出报警温度范围时,正常温度指示灯灭,同时蜂鸣器发出报警声音。报警器与单片机的连接如图14所示。
图14 报警器与单片机的连接图
3. 软件设计
在单片机的程序开发中,最常使用的是Keil µ Vision系列软件,它是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统。支持汇编语言、C51语言等多种单片机程序设计语言,具有完善的编译连接工具和丰富的仿真调试功能。此外,C语言与汇编相比,无论在功能上还是在可读性上都有明显的优势,而且易学易用。故本设计采用C语言进行编程。
3.1 系统软件设计的一般步骤
在进行系统软件设计时,首先应该对本系统所用硬件有深入的理解掌握,知道系统的组成、信号的控制、数据的传输以及信号的显示。在进行系统软件设计时,首先要搞清楚各个部分的子程序及其流程图,然后进行C语言模块化编程,最后再系统编程。
3.2 系统流程图
系统软件设计主要包括系统的流程图及程序,本章主要讲述系统的流程图。根据整个系统的要求,完成温度的测量必须经过以下几个步骤:单片机接受传感器的温度信号,并在LCD液晶显示器上显示出来,单片机扫描键盘接受控制信号,若温度超出所设温度上下限时发出报警。
3.2.1 系统主程序流程
首先系统初始化,然后判断日期/温度显示切换键的状态,若处于日期和时钟显示状态则LCD显示日期与时钟,并且可以通过按键调整日期与时间,若处于温度显示状态,则对按键进行扫描,判断是否进行报警温度上下限的设定,若报警温度上下限设定键按下则开始设定报警温度上下限,若无键按下则继续往下执行;然后判断温度巡检/查询按键的状态,若巡检/查询键处于温度巡检状态,则LCD循环显示8路温度;若处于指定通道查询状态,则显示指定通道的温度;当所检测的温度超出报警温度上下限时开始报警,之后则如流程图所示,循环执行。主程序流程如图15所示。
图15 系统主程序流程图
3.2.2 DS18B20程序流程
本设计为8路温度检测系统,由于DS18B20与单片机之间采用串行方式传输数据,所以在编程时要严格保证读写时序,否则单片机将无法读取测量温度。对于多路温度检测系统来说,温度采集模块程序的设计是整个软件设计的核心,DS18B20的程序流程设计关乎整个温度检测系统的检测精度。根据单片机对DS18B20的控制方法,可画出图16、图17、图18、图19。
图16 DS18B20写命令子程序流程图
DS18B20写命令子程序流程图说明:DS18B20的写时序分为写0时序和写1时序两个过程,DS18B20的写命令是从低位开始传输的。首先判断command&0x01是否为0,即判断DQ的值是否为0;如果为0即为写0时序,此时要求单总线(即DQ)要被拉低至少60us,以保证DS18B20能够在15~45us之间正确的采样I/O线上的“0”电平;如果为1即为写1时序,此时要求DQ被拉低15us之内(本设计使DQ被拉低2us)置1,以保证DS18B20在以后的60us内正确地采样I/O线上的“1”电平[11];然后command右移一位,写下一位数据;循环8次结束。 51单片机多路温度检测系统的设计+电路图+源程序+流程图(5):http://www.youerw.com/zidonghua/lunwen_1338.html