理论教育 智能电子产品制作教程:程序设计、单片机技术

智能电子产品制作教程:程序设计、单片机技术

时间:2023-10-20 理论教育 版权反馈
【摘要】:图6.9主程序流程图图6.10DS18B20测温流程DS18B20初始化。图6.12初始化流程图图6.13写操作时序图①读操作时序。图6.15温度转换程序流程图3.LCD显示程序本系统的显示采用的是LCD1602液晶显示器,用于显示实时温度值以及设定的上下限温度值。LCD1602初始化功能设置,包括工作方式、显示状态、清屏、输入方式。

智能电子产品制作教程:程序设计、单片机技术

一、程序组成及流程

分析系统功能要求以及各功能模块电路的特点,把程序部分也划分为相对独立的功能模块,分别是主程序、温度采集转换、LCD显示、键盘、加热控制和报警等。每个模块包含若干个相关的函数。

1.主程序

主程序按照系统的控制顺序,将功能函数进行连接。其流程图如图6.9所示。

2.温度采集转换程序

由于DS18B20与单片机间采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格地保证读写时序,否则将无法读取测温结果。温度控制程序有初始化init_DS18B20( )、读字节readbyte( )、写字节writebyte( )、温度转换readtempcon( )等函数组成,控制顺序如图6.10所示。

图6.9 主程序流程图

图6.10 DS18B20测温流程

(1)DS18B20初始化。

根据DS18B20的通信协议,每一次读写之前都必须要对DS18B20进行复位。

①初始化时序。复位要求主CPU将数据线下拉500μs,然后释放,DS18B20收到信号后等待15~60μs后发出60~240μs的存在低脉冲,控制器收到此信号表示复位成功。初始化时序如图6.11所示。

②初始化流程。分析DS18B20的初始化时序,制定的初始化流程图如图6.12所示。

(2)写字节操作。

图6.11 DS18B20初始化时序

①DS18B20的写时序。在主机产生写时信号后,DS18B20会在其后的15~60μs的一个时间段内采样单总线(DQ)。在采样的时间窗口内,如果总线为电平,主机会向DS18B20写入1;如果总线为低电平,主机会向DS18B20写入0。写时序如图6.13所示。

②写字节函数。由低位至高位,向DS18B20写入一个字节的数据,无返回值,形参byte是待写入的字节数据,读取8次,移位8次,保证每位都传输至DQ。

(3)读操作。

图6.12 初始化流程图

图6.13 写操作时序图

①读操作时序。控制器发起读时序时,DS18B20仅被用来传输数据给控制器。所有读时序必须最少60μs,包括两个读周期间至少1μs的恢复时间。当总线控制器把数据线从高电平拉到低电平时,读时序开始,数据线必须至少保持1μs,然后总线被释放。DS18B20通过拉高或拉低总线上来传输”1”或”0”。当传输逻辑”0”结束后,总线将被释放,通过上拉电阻回到上升沿状态。从DS18B20输出的数据在读时序的下降沿出现后15μs内有效。因此,总线控制器在读时序开始后必须停止把I/O口驱动为低电15μs,以读取I/O口状态。读时序如图6.14所示。

图6.14 读操作时序图

②读字节函数。由低位至高位,读取DS18B20所采集到的数据,带返回值,byte是读取到的字节数据。其中,此函数读取8次,移位8次。

(4)温度读取并转换函数。

启动转换,待转换完成,将DS18B20暂存寄存器1、2字节中的温度信息读出并组合,因设定的是12位转换,则可分辨的温度为0.0625℃,将组合值乘以0.0625并进行四舍五入处理,得到实时温度值的10倍。即c=t*0.0625*10+0.5,其中为读取的转换值。程序流程图如图6.15所示。

图6.15 温度转换程序流程图(www.daowen.com)

3.LCD显示程序

本系统的显示采用的是LCD1602液晶显示器,用于显示实时温度值以及设定的上下限温度值。其控制程序由初始化lcd_init( )、写命令write_1602com(uchar com)、写数据write_1602dat(uchar dat)、测温值显示display( )等函数组成。

(1)LCD初始化。LCD1602初始化功能设置,包括工作方式、显示状态、清屏、输入方式。初始化的操作除完成初始设置外,还使LCD在指定的位置显示固定的信息,即第1行“Now Tem: .C”,第2行“TH: C TL: C”。

(2)写命令函数。

设置为LCD1602的写命令状态,将命令字写入指令寄存器。

(3)写数据函数。

设置为LCD1602的写数据状态,将数据写入指令寄存器。

(4)实时温度显示函数。

在无温度设置状态下,按设定格式显示实时温度及上下限的设定温度。

4.按键设置程序

系统中使用三个按键用来完成门限设置选择、上门限设置和下门限设置,分别与单片机P1口的P1.5、P1.6、P1.7连接,温控系统的操作模式分为三种,其中模式0为实时显示;模式1为上限设置,可进行加1减1调节;模式2为下限设置,也可进行加1减1调节。操作顺序为:温度设置→确定模式→上下限调节及其显示。流程图如图6.16所示。

5.继电器控制及报警程序

在实时控制模式下,若实际温度高于设定温度时启动报警,加热继电器断开加热电路;若实际温度低于设定温度时启动报警,加热继电器接通电路,且加热状态二极管点亮;若实际温度在设定范围内则停止报警,继电器保持原来的工作状态。通过这样的控制过程,使系统的温度维持在设定温度的范围内。控制程序流程图如图6.17所示。

二、系统控制程序

经过以上的程序功能模块的划分以及控制流程的确定,编写的控制系统源程序如下:

图6.16 门限设置流程图

图6.17 继电器与报警程序流程图

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈