数据采集技术与系统设计实验报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2011/2012学年第(二) 学期 实验报告 课程名称数据采集技术与系统设计 专 业 学 号   姓 名        指导教师   实验项目一 DS18B20数字温度传感器的使用 一、设计目的和内容: 1、目的: (1)了解DS18B20数字式温度传感器的工作原理。 (2)利用DS18B20数字式温度传感器和微机实验平台实现数字温度计。 2、内容: 采用数字式温度传感器为检测器件,进行单点温度检测。用数码管直接显示温度值,微机系统作为数字温度计的控制系统。 二、总体设计: 1、检测的温度范围:0℃~100℃,检测分辨率0.5℃。 2、用位数码管显示 图1 电路原理图 本次设计包括报警模块、数码显示电路、温度传感器模块。报警模块中P1.1、P1.2和P1.3口连接红色、蓝色和黄色LED灯,分别代表温度高温、正常、低温。数码显示电路采用4位共阳极LED数码管。P0口作为段码输出并作为数码管的驱动,P2口的低四位作为数码管的位选端,采用动态扫描的方式显示。温度传感器模块中P1.0口连接DQ传输数据,VCC端上拉10k电阻,GND端接地。 四、软件设计框图及程序清单: 1、软件设计框图: (1).主程序 主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量温度值,温度测量每1s进行一次,其程序流程图如图2。 图2 主程序流程图 (2).读出温度子程序 读出温度子程序的主要功能是读出RAM中的9字节,在读出时需要进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如图3所示。 图3 读出温度子程序流程图 (3).温度转换命令子程序 温度转换命令子程序主要是发温度转换开始命令,当采用12位分辩率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。温度转换命令子程 序流程图如图4所示。 图4 温度转换命令子程序流程图 (4).计算温度子程序 计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其流程图如图5所示。 图5 计算温度子程序流程图 (5)显示数据刷新子程序 显示数据刷新子程序主要是对显示缓冲区中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。程序流程图如图10所示。 图6 显示数据刷新子程序流程图 2、程序清单: #includereg51.h #define uchar unsigned char #define uint unsigned int //=========================================== sbit DQ=P1^0; sbit GW=P1^1; //高温 sbit ZC=P1^2; //正常 sbit DW=P1^3; //低温 signed int temp; uchar cnt; uchar dis_7seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf}; //===================================================== void timer0() {TMOD=0x01; TH0=(65536-5000)/256; TL0=(65536-5000)%256; ET0=1; EA=1; TR0=1;}//定时器0初始化 //******************************************* void Delay_DS18B20(uint num) { while(num--) ;}//DS18B20延时函数 //******************************************* void Init_DS18B20()//DS18B20初始化 {uchar x=0; DQ = 1;//DQ复位 ds18b20通信端口 Delay_DS18B20(2); //稍做延时 DQ = 0; //单片机将DQ拉低 Delay_DS18B20(80); //精确延时,大于480us DQ = 1; //拉高总线 Delay_DS18B20(4); x = DQ; //稍做延时后,如果x=0则初始化成功,x=1则初始化失败 Dela

文档评论(0)

***** + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档