实验十二数字温度计设计.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文档。上传文档
查看更多
实验十二数字温度计设计

电子科技大学中山学院学生实验报告 院别:电子信息学院 课程名称:微处理器实验 班级:12电信A 姓名: 学号: 实验名称:数字温度计设计 实验时间:2014年12月15日 成绩: 教师签名: 批改时间: 实验原理与目的 1、熟悉单总线及DS18B20传感器的特性和工作原理。 2、掌握数字温度计的硬件结构及程序设计方法。 与普通温度计相比,以单片机为核心的数字温度计具有数字显示、超温报警、记录存储、数据上传等优点,因而得到了广泛应用。根据性能要求和器件选型的不同,数字温度计可有多种不同的实现方案。 温度传感器是数字温度计中的关键器件。传统的温度传感器有热电阻、热电偶、PN结等类型,这些传感器的输出均为微弱的模拟信号,必须经过放大、滤波、A/D转换等电路处理,才能得到可为单片机接受的数字量。相比之下,新型数字温度传感器将温度传感元件、数字量转换电路、数据存储器、通信接口等部件集成在一块芯片上,可通过几根(最少只要一根)串行通信线直接输出数字形式的温度值,大大简化了数字温度计的硬件设计。 图3.12.1 数字温度计电路 DS18B20是DALLAS公司生产的单总线(1-Wire)接口的数字温度传感器,数据传输仅需一根信号线。温度测量范围为-55~+125℃,在-10~+85℃范围内,精度可达±0.5℃,有效数据位数可通过程序设置为9~12位,12位时分辨率可达0.0625℃。每个DS18B20具有唯一64位序列码,多个器件可并联在一根数据线上,实现多点测温。 ZSC-1实验箱配置了DS18B20数字温度传感器以及LED数码管、蜂鸣器、按键等外设,另外还设有RS232、USB两种外部通信接口,为实现数字温度计功能提供了很好的硬件支持。图12-1为具体硬件电路。DS18B20的数据线DQ与单片机P3.7口线相连,单片机通过程序模拟单总线时序,实现与DS18B20的通信。LED数码管用于显示DS18B20所测温度(实际只用3位),蜂鸣器BZ1用于超温报警,按键KX0~KX2用于报警温度的设置。通信接口用于连接PC机,实现温度上传等功能。 二、实验仪器 1、PC机一台(已安装Keil uVision、STC_ISP等软件); 2、ZSC-1单片机实验箱1、设计程序,利用DS18B20检测温度,并通过数码管显示。 ① 在Keil中编写源程序。C语言参考程序如下(请将下划线部分补充完整): //*****************************头文件声明**************************** int t=25; //定义报警温度t #define b t/25; //全局b代替t/25 #define c t%25; //全局c代替t%25 int Temperature; int a=0x0bc0; //0000 0xxx xxxx 0000 //****************************函数原型声明*************************** void DS18B20Init(); void DS18B20BitWrite(bit Bit); bit DS18B20BitRead(); void DS18B20ByteWrite(uint8 Byte); uint8 DS18B20ByteRead(); void GetTemperature(); void DispTemperature(); void Delay(uint16 ms); void baojing() { uint8 i; if(Temperaturea) //温度大于a,蜂鸣器报警 { for(i=0;i50;i++) { BUZZ=~BUZZ; Delay(1); } } } void key() { uint8 key1,key2; Delay(5); if(key1==0)

文档评论(0)

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

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

1亿VIP精品文档

相关文档