ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:546.36KB ,
资源ID:22999105      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22999105.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于89c52的ds18b20的温度测试.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于89c52的ds18b20的温度测试.docx

1、 基于基于 89c52 的的 ds18b20 的温度测试的温度测试 基于 89c52 的 ds18b20 的温度测试 1.课程设计的目的和要求 1.1 设计目的 熟练掌握 51 小系统开发应用;加强单片机的综合运用能力、提高单片机的件编程和调试能力,为以后的学习和开发工作打下强劲基础;掌握 DS18B20 温度传感器模块的工作原理及应用设计;掌握小系统开发设计的流程及设计思路;提高分析问题,解决问题能力,提高实践动手能力。1.2 课程设计题目描述和要求 题目:基于 DS18B20 的温度测试 LED 显示。实现的基本功能:(1)测量基本范围-55125。(2)精度误差小于 0.5。(3)LED

2、 数码直接显示。2.总体方案的设计 2.1 总体设计框图 温度计电路设计总体设计方框图如图 2-1 所示,控制器采用单片机 AT89C51,温度传感器采用 DS18B20,用 LED 数码管以串口传送数据实现温度显示。图 2-1 总体设计方框图 2.2 单片机 AT89C51 STC89C58是一个低功耗,高性能 CMOS 8位单片机,片内含 4k Bytes ISP(In-system programmable)的可反复擦写 1000 次的 Flash 只读程序存储器,器件采用 ATMEL 公司的高密度、非易失性存储技术制造,兼容标准 MCS-51 指令系统及 89C51 引脚结构,芯片内集

3、成了通用 8 位中央处理器和 ISP Flash 存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89C51 具有如下特点:40 个引脚如图 2-2,4k Bytes Flash 片内程序存储器,128 bytes的随机存取数据存储器(RAM),32 个外部双向输入/输出(I/O)口,5 个中断优先级 2 层中断嵌套中断,2 个 16位可编程定时计数器,2 个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89S51 设计和配置了振荡频率可为 0Hz 并可通过软件设置省电模式。空闲模式下,CPU 暂停工作,而 RAM 定时计

4、数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存 RAM 的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有 PDIP、TQFP 和 PLCC 等三种封装形式,以适应不同产品的需求。图 2-2 AT89C51 管脚图 2.3 温度传感器 DS18B20 DS18B20 是美国 DALLAS 半导体公司继 DS1820 之后最新推出的一种改进型智能温度传感器,如图 2-3。与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现912 位的数字值读数方式。可以分别在 93.75 ms和 750 ms内完成 9位和 12 位的数字量,并且从 DS

5、18B20 读出的信息或写入 DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的 DS18B20 供电,而无需额外电源。因而使用 DS18B20 可使系统结构更趋简单,可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面较 DS1820 有了很大的改进,给用户带来了更方便的使用和更令人满意的效果,其引脚功能如图 2-4。2.3.1 DS18B20 简介(1)独特的单线接口方式:DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与 DS18B20 的双向通讯。(2)在使用中不需要任何外围元件。(3)可用数据线供电,电压范围:+

6、3.0+5.5 V。(4)测温范围:-55+125。固有测温分辨率为 0.5。(5)通过编程可实现 912 位的数字读数方式。(6)用户可自设定非易失性的报警上下限值。(7)支持多点组网功能,多个 DS18B20 可以并联在惟一的三线上,实现多点测温。(8)负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。图 2-3 DS18B20 的引脚排列 图 2-4 引脚功能描述 2.3.2 DS18B20 的测温原理 低温度系数晶振的振荡频率受温度的影响很小1,用于产生固定频率的脉冲信号送给减法计数器 1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器 2 的脉

7、冲输入,图中还隐含着计数门,当计数门打开时,DS18B20 就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 所对应的基数分别置入减法计数器 1 和温度寄存器中,减法计数器 1 和温度寄存器被预置在-55 所对应的一个基数值。减法计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器 1 的预置值减到 0 时温度寄存器的值将加 1,减法计数器 1 的预置将重新被装入,减法计数器 1 重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器 2 计数到 0 时,停止温度寄存器值的累加,此

8、时温度寄存器中的数值即为所测温度。图 2 中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是 DS18B20 的测温原理。2.3.3 温度转换计算方法举例 例如当 DS18B20 采集到+125的实际温度后,输出为 07D0H,则:实际温度=07D0H0.0625=20000.0625=125 C。例如当 DS18B20 采集到-55的实际温度后,输出为 FC90H,则应先将 11 位数据位取反加 1 得 370H(符号位不变,也不作为计算),则:实际温度=370H0.0625=8800.0

9、625=55 C DS18B20 工作过程一般遵循以下协议:初始化ROM 操作命令存储器操作命令处理数据 c 2.3.4 DS18B20 温度传感器与单片机的接口电路 DS18B20 可以采用两种方式供电,一种是采用电源供电方式,此时 DS18B20 的一脚接地,2 脚作为信号线,3 脚接电源。另一种是寄生电源供电方式,如图 2-5 所示单片机端口接单线总线,为保证有效的 DS18B20 始终周期内提供足够的电流,可以用一个 MOSFET 管来完成对总线的上拉。当 DS18B20 处于写存储器操作和温度 A/D 转换操作时,总线上必须有强的上拉,上拉开启时间最大为 10us。采用寄生电源供电方

10、式时 VDD端接地。由于单线制只有一根线,因此发送接口必须是三态的。图 3-1 单片机主板电路 3.1.1 单片机的最小系统 单片机最小系统主要由电源、复位、振荡电路以及扩展部分等部分组成。如图 3-2 所示.图 3-2 单片机最小系统 3.1.2 复位电路 图 3-3 复位电路 单片机的置位和复位,都是为了把电路初始化到一个确定的状态,一般来说,单片机复位电路作用是把一个例如状态机初始化到空状态,而在单片机内部,复位的时候单片机是把一些寄存器以及存储设备装入厂商预设的一个值。单片机复位电路原理是在单片机的复位引脚 RST 上外接电阻和电容,实现上电复位。当复位电平持续两个机器周期以上时复位有

11、效。复位电平的持续时间必须大于单片机的两个机器周期。具体数值可以由 RC 电路计算出时间常数。复位电路由按键复位和上电复位两部分组成。(1)上电复位:STC89 系列单片及为高电平复位,通常在复位引脚RST 上连接一个电容到 VCC,再连接一个电阻到 GND,由此形成一个 RC 充放电回路保证单片机在上电时 RST 脚上有足够时间的高电平进行复位,随后回归到低电平进入正常工作状态,这个电阻和电容的典型值为 10K 和 10uF。(2)按键复位:按键复位就是在复位电容上并联一个开关,当开关按下时电容被放电、RST 也被拉到高电平,而且由于电容的充电,会保持一段时间的高电平来使单片机复位。3.1.

12、3 振荡电路 图 3-4 振荡电路 单片机系统里都有晶振,在单片机系统里晶振作用非常大,全程叫晶体振荡器,他结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片接的一切指令的执行都是建立在单片机晶振提供的时钟频率。在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十。高级的精度更高。有些晶振还可以由外加电压在一定范围内调整频率,称为压控振荡器(VCO)。晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。单片机晶振的作用是为系统提供基本的时钟信号。通常一个系统共用一个晶振,便于各部分保持同步。有些通讯系

13、统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。STC89C51使用 11.0592MHz 的晶体振荡器作为振荡源,由于单片机内部带有振荡电路,所以外部只要连接一个晶振和两个电容即可,电容容量一般在 15pF 至 50pF 之间。图 3-4 显示电路 显示器是一个典型的输出设备,而且其应用是极为广泛的,几乎所有的电子产品都要使用显示器,其差别仅在于显示器的结构类型不同而已7。最简单的显示器可以使 LED 发光二极管,给出一个简单的开关量信息,而复杂的较完整的显示器应该是 CRT监视器或者屏幕较大的 LCD 液晶屏。综合课题的实际要求以及考虑单片机的接口资源,采用串行方式显示的

14、LCD 驱动输出设备。由于测试所得的距离需要精确到小数点后 1 位,所以本设计采用 LCD 数码管来表示距离的 cm数值。液晶显示模块具有体积小、功耗低、显示内容丰富、超薄轻巧等优点,在嵌入式应用系统中得到越来越广泛的应用,这讲中向大家介绍的LCD1602 液晶显示模块(其内部控制器为 HD44780 芯片),它可以显示两行,每行 16 个字符,因此可相当于 32 个 LED 数码管,而且比数码管显示的信息还多。采用单+5V 电源供电,外围电路配置简单,价格便宜,具有很高的性价比。4.系统软件的设计 4.1 主程序 主要功能是负责温度的实时显示,读出并处理 DS18B20 的测量的当前温度值,

15、温度测量每 1s进行一次,这样可以在一秒之内测量一次温度,其程序流程如图 4-1 所示。4.2 读程序 主要功能是读出 RAM 中的 9 字节,在读出时需要进行 CRC 校验,校验有错时不进行温度数据的改写。其程序流程图如图 4-2。图 4-1 主程序流程图 图 4-2 读温度流程图 未找到目录项。4.3 温度转换命令子程序 主要是发温度转换开始命令,本程序采用 1s 显示程序延时法等待转换的完成。其程序流程图如图 4-3。图 4-3 温度转换命令流程图 4.4 计算温度子程序 将 RAM中读取进行 BCD 码的转换运算,并进行温度值正负的判定,其程序流程图如图 4-4。45 显示数据刷新子程

16、序 主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为 0 时将符号显示位移入下一位。程序流程图如图图 4-5。图 4-4 计算温度流程图 图 4-5 显示数据刷新流程图 4.6 元器件清单 电阻 4.7k 2个 滑动电阻 1k 1个 电阻 1k 1个 电容 0.1uf 1个 电容 10uf 1个 电容 30PF 2 三极管 9013 1 扬声器 1 晶振 11.0592MHZ 1 芯片 STC89C52 1 温度传感器 DS18B20 1 超声波模块 1 底座 dip40 1 底座 dip20 1 4.7 实物电路 4-6 实物电路 5.总结 经过将近两周的单片机课程设计,我终于完成

17、了数字温度计的设计,虽然没有完全达到设计要求,但从中学到了不少课堂上所学不到的实际知识。我们认为,在这次的课程设计中,在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,我们通过查找大量资料,请教老师,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在实验课上,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。之所以使用单片机作为我们的执行核心,不仅是因为老师说单片机现在是社会上应用最广泛的工具,也因为想通过使用单片机锻炼自己的 c 语言编程能力,养成良好的 c 语言编程风格。

18、不管怎样,这些 都是一种锻炼,一种知识的积累,能力的提高。完全可以把这个当作基础东西,只有掌握了这些最基础的,才可以更进一步,取得更好的成绩。很少有人会一步登天吧。永不言弃才是最重要的。而且,这对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。与队友的合作更是一件快乐的事情,只有彼此都付出,彼此都努力维护才能将作品做的更加完美。而团队合作也是当今社会最提倡的。在为期三个星期的课程设计中,老师对我们悉心的指导认真的解说详细的分析。衷心地感谢老师对我们的教

19、导!参考文献 1孙育才.MCS-51 系列单片微型计算机及其应用.南京:东南大学出版社,1999.2 李朝青.单片机原理及接口技术(简明修订版).杭州:北京航空航天大学出版社,1998.3 李广弟.单片机基础.北京:北京航空航天大学出版社,1994.4 阎石.数字电子技术基础(第三版).北京:高等教育出版社,1989.附录:#include reg52.h typedef unsigned char uint8;sbit CLK=P10;sbit DINA=P11;void DELAY();void sdelay();bdata uint8 kdat;sbit cc=kdat0;uint8 L

20、ED0,LED1,LED2,LED3;uint8 LED_Table18=0 x3F,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71,0 xff,0 x00,;sbit DQ=P14;void DELAY()unsigned int k,j;for(k=0;k500;k+)for(j=0;j200;j+);void sdelay()unsigned char k;for(k=0;k10;k+);void sendto(unsigned char dat)unsig

21、ned char i;CLK=0;kdat=dat;for(i=0;i1;/*DS18b20 温度传感器读写程序*/void dsb20delay(int us)int s;for(s=0;sus;s+);void rst(void)DQ=1;dsb20delay(2);DQ=0;dsb20delay(30);/精确延时 480960us DQ=1;dsb20delay(8);unsigned int read(void)int i=0;unsigned int u=0;for(i=0;i=1;DQ=1;if(DQ)u|=0 x8000;dsb20delay(4);return(u);void

22、 write(unsigned char ku)int i=0;for(i=0;i=1;void read0(void)int t0,t1,t2;unsigned int tp;unsigned int lsb;rst();write(0 xCC);write(0 x44);rst();write(0 xCC);write(0 xBE);tp=read();lsb=(unsigned int)(tp*6.25);t0=lsb/1000;LED0=LED_Tablet0;/第 1 位,最高位 t2=lsb%1000;t1=t2/100;LED1=LED_Tablet1&0 x7f;/第 2 位

23、t1=t2%100;t2=t1/10;LED2=LED_Tablet2;/第 3 位,最低位 LED3=LED_Tablet1%10;/第 4 位,最低位 void main()while(1)uint8 j;read0();sendto(LED3);sendto(LED2);sendto(LED1+0X80);/.sendto(LED0);DELAY();/*延时*/DELAY();/*延时*/DELAY();/*延时*/课程设计成绩:项 目 业务考核成绩(70%)(百分制记分)平时成绩(30%)(百分制记分)综合总成绩(百分制记分)注:教师按学生实际成绩(平时成绩和业务考核成绩)登记并录入教务 MIS 系统,由系统自动转化为“优秀(90100 分)、良好(8089 分)、中等(7079分)、及格(6069 分)和不及格(60 分以下)”五等。指导教师评语:指导教师(签名):20 年 月 日

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1