【官方微信小程序】
香港齐芯科技有限公司
主营产品:单片机、触摸IC、方案开发
认证过期

企业资料

普通商铺

香港齐芯科技有限公司

联系人:唐生(销售经理)

   

固 话:0852-31757377

手 机:13392865829

产品搜索

充放电程序写法

充放电的原理和硬件

 1、RC 充放电的原理和硬件

我们知道,电阻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 的充放电时间则不发生变化。

详细请咨询唐生:13392865829

内容声明:
1、页面所展示的企业/产品信息均来自网络114企业用户自行发布,其真实性、准确性和合法性均由企业用户负责。
2、网络114提醒您购买产品/服务前注意谨慎核实,如您对产品/服务的标题、价格、详情等任何信息有任何疑问的,请在购买前通过电话/QQ/微信等沟通确认。
3、网络114提醒您所有预付定金或付款至个人账户的行为,均存在诈骗风险,请提高警惕。
4、如您发现页面内有任何违法/侵权信息,请立即向网络114举报并提供有效线索。