关于NTC热敏电阻干扰的问题

lzz007 2010-07-26 10:02:17
大伙,有没有哪位使用过NTC热敏电阻碰到干扰的问题?我的情况是这样的,我用的单片机是PIC16F887的,AD转换使用RA0,

热敏电阻与一10K电阻串联,经低通滤波给RA0,读出温度。可是,偶尔会发现一通电RA0读取的值为零,PIC的AD模块受到干

扰,有时候连续几次开、关电源情况依旧,过一会通电温度显示又正常,百思不得其解。麻烦大家帮忙分析,谢谢!!!
...全文
864 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzz007 2010-08-02
  • 打赏
  • 举报
回复
原来是我程序的问题,刚好在整数温度的时候有这种情况出现,没判断好,想当然了,真的很不好意思,谢谢

各位费神了!
schlafenhamster 2010-08-01
  • 打赏
  • 举报
回复
热敏电阻与一10K电阻串联,经低通滤波,查查看。
lbing7 2010-07-27
  • 打赏
  • 举报
回复
感觉像是ADC的采样保持时间没给够,
dreamjack 2010-07-27
  • 打赏
  • 举报
回复
如果低通滤波电容在0.1uS,你至少在开始执行主程序10mS后再读AD值,如果更大的电容,一次类推。
dreamjack 2010-07-27
  • 打赏
  • 举报
回复
1.通常在单片机启动后,你应该等电路稳定了,再执行端口或读取AD转换;
2.你的AD转换有低通滤波电路,可能选择的电容太大,导致刚通电时,还没有来得及充到稳定的值,做一经常会为比较低的电压;
3.你软件需要采用算法,将干扰滤除。

我把我的例程贴上,看看你的软件是否有什么遗漏!

include <p16f73.inc>

ORG 0X00
NOP


START
BCF STATUS,RP0
CLRF PORTC
MOVLW B'01000001'  ;D7 D6=01 AD转换时钟频率= FOSC/8
MOVWF ADCON0  ;D5 D4 D3=000 AD转换模拟通道选择RA0/AN0
      ;D2=0 AD已完成或未进行AD D0=0关闭ADC
BSF STATUS,RP0
MOVLW B'10000111'   ;D7=1取消上拉,D6=0 INT下降沿触发,
MOVWF OPTION_REG   ;D5=0 TOCK1使用内部时钟 D4=0 TOCK1 上升沿增量
       ;D3=0用于TMR0 D2 D1 D0=1 TMR0 1:256分频
CLRF TRISC
MOVLW B'00001110'   ;D3 D2 D1 D0 1110选择RA0为模拟口。
MOVWF ADCON1    ;D7=0左对齐 ADRESL的低六位读作0
BCF STATUS,RP0


MAIN
BTFSS INTCON,T0IF   ;等待TMR0 定时溢出中断
GOTO MAIN
BCF INTCON,T0IF     ;清TMR0 定时溢出标志
BSF ADCON0,GO     ;开启A/D


WAIT
BTFSS PIR1,ADIF  ;等待A/D完成
GOTO WAIT
MOVF ADRES,W   ;A/D值从PORTC口输出显示
MOVWF PORTC
GOTO MAIN
END


hallowwar 2010-07-27
  • 打赏
  • 举报
回复
硬件方面问题的把握大。“偶尔”信息不全。
schlafenhamster 2010-07-27
  • 打赏
  • 举报
回复
复位电路有问题?
lzz007 2010-07-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lbing7 的回复:]
感觉像是ADC的采样保持时间没给够,
[/Quote]

AD采样应该是正确的,因为在不断电的情况下我换了滑动变阻器就可以读取到数据,换回NTC就不行了。发生

这种情况也是很偶然的,但作为产品就无法忍受了。

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧