基于AVR单片机捕获中断和热敏电阻的温度测量
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
139
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved.
测控技术
田开坤等 :基于 AV R 单片机捕获中断和热敏电阻的温度测量
其中宏定义 T p = 0 ; Tt = 1 ;需要定义数组 :
A Tmega88 在 31 3 V 供 电 时 , 当 电 容 电 压 上 升 到 11 84 V时 ,如图 3 所示 ,发生捕获中断 。
图 4 捕获单元框图
4 软件设计 基于 A Tmage88 捕获中断测温程序流程图如图 5 所
图 5 程序流程图
A Tmage88 定时器初始化涉及 TCCR1B , TIMS K1 控 制寄存器的配置 ,介绍如下 :
Keywords :t hermistor ;temperat ure measurement ;AVR MCU ;capt ure interrupt
温度测量常采用热敏电阻做传感器 ,测量的方法有 R - V 转换电压测量法和 R - F 转换频率测量法 。这两种 方法的电路复杂成本高 ,并且电路中很多元器件直接影响 测量精度 。本文介绍一种类 R - F 转换频率测量温度的 方法 。 1 负温热敏电阻
R p 为 100 kΩ 的精密电阻 ; Rt 为 100 kΩ 精度为 1 %的 热敏电阻 ; C1 为 01 1 μF 的瓷片电容 。
图 2 温度测量电路原理图 其工作原理为 : 先将 PC0 ,PC1 ,CP1 都设为低电平输出 ,使 C1 完全放电。 接着将 PC1 ,CP1 设置为输入状态 , PC0 设为高电平 输出 ,通过 R p 电阻对 C1 充电 , 同时启动内部定时器从零 开始计时 。电容实际充电曲线如图 3 所示 , 当 C1 上的电 压逐步升高到 V h , CP1 检测出电压达到单片机高电平输 入门槛电压时 ,将定时器计数值捕获 ,从而测出从开始充
PSB 型负温热敏电阻由 Co , Mn , Ni 等过渡金属元素 的氧化物组成 ,经高温烧成半陶瓷 ,利用半导体毫微米的 精密加工工艺 ,采用玻璃管封装 ,耐温性好 ,可靠性高 ,反 应速度快 、灵敏度高 。他采用轴向型结构 ,便于安装 ,能承 受更高温度 ,且玻璃封装耐高低温( - 50~350 ℃) 。P T 25 E2 热敏电阻温度阻值变化曲线图如图 1 所示 。
5 结 语
本文对大庆油田有限责任公司第七采油厂变频 、无功 补偿装置的谐波电流进行了检测分析 ,运用具有良好的伸 缩 、平移特性的小波分析方法 , 对谐波进行了仿真研究 。 分析和仿真结果表明 ,小波多分辨分析法可以有效地检测 电力系统的电压和电流中的谐波含量并分解出基波信号 和谐波信号 ,故其可以应用于谐波的检测和补偿 。
uint16 t timeL [ 2 ] ,time H[ 2 ] ,counter[ 2 ] 当测量时间超过定时器最长计时时 ,定时器会溢出 , 定时器 T1 溢出中断函数代码如下 :
SIGNAL ( SIG OV ERFL OW1)
{ if (flag = = Tp) co unter[ Tp ] + + ; else co unter[ Tt ] + + ;
放电 。 随后将 PC0 ,CP1 设置为输入状态 , PC1 设为高电平
输出 ,通过 Rt 电阻对 C1 充电 , 过程同上 , 得到时间 Tt 。
测试 ·测量 ·自动化
示 ,包括主程序流程图 ,捕获中断流程图和定时溢出中断 流程图 。
图 3 电容充电曲线示波器截图
根据电容电压公式 :
T
V c = V 0 ( 1 - e ) - RC
可以得到 : T p = Tt , 即 :
Rp
Rt
Rt
=
Tt Tp
R
p
通过单片机计算得到热敏电阻 Rt 的阻值 ,并通过查
表法可以得到温度值 。
从上述可以看出 ,该测温电路的误差来源于这几个方 面 :单片机的定时器精度 ,精密电阻 R p 的精度 ,热敏电阻 Rt 的精度 ,而与单片机的输出电压值 、门槛电压值 、电容 精度无关 。因此 ,适当选取热敏电阻 Rt 和精密电阻 R p 的 精度 ,单片机的工作频率够高 ,就可以得到较好的测温 精度 。
参 考 文 献
[ 1 ] 吴华程. AV R 单片机捕获中断实现红外线解码 [J ] . 国外电 子元器件 ,2005 (8) :21 - 23.
[ 2 ] 傅民仓 ,冯立杰 ,袁俊飞. 基于 PIC 单片机的热敏电阻数字 化方法[J ] . 现代电子技术 ,2006 ,29 (5) :76 - 78.
ICNC1 :输入捕捉噪声抑制器 “, 1”启用 ; ICES1 :捕捉触发沿选择 “, 1”上升沿 “, 0”下降沿 ; CS1[ 2 :0 ] :时钟选择 ,有多种预分频时钟可供选择 ; ICIE1 : T/ C1 输入捕捉中断使能 ; TOIE1 : T/ C1 溢出中断使能 。 定时器 T1 初始化代码如下 ( AVR - GCC) :
图 1 热敏电阻 P T - 25 E2 温度阻值曲线图 收稿日期 :2007 08 17 138
2 AVR 单片机测温原理 温度测量电路如图 2 所示 , 标准电阻 R p , 热敏电阻
Rt , 电容 C1 与 AV R 单片机三个引脚相连 。其中 PC0 ,PC1 为一般普通 IO 引脚 ,CP1 为捕获触发输入引脚 ,可以设定 上升沿触发捕获中断 。
(上接第 135 页) 图 6 为经 db N 小波重构后的谐波波形及重构误差 ,由 图 6 可知,重构后的波形与原波形误差很小,仅为 91 671 0e - 8 ,重构效果较好 。
图 6 经 db N 小波重构后的波形及误差 由于小波分析是基于多分辨率分析的信号处理理论 , 因而在上述谐波检测仿真中 ,不同的尺度具有不同的时间 和频率分辨率 ,因而小波分解能将原始信号的不同频率成 分分开 ,所以谐波可以检测出来 。
差 ,可以 将 两 摄 氏 度 之 间 取 线 性 计 算 , 这 样 可 以 得 到
01 1 ℃的分辨率 。
5 结 语
笔者应用该方法已设计出一款温度计 ,在范围 - 10~ 80 ℃时 ,分辨率达到 01 1 ℃,误差在 01 5 ℃以内 。本文充 分利用了 AVR 的捕获功能 ,使得电路简洁 ,成本低廉 。
void timer1 init (void) { TCCR1B = BV ( ICES1) | BV (CS10) ;
/ / 上升沿触发 ,时钟不分频 TIMS K1 = BV ( ICIE1) | BV ( TO IE1) ;
/ / 捕获中断和溢出中断允许 }
捕获中断函数代码如下 :
SIGNAL ( SIG IN PU T CA P TU R E1) { if (flag = = Tp) { timeL [ Tp ] = ICR1 ; time H[ Tp ] = co unter[ Tp ] ; el se { timeL [ Tt ] = ICR1 ; time H[ Tt ] = counter[ Tt ] ; } flag = 0xff ; } }
3 AVR 捕获
本文以 AVR 系列中高性价比的 A Tmage88 为例 ,利 用 16 位时钟单元 T/ C1 的捕获中断来实现电容充电时间 的测量 ,单片机时钟选择 8 M Hz 。输入捕获单元方框图如 图 4所示 。当引脚 ICP1 上的逻辑电平 ( 事件) 发生了变 化 ,并且这个电平变化为边沿检测器所证实 ,输入捕捉被 激发 :16 位 的 TCN T1 数 据 被 复 制 到 输 入 捕 捉 寄 存 器 ICR1 ,同时输入捕捉标志位 ICF1 置位 。如果此时 ICIE1 为 1 ,输入捕捉标志将产生输入捕获中断 。
}
完成一次测量后 ,根据
Rt
=
Tt Tp
R
p
,得
:
Rt
=
time H[ Tt ] time H[ T p ]
×65 536 ×65 536
+ +
timeL [ time可以得到测量的温度 。查表温度
间隔一般为 1 ℃,如果忽略热敏电阻 1 ℃以内的非线性误
[ 3 ] AVR 8 - bit Microcont roller Data Sheet : en mega88. pdf [ Z] . A TM EL Corporatio n ,2004.
[ 4 ] 芝浦电子. P T - 25 E2 - H1 Data sheet [ Z] . 2000.
作者简介 田开坤 男 ,1978 年出生 ,湖北五峰县人 ,讲师 。主要从事电子 、通信与自动控制技术方向的研究 。
关键词 :热敏电阻 ;温度测量 ;AV R 单片机 ;捕获中断 中图分类号 : TP391 文献标识码 :B 文章编号 :1004 373X(2008) 03 138 03
Temperature Measurement Based on AVR Capture Interrupt and Thermistor
TIAN Kaikun ,XU Haixia
( Elect rician and Elect ronics Experiment Center , Hubei Normal University , Huangshi ,435002 ,China)
Abstract : The paper int roduces a met hod of measuring t hermistor temperat ure t he similar to R - F co nvert f requency met hod ,high level or low level outp ut f ro m AV R MCU charges up capacitance t hrough t hermistor and standard resistance , o ut side inp ut capt ure interrupt measures charged time ,and calculates resistance value of t hermistor according to charged time and t he value of standard resistance ,get temperat ure value by means of table loo k - up . It discusses t he measuring t heorem , gives main p rogram flowchart and key code. And t his met hod is successf ully launched in designing t hermometer ,realized lower - co st ,high - p recision temperat ure measurement .
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved.
《现代电子技术》2008 年第 3 期总第 266 期
电到 CP1 转变为高电平的时间 T p 。 再次将 PC0 ,PC1 ,CP1 都设为低电平输出 ,使 C1 完全
测控技术
田开坤等 :基于 AV R 单片机捕获中断和热敏电阻的温度测量
基于 AVR 单片机捕获中断和热敏电阻的温度测量
田开坤 ,徐海霞
(湖北师范学院 电工电子实验教学中心 湖北 黄石 435002)
摘 要 :介绍一种类 R - F 转换频率测量温度的方法 ,由 AVR 单片机引脚输出的高低电平通过热敏电阻和标准电阻对 电容充放电 ,并由外部输入捕获中断测量充电时间 ,然后单片机根据测得的时间和标准电阻阻值计算出热敏电阻的阻值 ,查 表得到温度值 。详细介绍了该方法的测量原理 ,给出了主要程序流程图和关键程序代码 ,并在一款温度计的设计中成功运 用了该方法 ,实现低成本 、高精度的温度测量 。
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved.
测控技术
田开坤等 :基于 AV R 单片机捕获中断和热敏电阻的温度测量
其中宏定义 T p = 0 ; Tt = 1 ;需要定义数组 :
A Tmega88 在 31 3 V 供 电 时 , 当 电 容 电 压 上 升 到 11 84 V时 ,如图 3 所示 ,发生捕获中断 。
图 4 捕获单元框图
4 软件设计 基于 A Tmage88 捕获中断测温程序流程图如图 5 所
图 5 程序流程图
A Tmage88 定时器初始化涉及 TCCR1B , TIMS K1 控 制寄存器的配置 ,介绍如下 :
Keywords :t hermistor ;temperat ure measurement ;AVR MCU ;capt ure interrupt
温度测量常采用热敏电阻做传感器 ,测量的方法有 R - V 转换电压测量法和 R - F 转换频率测量法 。这两种 方法的电路复杂成本高 ,并且电路中很多元器件直接影响 测量精度 。本文介绍一种类 R - F 转换频率测量温度的 方法 。 1 负温热敏电阻
R p 为 100 kΩ 的精密电阻 ; Rt 为 100 kΩ 精度为 1 %的 热敏电阻 ; C1 为 01 1 μF 的瓷片电容 。
图 2 温度测量电路原理图 其工作原理为 : 先将 PC0 ,PC1 ,CP1 都设为低电平输出 ,使 C1 完全放电。 接着将 PC1 ,CP1 设置为输入状态 , PC0 设为高电平 输出 ,通过 R p 电阻对 C1 充电 , 同时启动内部定时器从零 开始计时 。电容实际充电曲线如图 3 所示 , 当 C1 上的电 压逐步升高到 V h , CP1 检测出电压达到单片机高电平输 入门槛电压时 ,将定时器计数值捕获 ,从而测出从开始充
PSB 型负温热敏电阻由 Co , Mn , Ni 等过渡金属元素 的氧化物组成 ,经高温烧成半陶瓷 ,利用半导体毫微米的 精密加工工艺 ,采用玻璃管封装 ,耐温性好 ,可靠性高 ,反 应速度快 、灵敏度高 。他采用轴向型结构 ,便于安装 ,能承 受更高温度 ,且玻璃封装耐高低温( - 50~350 ℃) 。P T 25 E2 热敏电阻温度阻值变化曲线图如图 1 所示 。
5 结 语
本文对大庆油田有限责任公司第七采油厂变频 、无功 补偿装置的谐波电流进行了检测分析 ,运用具有良好的伸 缩 、平移特性的小波分析方法 , 对谐波进行了仿真研究 。 分析和仿真结果表明 ,小波多分辨分析法可以有效地检测 电力系统的电压和电流中的谐波含量并分解出基波信号 和谐波信号 ,故其可以应用于谐波的检测和补偿 。
uint16 t timeL [ 2 ] ,time H[ 2 ] ,counter[ 2 ] 当测量时间超过定时器最长计时时 ,定时器会溢出 , 定时器 T1 溢出中断函数代码如下 :
SIGNAL ( SIG OV ERFL OW1)
{ if (flag = = Tp) co unter[ Tp ] + + ; else co unter[ Tt ] + + ;
放电 。 随后将 PC0 ,CP1 设置为输入状态 , PC1 设为高电平
输出 ,通过 Rt 电阻对 C1 充电 , 过程同上 , 得到时间 Tt 。
测试 ·测量 ·自动化
示 ,包括主程序流程图 ,捕获中断流程图和定时溢出中断 流程图 。
图 3 电容充电曲线示波器截图
根据电容电压公式 :
T
V c = V 0 ( 1 - e ) - RC
可以得到 : T p = Tt , 即 :
Rp
Rt
Rt
=
Tt Tp
R
p
通过单片机计算得到热敏电阻 Rt 的阻值 ,并通过查
表法可以得到温度值 。
从上述可以看出 ,该测温电路的误差来源于这几个方 面 :单片机的定时器精度 ,精密电阻 R p 的精度 ,热敏电阻 Rt 的精度 ,而与单片机的输出电压值 、门槛电压值 、电容 精度无关 。因此 ,适当选取热敏电阻 Rt 和精密电阻 R p 的 精度 ,单片机的工作频率够高 ,就可以得到较好的测温 精度 。
参 考 文 献
[ 1 ] 吴华程. AV R 单片机捕获中断实现红外线解码 [J ] . 国外电 子元器件 ,2005 (8) :21 - 23.
[ 2 ] 傅民仓 ,冯立杰 ,袁俊飞. 基于 PIC 单片机的热敏电阻数字 化方法[J ] . 现代电子技术 ,2006 ,29 (5) :76 - 78.
ICNC1 :输入捕捉噪声抑制器 “, 1”启用 ; ICES1 :捕捉触发沿选择 “, 1”上升沿 “, 0”下降沿 ; CS1[ 2 :0 ] :时钟选择 ,有多种预分频时钟可供选择 ; ICIE1 : T/ C1 输入捕捉中断使能 ; TOIE1 : T/ C1 溢出中断使能 。 定时器 T1 初始化代码如下 ( AVR - GCC) :
图 1 热敏电阻 P T - 25 E2 温度阻值曲线图 收稿日期 :2007 08 17 138
2 AVR 单片机测温原理 温度测量电路如图 2 所示 , 标准电阻 R p , 热敏电阻
Rt , 电容 C1 与 AV R 单片机三个引脚相连 。其中 PC0 ,PC1 为一般普通 IO 引脚 ,CP1 为捕获触发输入引脚 ,可以设定 上升沿触发捕获中断 。
(上接第 135 页) 图 6 为经 db N 小波重构后的谐波波形及重构误差 ,由 图 6 可知,重构后的波形与原波形误差很小,仅为 91 671 0e - 8 ,重构效果较好 。
图 6 经 db N 小波重构后的波形及误差 由于小波分析是基于多分辨率分析的信号处理理论 , 因而在上述谐波检测仿真中 ,不同的尺度具有不同的时间 和频率分辨率 ,因而小波分解能将原始信号的不同频率成 分分开 ,所以谐波可以检测出来 。
差 ,可以 将 两 摄 氏 度 之 间 取 线 性 计 算 , 这 样 可 以 得 到
01 1 ℃的分辨率 。
5 结 语
笔者应用该方法已设计出一款温度计 ,在范围 - 10~ 80 ℃时 ,分辨率达到 01 1 ℃,误差在 01 5 ℃以内 。本文充 分利用了 AVR 的捕获功能 ,使得电路简洁 ,成本低廉 。
void timer1 init (void) { TCCR1B = BV ( ICES1) | BV (CS10) ;
/ / 上升沿触发 ,时钟不分频 TIMS K1 = BV ( ICIE1) | BV ( TO IE1) ;
/ / 捕获中断和溢出中断允许 }
捕获中断函数代码如下 :
SIGNAL ( SIG IN PU T CA P TU R E1) { if (flag = = Tp) { timeL [ Tp ] = ICR1 ; time H[ Tp ] = co unter[ Tp ] ; el se { timeL [ Tt ] = ICR1 ; time H[ Tt ] = counter[ Tt ] ; } flag = 0xff ; } }
3 AVR 捕获
本文以 AVR 系列中高性价比的 A Tmage88 为例 ,利 用 16 位时钟单元 T/ C1 的捕获中断来实现电容充电时间 的测量 ,单片机时钟选择 8 M Hz 。输入捕获单元方框图如 图 4所示 。当引脚 ICP1 上的逻辑电平 ( 事件) 发生了变 化 ,并且这个电平变化为边沿检测器所证实 ,输入捕捉被 激发 :16 位 的 TCN T1 数 据 被 复 制 到 输 入 捕 捉 寄 存 器 ICR1 ,同时输入捕捉标志位 ICF1 置位 。如果此时 ICIE1 为 1 ,输入捕捉标志将产生输入捕获中断 。
}
完成一次测量后 ,根据
Rt
=
Tt Tp
R
p
,得
:
Rt
=
time H[ Tt ] time H[ T p ]
×65 536 ×65 536
+ +
timeL [ time可以得到测量的温度 。查表温度
间隔一般为 1 ℃,如果忽略热敏电阻 1 ℃以内的非线性误
[ 3 ] AVR 8 - bit Microcont roller Data Sheet : en mega88. pdf [ Z] . A TM EL Corporatio n ,2004.
[ 4 ] 芝浦电子. P T - 25 E2 - H1 Data sheet [ Z] . 2000.
作者简介 田开坤 男 ,1978 年出生 ,湖北五峰县人 ,讲师 。主要从事电子 、通信与自动控制技术方向的研究 。
关键词 :热敏电阻 ;温度测量 ;AV R 单片机 ;捕获中断 中图分类号 : TP391 文献标识码 :B 文章编号 :1004 373X(2008) 03 138 03
Temperature Measurement Based on AVR Capture Interrupt and Thermistor
TIAN Kaikun ,XU Haixia
( Elect rician and Elect ronics Experiment Center , Hubei Normal University , Huangshi ,435002 ,China)
Abstract : The paper int roduces a met hod of measuring t hermistor temperat ure t he similar to R - F co nvert f requency met hod ,high level or low level outp ut f ro m AV R MCU charges up capacitance t hrough t hermistor and standard resistance , o ut side inp ut capt ure interrupt measures charged time ,and calculates resistance value of t hermistor according to charged time and t he value of standard resistance ,get temperat ure value by means of table loo k - up . It discusses t he measuring t heorem , gives main p rogram flowchart and key code. And t his met hod is successf ully launched in designing t hermometer ,realized lower - co st ,high - p recision temperat ure measurement .
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved.
《现代电子技术》2008 年第 3 期总第 266 期
电到 CP1 转变为高电平的时间 T p 。 再次将 PC0 ,PC1 ,CP1 都设为低电平输出 ,使 C1 完全
测控技术
田开坤等 :基于 AV R 单片机捕获中断和热敏电阻的温度测量
基于 AVR 单片机捕获中断和热敏电阻的温度测量
田开坤 ,徐海霞
(湖北师范学院 电工电子实验教学中心 湖北 黄石 435002)
摘 要 :介绍一种类 R - F 转换频率测量温度的方法 ,由 AVR 单片机引脚输出的高低电平通过热敏电阻和标准电阻对 电容充放电 ,并由外部输入捕获中断测量充电时间 ,然后单片机根据测得的时间和标准电阻阻值计算出热敏电阻的阻值 ,查 表得到温度值 。详细介绍了该方法的测量原理 ,给出了主要程序流程图和关键程序代码 ,并在一款温度计的设计中成功运 用了该方法 ,实现低成本 、高精度的温度测量 。