论文部分内容阅读
【摘要】本设计使用单总线式数字温度传感器、单片机、无线数传模块、液晶显示器以及一些外围器件,从系统结构分析、硬件设计和软件设计分别进行研究和分析,经过硬件的制作、程序的编写和调试,进行了实物的设计,最终实现了将温度数据在相隔一百米的空旷地区远距离接收和温度上限设置和监测报警的功能,能够用于粮仓温度监控、室外气温监控等需要温度监控而又不便进行布线的场所,具有较大的实用价值。
【关键词】温度传感器;无线数传;单片机
随着集成电路技术的发展,单片机的应用已经十分广泛,价格也下降到能够被大多数人接受的范围。使用单片机配合数字温度传感器可以实现温度的实时采集,而且使用SPI通讯协议可以实现与nRF905无线数传模块的通讯,并通过1602液晶显示器将无线传输的结果显示到用户的终端中,从而实现温度数据的无线测量与传输功能。
1.系统设计构想与结构
温度的测量是最常见的应用之一,本文通过设计一个无线温度测量数字传输系统,能够让用户在传统的测温技术的基础上解决温度传感器线缆布线难度大、不美观以及长距离传输误差较大的难题,让远距离的温度测量成为一个可行的解决方案。
1.1无线温度传输系统的结构
无线温度传输系统主要由发射终端和接收终端两部分组成。发射终端主要有控制芯片、温度传感器、无线数传模块组成,主要的作用通过控制温度传感器来获得远程站点的温度,并通过无线数传方式发射出去;接收终端主要有控制芯片、显示器件以及无线数传模块等组成,主要是用于接收远程站点用无线数传方式发射过来的数据包,经过分析后获得远程站点的温度并显示出来。
1.2技术难点及方案选择
1.2.1采集温度的方式的选择
DS18B20数字温度传感器是一种基于单总线传输协议的温度传感器,它只需要一个元件就能够实现温度的测量,而且得益于采用了单总线协议,这款温度传感器占用的单片机I/O接口只有一个,极大地节省了单片机的端口资源,提高了系统的扩展性能。因此,本设计采用DS18B20数字温度传感器作为温度采集的手段。
1.2.2数据无线发送和接收方法的选择
常见的无线数传模块有433MHz和2.4GHz等频段,其中2.4GHz的频段能做到的数据传输带宽较高,但传输距离非常短,若不配备价格较高的高增益性,传输距离往往只有几十米甚至是十几米,而信号穿越障碍的能力也不好,难以在建筑物密集的区域使用。而433MHz的频段虽然数据传输带宽没有2.4GHz的频段高,但是传输距离和信号穿越障碍的能力比2.4GHz的频段好很多,因此十分适合使用在温度数据的无线传输用途上。因此,本设计使用433MHz频段的nRF905无线数传模块作为无线数据传输的方案。
1.2.3温度显示的选择
本设计的接收终端在接收到远程站点发送回来的温度数据后,最终要将它显示出来。至于具体选用哪一种方式,需要考虑到设计的实际需求。本设计既要降低显示器件的功耗,以尽量节能电能,又要考虑到各种功能的显示需求。
至于液晶显示器,则是一种节能型的显示器件,本设计使用字符型的1602液晶显示器作为显示器件,它可以显示英文、数字等字符,而且功耗低,适合本设计使用。
2.硬件部分设计
2.1单片机最小系统设计
2.1.1电源电路设计
本设计使用了5V的开关电源或电脑USB接口进行供电,因此在电源部分上结构不太复杂。
2.1.2时钟电路设计
至于晶体振荡器电路则是向系统提供标准的时钟震荡信号,以让系统产生节奏从而执行各种指令。
2.1.3复位电路设计
本系统使用STC89C52RC单片机作为控制核心,该款单片机实际上跟AT89C52单片机是完全兼容的,因此控制连接电路设计也可以直接参考传统的51单片机。
2.2 nRF905无线数传模块电路设计
单片机的工作电压为5V,本次设计提供的电源也为5V,而射频芯片nRF905的工作电压在3.3V到3.6V之间,因此必须要进行电压转换,需要用一个电压转换芯片AMS1117—3.3。
2.3报警电路设计
本设计使用有源蜂鸣器实现报警效果。
2.4按键电路设计
对单片机系统而言,实现按键功能主要就是将单片机的某个I/O端口与高电平或低电平连接在一起,如在下面的电路中,使用按键的一端接单片机的I/O口,而按键的另一端接GND即电源的负极,在系统中电源的负极即相当于低电平,所以在按下按键后单片机的相应I/O端口的电平即会被拉到低电平,只需要在后面的程序编写中读取该I/O端口的电平状态,从而判断按键当前的状态到底是按下还是抬起。
3.软件部分设计
3.1系统总体软件设计
对发射板来说,总体的软件设计主要包括了温度的采集、数据包的处理以及无线发送这几个部分。
而对接收板的软件来说,承担了显示、报警处理等职责,因此总体软件设计要稍微复杂一点。
3.2系统各部分模块软件设计
3.2.1温度传感器软件设计
主机(单片机)控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,当DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。ROM指令与硬件相关,表示单片机对一个或者多个DS18B20元件进行寻址,或者读取其中某个DS18B20器件的地址,而RAM指令用于单片机对DS18B20内部随机存储器RAM的操作。
3.2.2 nRF905无线数传模块软件设计
3.2.3液晶显示软件设计
1602液晶显示器是一款基于字符操作的液晶显示器,所以它的操作对象是字符。在程序开始写入液晶显示器的时候,先读取一个字符,然后写入显示坐标,将液晶显示器的光标转移到字符串开始写入的位置,接着判断字符是否为空,如果为空表明字符串已经写完,可以直接退出,否则就继续判断液晶显示器的等待忙状态,接着写入字符,然后再重复以上的步骤,直到字符串写完为止。
【关键词】温度传感器;无线数传;单片机
随着集成电路技术的发展,单片机的应用已经十分广泛,价格也下降到能够被大多数人接受的范围。使用单片机配合数字温度传感器可以实现温度的实时采集,而且使用SPI通讯协议可以实现与nRF905无线数传模块的通讯,并通过1602液晶显示器将无线传输的结果显示到用户的终端中,从而实现温度数据的无线测量与传输功能。
1.系统设计构想与结构
温度的测量是最常见的应用之一,本文通过设计一个无线温度测量数字传输系统,能够让用户在传统的测温技术的基础上解决温度传感器线缆布线难度大、不美观以及长距离传输误差较大的难题,让远距离的温度测量成为一个可行的解决方案。
1.1无线温度传输系统的结构
无线温度传输系统主要由发射终端和接收终端两部分组成。发射终端主要有控制芯片、温度传感器、无线数传模块组成,主要的作用通过控制温度传感器来获得远程站点的温度,并通过无线数传方式发射出去;接收终端主要有控制芯片、显示器件以及无线数传模块等组成,主要是用于接收远程站点用无线数传方式发射过来的数据包,经过分析后获得远程站点的温度并显示出来。
1.2技术难点及方案选择
1.2.1采集温度的方式的选择
DS18B20数字温度传感器是一种基于单总线传输协议的温度传感器,它只需要一个元件就能够实现温度的测量,而且得益于采用了单总线协议,这款温度传感器占用的单片机I/O接口只有一个,极大地节省了单片机的端口资源,提高了系统的扩展性能。因此,本设计采用DS18B20数字温度传感器作为温度采集的手段。
1.2.2数据无线发送和接收方法的选择
常见的无线数传模块有433MHz和2.4GHz等频段,其中2.4GHz的频段能做到的数据传输带宽较高,但传输距离非常短,若不配备价格较高的高增益性,传输距离往往只有几十米甚至是十几米,而信号穿越障碍的能力也不好,难以在建筑物密集的区域使用。而433MHz的频段虽然数据传输带宽没有2.4GHz的频段高,但是传输距离和信号穿越障碍的能力比2.4GHz的频段好很多,因此十分适合使用在温度数据的无线传输用途上。因此,本设计使用433MHz频段的nRF905无线数传模块作为无线数据传输的方案。
1.2.3温度显示的选择
本设计的接收终端在接收到远程站点发送回来的温度数据后,最终要将它显示出来。至于具体选用哪一种方式,需要考虑到设计的实际需求。本设计既要降低显示器件的功耗,以尽量节能电能,又要考虑到各种功能的显示需求。
至于液晶显示器,则是一种节能型的显示器件,本设计使用字符型的1602液晶显示器作为显示器件,它可以显示英文、数字等字符,而且功耗低,适合本设计使用。
2.硬件部分设计
2.1单片机最小系统设计
2.1.1电源电路设计
本设计使用了5V的开关电源或电脑USB接口进行供电,因此在电源部分上结构不太复杂。
2.1.2时钟电路设计
至于晶体振荡器电路则是向系统提供标准的时钟震荡信号,以让系统产生节奏从而执行各种指令。
2.1.3复位电路设计
本系统使用STC89C52RC单片机作为控制核心,该款单片机实际上跟AT89C52单片机是完全兼容的,因此控制连接电路设计也可以直接参考传统的51单片机。
2.2 nRF905无线数传模块电路设计
单片机的工作电压为5V,本次设计提供的电源也为5V,而射频芯片nRF905的工作电压在3.3V到3.6V之间,因此必须要进行电压转换,需要用一个电压转换芯片AMS1117—3.3。
2.3报警电路设计
本设计使用有源蜂鸣器实现报警效果。
2.4按键电路设计
对单片机系统而言,实现按键功能主要就是将单片机的某个I/O端口与高电平或低电平连接在一起,如在下面的电路中,使用按键的一端接单片机的I/O口,而按键的另一端接GND即电源的负极,在系统中电源的负极即相当于低电平,所以在按下按键后单片机的相应I/O端口的电平即会被拉到低电平,只需要在后面的程序编写中读取该I/O端口的电平状态,从而判断按键当前的状态到底是按下还是抬起。
3.软件部分设计
3.1系统总体软件设计
对发射板来说,总体的软件设计主要包括了温度的采集、数据包的处理以及无线发送这几个部分。
而对接收板的软件来说,承担了显示、报警处理等职责,因此总体软件设计要稍微复杂一点。
3.2系统各部分模块软件设计
3.2.1温度传感器软件设计
主机(单片机)控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,当DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。ROM指令与硬件相关,表示单片机对一个或者多个DS18B20元件进行寻址,或者读取其中某个DS18B20器件的地址,而RAM指令用于单片机对DS18B20内部随机存储器RAM的操作。
3.2.2 nRF905无线数传模块软件设计
3.2.3液晶显示软件设计
1602液晶显示器是一款基于字符操作的液晶显示器,所以它的操作对象是字符。在程序开始写入液晶显示器的时候,先读取一个字符,然后写入显示坐标,将液晶显示器的光标转移到字符串开始写入的位置,接着判断字符是否为空,如果为空表明字符串已经写完,可以直接退出,否则就继续判断液晶显示器的等待忙状态,接着写入字符,然后再重复以上的步骤,直到字符串写完为止。