DS18B20单片机原理与接口技术课程设计.doc_第1页
DS18B20单片机原理与接口技术课程设计.doc_第2页
DS18B20单片机原理与接口技术课程设计.doc_第3页
DS18B20单片机原理与接口技术课程设计.doc_第4页
DS18B20单片机原理与接口技术课程设计.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

广东科学技术职业学院 10机电2班 单片机 课程设计必选题目:_ 自选题目:_班 级 : 同组人: 学号: 同组人: 学号: 同组人: 学号: 完成时间:_广东科学技术职业学院二o一 年 月 日目录一 必选题目1 绪论 2 硬件电路设计 3 软件系统设计 4 实验结果分析与总结 5 参考文献 二 自选题目1 绪论 2 硬件电路设计 3 软件系统设计 4 实验结果分析与总结 5 参考文献 1 绪论 小组分工明细:莫天成 唐少雄 潘溢江 ds18b20总共有三个引脚,只有一个引脚是传送数据的,即为引脚dq,另外两个引脚分别接地gnd和电源vcc,所以只要将引脚dq与单片机相接即可。在原来的基础上,单片机at89c51还剩下9个引脚未用,接任意一个引脚都可以,为了焊接方便,避免跳线,最后决定选择p2.0为dq的连接引脚。2 硬件电路设计,电路图如下(1)ds18b20论述:美国dallas半导体公司的数字化温度传感器是世界上第一片支持 “一线总线”接口的温度传感器,其内部使用了在板(on-b0ard)专利技术。全部传感元件及转换电路集成在形如一只三极管的集成电路内。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。现在,新一代的ds18b20体积更小、更经济、更灵活。使你可以充分发挥“一线总线”的优点。目前ds18b20批量采购价格仅5元左右。(2)ds18b20内部结构:ds18b20支持“一线总线”接口,测量温度范围为-55c+125c,在-10+85c范围内,精度为0.5c。ds1822的精度较差为2c。现场温度直接以一线总线的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持3v5.5v的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小。独特的单线接口方式,ds18b20在与微处理器连接时仅需要一条口线即可实现微处理器与ds18b20的双向通讯。ds18b20支持多点组网功能,多个ds18b20可以并联在唯一的三线上,实现组网多点测温。在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温,在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。测量结果直接输出数字温度信号,以一线总线串行传送给cpu,同时可传送crc校验码,具有极强的抗干扰纠错能力。负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。dq为数字信号输 入/输 出端;gnd为电源地;vdd为外接供电电源输入端(在寄生电源接线方式时接地)。 (3)根据以上关于ds18b20的资料可设计出温度传感器温度显示在数码管上的电路图,电路图如下图所示;3 软件系统设计(1)ds18b20工作原理控制ds18b20指令:33h读rom 55匹配rom foh-搜索rom cch-跳过rom ech-告警搜索命令44h温度转换 beh-读暂存器 4eh写暂存器 48h复制暂存器 b8h重调e2prom b4h读供电方式(2)ds18b20工作流程 (a)初始化 单片机将dq设置为低电平,延时至少480us后再将其编程高电平,即提供一个脉冲480ust960us的复位脉冲。等待1560us后,检查dq是否变成低电平,为低电平则表明复位成功。(b)写时序对于ds18b20的写时序分为写0时序和写1时序两个过程。写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证ds18b20能够在15us到45us之间能够正确地采样io总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。(c)读时序对于ds18b20的读时序分为读0时序和读1时序两个过程。 对于ds18b20的读时序是从主机把单总线拉低之后,在15u秒之内就得释放单总线,以让ds18b20把数据传输到单总线上。ds18b20在完成一个读时序过程,至少需要60us才能完成。 (d)写程序将ds18b20的引脚dq与单片机的p20相接,程序如下:#include /调用函数的头文件sbit dq=p20; /特殊位定义unsigned char a,b,c,d; /全局变量的定义/*延时函数*void delay(unsigned char j) unsigned char i; for(i=j;i0;i-);/*定时/计数器的初始化*void init_t0() tr0=0;tf0=0; /溢出位和启动位的初始化 th0=0xff;tl0=0xfe; /定义初值 tr0=1; /启动定时/计数器/*ds18b20芯片的初始化*void init_ds18b20() dq=1;delay(5); /拉高总线,延时15us dq=0;delay(30); /拉低总线。延时320us dq=1; /释放总线,15us后可检测芯片自动拉低,延时160us delay(20);/*写一个字节给芯片的函数*void writeonechar(unsigned char write) unsigned char i=0; for(i=8;i0;i-) /要给芯片总线发信号单片机要给它信号了 dq=0;delay(1); /拉低总线,延时1us即可 dq=write&0x01; /取出最低位接收 delay(1); /等待芯片接收完成 dq=1; /释放总线 write=1; /为下一位的取出做准备,同时有延时功能/*单片机读芯片发出信号的函数*unsigned char readonechar() unsigned char i; unsigned char read; /单片机要读芯片的字节,要告诉芯片,通过高低电平的时序完成 for(i=8;i0;i-) dq=1;delay(1); /拉高,延时15us dq=0;read=1; /拉低,延时15us,同时为位的存放做准备 dq=1;delay(1); /释放总线,延时。 if(dq=1) read|=0x80; /判断总线给单片发的信号并存入变量read中 delay(4); /等待完成 return read; /返回read的值/*读取温度值函数*float readtemperature() unsigned char templ=0; / 变量的定义 unsigned int temph=0; / 因为后面高位要处理所以不能定义为char float temperature=0; / 要做小数temperature不能定义为int init_ds18b20(); /芯片初始化 writeonechar(0xcc); /跳过rom即跳过序列号查询 writeonechar(0x44); /启动ds18b20温度转换 init_ds18b20(); /芯片初始化 writeonechar(0xcc); /跳过rom即跳过序列号查询 writeonechar(0xbe); /读取寄存器的温度值 templ=readonechar(); /读取温度低字节 temph=readonechar(); /读取温度高字节 temperature=(temph8)+templ)*0.0625; /转换成十进制 return temperature; /返回temperature值/*温度数值中取出各个位的函数*void zhuan_huan() unsigned int t; t=readtemperature()*100; /取小数点后两位 a=t/1000; /十位 b=(t-a*1000)/100; /个位 c=(t-a*1000-b*100)/10; /小数点后一位 d=t%10; /小数点后两位/*主函数*main() tmod=0x01; /定时/计数器的模式选择:方式一 ea=1;et0=1; /启动中断,启动中断0 init_t0(); /定时/计数器的初始化 while(1) /无限循环 init_ds18b20(); /初始化ds18b20 readtemperature(); /读取温度/*定时/计数器中断0中断函数*void a0_intdpy_8seg() interrupt 1 unsigned char h=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/数码管的显示数组定义 unsigned char i; i+; /变量自增 zhuan_huan(); /温度数值中取出各个位 switch(i) /开关函数显示为选共阳极数码管 case 1: p2=0xf7;p0=hd;break; case 2: p2=0xef;p0=hc;break; case 3: p2=0xdf;p0=hb&0x7f;break; case 4: p2=0xbf;p0=ha

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论