基于AVR单片机捕获中断和热敏电阻的温度测量
通过单片机计算得到热敏电阻Rt的阻值,并通过查表法可以得到温度值。
从上述可以看出,该测温电路的误差来源于这几个方面:单片机的定时器精度,精密电阻Rp的精度,热敏电阻Rt的精度,而与单片机的输出电压值、门槛电压值、电容精度无关。因此,适当选取热敏电阻Rt和精密电阻Rp的精度,单片机的工作频率够高,就可以得到较好的测温精度。
3 AVR捕获
本文以AVR系列中高性价比的ATmage88为例,利用16位时钟单元T/C1的捕获中断来实现电容充电时间的测量,单片机时钟选择8 MHz。输入捕获单元方框图如图4所示。当引脚ICP1上的逻辑电平(事件)发生了变化,并且这个电平变化为边沿检测器所证实,输入捕捉被激发:16位的TCNT1数据被复制到输入捕捉寄存器ICR1,同时输入捕捉标志位ICF1置位。如果此时ICIE1为1,输入捕捉标志将产生输入捕获中断。
![](http://editerupload.eepw.com.cn/fetch/20130926/171110_2_0.jpg)
ATmega88在3.3 V供电时,当电容电压上升到1.84 V时,如图3所示,发生捕获中断。
4 软件设计
基于ATmage88捕获中断测温程序流程图如图5所示,包括主程序流程图,捕获中断流程图和定时溢出中断流程图。
![](http://editerupload.eepw.com.cn/fetch/20130926/171110_2_1.jpg)
ATmage88定时器初始化涉及TCCR1B,TIMSK1控制寄存器的配置,介绍如下:
![](http://editerupload.eepw.com.cn/fetch/20130926/171110_2_2.jpg)
ICNC1:输入捕捉噪声抑制器,“1”启用;
ICES1:捕捉触发沿选择,“1”上升沿,“0”下降沿;
CS1[2:0]:时钟选择,有多种预分频时钟可供选择;
ICIE1:T/C1输入捕捉中断使能;
TOIE1:T/C1溢出中断使能。
![](https://webstorage.eepw.com.cn/images/2014/m/wx.png)
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码