单片机课程设计--DS18B20的温度测量与显示系统.pdf

上传人:索**** 文档编号:76710746 上传时间:2023-03-11 格式:PDF 页数:24 大小:3.20MB
返回 下载 相关 举报
单片机课程设计--DS18B20的温度测量与显示系统.pdf_第1页
第1页 / 共24页
单片机课程设计--DS18B20的温度测量与显示系统.pdf_第2页
第2页 / 共24页
点击查看更多>>
资源描述

《单片机课程设计--DS18B20的温度测量与显示系统.pdf》由会员分享,可在线阅读,更多相关《单片机课程设计--DS18B20的温度测量与显示系统.pdf(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、单片机课程设计一DS18B20的温度测量与显示系统单片机课程设计说明书题目:DS18B20的温度测量与显示系统学院:航空自动化学院一一一一一系别:自动化系一一一一专业名称:自动化专业一一班级:一一一一一一一一一一一一一子亏一一一一一一一一一一一一一姓名:一一一一一一指导教师:一一一一一一中国民航大学航空自动化学院目录1课程设计要求2总体方案设计.4 2.1、单片机系统2.2、电源模块2.3、显示模块24、总体设计方案3系统方框图.4 4系统各方框的电路图.9 4.1、温度传戚器DS18B20电路4.2显示电路4.3、主控制器4.4、系统总电路图5主程序流程图和各个子程序的流程图.12 1、主程

2、序流程图2、温度读取子程序流程图3、温度转换子程序流程图6源程序说明.15 7心得体会附录一DS18B20简介20 基于数字温度计DS18B20的温度测与显示系统一、任务与要求1.利用1个DS18B20测量室内温度(误差小于?)2.用数码管显示温度3.显示精度为0.vc 扩展要求1.多通道测量2.LCD显示3.生成印刷电路板三二、总体方案设计(基本功能)1、单只机系统我选用了AT89C52单片机,查过资料后我知道AT89C52单片机具有不但AT89C51单只机所有的优点,而且具有更大的程序存储空间,可在线仿真的功能,方便调试。所以选用AT89S52八位单片机作为温度采集的结部分。2、电源模块采

3、用普通的直流电源实现电路简单,而且采用集成电源芯片设计的直流电源电压比较稳定,完全满足系统各模块的供电要求。3、显示模块为了显示出温度,采用数码管显示工具。4、总体设计方案为了不失通用性和智能性,本方案采用AT89S52单只机作为控制器单总线温度传戚器DS18B20进行温度采集。电源部分采用普遍的直流电源,完全满足AT89S52和DS18B20等各模块的工作电压范围。温度显示采用数码管。第3页四、系统方框图第3页日由;眉缝四、系统各方框的电路图1温度传戚器DS18B20电路由于DS18B20工作在单总线方式,其硬件接口非常简单,仅需利用系统的一条1/0 线与DS18B20的数据总线相连即可,如

4、图1所示。;冉.,.,图1DS18B20电路2、显示电路显示电路采用4位共阳极LED数码管PO口由上拉电阻提高驱动能力,作为段码输出并作为数码管的驱动。P2口的f压四位作为数码管的位选端。采用动态扫描的方式显刁飞。第3页U4 PllO POO 3 a DO。2WE1 POf P01 4 a VIE丑PDl2-_l P02,:o。I 6 v,臼02 02 迫l主四03 03 12,.04 04.巧OS。、106 C路 16Pl!J TIIIIII po;18 W臼07。7I i i5E I 11 a LE 74HC373 U3 3 .。2 a 1 b飞。,6 8 02。军 b 13a 03。3

5、9 1-l.04 12 e 17 a OS。5 15 16 06 06 16。o,。719 1 白咀LE 74HC373 3王控制器单片机AT89S5具有低电压供电和体积小等特点,四个踹口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。I-.工C21 口.c:1.R2,。-.C3,。如R3 第3页工Cl4.系统总电路图总体设计电路图所下控制器采用单片机AT89S52温度传戚器采用DS18B20,用4位LED数码管以串口传送数据实现温度显示。WEI-Vll7 2卡同ZLE町.,.”枫拇-R附i.lJ1.l!.专于All,.刷工主C23饥,.J:,.,:

6、,f SITI ALE 吨L-.,_-,L二,巴ZA.I r.-革tr 寻院主i7.-.五、主程序流程图和各个子程序的流程图1、主程序流程图主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温更测量每Is进行一次。这样可以在一秒之内测量一次被测温度其程序流程见图3.1所示。0518820初始化DS18820是否存在?是跳过ROM匹配温度转换R2。,自-cC3 斗F3 延时跳过ROM匹配读暂存器页转换为显示码2温度读取子程序流程图发DS18B20复位命令发跳过RO温命令发读取温度命令读取操作,CRC校验T T 移入温度曹存器结夜3.温度转换子程序流程图发DS18B

7、20复位命令发跳过ROM命令发温度转换开始命令结束第3页六、程序及说明:#include#include Sdefine uchar unsigned char#define uint unsigned int sbit DQ二 P2”3;sbit dula=P2O;x-)for(y=llO;y)O;y一);ms级别的延时函数void Dsl8b20_Init(void)/*uint i;DQ二O;i=103;第3页while(iO)i一一;DQ二1;i=4;while(iO)i一一;*/时1arflag=O;I I设置标志位DQ=l;厅拉高数据总线delay(1);延时一段时间,尽量短一点D

8、Q=O;拉低总线delays(100);延时时间在480us到960us之间DQ=l;I I拉高总线delay(l5);II如果在15-60ms的时间内产生一个低电平,则初始化完成oflag=DQ;delay(lOO);lldsl8b20初始化bit tempreadbit()II位读取子程序uinti;bit dat;DQ二o;i+;I I i 起延时作用lus后进入读时序DQ=l;i什;i+;IIi起延时作用,在lus到15us 内进行采样,这里延时大概Susdat=DQ;i=8;wh订e(iO)i一一;至少需要60us才能完成读周期return(dat);厅返回位数据第3页uchar R

9、ead_One_Byte()uchar i,j,dat;dat=O;for(i=1;i =8;i+)j二tempreadbit();dat=(j7)I(1);厅循环8次读一个字节return(dat);void Write_One_Byte(uchar wdat)uint i;uchar j;bit testb;for(j=1;j O)i一一;完成一次写j商期至少要需要60us,这里大概是lOOusDQ二1;i+;i+;Elsell写0周期DQ二O;i=8;while(iO)DQ二1;i+;i什;l一一,I*uchar i 二O;uchar time=O;for(i=8;i)O;i一一)第3页

10、DQ=l;_nop一();DQ=O;_nop一();DQ=wdat&OxOl;delay(40);DQ二1;for(time=O;timel;time+);wda/tNl;delay(10);)*/uint Get_temp()float tt;uchar low,high;Dsl8b20_Ini t();,调用初始化函数第3页delayms(1);Write_One_Byte(Oxcc);II跳过读ROM指令Write_One_Byte(Ox44);II delayms(2);温度转换指令Dsl8b20_Init();II调用初始化函数delayms(1);Write_One_Byte(Ox

11、cc);I I跳过读ROM指令Write_One_Byte(Oxbe);I I读温度指令IIdelayms(2);1 ow=Read_One_Byte();低字节存放在LOWhigh二Read_One_Byte();高字节存放在hightemp二high;temp=8;temp二tempI low;II将温度合并if(temp=lOO)flagl=l;)*/temp二tt*lO+O 5;tt=temp*(0.0625);temp=tt*lO+O.5;/temp二temp+O 05;return(temp);void Display(uint value)/*uchar qian,bai,shi

12、,ge;bai=value/100;shi=value%100/10;ge=value%10;*I qi an=t emp/1000;百位数bai二temp%1000llOO;II十位数shi=temp%100llO;II个位数ge=temp%10;II小数位if(qian=O)II百位若为零则不显示(dula=l;PO=Oxff;dula=O;PO=Oxff;wela=l;第3页PO 二2;wela=O;delayms(5);PO 二Oxff;else dula=l;Portableqian;dula=O;PO=Oxff;wela=l;PO二2;wela=O;delayms(5);PO=Ox

13、ff;if(flagl=O)若温度我正数,则最高位不显示dula=l;PO 二Oxff;dula=O;第3页PO=Oxff;wela=l;PO二1;wela=O;delayms(5);PO=Oxff;Else若温度为负数则最高位为负号dula=l;PO=Oxbf;第3页dula=O;PO=Oxff;wela=l;PO=l;wela=O;delayms(5);PO=Oxff;I*dula=l;Portableqian;dula=O;PO=Oxff;wela=l;PO二2;wela=O;delayms(5);PO=Oxff;*I dula=l;显示百位PO二tablebail;第S页dula=O;

14、PO=Oxff;wela=l;P0=4;wela=O;delayms(5);PO=Oxff;dula=l;I I显示十位Portableshi;dula=O;PO=Oxff;wela=l;PO二8;wela二O;delayms(5);PO=Oxff;dula=l;显示个位Portablege;dula=O;PO=Oxff;wela二1;PO=OxlO;第3页wela=O;delayms(5);PO=Oxff;void main()LEDl=l;while(1)飞,t飞、E,nyny mmv/e+LFhu Ll4 一飞9tys 3eam xGly o=pa=PSI-m1e nriLhU1 六、D

15、S18B20简介DS18B20采用3脚PR-35封装或8脚SOIC封装,管脚排列如图3所示。图中GND为地,DQ为数据输入输出端(即单线总线)该脚为漏极开路输出,常态下呈高电平,Vee是外部5V电源端,不用时应接地,NC为空脚。第3页PIN ASSIGNMENT 圈噩-空 8阜(;)-(DOTTOMMEU T0-92(DSISB20)PIN DESCRIPTI。NMCC 8-PmlSCmiISO(DSISB20Z)口QNC NCcd GMO(zd NC NC NC GMO=:JV。咱=:JNC=:JNC:J NC 8-Pin pSOP(DSI8B20LJ)GND Ground DQ-Data

16、lnOu:Voo.Pow Supply Voltage NC No Connec:图3DS18B20的外部结构DS18B20内部主要包括寄生电源、温度传戚器、64位激光ROM单线接口、存放中间数据的高速暂存器(内含便笼式RAM),用于存储用户设定的温度上下限值的TH和TL解发器存储与控制逻辑、8位循环冗余校验码(CRC)发生器等七部分,内部结构如图4。VPU”GND Voo PARJ.!ITE POWER CIRCUIT MERii且tv盹亨七、心得体会-!IITROM Ailll.明,tPORlMEMORY CONTROL LOOIC SCRAlCiPAO 0$18820 TE!fPERA TlfflE S因SO RALC.R恤同创TRIG!lER(T.I REGISTER CEEf昆c制】ALARU LO TRIGGER(TJ REGISTER IEEPROJ唱lc。IIJIGUAATIO侧目EC且STER。EEPRONJI 8-Ell附G四肌TORI 图4DS18B20内部结构在两个星期的努力中,这次课程设计终于顺利完成了,在设计中我遇到了很多编程问题,在老师和同学的帮助下终于把这些问题运个解决。同时这次课程设计给我一个很好的锻炼的机会。非常戚谢学校和老师!第3页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 实施方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁