收藏 分享(赏)

单片机课程设计报告 - avr与虚拟仪器.doc

上传人:cjc2202537 文档编号:117985 上传时间:2018-03-21 格式:DOC 页数:14 大小:214KB
下载 相关 举报
单片机课程设计报告 - avr与虚拟仪器.doc_第1页
第1页 / 共14页
单片机课程设计报告 - avr与虚拟仪器.doc_第2页
第2页 / 共14页
单片机课程设计报告 - avr与虚拟仪器.doc_第3页
第3页 / 共14页
单片机课程设计报告 - avr与虚拟仪器.doc_第4页
第4页 / 共14页
单片机课程设计报告 - avr与虚拟仪器.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、单片机课程设计报告基于 MEGA16 单片机温度检测系统-张坤 张磊 黄大明(作品图)一,系统设计目的,用途,功能1,目的。通过基于 MEGA16 芯片和 DS18B20 温度传感器控制温度,熟悉芯片的使用,温度传感器的功能,实验电路板的焊接,数码显示管的使用,汇编语言的设计。锻炼团队合作能力,动手设计能力以及发现问题并且解决问题的能力。2,用途。 温度是工业控制中主要的被控参数之一。随着电子技术和微型计算机的迅速发展,微机测量和控制技术得到了迅速的发展和广泛的应用。单片机具有处理能强、运行速度快、功耗低等优点,应用在温度测量与控制方面,控制简单方便,测量范围广,精度较高。本文设计了一种基于

2、MEGA16 单片机的温度测量和控制装置,能对环境温度进行测量,在温度过高时,蜂鸣器发出蜂鸣声,有利于保障工业控制中的安全性。并且能根据温度给定值给出调节量,控制执行机构,实现调节环境温度的目的。3,功能.DS18b20 温度传感器温度的精确度高达 0.1 度,在许多工业控制中已经足够。可以满足从-55 摄氏度到+125 摄氏度测量范围,在一秒内把温度转化成数字,测得的温度值的存储在两个八位的 RAM 中,单片机直接从中读出数据转换成十进制就是温度,使用方便。从用途上讲,该单片机类似于温度计,但用途又不仅仅集限于温度计,由于蜂鸣器的使用,编写程序后,超过预设温度后,蜂鸣器发出蜂鸣声,为工业控制

3、的安全保驾护航。二,硬件设计思想和电路原理图下图为温度传感器驱动电路图18b20下图为硬件连接框架图ATmega芯片数码显示管温度传感器蜂鸣器LED硬件连接框架图123Vcc 104 电容4.7K单片机端口 硬件连接图如上.三,详细说明如何使用硬件单元1,七段数码管型号是 LG5641AH(共阴极)的使用。该显示管总共有 12 个引脚,包括 a-g 和 dp 以及四个位选 g1-g4。将 a-f 分别与ATmega 芯片的 PB1-PB6 连接,g1-g4 分别与 PD0-PD3 连接。2,蜂鸣器的连接。 蜂鸣器的两个引脚分别与 ATmega 芯片的 PC2,PC1 连接,其中,前者接负极,后

4、者接正极。3,DS18B20 温度传感器的连接。该传感器 3 个端口分别与接地口,芯片的 PA7,去耦电容104 连接。四.软件设计流程和设计思想软件设计思想: 现在生活很多方面都要用到温度这个概念,例如在温室里需要时刻注意温度的变化,另外在一些科学实验里面,温度是一个很重要的条件,很多情况下要都对温度作很严格的要求,往往温度的一点不适当会引起相当大的变化,从而影响一些重要结果的得出.因此对于环境温度的测量显得很重要.基于这一点,萌生了采用单片机对温度进行监视的想法.五.软件功能:1. 实现对温度的监视,达到实时显示的目的.2. 实现对不适合温度的警报,方便对温度监控. (报警温度可人工设定)

5、六.系统测试过程及测试数据:(1) 时间:08 年 6 月 8 日 13:10地点:十二号楼 124 宿舍测试对象:室内温度设定警报温度:31时间 13:20 13:25 13:30 13:35 13:40温度 30.3 30.4 30.3 30.3 30.3(2)时间:08 年 6 月 8 日 22:20地点:十二号楼 124 宿舍测试对象:室内温度设定警报温度:31时间 22;20 22:25 22:30 22:35 22:40端口初始化DS18B20 初始并且进行温度采集软件对芯片返回值进行转换七段数码管显示温度(使用 timer0 比较中断)当温度超过设定温度时,发出警报重复调用芯片值

6、温度 29.7 29.7 29.7 29.8 29.7七.实验程序代码#include #include unsigned char ds1820_reset(void);unsigned int ds1820_read_temp(void);#define DQ_IN DDRA if(i) return 0x00;else return 0x01;/*DS18B20 字节读取函数*/unsigned char ds1820_read_byte(void) unsigned char i;unsigned char value=0;flag=SREG; /*中断保护*/CLI(); /*关中断

7、*/for(i=8;i!=0;i-) value=1;DQ_OUT;DQ_CLR;NOP(); /*延时 4uS*/NOP();NOP();NOP();DQ_SET;DQ_IN;NOP(); /*延时 10uS*/NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();if (DQ_R) value|=0x80;delay_10us(5); /*延时 60uS*/if(flagreturn(value);/*DS18B20 字节写入函数*/void ds1820_write_byte(unsigned char value) unsigned

8、 char i;flag=SREG; /*中断保护*/CLI(); /*关中断*/for(i=8;i!=0;i-) DQ_OUT;DQ_CLR;NOP(); /*延时 4uS*/NOP();NOP();NOP();if (value delay_10us(7); /*延时 80uS*/DQ_SET; /*位结束*/value=1;if (flag /*启动 ds1820 转换*/void ds1820_start(void) ds1820_reset();ds1820_write_byte(0xCC); /*勿略地址*/ds1820_write_byte(0x44); /*启动转换*/*DS8

9、B20 读取温度信息*/unsigned int ds1820_read_temp(void) unsigned int i;unsigned char buf9;ds1820_reset();ds1820_write_byte(0xCC); /*勿略地址*/ds1820_write_byte(0xBE); /*读取温度*/for (i = 0; i =3)poist=0;void feng(unsigned i)if(i=31)PORTC=0x83;else PORTC=0x01;void main(void) unsigned int i,j;DDRA=0x00; /*方向输入*/PORT

10、A=0xFF;DDRC=0xFF;PORTC=0x01; /*打开上拉*/DDRB=0xFF; /*方向输出*/PORTB=0x00; /*电平设置*/DDRD=0xFF;PORTD=0x80;SEI();TCCR0=0x0B;TCNT0=0x00;OCR0=0x8B;TIMSK=0x02;delay_ms(200);ds1820_reset(); /*复位 D18B20*/while (1) ds1820_start(); /*启动一次转换*/delay_ms(15); /*等待转换结束*/i=ds1820_read_temp(); /*读取温度数值*/i=(i*10)/16; /*数值处理*/led_buf3=i/1000; /*将显示信息加载到显示缓存区*/i=i%1000;led_buf2=i/100;i=i%100;led_buf1=i/10;led_buf0=i%10;j=led_buf2*10+led_buf1;feng(j);八.需的全部资源温度传感器我们所采用的温度传感器是 DS18B20,这是最常用的温度芯片

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 信息产业

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报