基于Atmegaa单片机测温实验_第1页
基于Atmegaa单片机测温实验_第2页
基于Atmegaa单片机测温实验_第3页
基于Atmegaa单片机测温实验_第4页
基于Atmegaa单片机测温实验_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、青岛科技大学开放实验报告院校:专业:电气工程及其自动化年级:13级1班实验名称:基于Atmega16a单片机测温实验姓名:学号:同组者姓名:同组者学号:指导教师:基于ATmega16a的温度测量及显示系统摘要: 在国民经济各部门,如电力、化工、机械、冶金、农业、医学以及人们的日常生活中,温度测量是十分重要的。在环境监测、蔬菜大棚、粮库、设备运行的可靠性等应用中,实时采集温度信息,及时发现潜在故障,并采取相应的处理措施,对确保设备良好运行具有重要意义。本设计是采用Atmega16a单片机为核心的温度测量系统。采用LM35温度传感器来采集温度信号,并以电压的形式输送给单片机。显示部分用LCD160

2、2液晶显示器。文中介绍了该系统的部分硬件,包括:单片机最小系统,温度检测电路,LCD1602显示电路。文中还着重介绍了该系统的软件部分。关键词:单片机;温度;测量;显示Based on the ATmega8a temperature measurement and display systemAbstract: In the national economy departments, such as electric power, chemical industry, machinery, metallurgy, agriculture, medicine, and People's

3、 Daily life, temperature measurement is very important.In environmental monitoring, vegetable greenhouses, grain depot, the reliability of the equipment operation and other applications, the real-time temperature information collected, timely found potential failure, and take corresponding measures,

4、 to ensure the equipment running is of great significance.This design is to use Atmega16a MCU as the core temperature measurement system.Using LM35 temperature sensor to collect the temperature signal, and in the form of voltage to MCU.Use LCD1602 LCD display part.This paper introduces the parts of

5、the system hardware, including: single chip microcomputer minimum system, temperature detection circuit, LCD1602 display circuit.The paper also introduces the software part of the systemKey words: MCU; temperature;measurement;According to目录n 系统设计要求n 系统设计方案1. 传感器方案2. 单片机方案3. 显示方案n 系统硬件电路1. 单片机最小系统电路2

6、. LCD1602液晶显示电路3. LM35温度采集电路n 系统程序设计n 附录n 参考文献一、 系统设计要求 基本范围:0 150 精度误差小于0.5 LCD1602液晶显示二、系统设计方案1. 传感器方案选择由National Semiconductor 所生产的LM35温度传感器,其输出电压为摄氏温标。 LM35是一种得到广泛使用的温度传感器。由于它采用内部补偿,所以输出可以从0开始。图一:LM35封装LM35有多种不同封装型式。在常温下,LM35 不需要额外的校准处理即可达到 ±1/4的准确率。其电源供应模式有单电源与正负双电源两种,其引脚如图一所示,正负双电源的供电模式可提

7、供负温度的量测;两种接法的静止电流-温度关系,在静止温度中自热效应低(0.08),单电源模式在25下静止电流约50A,工作电压较宽,可在420V的供电电压范围内正常工作非常省电。工作电压430V,在上述电压范围以内,芯片从电源吸收的电流几乎是不变的(约50A),所以芯片自身几乎没有散热的问题。这么小的电流也使得该芯片在某些应用中特别适合,比如在电池供电的场合中,输出可以由第三个引脚取出,根本无需校准。规格参数1、工作电压:直流430V;2、工作电流:小于133A3、输出电压:+6V-1.0V4、输出阻抗:1mA负载时0.1;5、精度:0.5精度(在+25时);6、漏泄电流:小于60A;7、比例

8、因数:线性+10.0mV/;8、非线性值:±1/4;9、校准方式:直接用摄氏温度校准;10、额定使用温度范围:-55+150。11、引脚说明:电源负GND;电源正VCC;信号输出S;传感器参数供电电压35V到-0.2V输出电压6V至-1.0V输出电流10mA指定工作温度范围LM35D 0 to +1002. 单片机方案选择AVR系列单片机ATmega16a; 高性能、低功耗的 8 位AVR® 微处理器 先进的RISC 结构 131 条指令 大多数指令执行时间为单个时钟周期 32个8 位通用工作寄存器 全静态工作 工作于16 MHz 时性能高达16 MIPS 只需两个时钟周期

9、的硬件乘法器 非易失性程序和数据存储器 16K 字节的系统内可编程Flash擦写寿命: 10,000 次 具有独立锁定位的可选Boot 代码区通过片上Boot 程序实现系统内编程真正的同时读写操作 512 字节的EEPROM擦写寿命: 100,000 次 1K字节的片内SRAM 可以对锁定位进行编程以实现用户程序的加密 JTAG 接口( 与IEEE 1149.1 标准兼容) 符合JTAG 标准的边界扫描功能 支持扩展的片内调试功能 通过JTAG 接口实现对Flash、EEPROM、熔丝位和锁定位的编程 外设特点 两个具有独立预分频器和比较器功能的8 位定时器/ 计数器 一个具有预分频器、比较功

10、能和捕捉功能的16 位定时器/ 计数器 具有独立振荡器的实时计数器RTC 四通道PWM 8路10 位ADC8 个单端通道TQFP 封装的7 个差分通道2 个具有可编程增益(1x, 10x, 或200x)的差分通道3. 显示方案选择液晶显示器,其可以显示两行,各引脚功能:其中第3脚VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。三、系统硬件电路1.单片机最小系统电路2.LCD1602液晶显示电路3.LM35温度采集电路四、系统程序设计1.初始化单片机端口2.初始化LCD1602液晶显示器3.设置

11、定时器,每10ms溢出中断一次4.每10ms采集一次温度数值,采集10次求平均5.计算出温度数值,并显示五、附录1.实物图2.程序源代码#include"iom16v.h"#include"macros.h"#define F_CPU 12000000UL#define RS PD0#define RW PD1#define EN PD2#define uint unsigned int#define uchar unsigned charint yan10;volatile int flagT0=0;volatile int dataAD;int co

12、unt; void Daley(uint a) uint i,j; for(i=0;i<a;i+) for(j=100;j>0;j-);void lcd_write_Data(int Data) PORTD&=BIT(EN); PORTD|=BIT(RS); PORTB=Data; PORTD|=BIT(EN); Daley(10); PORTD&=BIT(EN);void lcd_write_Cmd(uchar Cmd) PORTD&=BIT(EN); PORTD&=BIT(RS); PORTB=Cmd; PORTD|=BIT(EN); Daley

13、(10); PORTD&=BIT(EN);void lcd_init() DDRD|=BIT(RS)|BIT(RW)|BIT(EN); DDRB=0XFF; PORTD&=BIT(RW); lcd_write_Cmd(0X38); lcd_write_Cmd(0X01); lcd_write_Cmd(0X06); lcd_write_Cmd(0X0C);void ADC_init() DDRA&=BIT(PA0); PORTA&=BIT(PA0); ADMUX|=BIT(REFS1)|BIT(REFS0);/选择2.56v片内基准电压; ADMUX&=0

14、XF0;/选择ADC通道为PA0; ADCSRA|=BIT(ADEN);int ADC_zhuanhuan() int adcResult; ADCSRA|=BIT(ADSC); while(ADCSRA&0X40);/等待转换 adcResult=ADCL; adcResult+=(ADCH<<8);/读取转换结果 return(adcResult);int wendu(int wen) int m; m=wen*2.5;/计算传感器输出电压,mv return(m);void iniTimero() TIMSK=0X01;/T0溢出中断使能 TCCR0=0X05;/分频

15、设置为1024 TCNT0=256-F_CPU/1024*0.01;/设定定时时间为10ms#pragma interrupt_handler T0_isr:10/设定T0_isr()为中断函数,中断向量为10void T0_isr() int a; int b=0; TCNT0=256-F_CPU/1024*0.01;/重载定时器,时间10ms yancount=ADC_zhuanhuan();/读取ADC数据,读10次 count+; if(10=count)/对10次读取的数据求平均 for(a=0;a<10;a+) b+=yana; dataAD=b/10+0.5; flagT0=1; count=0; int main() int tamp;int T=0;int h,f,e;lcd_init();/lcd初始化;ADC_init();/ADC初始化;ADC_zhuanhuan();/adc转换,第一次结果不要iniTimero();/T0定时器初始化;SREG|=BIT(7);/开全局中断使能; while(1) if(1=flagT0) tamp=dataAD; T=wendu(ta

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论