光纤熔接 ERP

弱电论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 519|回复: 0
打印 上一主题 下一主题

[转贴] RC充放电的原理是什么?

[复制链接]
跳转到指定楼层
1#
发表于 2012-5-13 14:49:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
华为代理商
最佳答案:我们知道,电阻R 与电容C 充电时间的关系如下图:
注:Rs 为标准电阻Rt 为热敏电阻
由上图可以看出在RC 充电开始阶段,我们可以认为是近似线性的。
那么:
Tt=K*Rt*C (1)
Ts=K*Rs*C (2)
其中: K 为常数
由(1)、(2)可知充电时间的比例与R 有关,而C 无关。
Rt=(Rs*Tt)/Ts
当然,随环境温度的变化电容C 变化比较大,我们完成标准电阻和热敏电阻对同一电容的充放电在很短的时间
内,因而电容C 变化引起的误差可以消除。为了提高精度,对电容C 的选取也有关系,电容容量不能太小,也不能太大,
与传感器的标称值有关。
下面是我自己写的程序,仅着参考:
///////////////////////////////////////
RC充放电---得到NTC的阻值
电路:  p2.3(IOntc)接NTC,P2.4(IOrs)接一个1k的电子,二电阻一端连接一个10uf的电容到地
思路:
;   放电:
;   二个端口是都输出0,
;   充电:(NTC)   
;   让 IOrs 输入检测 0  当 IOrs 为高,继续检测直到为0为止
;   IOntc 输出 1 ,进行充电,并开始计时,
;   时刻检测IOrs的电平,当 IOrs 端口为高电平的时候,说明充电已经完成,并停止计时,把时间保持给t_ntc_middle和t_ntc_low
;   放电:同上
;   充电:(RS)
;   让 IOntc 输入检测 0  当 IOntc 为高,继续检测直到为0为止
;   IOrs 输出 1 ,进行充电,并开始计时,
;   时刻检测 IOntc 的电平,当 IOntc 端口为高电平的时候,说明充电已经完成,并停止计时,把时间保持给t_rs_middle和t_rs_low
;   注:这里所说的计时是根据指令的长短计时的,比如我这里一条指令为0.25US,一周为7跳指令
///////////////////////////////////////
///////////////////////////////////////
.DATA
     t_ntc_middle    ds      1   ;
     t_ntc_low       ds      1   ;
     t_rs_middle ds      1   ;
     t_rs_low        ds      1   ;
///////////////////////////////////////
.CODE
///////////////////////////////////////
rc:
///////////////////////////////////////
;放电
///////////////////////////////////////
rc_sub:
     bset    IOntcm         
     bset    IOrsm
     bclr    IOntc           ;输出 0
     bclr    IOrs
///////////////////////////////////////
     bclr    IOrsm           ;输入检测 0,为0 说明放电完全
     bts0    IOrs
     jmp $-1
///////////////////////////////////////
     bts0    f_turn          ;为谁充电
     jmp     rc_rs_add
///////////////////////////////////////
;充电:(NTC)
///////////////////////////////////////
rc_ntc_add:
     clr     t_ntc_low   
     clr     t_ntc_middle        
bset    IOntcm          ;输出 1,充电
     bset    IOntc
     incms   t_ntc_low   
     jmp     $+2
     incms   t_ntc_middle   
     bclr    IOrsm
     bts1    IOrs            ;检测1,为1 说明充电完成
     jmp     $-5
     bset    f_turn  
     jmp     rc_pro90
///////////////////////////////////////
;充电:(RS)
///////////////////////////////////////
rc_rs_add:
     bset    IOrsm           ;输出 1,充电
     bset    IOrs
     incms   t_rs_low
     jmp     $+2
     incms   t_rs_middle
     bclr    IOntcm
     bts1    IOntc           ;检测1,为1 说明充电完成
     jmp     $-5
     bclr    f_turn  
     jmp     rc_pro90
///////////////////////////////////////
rc_pro90:
     Ret
  
RC 测温的实现方法是利用电阻R 给电容C 充放电时间来测量温度的(此处的温度感测器为热敏电阻)。
用不同的电阻给电容充放电时间不一样,对RC 测量温度的精度与电阻R 和电容C 的选取有关。我们通常是选用一个标准电阻(随温度变化其阻值变化很小,可忽略不计,通常为高精度的金属膜电阻),它的阻值Rs 与温度传感器在标准大气压下、25℃时的阻值相同。当温度发生变化时,热敏电阻的阻值Rt 发生变化,那么热敏电阻Rt 给电容C 的充放电时间也发生变化。而标准电阻Rs 给电容C 的充放电时间则不发生变化。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|广告咨询|VIP注册|关于我们|联系我们|积分规则|手机版|Archiver|弱电之家论坛 ( 京ICP备11008917号-3 )

GMT+8, 2024-9-22 21:22 , Processed in 0.206971 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表