版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 传感器技术课程设计 分数: 题目: 温度传感器 完成人: 时间: 二一一年六月 目录一 封面2 内容1. 技术指标.32. 设计方案及其比较.3 2.1 方案一.3 2.2 方案二.3 2.3 方案比较.33. 实现方案.4 3.1 组成.4 3.2 关于ds18b20的详细介绍.4 3.3 工作原理图.7 3.4 电路程序.84. 调试过程及结论.18 5. 心得体会.18 6. 参考文献.191.技术指标 独特的单线接口方式,ds18b20在与微处理器连接时仅需要一条口线即可实现微处理器与ds18b20的双向通讯;测温范围为-55-+125,测量分辨率为0.0625;工作电源: 35v;
2、适配各种单片机或系统机;在使用中不需要任何外围元件;内含寄生电源。2.设计方案及其比较 2.1 方案一 采用热敏电阻,热敏电阻精度,重复性,可靠性较差,对于检测1摄氏度的信号是不适用的,也不能满足测量范围。在温度测量系统中,也采用单片温度传感器,比如ads90,lm35等。但这些芯片输出的都是模拟信号,必须经过a/d转换后才能送给计算机,这样就使测温系统的硬件结构较复杂。另外,这种测温系统难以实现多点测温,也要用到复杂的算法,一定程度导航也增加了软件实现的难度。 2.2 方案二 采用单总线数字温度传感器ds18b20温度测量温度,直接输出数据信号。便于单片机处理及控制,节省硬件电路。而且该芯片
3、的物理化学性很稳定,此元件线形性能好,在0-100摄氏度时,最大线形偏差小于1摄氏度。ds18b20最大特点之一采用了单总线的数据传输,由数字温度计ds18b20和微控制器at89c51构成的温度装置,它直接输出温度的数字信号到微控制器。每只ds18b20具有一个独有的不可修改的64位序列号,根据序列号可访问不同的器件。这样一条总线上可挂接多个ds18b20传感器,实现多点温度测量,轻松的组建传感网络。 2.3 方案比较 综上所述,选择方案二3. 实现方案 3.1 组成 采用at89s52单片机作为控制核心对温度传感器ds18b20控制,按照系统设计的要求,系统由3个模块组成:主控制器,测温电
4、路和显示电路。 3.2 关于ds18b20的详细介绍 1 论述 ds18b20是dallas公司生产的一线式数字温度传感器,具有3引脚to92小体积封装形式;温度测量范围为55125,可编程为9位12位a/d转换精度,测温分辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个ds18b20可以并联到3根或2根线上,cpu只需一根端口线就能与诸多ds18b20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。以上特点使ds18b20非常适用于远距离多点温度检测系统。 2 ds18b20的内部结构 ds18b20内部结
5、构如图1,主要由4部分组成:64位rom、温度传感器、非挥发的温度报警触发器th和tl、配置寄存器。ds18b20的管脚排列如图2所示,dq为数字信号输入输出端;gnd为电源地;vdd为外接供电电源输入端。rom中的64位序列号是出厂前被光刻好的,它可以看作是该ds18b20的地址序列码,每个ds18b20的64位序列号均不相同。64位rom的排的循环冗余校验码(crc=x8x5x41)。rom的作用是使每一个ds18b20都各不相同,这样就可以实现一根总线上挂接多个ds18b20的目的。3 ds18b20工作原理控制ds18b20指令:33h-读rom 55h-匹配rom f0h-搜索rom
6、 cch-跳过rom ech-告警搜索命令44h-温度转换 beh-读暂存器 4eh-写暂存器 48h-复制暂存器 b8h-重调e2prom b4h-读供电方式4 ds18b20工作流程(1) 初始化 数据线置高电平1;延时;数据线拉到低电平0;延时750us; 数据线拉到高电平1;延时等待;将数据线再次拉到高电平后结束。(2)写数据数据线置低电平0;延时15us;发送数据;延时45us; 数据线拉到高电平1;重复上述步骤,最后将数据线拉到1。(3)读数据数据线置高电平1;延时;将数据线拉低到0;延时; 数据线拉到高电平1,延时;读数据线的状态并处理,延时,重复-。 图1 写时序 读时序 3.
7、3 工作原理图 3.4 电路程序#include #include #define uchar unsigned char#define uint unsigned intsbit led0=p10;sbit led1=p11;sbit led2=p12;sbit led3=p13;sbit dq = p22; /数据口define interfacesbit dula = p26; /数码管段选sbit wela = p27; /数码管位选sbit beep=p23;uint warn_11=340;uint warn_12=300;uint temp; /温度值 variable of t
8、emperature/不带小数点unsigned char code table = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/带小数点unsigned char code table1 = 0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef;/*精确延时函数*/void delay(unsigned char i) while(-i); /*此延时函数针对的是12mhz的晶振delay(0):延时518us 误差:518-2
9、*256=6delay(1):延时7us (原帖写5us是错的)delay(10):延时25us 误差:25-20=5delay(20):延时45us 误差:45-40=5delay(100):延时205us 误差:205-200=5delay(200):延时405us 误差:405-400=5*/*ds18b20*/void init_ds18b20(void) /ds18b20初始化send reset and initialization commanddq = 1; /dq复位,不要也可行。delay(1); /稍做延时dq = 0; /单片机拉低总线delay(250); /精确延时
10、,维持至少480usdq = 1; /释放总线,即拉高了总线delay(100); /此处延时有足够,确保能让ds18b20发出存在脉冲。uchar read_one_byte() /读取一个字节的数据read a byte date /读数据时,数据以字节的最低有效位先从总线移出uchar i = 0;uchar dat = 0;for(i=8;i0;i-) dq = 0; /将总线拉低,要在1us之后释放总线 /单片机要在此下降沿后的15us内读数据才会有效。 _nop_(); /至少维持了1us,表示读时序开始 dat = 1; /让从总线上读到的位数据,依次从高位移动到低位。 dq =
11、 1; /释放总线,此后ds18b20会控制总线,把数据传输到总线上 delay(1); /延时7us,此处参照推荐的读时序图,尽量把控制器采样时间放到读时序后的15us内的最后部分 if(dq=1) /控制器进行采样 dat |= 0x80; /若总线为1,即dq为1,那就把dat的最高位置1;若为0,则不进行处理,保持为0 delay(10); /此延时不能少,确保读时序的长度60us。return (dat);void write_one_byte(uchar dat)uchar i = 0;for(i=8;i0;i-) dq = 0; /拉低总线 _nop_(); /至少维持了1us,
12、表示写时序(包括写0时序或写1时序)开始 dq = dat&0x01; /从字节的最低位开始传输 /指令dat的最低位赋予给总线,必须在拉低总线后的15us内, /因为15us后ds18b20会对总线采样。 delay(10); /必须让写时序持续至少60us dq = 1; /写完后,必须释放总线, dat = 1; delay(1);uint get_tmp() /获取温度get the temperaturefloat tt;uchar a,b;init_ds18b20(); /初始化write_one_byte(0xcc); /忽略rom指令write_one_byte(0x44);
13、/温度转换指令init_ds18b20(); /初始化write_one_byte(0xcc); /忽略rom指令write_one_byte(0xbe); /读暂存器指令a = read_one_byte(); /读取到的第一个字节为温度lsbb = read_one_byte(); /读取到的第一个字节为温度msbtemp = b; /先把高八位有效数据赋于temptemp warn_12)&(t=warn_11)warn(40,0x01);void main()while(1) display(get_tmp(); 4. 调试过程及结论 首先确定所写程序与单片机各个模块相吻合,因为所用的
14、单片机不同i/o口不同,显示元件不同,程序也不同,每块程序要根据ds18b20的工作要求而实现相应的功能,比如程序初始化模块,读模块,写模块,都要仔细考虑,仔细调试,通过系统的分析和总结,得出温室大气温度信号的采集传感器件所需的测量程小,精确度不高,抗干扰性较强,经济性较好的结论.并以此为依据,选用ds18b20数字温度传感器为温度采集器件,进行了温度采集系统的硬件和软件设计,实现了采集系统分布式采集温度信号的功能.同时,通过串行总线完成了采集系统与上位计算机的连接,实现了采集系统的网络化监控功能。5. 心得体会 课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力
15、的重要环节,是对学生实际工作能力的具体训练和考察过程。课程设计是我们专业课程知识综合应用的实践训练,是我们迈向社会,从事职业工作前一个必不少的过程。”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义。我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。通过这次课程设计,我在多方面都有所提高。 回顾起此次课程设计,我感慨颇多,从选题到定稿,从理论到实践,在整整两星期的时间里,可以说是苦多余甜,但是学到很多东西。这次学习不仅巩固了以前所学过的知识,而且学到了很多在书本上没有的知识。通过这次课程设计,我得到了一些工程项目知识,懂得了理论与实际想结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正提高自己的实际动手能力和独立的思考的能力。在设计的过程中,经常会遇到问题,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 环保和消防就业前景
- 某预制构件厂模具保养管控办法
- 近期医患关系事件盘点
- 医患关系目标人群选择
- 中餐研发职业发展方向
- 数字消费项目薪酬管理方案
- 医学人类学PBL术语文化语境
- XX中学2025-2026学年春季学期校园高等教育发展方案
- 2026年劳动防护用品试题及答案
- 2026年江西省公务员行测判断推理题库及答案
- 产房安全核查表常用指南
- (高清版)DB11∕T 1831-2021 装配式建筑评价标准
- 小学语文部编版二年级下册第三单元 作业设计
- 2024年湖南省高考历史试卷真题(含答案解析)
- 13J104蒸压加气混凝土砌块板材构造
- DZ∕T 0248-2014 岩石地球化学测量技术规程(正式版)
- 保险销售管理系统
- GB/T 17846-2024小艇电动舱底泵
- JC T 836-1998 玻璃纤维捻线机
- 概率论与数理统计期末考试卷附答案
- 穴位注射水针专题宣讲
评论
0/150
提交评论