当前位置:首页 > 单片机 > 单片机
[导读]这是一段利用单片机IO口作的温控程序,感温元件是NTC。功能是当温度低过某值时开始加热,随着温度上升;当高到某值时停止加热,然后开始冷却,不断重复。使用时要注意RC常数,常数过大会造成16位计数溢出,得不到正确

这是一段利用单片机IO口作的温控程序,感温元件是NTC。功能是当温度低过某值时开始加热,随着温度上升;当高到某值时停止加热,然后开始冷却,不断重复。使用时要注意RC常数,常数过大会造成16位计数溢出,得不到正确结果。程序是作产品前的一个试验程序,当时调试已通过,能作到±0.5℃。


;******************************************************
;filename: IOTestNTC.asm
;mcu: MDT2005EP
;clock: 4 MHz for EXTXT
;date: 2006/03/17
;writer: aLin
;******************************************************



;计算被测量电阻。只做比较,不作计算。
;计算公式:Rx = Rf * (Tx/Tf)
;Rx为被测电阻
;Rf为已知电阻,Rf=10K
;Tx为被测电阻对电容C放电的计数值,为16位数
;Tf为被测电阻对电容C放电的计数值,为16位数
;查温度特性表(NTC型号为:CWF2-473F-3950K,大亚科技制造):
;下限温度5摄氏度时电阻为121545.44欧,即121.54544K
;换算为:Tx/Tf=Rx/Rf=12.154544
;扩大1000倍后结果为:12154.544,约为12155,即2F76H
;上限温度8摄氏度时电阻为104712.92欧,即104.71292K
;换算为:Tx/Tf=Rx/Rf=10.471292
;扩大1000倍后结果为:10471.292,约为10471,即28E7H



;-------------------------------------------------------------------

listp=pic16c54
#i nclude"p16c5x.inc"


;定义I/O口
#definevtportb,0
#definerfportb,1
#definerxportb,2
#defineonportb,4
#defineoffportb,4
#definef0user,0



;RAM 分配
CNTEQU10H;计数器


SOU1EQU11H;四字节被除数最低位和16位商的低8位
SOU2EQU12H;被除数和16位商高8位
SOU3EQU13H;被除数和16位余数的低8位
SOU4EQU14H;四字节被除数最高位和16位余数的高8位
USEREQU15H;用户标记位


SOUEQU16H;被数低8位和积(四字节积的最低位)和RX电阻计数器低8位
SOUHEQU17H;被乘数高8位和积和RX电阻计数器高8位
RLTEQU18H;乘数低8位和积
RLTHEQU19H;乘数高8位和积(四字节积的最高位)


TEMP1EQU1AH;临时寄存器1-4
TEMP2EQU1BH
TEMP3EQU1CH
TEMP4EQU1DH


RFCNTLEQU1EH;RF电阻计数器低8位
RFCNTHEQU1FH;RF电阻计数器高8位
;---------------------------------

ORG0000h


startbcffsr,6;选择bank0
bcffsr,5
movlwb'11101111';RB4定义为输出,其余输入,PortB4为一直输出
tris06h
;---------------------------------------------------
;停止加热处理程序
;等待温度降到5摄氏度以下是,重新加热,跳到加热处理程序
;
;负温度系电阻,阻值越大,温度越低
;用5摄氏度时对应的电阻减去测出的电阻,为负数,表明实际温度已低过5摄氏度
;需加热处理
;
HOT_DOWNbcfoff;停止加热
;calld1s;延时1秒
callio_rm;调用测量电阻程序
callDUMUL;调用16位无符号乖法程序
callDUDIV;调用32位除以16位无符号除法程序

;比较商大小
;0E10 对应36K电阻,温度是31度

MOVLW2FH
MOVWFTEMP1
MOVFSOU2,W
SUBWFTEMP1,W;商高8位先减
BTFSSSTATUS,C;检查是否有借位,有借位时C=0
GOTOHOT_UP;有借位,被减数小于减数,跳到加热程序
BTFSSSTATUS,Z;无借位,查相减结果是否为0
GOTOHOT_DOWN;结果不为0,则被减数大于减数,跳到停止加热程序

MOVLW76H;商高8位相等,商低8位相减
MOVWFTEMP1
MOVFSOU1,W
SUBWFTEMP1,W
BTFSSSTATUS,C
GOTOHOT_UP
BTFSSSTATUS,Z
GOTOHOT_DOWN

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

Pt100温度传感器和Pt1000温度传感器的铂基传感器是正温度系数 (PTC) 传感器,可提供高达 500°C 的准确温度测量。在0摄氏度时Pt100是100欧,Pt1000是1000欧。

关键字: ntc 热敏电阻 pt100 温度传感器

在这篇文章中,小编将为大家带来热敏电阻的相关报道。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。

关键字: 热敏电阻 ntc 电阻

测温枪也叫测温仪,这个东西有可能对我们来说都比较陌生,它主要是应用红外测温技术提供生产生活中的温度测量,所以又被称为红外测温枪。这项技术在产品质量控制和监测、设备在线故障诊断、安全保护以及节约能源等发挥着重要作用,它以响...

关键字: 测量温度 温度计 测温仪 发热检测

Q:如果系统中的FPGA/微处理器上只剩下一个GPIO,该如何进行模拟测量?A:可以使用电压-频率转换器代替模数转换器。在关注机器健康和其他物联网(IoT)解决方案的现代应用中,随着检测功能的日趋普及,对更简单的接口以及...

关键字: GPIO 测量温度 数字接口 ADC

在科学技术高度发达的今天,各种各样的高科技出现在我们的生活中,为我们的生活带来便利,那么你知道这些高科技可能会含有的NTC热敏电阻吗?

关键字: Vishay 热敏电阻 ntc

常用的测温方案有这么几种:数字测温芯片、PT100、PT1000、热电偶、NTC等,其中NTC测温的成本是最低的,但是精度也是最低的,主要用在对测温精度要求不高的场所。下面结合自己的使用情况介绍一下NTC。

关键字: ntc 热敏电阻

NTC又被称为负温度系数热敏电阻,是一类电阻值随温度增大而减小的一种传感器电阻。

关键字: ntc 传感器

(文章来源:仪器仪表网) 红外测温仪由光学系统,光电探测器,信号放大器及信号处理。显示输出等部分组成。光学系统汇聚其视场内的目标红外辐射能量,红外能量聚焦在光电探测器上并转变为相应的电信

关键字: 红外测温仪 测量温度 配电 温度测量

什么是热敏电阻?它的工作原理是什么?一说到热敏电阻,大家都会知道是敏感元件之一。按照温度系数不同分为正温度系数热敏电阻器和负温度系数热敏电阻器。这些皮毛的知识大家都能略知一二,那么热敏电阻还有哪些技术是我们不太熟悉的呢,...

关键字: ntc ptc 热敏电阻

在启动电子设备(如开关电源(SMPS)或逆变器)时,设备会通过具有高峰值的瞬时异常电流。它被称为励磁涌流,如果没有保护,它可能破坏半导体器件或对平滑电容器的使用寿命产生有害影响。NTC热敏电阻用作ICL(励磁涌流抑制器)...

关键字: ntc smps 热敏电阻
关闭