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

上传人:aa****6 文档编号:38493286 上传时间:2018-05-03 格式:DOC 页数:15 大小:136KB
返回 下载 相关 举报
单片机课程设计-- ds18b20的温度测量与显示系统_第1页
第1页 / 共15页
单片机课程设计-- ds18b20的温度测量与显示系统_第2页
第2页 / 共15页
单片机课程设计-- ds18b20的温度测量与显示系统_第3页
第3页 / 共15页
单片机课程设计-- ds18b20的温度测量与显示系统_第4页
第4页 / 共15页
单片机课程设计-- ds18b20的温度测量与显示系统_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《单片机课程设计-- ds18b20的温度测量与显示系统》由会员分享,可在线阅读,更多相关《单片机课程设计-- ds18b20的温度测量与显示系统(15页珍藏版)》请在金锄头文库上搜索。

1、单片机课程设计说明书单片机课程设计说明书题题 目:目: DS18B20 的温度测量与显示系统的温度测量与显示系统 学学 院:院: 航空自动化学院航空自动化学院 系系 别:别: 自动化系自动化系 专业名称:专业名称: 自动化专业自动化专业 班班 级:级: 学学 号:号: 姓姓 名:名: 指导教师:指导教师: 中国民航大学航空自动化学院中国民航大学航空自动化学院目录目录1 1 课程设计要求课程设计要求112 2 总体方案设计总体方案设计 4 42.12.1、单片机系统、单片机系统2.22.2、电源模块、电源模块2.32.3、显示模块、显示模块2.42.4、总体设计方案、总体设计方案3 3 系统方框

2、图系统方框图44 4 4 系统各方框的电路图系统各方框的电路图 9 9 4.14.1、温度传感器、温度传感器 DS18B20DS18B20 电路电路4.24.2、显示电路、显示电路4.34.3、主控制器、主控制器4.44.4、系统总电路图、系统总电路图5 5 主程序流程图和各个子程序的流程图主程序流程图和各个子程序的流程图1212 1 1、主程序流程图、主程序流程图2 2、温度读取子程序流程图、温度读取子程序流程图3 3、温度转换子程序流程图、温度转换子程序流程图6 6 源程序说明源程序说明15157 7 心得体会心得体会附录一附录一 DS18B20DS18B20 简介简介 2020第 3 页

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

4、电源实现电路简单,而且采用集成电源芯片设计的直流电源电压比较稳定,完全满足系统各模块的供电要求。 3 3、显示模块、显示模块为了显示出温度,采用数码管显示工具。4 4、总体设计方案、总体设计方案为了不失通用性和智能性,本方案采用 AT89S52 单片机作为控制器,单总线温度传感器 DS18B20 进行温度采集。电源部分采用普通的直流电源,完全满足 AT89S52 和DS18B20 等各模块的工作电压范围。温度显示采用数码管。4、系统方框图系统方框图第 3 页四、系统各方框的电路图四、系统各方框的电路图1 1、温度传感器、温度传感器 DS18B20DS18B20 电路电路由于 DS18B20 工

5、作在单总线方式,其硬件接口非常简单,仅需利用系统的一条 I/ O 线与 DS18B20 的数据总线相连即可,如图 1 所示。5.3DQ2VCC3GND1DS18B20R1 1k图 1 DS18B20 电路2 2、显示电路、显示电路显示电路采用 4 位共阳极 LED 数码管,P0 口由上拉电阻提高驱动能力,作为段码输 出并作为数码管的驱动。P2 口的低四位作为数码管的位选端。采用动态扫描的方式显示。程序控制模块单 片 机 系 统温度传感器模块数 码 管 显 示 模 块电源模块第 3 页P26P27P00 P01 P02 P03 P04 P05 P06 P07P00 P01 P02 P03 P04

6、 P05 P06 P07ha b c d e f gWE1 WE2 WE3WE1 WE2 WE3 WE4 WE5 WE6 WE7 WE8a b c d e f gWE4hD03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE11U374HC373D03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE11U474HC3733 3、主控制器、主控制器单片机 AT89S5 具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电 路系统的设计需要,很适合便携手持

7、式产品的设计使用系统可用二节电池供电。X1CRYSTALC1 30uFC2 30uFC3100uR2100R310k第 3 页4 4、系统总电路图、系统总电路图总体设计电路图所下,控制器采用单片机 AT89S52,温度传感器采用 DS18B20,用 4 位 LED 数码管以串口传送数据实现温度显示。P30P20 P21 P22 P23 P24P26 P27P26P27P00 P01 P02 P03 P04 P05 P06 P07P00 P01 P02 P03 P04 P05 P06 P07ha b c d e f gWE1 WE2 WE3WE1 WE2 WE3 WE4 WE5 WE6 WE7

8、WE8a b c d e f gP25WE4hXTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A11

9、24P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C515.3DQ2VCC3GND1DS18B202 3 4 5 6 7 8 91RP1 RESPACK-8R1 1kX1CRYSTALC1 30uFC2 30uFC3100uR2100R310kD03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE11U374HC373D03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE11U474HC373五、主程序流程图和各个子程序的流程图五、主

10、程序流程图和各个子程序的流程图1 1、主程序流程图、主程序流程图 主程序的主要功能是负责温度的实时显示、读出并处理 DS18B20 的测量的当前温度 值,温度测量每 1s 进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图 3.1 所示。DS18B20 初始化结束温度转换跳过 ROM 匹配延时DS18B20 是否存在?跳过 ROM 匹配读暂存器转换为显示码是否第 3 页发 DS18B20 复位命令发跳过 ROM 命令发温度转换开始命令结束2 2、温度读取子程序流程图、温度读取子程序流程图3 3、温度转换子程序流程图、温度转换子程序流程图Y发 DS18B20 复位命令发跳过 ROM 命

11、令发读取温度命令读取操作,CRC 校验9 字节完?CRC 校验正?确?移入温度暂存器结束 NNY第 3 页六、程序及说明:六、程序及说明: #include #include #define uchar unsigned char #define uint unsigned intsbit DQ=P23; sbit dula=P26; sbit wela=P27; sbit FM=P25; sbit LED1=P20; sbit LED2=P21; sbit LED3=P22; uint temp,tmp,temp1,temp2,temp3; uchar flag1=0; uchar qian

12、,bai,shi,ge; uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0 x89,0x86,0xc7,0xc0,;/数码管显示代码uchar code table1=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x88,0x83,0xc6,0xa1,0x86,0x8 e,0x89,0x86,0xc7,0xc0,; /数码管显示代码void delay(uchar i) while(-i);

13、/延时函数void delays(uchar i) while(i-); /延时函数void delayms(uint timer) uchar x,y; for(x=timer;x0;x-) for(y=110;y0;y-); ms 级别的延时函数void Ds18b20_Init(void) /*uint i; DQ=0; i=103; while(i0)i-;第 3 页DQ=1; i=4; while(i0)i-; */ uchar flag=0;/设置标志位 DQ=1;/拉高数据总线 delay(1);/延时一段时间,尽量短一点 DQ=0;/拉低总线 delays(100);/延时时间

14、在 480us 到 960us 之间 DQ=1;/拉高总线 delay(15);/如果在 15-60ms 的时间内产生一个低电平,则初始化完成。flag=DQ; delay(100); /ds18b20 初始化 bit tempreadbit()/位读取子程序 uint i; bit dat; DQ=0;i+;/ i+起延时作用,1us 后进入读时序 DQ=1;i+;i+;/ i+起延时作用,在 1us 到 15us 内进行采样,这里延时大概 8usdat=DQ; i=8;while(i0)i-;/至少需要 60us 才能完成读周期 return(dat);/返回位数据 uchar Read_One_Byte() uchar i,j,dat; dat=0; for(i=1;i1); /循环 8 次读一个字节return(dat); void Write_One_Byte(uchar wdat) uint i; uchar j; bit testb; for(j=1;j1;/右移位 if(testb)/写 1 周期第 3 页DQ

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号