APP下载

基于SPI接口的温度测量系统

2013-04-25孔令荣

电子科技 2013年2期
关键词:流程图寄存器温度传感器

孔令荣

(南京理工大学泰州科技学院 电子电气工程学院,江苏 泰州225300)

在当今农业和工业生产过程中,温度作为一个基本物理量起着越来越重要的作用。随着科技的发展,人们对温度测量的要求是越来越高,对温度测量的范围也越来越广。因此,温度测量和控制技术具有一定的必要性。

1 硬件电路设计

系统设计硬件电路分为:控制电路、键盘电路、传感器电路、显示电路和报警电路。AVR单片机接收到TC72温度传感器检测到的温度信号后,经过控制运算给出控制信号,通过LCD显示检测温度的大小;矩阵键盘可以设定温度上下限值,当温度超出设定范围时,报警电路会发出警报,达到温度测量和控制的目的。SPI温控系统的工作原理如图1所示。

图1 基于SPI接口温测系统

1.1 控制电路模块

AVR单片机由Atmel公司利用Flash新技术,研制的RISC精简指令集的高速8位单片机,与51系列单片机相比,在内部资源和接口方面,AVR系列单片机更为丰富和强大。ATmega16单片机是AVR单片机系列中的一种。

ATmega16单片机是ATmega系列中一种高性能、低功耗的8位AVR RISC微处理器[1]。它支持131条指令,并且大多数指令只需要单时钟周期就能执行完成。因此,ATmega16单片机的数据吞吐率可达1 MI/S·MHz,从而使系统在处理速度与功耗之间的矛盾得到了有效缓减。另外,ATmega16单片机的内核不但指令集丰富而且它的通用工作寄存器达32个。其中运算逻辑单元与所有寄存器相连,这样一条指令在一个时钟的周期内就可以同时访问两个独立寄存器。这种结构形式不仅提高了代码效率,而且其数据吞吐率比普通的CISC微控制器高10倍[2]。

1.2 键盘电路模块

矩阵式键盘,由行线和列线组成,按键位于行、列的交叉点上,行、列分别连接到按键开关的两端,列线通过上拉电阻接到高电平。无按键动作时,列线处于高电平状态;有按键按下时,交点的行线和列线接通,列线电平状态将由与此列线相连的行线电平决定。行线电平如果为低,则列线电平为低;行线电平如果为高,则列线电平也为高。这一点是识别矩阵键盘按键是否被按下的关键。由于矩阵键盘中行、列线为多键公用,各按键均影响该键所在行、列的电平,所以必须将行、列线信号配合适当处理,才能确定闭合键所在的位置。矩阵式键盘节省了大量I/O接口,适用于按键数量较多的场合。本系统矩阵式键盘功能设计如图2所示。

图2 矩阵式键盘功能设计

16键解码芯片74C922采用CMOS工艺技术制造,工作电压为3~15 V,具有二键锁定功能,编码为三态输出,可与单片机直接连接,内部振荡器完成4×4键盘矩阵扫描,外接电容用于消抖,键盘矩阵的4行分别连接解码芯片X1~X4引脚,4列分别连接Y1~Y4引脚。当有按键按下时,解码芯片的DA引脚向连接单片机的引脚输出高电平,同时封锁其他按键,片内锁存器将保持当前按键的4位编码。单片机与74C922的硬件连接图如图3所示[3]。

图3 单片机与74C922的硬件连接图

1.3 温度传感器模块

设计使用的TC72温度传感器是一个数字温度传感器,温度测量范围为-55~+125℃。该传感器具有一个4线串行接口,通过这个串行接口与单片机或其他外围设备进行通信,并且该TC72接口与SPI协议兼容。同时在使用TC72时不需要附加外部电路,它可以工作于连续的温度转换模式(Continuous Conversion Mode)或单次转换模式(One-Short Mode)。在连续转换模式下,TC72约每隔150 ms进行一次温度转换,并将获取的数据保存于温度寄存器中,后者在一次转化后即进入省电模式。TC72寄存器地址如表1所示。

表1 TC72寄存器地址

TC72温度传感器2 Byte温度数据寄存器格式如表2所示。

表2 TC72温度传感器2 Byte温度数据寄存器格式

1.4 LCD1602显示模块

系统中由于要对实时温度和报警温度进行显示,因而选择LCD1602显示屏作为输出器件。LCD1602字符型液晶显示屏有16条或14条引脚线,多的2条引脚线用于接背光电源正负极,平时使用较少。LCD1602可以显示两行且每行16个字即32个字符,而且LCD1602价格便宜,其外围电路的配置简单,具有较高的性价比。LCD1602内部的字符发生存储器存储了包括英文字母的大小写、常用的符号及阿拉伯数字等160个不同的点阵字符图形,其中每一个字符都对应着一个固定的代码,例如“B”的代码是01000010B(42H),显示时模块把地址42H中的点阵字符图形显示出来,这样就能够看到字母“B”。单片机与LCD1602显示屏的硬件连接如图4所示。

图4 单片机与LCD1602显示屏硬件连线图

2 软件设计

在单片机系统中,单片机之所以处于核心地位,最重要的原因在于单片机上能够运行强大的软件。因此可以说,硬件是设计的基础,软件是设计的关键。只有软硬件协调配合,应用系统才能良好的工作。

2.1 系统总流程图

流程图分析:当电源上电后,系统进行初始化,系统开始运行,启动TC72温度传感器并读取温度;若此时温度没有超出设置的报警温度,则液晶正常显示;若超出报警温度,则蜂鸣器开始报警,按ESC键可退出报警。液晶正常显示后,系统程序对键盘进行扫描,若有设置键按下,则开始对报警温度进行设置,设置完成后重新读取温度并显示。系统总流程图如图5所示。

图5 系统总流程图

2.2 键盘程序流程图

流程图分析:若有设置键按下,则进入设置温度模式;若无按键按下,则读取温度数据送入液晶屏显示。在设置模式下设置温度,完成后再送数据到液晶屏显示。键盘程序流程图如图6所示。

2.3 LCD显示程序流程图

流程图分析:首先对1602显示屏进行初始化,然后进行忙信号检查,如果BF=0,则开始读取温度并写入相应的数据进行显示;如果BF=1,则表示模块正在进行内部操作,暂时不会接收任何数据及外部指令,直到BF=0为止。LCD显示程序流程图如图7所示。

3 仿真与调试

单片机应用系统的调试主要从软件调试和硬件调试两方面入手。两种调试过程紧密相关,而并非分开或孤立的,在基于SPI接口的温度测量系统设计中,用到了AVR Studio 4+Win AVR和Proteus ISIS软件。

模拟调试:首先运行AVR Studio软件,在新建项目窗口中输入设计所用的程序,输入完成后进行编译、运行、保存。然后在Proteus ISIS软件中画出硬件电路图并进行电气规则检查;如果电路设计无误,选中单片机ATmega16并双击,在对话框中点击Program File按钮,找到经过AVR Studio软件编译生成的hex文件,载入后点击OK按钮。完成后在Proteus ISIS的Debug菜单中选择Execute,即可运行程序。

实现功能的具体方法:按高温设置键,可调整当前温度的最高值,按0~9键,输入温度最高值的大小,按Enter键完成设置;按低温设置键,可调整当前温度最低值,按0~9键,可输入温度最低值大小,按Enter键完成设置;在进行高低温设置的过程中,可使用键盘中的ESC、Backspace键进行返回和删除操作。高低温设置完成后,可通过调节TC72温度传感器上的加减键进行实时温度调节;此时,如果调节的温度超出设置的温度范围,就会产生报警。

4 结束语

设计了一种基于SPI接口的温度测量系统,介绍了如何利用AVR单片机控制TC72温度传感器的新型设计方法。该设计利用单片机C语言,以AVR单片机为控制核心,通过使用具有SPI接口功能的TC72温度传感器,实现对温度进行实时监控显示和报警功能。

[1] 朱飞.AVR单片机C语言开发入门与典型实例[M].北京:人民邮电出版社,2009.

[2]胡汉才.高档AVR单片机原理及应用[M].北京:清华大学出版社,2008.

[3] 杨正忠.AVR单片机应用开发指南及实例精解[M].北京:中国电力出版社,2008.

猜你喜欢

流程图寄存器温度传感器
STM32和51单片机寄存器映射原理异同分析
Lite寄存器模型的设计与实现
温度传感器DS18B20在温度计设计中的应用
一种高性能CMOS温度传感器
XTR105电流变送器在温度传感器中的应用
专利申请审批流程图
专利申请审批流程图
温度传感器在笔记本电脑散热系统中的应用
宁海县村级权力清单36条
《天津医药》稿件处理流程图