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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

DS18B20的利用.docx

1、DS18B20的利用单片机原理及应用课程设计报告18B20温度传感器的数码管显示设计专 业: 电子信息科学与技术 班 级: 姓 名: 学 号: 指导教师: 2011年4 月20 日1.课程设计目的1.1巩固和加深对单片机原理和接口技术知识的理解;1.2培养根据课题需要选学参考书籍、查阅手册和文献资料的能力;1.3学会方案论证的比较方法,拓宽知识,初步掌握工程设计的基本方法;1.4掌握常用仪器、仪表的正确使用方法,学会软、硬件的设计和调试方法;1.5能按课程设计的要求编写课程设计报告,能正确反映设计和实验成果,能用计算机绘制电路图和流程图。2.课程设计要求 2.1利用18B20温度传感器与单片机

2、结合来测试当前的温度,并显示到数码管,显示的温度精确到0.1。(实际可精确到0.0625) 2.2温度显示时采用后4位数码管,前三位为温度值,最后一位为字母C。 2.3温度的测量范围为-55125。3.硬件设计3.1设计思想 用美国DALLAS公司生产的DS18B20温度传感器与STC89C52RC单片机进行通信,来测试当前的温度,并把测试的温度显示到共阴极数码管的后四位。3.2主要元器件介绍 (1)温度传感器的种类众多,在应用与高精度、高可靠性的场合时DALLAS(达拉斯)公司生产的DS18B20温度传感器当仁不让。超小的体积,超低的硬件开消,抗干扰能力强,精度高,附加功能强。DS18B20

3、的主要特征:全数字温度转换及输出。先进的单总线数据通信。最高12位分辨率,精度可达土0.5摄氏度。12位分辨率时的最大工作周期为750毫秒。可选择寄生工作方式。检测温度范围为55C +125C (67F +257F)内置EEPROM,限温报警功能。64位光刻ROM,内置产品序列号,方便多机挂接。多样封装形式,适应不同硬件系统。DS18B20引脚功能:GND 电压地 DQ 单数据总线 VDD 电源电压 NC 空引脚DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。其一个工作周期可分为两个部分,即温度检测和数据处理。在讲解其工作流程之前我们有必要了解18B20的内部存储

4、器资源。18B20共有三种形态的存储器资源,它们分别是:ROM 只读存储器,用于存放DS18B20ID编码,其前8位是单线系列编码(DS18B20的编码是19H),后面48位是芯片唯一的序列号,最后8位是以上56的位的CRC码(冗余校验)。数据在出产时设置不由用户更改。DS18B20共64位ROM。RAM 数据暂存器,用于内部计算和数据存取,数据在掉电后丢失,DS18B20共9个字节RAM,每个字节为8位。第1、2个字节是温度转换后的数据值信息,第3、4个字节是用户EEPROM(常用于温度报警值储存)的镜像。在上电复位时其值将被刷新。第5个字节则是用户第3个EEPROM的镜像。第6、7、8个字

5、节为计数寄存器,是为了让用户得到更高的温度分辨率而设计的,同样也是内部温度转换、计算的暂存单元。第9个字节为前8个字节的CRC码。EEPROM 非易失性记忆体,用于存放长期需要保存的数据,上下限温度报警值和校验数据,DS18B20共3位EEPROM,并在RAM都存在镜像,以方便用户操作。(2)STC89C82RC单片机一块。(3)共阴极8位数码管一个。(4)杜邦线若干。3.3.功能电路介绍 (1)18b20电路图(2)8共阴极数码管电路图。(3)一位数码管引脚图4.软件设计 4.1设计思想:在这次温度传感器的课程设计中,只需把DS18B20接到单片机的一个固定I/O口上,利用控制器通过总线对D

6、S18B20进行操作。需要进行的操作有:a.复位:复位就是由控制器(单片机)给DS18B20单总线至少480uS的低电平信号。当18B20接到此复位信号后则会在1560uS后回发一个芯片的存在脉冲。b.检测存在脉冲:在复位电平结束之后,控制器应该将数据单总线拉高,以便于在1560uS后接收存在脉冲,存在脉冲为一个60240uS的低电平信号。至此,通信双方已经达成了基本的协议,接下来将会是控制器与18B20间的数据通信。c.控制器发送ROM指令:由于本课程设计只需用一个DS18B20,所以可以直接跳过ROM指令,也就是执行一条“跳过指令”。d.控制器发送存储操作指令: 在ROM指令发送给18B2

7、0之后,紧接着(不间断)就是发送存储器操作指令了。操作指令同样为8位,共6条,存储器操作指令分别是写RAM数据、读RAM数据、将RAM数据复制到EEPROM、温度转换、将EEPROM中的报警值复制到RAM、工作方式切换。存储器操作指令的功能是命令18B20作什么样的工作,是芯片控制的关键。e. 执行或数据读写:一个存储器操作指令结束后则将进行指令执行或数据的读写,这个操作要视存储器操作指令而定。如执行温度转换指令则控制器(单片机)必须等待18B20执行其指令,一般转换时间为500uS。如执行数据读写指令则需要严格遵循18B20的读写时序来操作。4.2软件流程图: ADS18B20复位流程图:

8、B写字节流程图: C读字节流程图:D数码管显示流程图: E主函数流程图:4.3源程序:#include sbit dat=P37;sbit led=P36;int i;unsigned char code table_d=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0,0x39;unsigned char code table_w=0xf7,0xfb,0xfd,0xfe;void delay(unsigned char i) while(-i);void delay1(unsigned char t) t+; while(-t)

9、 delay(245); delay(241); void Init18b20() dat=0; delay(200); delay(100); dat=1; delay(50); if(dat=0) led=0; delay(50); dat=1; void WriteByte(unsigned char buf) unsigned char i; for(i=0;i1; delay(30); dat=1; delay(5);unsigned char ReadByte (void) unsigned char buf=0,i; for(i=8;i0;i-) dat=0; buf=buf1;

10、 dat=1; delay(7); if(dat) buf=buf|0x80; dat=1; return (buf);unsigned int rd_t() unsigned int a,b,t; Init18b20 (); WriteByte(0xcc); WriteByte(0x44); delay1(10); Init18b20 (); WriteByte(0xcc); WriteByte(0xbe); a=ReadByte (); b=ReadByte (); b=b4; a0=zhen/10; a1=zhen%10; i=(hc-(zhen4)*10000/16; a2=i/100

11、0; a3=12;void show(unsigned char wd) int i; for(i=0;i4;i+) P1=table_wi; P0=table_dwdi; if(i=1) P0=P0|0x80; delay1(2); void main() unsigned int r_t; unsigned char wd4; ; while(1) r_t=rd_t(); deal_t(wd,r_t); show(wd); 5.调试运行 5.1写完复位函数后,用一个了led灯的暗灭来判别是否复位成功。5.2写完读取温度函数后,没有立即写显示函数,而是先确认能不能成功读取温度的数据。此处我把

12、函数中的16位温度的低8位赋给P2口,把P2口与8位led灯相连。若用手触摸温度传感器,则温度发生变化,led灯也会不规则地闪烁。而最初并没有像预期的那样闪烁,经过调试后发现读字节函数中的延时时间控制的不是很好,经过修改之后,才能够正确地读取温度。5.3此开发板数码管的位选是用P22,P23,P24通过译码器来进行的,而实验时发现P22端口坏了,猜测是与地短接。因此我就用P0口的8位来直接进行位选。5.4第一次调试成功后,发现数码管显示的温度很暗,然后我缩短了一点扫描的间隔,之后发现数码管显示的数字稍微亮了点。6.设计心得体会: 通过此次课程设计,我对DS18B20这块芯片有所了解,利用单总线

13、就能进行如此复杂的数据通信,这让我非常吃惊。由于是初次接触DS18B20这块芯片,所以实验起来遇到了很多问题,比如时序问题,由于是单总线,所以时序就显得比较复杂,而且要求非常严谨,导致我多次因为函数中延时大小的问题而导致复位和后来读取温度的失败。经过多次改正后,我领悟到时序就是芯片的灵魂。 想要一次写完程序并且成功运行几乎是不可能的,当你一口气写玩整个程序,回头再来找出程序中的错误是很难道额。所以,通过这次实验,我学会了一步一步地写程序,保证每个写出来的子函数都正确,这样可以避免最后回头找错误的繁琐,比如在本实验中,我写完复位函数就进行检测,看复位是否成功,假如不成功,就重新审查函数,直到复位

14、成功,还有写玩读取温度的子函数后,并没有立刻写显示函数,而是想办法检测此时读取温度是否成功。假如不成功的话,即使后面的显示函数写正确,也不能够正确地显示温度。 DS18B20具有超小的体积,超低的硬件开消,抗干扰能力强,精度高,附加功能强等众多优点。如此一个小小的芯片,就有这么多的内容,这使得我对单片机的世界充满了好奇,今后一定要研究更多的芯片,更好地学习单片机。参考书目:1 肖金球. 单片机原理与接口技术.M.北京:清华大学出版社,2004.122 郭天祥. 新概念51单片机C语言教程入门、提高、开发、拓展.电子工业出版社2009.13赖麒文 8051单片机 C语言彻底应用 北京:科学出版社2002

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

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