温度传感器laoshi.docx
- 文档编号:25213297
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:35
- 大小:731.53KB
温度传感器laoshi.docx
《温度传感器laoshi.docx》由会员分享,可在线阅读,更多相关《温度传感器laoshi.docx(35页珍藏版)》请在冰豆网上搜索。
温度传感器laoshi
第一部分HNIST-1型单片机实验系统概述
HNIST-1型单片机实验系统是一款针对单片机学习者进行单片机实验与开发的单片机学习开发系统,该系统采用模块化设计方法,整个系统由一个主板(最小系统板89S52System)连接一个或多个实验板组成,主板可以完成单片机基本实验项目,用户可以根据需要进行实验板的扩展选择。
并且该系统扩展功能较为丰富,可以满足不同层次的学生在不同学习时期的各种要求,主要可供学生进行单片机原理与接口的课程实验、单片机类课程设计,毕业设计,以及电子竞赛单片机技术的培训。
本系统相对其他单片机实验系统而言具有以下优点:
●支持USB口对程序进行在线下载,简单方便。
●可直接通过USB线连接电脑的USB口获取+5v电源,板上亦提供了一个专用的电源接口,以备在脱机环境下运行本实验板。
●本系统扩展资源丰富,能满足不同层次学习使用,另外单片机的I/O口都用排针引出,便于外扩资源。
下面部分从总体上介绍HNIST-1型单片机实验系统硬件信息,让使用者对其结构、电路原理以及系统的功能有一个大概的了解,这些对于后面的具体实验与使用是必须的,请使用者在第一次使用本系统前仔细阅读本部分内容。
1.1系统的电路布局
HNIST-1型单片机实验系统的模块布局如下图1.1所示。
图1.1HNIST-1型单片机实验系统模块布局图
从上图可以看出,整个系统可以分为多个模块,各个模块之间相对独立,使用者通过此图可以较快找到相应模块对应位置。
1.2单片机最小系统(89S52System)电路原理图
图1.289S52System电路原理图
1.3系统功能特点
●流水灯:
对流水灯的操作可能是初学者最先体会到成就感的一个项目,该实验板的流水灯由四个发光二极管组成,流水灯的旁边设有四个针头的排针,这样可以用连接线接入单片机的任意I/O口来控制流水灯。
我们可以用这几个发光二极管实现跑马灯、交通灯等功能。
●数码管:
数码管是该实验板上最能验证程序功能的输出器件。
数码管旁边有四个跳线帽,分别用来控制四个数码管工作状态。
当然这种控制只是在硬件上的控制,在软件上的控制则可以通过对74SL573锁存器的编程实现。
数码管可用于静态显示,和动态扫描。
●4x4矩阵键盘:
这是该实验板上的唯一输入设备,我们可以通过键盘来控制流水灯的亮灭,也可用它来控制数码管上数字或字母的显示。
键盘和数码管结合可以通过编写程序来实现计算器功能,日历等。
●EEPROM:
AT24C02,在单片机应用中,作为EEPROM储存器用,与单片机通过I2C通信。
优点是掉电后仍可以保存数据。
比如单片机运行时,手动设置了一些参数,可以用它保存起来。
即可对其进行读操作又可进行写操作,并且在断电后可保存数据。
●实时时钟芯片:
本实验板含有一片DS1302芯片,内含有一个实时时钟/日历和31字节静态RAM通过简单的串行接口与单片机进行通信实时时钟/日历电路提供秒、分、时、日、日期、月、年的信息每月的天数和闰年的天数可自动调整时钟操作可通过AM/PM指示决定采用24或12小时格式DS1302与单片机之间能简单地采用同步串行的方式进行通信。
另外该芯片含备份电源接口,掉电后,时钟仍然能够正确的运行。
1.4实验项目安排
HNIST-1型单片机实验系统可以进行各种单片机实验以及创新设计项目,具体包括:
●单片机I/O控制实验,如跑马灯实验、交通灯实验等;
●定时器相关实验项目,如在跑马灯或者交通灯实验项目中,发光二极管之间的实践间隔可以通过定时器定时实现;
●数码管显示实验;
●LED点阵实验;
●6264外部扩展RAM实验;
●串转并的I/O口实验;
●RS-232串口通信实验;
●基于18B20的单总线实验;
●直流电机实验;
●交流电机实验;
●LCD128×64点阵液晶显示实验;
●串行A/D转换实验;
●PS2接口键盘实验;
●I2C总线串行EEPROM实验;
●基于DS1302实时时钟实验。
1.5USB接口下载程序说明
●首先安装USB下载驱动程序
安装之前不要将开发板右上方的USB下载接口与计算机相连,安装在默认目录下。
将开发板右上方的USB下载接口与计算机相连,提示找到新硬件,选择自动安装即文件夹usbasp内的USBasp驱动下。
●KEILC51环境下编程并生成HEX文件。
具体操作见KEILC51入门部分。
●下载程序。
见KEILC51入门。
第二部分Vision2集成开发环境使用入门
2.1KeilC51简介
KeilC51是德国KeilSoftware公司出品的51系列兼容单片机开发工具,为众多单片机应用开发的优秀软件之一。
它集编辑、编译、仿真与调试于一体,支持C语言与汇编语言开发。
与汇编相比,C语言在功能、结构性、可读性、可维护性上有明显的优势。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
KeilC51生成的目标代码效率非常之高,多数语言的汇编代码很紧凑,容易理解,在开发大型软件是时更能体现高级语言的优势。
用过汇编语言后再使用C来开发,体会更加深刻。
C51工具包目前有两种集成开发环境其中uVision与Ishell分别是C51forWindows和forDos的集成环境IDE(IntegrationDesignEnvironment),它将项目管理,源代码编辑和程序调试等组合在一个功能强大的环境中(如下图2.1所示)。
开发人员可用uVision或Ishell集成开发环境所自带的编辑器或其他编辑器编辑C语言或汇编语言源文件,然后分别由C51急A51编译器编译生成可重定位的目标文件(.obj)。
目标文件可由LIB51创建生成库文件,也可以与库文件一起经BL51连接定位生成绝对目标文件(.ABS)。
.ABS文件由OH51转换生成标准的Hex文件,以供调试器dScope51或tScope51进行源代码级调试,也可由仿真器使用直接对目标板进行调试,或直接写入程序存储器如EPROM进行验证。
目前,集成开发环境使用较多的版本为uVision2或uVision3,而且,此集成开发环境支持8051的所有KEIL工具,因此,下面内容主要以uVision2进行介绍。
图2.1uVision/Ishell集成开发环境
2.2uVision2使用入门
●uVision2的启动
根据一般应用软件安装方法进行本软件安装,安装完成后就是软件的应用了。
首先双击桌面uVision2图标,运行uVision2,几秒钟后出现进入KeilC51uVision2启动界面,如下图2.2所示。
图2.2uVision2启动界面
●基于uVision2的单片机应用程序开发流程
学习程序设计语言以及学习某种开发平台,最好的方法是直接操作实践。
下面通过一个简单的编程、调试,引导大家学习KeilC51软件的集成开发环境uVision2基本使用方法和调试技巧。
准备工作:
在进行下面工作之前,建议为一个项目建立一个文件夹,把和本工程相关的源程序,头文件,以及工程文件等都保存到此文件夹。
1)打开KEIL软件,建立工程:
单击Project菜单,在弹出的下拉菜单中选中NewProject选项,如下图2.3所示。
图2.3建立工程菜单
2)命名工程,进行保存:
选择你要保存的路径,输入工程文件的名字,如保存到C51目录里,工程文件的名字为C51如下图2.4所示,然后点击保存.
图2.4保存所建立工程文件
3)器件选择:
这时会弹出一个对话框,要求你选择单片机的型号,你可以根据所选用的单片机来选择,keilC51几乎支持所有的51核的单片机,这里以使用较多的Atmel公司的AT89S52来说明,如下图所示,先选择Atmel并双击展开。
图2.5器件选择—选择公司
然后选择AT89S52,右边栏是对这个单片机的基本描述,然后点击“确定”。
图2.6器件选择—选择芯片
4)完成上一步骤后,出现提示是否加载标准8051Startup文件,单击“是(Y)”,屏幕如下图2.7所示。
图2.7是否加载8051STARTUP文件
到现在为止,我们还没有编写一句程序,下面开始编写我们的第一个程序。
5)源程序编辑:
在下图2.8中,单击“File”菜单,再在下拉菜单中单击”New”选项,或直接单击快捷按钮
图2.8 新建源程序
新建文件后屏幕如下图2.9所示。
图2.9源程序编辑界面
此时光标在编辑窗口里闪烁,这时可以键入用户的应用程序了,但笔者建议首先保存该空白的文件,单击菜单上的“File”,在下拉菜单中选中”SaveAs”选项单击,或单击保存快捷按钮
,屏幕如下图所示,在”文件名”栏右侧的编辑框中,键入欲使用的文件名,同时,必须键入正确的扩展名。
注意,如果用C语言编写程序,则扩展名为(.c);如果用汇编语言编写程序,则扩展名必须为(.asm)。
此处我们保存为“Test1.c”,然后,单击”保存”按钮。
图2.10源程序保存
6)把源程序添加到工程中:
回到编辑界面后,单击“Target1”前面的“+”号,然后在“SourceGroup1”上单击右键,弹出如下菜单:
图2.11将源程序添加到工程
然后单击“AddFiletoGroup‘SourceGroup1’”屏幕如下图2.12所示。
图2.12选择所要添加到工程中的源程序
选中刚才保存的“Test1.c”文件,单击“Add”后关闭对话框,屏幕如下图2.13所示。
此时,我们可以注意到“SourceGroup1”文件夹中多了一个子项“Text1.c”。
子项的多少与添加到工程中的源程序的多少相同。
图2.13添加了源程序的工程管理器窗口
7)源程序编辑器环境配置:
由于软件默认的字体较小,编程工程中麻烦,所以我们可以调节一下源程序的字体:
单击“View”,在下拉菜单的最后一列选择“Options”,在弹出的对话框内选择第二个按钮“Color&Fonts”,在“Select”选项栏中选择“EditorCfiles”,最后在“Size”中选择字体大小,单击“确定”即可。
图2.14源程序编辑器环境配置示意图
8)现在,请输入如下的C语言源程序(该源程序仅为示范,无法在该单片机上运行):
#include
#include
voidmain(void) //主函数
{
SCON=0x52;
TMOD=0x20;
TH1=0xf3;
TR1=1; //此行及以上3行为PRINTF函数所必须
printf(“HelloIamKEIL.\n”); //打印程序执行的信息
printf(“Iwillbeyourfriend.\n”);
while
(1);
}
在输入上述程序时,大家已经看到了事先保存待编辑的文件的好处了吧,即Keilc51会自动识别关键字,并以不同的颜色提示用户加以注意,这样会使用户少犯错误,有利于提高编程效率。
程序输入完毕后,如下图2.15所示。
图2.15源程序编辑实例
9)工程构建:
在上图中,单击“Project”菜单,再在下拉菜单中单击“BuiltTarget”选项(或者使用快捷键F7,或直接单击图标
或图标
),编译成功后,再单击“Project”菜单,在下拉菜单中单击“Start/StopDebugSession”(或者使用快捷键Ctrl+F5,或直接单击图标
),屏幕如下图2.16所示。
图2.16工程实例构建示意图
10)调试程序:
在上图中,单击“Debug”菜单,在下拉菜单中单击“Go”选项,(或者使用快捷键F5,或直接单击图标
),然后再单击“”Debug”菜单,在下拉菜单中单击“StopRunning”选项(或者使用快捷键Esc);再单击“View”菜单,再在下拉菜单中单击“SerialWindows#1”选项,就可以看到程序运行后的结果,其结果如下图2.17所示。
图2.17工程调试实例
要停止运行时,可单击“Debug”,在弹出的下拉菜单中选中“StopRunning”选项或直接单击图标
即可。
至此,我们在KeilC51上做了一个完整工程的全过程。
但这只是纯软件的开发过程,如何使用程序下载器看一看程序运行的结果呢?
11)目标文件属性设置:
单击“Project”菜单,再在下拉菜单中单击“
”在下图中,单击“Output”中单击“CreateHEXFile”选项,使程序编译后产生HEX代码,单击“确定”,再将程序编译一次,即可生成“.Hex”文件,供下载器软件使用。
图2.18目标文件属性设置
12)下载程序过程。
在文件夹usbasp内的文件名为配套软件的文件夹中,打开图标progisp,弹出对话框如下图2.19所示。
图2.19下载程序过程示意图
然后点击调入,再在弹出的对话框中选中之前所生成的hex文件打开,再点击自动,即下载程序完毕。
DS18B20温度传感器
1、实验目的
●熟悉数字温度传感器DS18B20的工作原理和使用方法;
●掌握单总线的读/写控制方法。
2、实验仪器
●硬件:
PC机、HNIST-1型单片机实验系统
●软件:
uVision2单片机集成开发环境
3、实验内容
●编写程序,通过单片机的P3.5口实现对DS18B20的控制,实现数字温度的采集与显示;
●记录采集的温度数据,分析实验结果的正确与否。
4、实验原理
本实验采用AT89S52单片机P3.5口控制温度传感器DS18B20的温度测量,以四位数码感形式输出测量温度,原理图如下图3.17所示:
图3.17DS18B20与单片机接口原理图
●DS18B20特性介绍
DS18B20是DALLAS公司生产的单总线数字温度传感器,它的体积小、适用电压更宽、更经济。
DS18B20是世界上第一片支持”单总线”接口的温度传感器。
单总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。
它的测量温度范围为-55~+125℃,在-10~+85℃范围内,精度为±0、5℃。
现场温度直接以”一线总线”的数字方式传输大大提高了系统的抗干扰性。
适合于恶劣环境的现场温度测量,如:
环境控制、设备或过程控制、测温类消费电子产品等。
与前一代产品不同,新的产品支持3~5、5V的电压范围,使系统设计更灵活、方便。
而且新一代产品更便宜,体积更小。
DS18B20可以程序设定9~12位的分辨率,精度为±0、5℃。
可以选择更小的封装方式,更宽的电压适用范围分辨率设定及用户设定的报警温度存储在E2PROM中,掉电后依然保存。
DS18B20的性能是新一代产品中最好的,性能价格比也非常出色,继”单总线”的早期产品后,DS18B20开辟了温度传感器技术的新概念。
DS18B20和DS18B22使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。
◆DS18B20的内部结构
DS18B20内部结构主要由4部分组成:
64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL,配置寄存器。
DS18B20的管脚排列如下图3.18所示:
图3.18DS18B20引脚结构与封装图
DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:
用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。
表212位转化后得到的12位数据
表2是12位转化后得到的12位数据,存储在18B20的2个8bit的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0℃,则这5位为0,只要将测到的数值乘于010625即可得到实际温度;如果温度小于0℃,则这5位为1,测到的数值需要取反加1再乘于010625即可得到实际温度。
例如:
+125℃的数字输出为07D0H,+25、0625℃的数字输出为0191H,-25、0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。
表3 温度与数字输出的对应关系
◆DS18B20温度传感器的存储器
DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM,后者存放高温和低温触发器TH,TL和结构寄存器。
暂存存储器包含了8个连续字节,前2个字节是测得的温度信息,第1个字节的内容是温度的低8位,第2个字节是温度的高8位。
第3个和第4个字节是TH,TL的易失性拷贝,第5个字节是结构寄存器的易失性拷贝,这3个字节的内容在每一次上电复位时被刷新。
第6,7,8个字节用于内部计算。
第9个字节是冗余检验字节。
根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过3个步骤:
每一次读写之前都要对DS18B20进行复位;复位成功后发送一条ROM指令;最后发送RAM指令。
这样才能对DS18B20进行预定的操作。
复位要求主CPU将数据线下拉500μs,然后释放,DS18B20收到信号后等待16~60μs左右,后发出60~240μs低脉冲,主CPU收到此信号表示复位成功。
◆DS18B20使用中的注意事项
DS18B20虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:
(1)DS18B20从测温结束到将温度值转换成数字量需要一定的转换时间,这是必须保证的,不然会出现转换错误的现象,使温度输出总是显示85。
(2)在实际使用中发现,应使电源电压保持在5V左右。
若电源电压过低,会使所测得的温度与实际温度出现偏高现象,经过试验发现,一般在5V左右。
(3)较小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格保证读写时序,否则将无法读取测温结果。
(4)在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等待DS18B20的返回信号,一旦某个DS18B20接触不好或断线,当程序读该
DS18B20时,将没有返回信号,程序进入死循环。
这一点在进行DS18B20硬件连接和软件设计时也要给予一定的重视。
●对DS18B20的一般控制流程
整个对DS18B20的操作都是以”复位”、”等待应答”、”读一字节”、”写一字节”这几个操作为基础的,所以他们是使DS18B20能否正常测温的关键。
对不同的操作只要发出相应的命令控制字即可,详情请参看有关技术文档。
典型的测温流程如下图所示:
图3.19DS18B20控制流程
●实验过程
◆连线:
温度传感器输入输出口OUT接P3.5口;
◆打开电源,观察数码管显示的温度;
◆改变温度传感器DS18B20附近温度,观察数码管上温度的变化。
5、流程图与程序设计
●流程图
◆主函数部分:
图3.20主函数流程图
◆温度测量部分:
图3.21温度测量流程图
◆数据计算处理部分
整数部分
图3.22数据处理-整数部分
小数部分
图3.23数据处理-小数部分
●源程序
/*********************************************************************************
****************程序名:
main.c*********************
****************功能:
温度传感器测量温度********************
**************************************
****************单位:
湖南理工物电系创新基地********************
****************Allrightsreserved*******************
******************************************************开始时间:
2009.08.07*******
****************结束时间:
2009.08.10*******************
****************版本信息:
********************
****************备注:
DS18B20的输入输出口接单片机的P3^5口****************************************************************************************************/
#include
#defineuintunsignedint
#defineucharunsignedchar
#definenegative-100
uchartplsb;//温度值低位字节
uchartpmsb;//温度值高位字节
/***************************数字0-9及字母A,b,C,d,E,F,负号*******************/
ucharcodetable1[]=
{0xfc,0x60,0xda,0xf2,
0x66,0xb6,0xbe,0xe0,
0xfe,0xf6,0xee,0x3e,
0x9c,0x7a,0x9e,0x8e,0x02};
/***********************************带小数点的数字0-9*************************/
ucharcodetable2[]=
{0xfd,0x61,0xdb,0xf3,
0x67,0xb7,0xbf,0xe1,
0xff,0xf7};
/**************************************端口定义******************************/
sbitDQ=P3^5;
sbitP14=P1^4;
/*************************************延时t秒********************************/
voiddelay(uintt)
{
uinti;
while(t--)
for(i=0;i<125;i++);
}
/******************************产生复位脉冲,初始化DS18B20*******************/
voidTxReset(void)
{
uinti;
DQ=0;
/*拉低约900us*/
i=100;
while(i>0)i--;
DQ=1;//产生上升沿
i=4;
while(i>0)i--;
}
/***************************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 温度传感器 laoshi