基于单片机的多点温度采集系统 下载本文

在单片机发送采集指令后,等待DS18B20响应,DS18B20做出响应后就会进行一次温度数据的采集,DS18B20所要采集的温度信号是模拟信号,需要在片内经过模数转换后再送给单片机进行必要的处理,然后调用显示子程序完成数据的显示,至此结束程序。其工作流程图如图3.3所示。

开始 初始化 是否有数据采集指令? Y 数据采集 N

片内数据转换 调用显示子程序 线束

图3.3 温度采集程序流程图

3.2.4 LCD1602显示子程序流程图

LCD1602显示电路用于显示温度值和时间的显示,其具体工作流程为先由单片机向其发送指令,即向LCD1602写指令,设置第一行显示位号,也即显示地址,然后由单片机向其发送写数据指令,同样,LCD1602接到写数据指令后,由单片机向其写入数据,进而显示数据;同样,也要设置第二行显示位号,在接到单片机发送的写数据指令后,写入数据进行显示。其程序流程图如图3.4所示。

20

开始 初始化 设第一行显示位号 写数据显示第一行 设第二行显示位号 写数据显示第二行 线束

图3.4 LCD1602 显示电路流程图

3.2.5 报警电路子程序流程图

报警电路是在数据采集电路采集到的温度值超出设定值的范围时,蜂鸣器响起起到报警作用,其具体工作流程为,先由数据采集电路进行温度数据的采集,然后,将采集到的数据送给单片机进行分析和处理,同时,单片机调用LCD1602显示子程序,将数据传送给显示电路进行显示;在单片机处理分析完信号作出判断,若做出判断的结果是检测值是超出设定值的上下限,则单片机发送信号使报警电路中蜂鸣器鸣叫,同时发光二极管发光,实现报警功能;若检测值没超出设定范围,则报警电路不工作。其程序流程图如下图3.5所示。

21

开始 读取传感器1温度并转换 N 是否超限? Y 报警 读取传感器2温度并转换 是否超限? N

Y 报警 结束 图3.5 报警电路流程图

22

第四章 仿真测试

本次仿真采用Keil和Proteus相结合的方式,Keil环境下C语言编程简单,且调试方便。而在Proteus下进行仿真形象、直观,两者结合,相得益彰。

仿真大致经过以下步骤:

1、在Keil下编写程序,并进行调试,并生成十六进制文件(HEX文件)。在Proteus下新建文件,并在元件库中找到相应的元件如单片机、DS18B20等添加到文件中,并按照原理图连接好电路。

2、将Keil生成的十六进制文件加载到Proteus单片机中,具体过程:source——Add/Remove source files?——打开Add/Remove Source Code Files对话框——添加Hex文件——点击“OK”。 3、按下Proteus左下角的图。

按钮进行仿真,并根据仿真结果去修正程序和电路

4.1Proteus简介

Proteus 是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:

1、实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。

2、支持主流单片机系统的仿真。目前支持的单片机类型有:ARM7(LPC21xx)、 8051/52系列、AVR系列、PIC10/12/16/18系列、HC11系列以及多种外围芯片。

3、提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision4、MPLAB等软件。

4、具有强大的原理图绘制功能。

总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。

4.2仿真结果

仿真电路图如图4.1所示。

23