温度传感器设计思路

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

DS18B20的温度系统课程设计

来源: 嵌入式技术网应用论文

摘要:本文设计一个具有基于DS1820数字温度传感器的温度检测及显示的系统。

关键词:DS1820数字温度传感器温度检测

• 实验目的

•了解 DS1820数字温度传感器特性

•掌握单片机基本功能的运用、简单接口电路如键盘、 LED显示电路或LCD显示电路设计及其相应驱动软件的编制软、硬件系统的调试

• 实验任务

设计一个具有基于DS1820数字温度传感器的温度检测及显示的系统。要求系统具有以下功能:

• 两路温度检测;

• 具有显示功能;

• 具有用户输入功能;

• 可通过输入补偿温度设定校准;

• 实验原理

原理简述:数字温度传感器DS1820把温度信息转换为数字格式;通过“1-线协议”,单片机获取指定传感器的数字温度信息,并显示到显示设备上。通过键盘,单片机可根据程序指令实现更灵活的功能,如单点检测、轮转检测、越限检测等。基于DS1820数字温度传感器的温度检测及显示的系统原理图如图1

图 1 基于DS1820的温度检测系统框图 • 硬件设计 电路设计--单片机基本系统电路:

图 2 单片机基本系统电路原理图

电路说明:

综合考虑系统使用到的单片机内部存储资源、系统处理信号的种类、处理数据的速度、系统的 I/O口开销,以及系统的可扩展性能,本系统选用了ATMEL公司的8位低功耗,高性能CMOS单片机,芯片内集成有通用8位中央处理器(兼容标准MCS -51指令系统及80C51引脚结构)和4K/8K Bytes ISP Flash存储单元(可实现在系统编程)。复位电路采用上电复位加按键复位的方式。采用无源晶体提供正弦振荡信号为系统提供时钟,其硬件原理图如图 2所示。

温度检测电路:

由于采用数字传感器,电路不用考虑A/D转换,只需设计指定某个I/O口作为与数字传感器相连,电路原理图如图示。“1-线协议”

图 3 温度检测电路原理图

电路说明:

DS18B20的数字温度输出通过 “ 一线 ” 总线( 1-Wire是被MAXIM公司收购的DALLAS公司新拥有的一种独特的数字信号总线协议,它将独特的 电源线和信号线复合在一起,仅使用一条口线;每个芯片唯一编码,支持联网寻址、零功耗等待等,是所需硬件连线最少的一种总线)这种独特的方式,使多个 DS18B20方便地组建成传感器网络,为整个测量系统的建立和组合提供了更大可能性。

DS18B20可以设置成两种供电方式,即数据总线供电方式和外部供电方式。采取数据总线供电方式可以节省一根导线,但由此带来的缺点是完成温度测量的时间较长;而采取外部供电方式则多用一根导线,但测量速度较快。本设计采用一总线2路温度测量使用外部供电,如图3所示。

键盘控制电路:

图 4 键盘控制电路原理图

电路说明:

为了节约系统硬件开销,设计方案中键盘模块没有采用ZLG7289或者ZLG7290等专用的键盘控制芯片。使用普通的行列扫描键盘的优点是没有更多的外围电路,缺点是如果软件调试不当可能引起按键连击,为系统的运行带来不稳定。系统使用键盘电路为四行四列16个按键的行列扫描式键盘,其电路原理图如图4所示。 从图中的硬件连接看来,键盘接口并没有增加任何其他的附加驱动电路,而是直接和单片机的

引脚相连。操作时直接用程序设置单片机相应的端口驱动按键。

显示电路:

图 5 LED显示电路原理图

电路说明:

采用四位共阴极动态LED显示单元。LED动态显示的基本做法在于分时轮流选通数码管的公共端,使得各数码管轮流导通,在选通相应LED后,即在显示字段上得到显示的字型码。这种方式不但能够提高数码管的发光效率,而且由于各个数码管的字段线是并联使用的,从而大大简化了硬件线路。

动态扫描显示接口是单片机系统中应用最为广泛的一种显示方式。其接口电路是把所有显示器的 8个笔画段a~dp同名端并联在一起,而每一个显示器的公共极COM是各自独立地受I/O控制的。MPU向字段输出口送出字型码时,所有显示器由于同名端并联连接收到相同的字型码,但究竟是哪个显示器亮,则取决于COM端,而这一端是通过MPU对I/O编程控制的,所以就可以自行决定何时那一位显示器被点亮了。这儿所说的动态就是在基于COM端选择,可编程的基础上,采用分时的方法轮流控制各个显示器的COM端,使各个显示器轮流点亮。

在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的 (约1ms),由于人眼的视觉暂留现象及发光二极管的速度足够快,给人的视觉误差就是一组稳定的显示数据,如果做的足够好是不会有闪烁感。 与液晶显示器相比,动态 LED显示单元具有软件编写简单的优点。但是其功耗比LCD显示大,为了达到最佳的显示效果,硬件连接必须考虑段和位驱动的电路的设计;其次LED在显示刷新率,显示稳定性方面也不及LCD显示。

在如图 5的本设计方案中,使用的是四位共阴极LED显示器。典型的硬件设计是使用74HC245提供段a~dp(图中为PB1~PB8)的驱动,74LS139提供位COM1~COM4(图中为LED1~LED4)的驱动。

使用双向总线驱动器 74HC245作为段驱动,由于HC电路输出电阻较大,外部可直接驱动而不需要限

流电阻。位驱动使用2~4译码器,具有四个OC门输出,输出低电平有效,直接用来驱动四位公共阴极COM1~COM4。

返回顶部• 软件设计

1).软件设计工具及调试环境

系统软件采用 C语言开发,与汇编相比,使用C语言开发单片机软件系统,具有程序的可读性、易维护性和可移植性好,对硬件的控制能力强等特点。现代单片机集成大容量的程序存储器一定程度上解决了部分C编译器机器语言生成代码效率低的缺点,解决代码效率问题最重要的还是得靠编译器性能得不断提高。

KeilC51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统。 KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,通过查看编译后生成的汇编代码,我们就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。C51中使用C语言编程与汇编语言编程相比,具有以下的优势。汇编语言虽然有执行效率高的优点,但其可移植性和可读性差,以及本身就是一种编程效率低下的低级语言,这些都使它的编程和维护极不方便,从而导致整个系统的可靠性也较差。而使用C语言进行单片机应用系统的开发,有着汇编语言不可比拟的优势。

当前较好的C语言编译系统的编译效率已经基本达到中高级程序开发人员的水平,尤其是用于开发较为复杂的单片机应用系统时更具优势。

2).主程序控制流程

在软件的设计过程中,为了进一步提高软件的透明度,作者将系统的一些功能菜单写成子程序的形式供主程序(操作系统)调用。此程序中主要包括系统开始状态等待,系统工作模式选择,多通道工作模式操作,单通道工作模式操作,通过键盘输入 -9.99~+9.99之间的误差数据,通过键盘查询和重置各通道的误差量。

本文中详细给出了操作子程序中部分功能模块的流程图,这样有利于对系统工作的了解。

相关文档
最新文档