基于AVR单片机的多点温度监测系统.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文档。上传文档
查看更多
微处理器课程设计 实验报告 姓 名 XXXXXXX 班 级 电子1001 学 号 XXXXXXXXXXXX 一、 实验目的与要求: 1、要求熟悉AVR单片机的软硬件开发平台。 2、要求熟练掌握单片机I/O口,中断系统,定时计数器,AD转换,串行接口以及串行总线资源的综合应用。 3、培养学生的工程实践素质和创新能力。 4、复杂设计巩固所学知识。 二、实验内容: 题目9 多点温度监测系统 1、利用DS18B20温度传感器实现温度测量,可以对多点温度进行实时测量。 2、对测量精度进行测试与分析。 三、实验原理: (1) DS18B20简介: 数字温度传感器DS1820,可把温度信号直接转换成串行数字信号供微机处理。 (2) DS18B20的主要特性: 适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电。 独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。 支持多点组网功能,实现组网多点测温。 在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内 温度范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃ 可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温。 在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。 测量结果直接输出数字温度信号,以一线总线串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。 负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。 (3)  ICCAVR环境下的全部代码: File文件夹下的DS18B20.c代码 #include iom16v.h #include macros.h #include math.h #include delay.h #define uchar unsigned char #define BAUDRATE 9600 #define F_CPU 8000000 //8M晶振 unsigned int temp=0; /*----------------------------------------------------------------- 函数名称:void init_1820() 函数功能: 18b20的复位 参 数: 返 回 值: -----------------------------------------------------------------*/ void init_1820(void) { DDRC|=(1PC6); //设置端口输出 PORTC|=(1PC6); //输出一个脉冲 PORTC=~(1PC6); //低电平保持480us以上 delay_us(500); //延时480us以上 PORTC|=(1PC6); //没有输出一个脉冲 DDRC=~(1PC6); //设置端口输入,即释放总线,外接上拉电阻,端口被拉高 delay_us(60); //延时15~60us while(PINC(1PC6)); //等待应答,即等待低电平信号 delay_us(80); DDRC|=(1PC6); //设置输出 PORTC|=(1PC6); //输出高电平 delay_us(80); //60~240us } /*----------------------------------------------------------------- 函数名称:void write_1820(unsigned char x) 函数功能: 写18B20温度 参 数: x 返 回 值: -----------------------------------------------------------------*/ void write_1820(unsigned char x) //下降沿写数据 { unsigned char m; //SET_DQ; for(m=0;m8;m++)

文档评论(0)

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

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

1亿VIP精品文档

相关文档