



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于 ATMEGA88的红外测温仪作品采用 ATMEL公司的 ATMGEA88 作为 MCU,部有 8K FLASH,1kram 。工作在部8M RC振荡下,耗电仅为 2MA 左右。采用 RISC指令集的 AVR 核心,运算速度大大超过传统的 51 单片机。部带有 3 个定时器, 8 路 10 位 AD(模数转换器) ,串口,硬件 SPI,方便使用。大批量采购价格目前由于炒货的原因涨价到 12RMB。(具体问题可以搜索下, 网上吹捧得很多)推荐你看一下中文的 PDF,到处都有下载的。采用这块芯片主要来说就有一点,比 51 先进,功耗低,带 AD,而且外部不需要加晶振。使用一块 LCD5110
2、手机屏作为显示设备,可以显示输出电压以及当前状态。液晶屏参数为 72*48 ,点阵式,使用一个驱动库作为支持,方便开发,工作在 3.3V 电压下。耗电极低,小于 1MA ,背光耗电为 20MA 。使用一片 LDO(低压差线性稳压源)作为系统电源, LM1117-3.3V ,输出电压为 3.3V,最大电流 500MA以下为单片机的复位电路和烧录程序用的接口使用 OTP-538U红外传感器,该传感器是一种红外线感应型的温度探测器。主要工作原理是利用红外线的波长在硅片上产生相应的电压, 根据检测到的电压不同来检测不同的温度。 由于只要是发热的光源就会辐射红外线, 所以可以对温度进行非接触式的检测。
3、传感器由一个热敏电阻和传感器部分组成。传感器部分根据外部的温度产生相应的电压,而热敏电阻根据外部温度不同, 电阻值产生变化, 由此来补充因为外界环境对传感器的影响, 因此可以做到比较高的精度。价格为 RMB40 每颗,以下是接口电路下表是温度与电压输出的比例下表是热敏电阻的变化比率由于这两个值变化很难算。 。应用电路上都是 4 个电阻做的,而且没有电压偏移和温度的关系。所以我直接舍弃了温度补偿。 。这个图的电阻值我完全计算不出来。泪流满面。采用 TI 公司的仪表放大器INA114,采用仪表放大器最大的好处是增加了输入阻抗,而且放大倍数比较好调整, 高 CMRR,而且噪声极低, 最关键的是, 输
4、入失调电压小。 价格为 RMB32。以下是仪放的基本参数LOW OFFSET VOLTAGE: 50V maxLOW DRIFT: 0.25V/ C maxLOW INPUT BIAS CURRENT: 2nA maxHIGH COMMON-MODE REJECTION:115dB minINPUT OVER-VOLTAGE PROTECTION:40VWIDE SUPPLY RANGE:2.25 to18VLOW QUIESCENT CURRENT: 3mA max当 R5=100 时,放大倍数为500 倍。 G=50K/R5。运放为双电源运放,所以提供了双电源。放大后的电压大概为75MV(
5、 26 度),145MV( 37 度)。由于没有准确校准,所以必定有偏差。采用美信公司的反相电荷泵芯片MAX889T 作为负向电源的输出。最大输出电流为200MA ,可以满足运放的需求,留有足够的余量。电荷泵工作在2M 开关频率下, 只需要 1UF 的电容就可以工作。不需要外加电感,最大工作电压为5.5V ,漏电流为20MA 。 RMB20 一个。软件流程图系统初始化屏幕初始化采集运放放大后的输入电压计算当前温度更新温度显示程序带注释#include <mega88.h>#include "lcd5110.h"#include <delay.h>fl
6、oat wendu;/ 定义 float 型的函数保存温度,方便计算小数#define FIRST_ADC_INPUT 5#define LAST_ADC_INPUT 5unsigned int adc_dataLAST_ADC_INPUT-FIRST_ADC_INPUT+1; #define ADC_VREF_TYPE 0xC0/AD 初始化,时钟62.5K,部 1.1V 基准,采用自动扫描模式,扫描通道AD 通道 5/ ADC interrupt service routine/ with auto input scanninginterrupt ADC_INT void adc_isr(
7、void)static unsigned char input_index=0;/ Read the AD conversion result adc_datainput_index=ADCW;/ Select next ADC inputif (+input_index > (LAST_ADC_INPUT-FIRST_ADC_INPUT)input_index=0;ADMUX=(FIRST_ADC_INPUT | (ADC_VREF_TYPE & 0xff)+input_index;/ Delay needed for the stabilization of the ADC
8、input voltage delay_us(10);/ Start the AD conversionADCSRA|=0x40;/ Declare your global variables herevoid main(void)/ 系统初始化/ Declare your local variables here/ Crystal Oscillator division factor: 1 #pragma optsize-CLKPR=0x80;CLKPR=0x00;#ifdef _OPTIMIZE_SIZE_ #pragma optsize+ #endif/ Input/Output Por
9、ts initialization/ Port B initialization/ Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In/ State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0x00;DDRB=0xff;/ Port C initialization/ Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In/ Sta
10、te6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00;DDRC=0x00;/ Port D initialization/ Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In/ State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0x00;DDRD=0x00;/ Timer/Counter 0 initializa
11、tion/ Clock source: System Clock/ Clock value: Timer 0 Stopped/ Mode: Normal top=FFh/ OC0A output: Disconnected/ OC0B output: DisconnectedTCCR0A=0x00;TCCR0B=0x00;TCNT0=0x00;OCR0A=0x00;OCR0B=0x00;/ Timer/Counter 1 initialization/ Clock source: System Clock/ Clock value: Timer1 Stopped/ Mode: Normal t
12、op=FFFFh/ OC1A output: Discon./ OC1B output: Discon./ Noise Canceler: Off/ Input Capture on Falling Edge/ Timer1 Overflow Interrupt: Off/ Input Capture Interrupt: Off/ Compare A Match Interrupt: Off/ Compare B Match Interrupt: Off TCCR1A=0x00;TCCR1B=0x00;TCNT1H=0x00;TCNT1L=0x00;ICR1H=0x00;ICR1L=0x00
13、;OCR1AH=0x00;OCR1AL=0x00;OCR1BH=0x00;OCR1BL=0x00;/ Timer/Counter 2 initialization/ Clock source: System Clock/ Clock value: Timer2 Stopped/ Mode: Normal top=FFh/ OC2A output: Disconnected/ OC2B output: Disconnected ASSR=0x00;TCCR2A=0x00;TCCR2B=0x00;TCNT2=0x00;OCR2A=0x00;OCR2B=0x00;/ External Interru
14、pt(s) initialization/ INT0: Off/ INT1: Off/ Interrupt on any change on pins PCINT0-7: Off/ Interrupt on any change on pins PCINT8-14: Off/ Interrupt on any change on pins PCINT16-23: Off EICRA=0x00;EIMSK=0x00;PCICR=0x00;/ Timer/Counter 0 Interrupt(s) initialization/ Timer/Counter 1 Interrupt(s) init
15、ialization TIMSK1=0x00;/ Timer/Counter 2 Interrupt(s) initialization TIMSK2=0x00;/ Analog Comparator initialization/ Analog Comparator: Off/ Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80;ADCSRB=0x00;/ ADC initialization/ ADC Clock frequency: 1000.000 kHz/ ADC Voltage Reference: I
16、nt., cap. on AREF/ ADC Auto Trigger Source: Free Running/ Digital input buffers on ADC0: On, ADC1: On, ADC2: On, ADC3: On/ ADC4: On, ADC5: OnDIDR0=0x00;ADMUX=FIRST_ADC_INPUT | (ADC_VREF_TYPE & 0xff);ADCSRA=0xEF;ADCSRB&=0xF8;LCD_init();/ 液晶初始化PORTB.5=1;/ 打开背光/ Global enable interrupts #asm("sei")while (1)/LCD_write_6_8string(0,0,"");/ LCD_write_number(24,0,adc_data0);wendu=adc_data0;/ 采集电压wendu=wendu/ 6+12;/ 计算温度LCD_write_6_8str
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 考研网络平台创业计划书
- 2025年智能家居能源管理系统的节能效果与优化策略报告
- 拆除改装合同协议书模板
- 兽医诊疗实训报告
- 4.3探索三角形全等的条件课件 -2024-2025学年北师大版数学七年级下册
- 7《纳米技术就在我们身边》课件-2024-2025学年四年级下册语文统编版
- 拓展培训机构哪家好002
- 中国紧急继动阀行业市场规模及未来投资方向研究报告
- 贵阳展示展览柜项目可行性研究报告-图文
- 数据中心建设与运营项目可行性研究报告
- 潜水主题素材课件
- 三供一业移交政策规定
- 小班活动学情分析
- 风电施工安全生产事故案例汇编(第一期)
- 固定资产使用与维护制度
- 黑龙江三支一扶考试笔试真题2023
- (正式版)JBT 14694-2024 电气绝缘用合成有机酯与结构材料的相容性试验方法
- MOOC 工程制图-重庆大学 中国大学慕课答案
- 银川市安置房买卖合同合集3篇
- 男西裤结构制图课件
- 道观行业分析
评论
0/150
提交评论