基于TMP04的PIC单片机测温设计
号的特点,可以利用CCP模块分别测量出TMP04输出信号的高电平脉宽T1和低脉宽T2,然后间接算出信号的占空比,从而得到TMP04输出的温度信息。详细的程序流程图如图4所示。 与其它单片机不同,PIC单片机的RB4-RB7端口具有输入电平变化中断功能,当RB4-RB7任意一个引脚上的输入电平发生变化(由高变低或由低变高)时,都可以引起CPU中断,执行中断处理程序。因此,可以将TMP04的输出信号输入RB4,当输入RB4的信号发生跳变时,利用RB4的电平变换中断调用中断处理程序分别对信号高低电平的脉宽进行测量,从而间接算出信号的占空比,最终得到TMP04输出的温度信息。程序流程图如图5所示。 由外部中断INT实现与由RB端口电平变化中断实现的设计方案类似,都是由单片机响应电平变化产生中断,再通过中断服务程序计算高低脉宽,从而得到TMP04输出信号的占空比和所携带的温度信息。所以由外部中断INT实现和由RB端口电平变化中断实现程序类似,只是将中断源改为INT0(INT1,INT2均可)中断,使能INT0中断使能位INT0IE,判断INT0中断标志位INT0IF,由于INT0输入为RB0引脚,上例中设RB0为输入,并由INTEDG0判断高低电平即可,注意要启动RB口的弱上拉功能,其总体的程序流程程图类似图5。 4 实验数据对比 利用简单的电路及以上软件程序在室温为24.1℃时,笔者用三种方法测量温度,为了得到更好的精度,每种分别设计了泄编和C评议二种测温程序,其结果与平均值如表1所示。 5 结束语 设计基于PWM模式输出的数字式温度传感器的测温系统时,关键是对传感器输出的脉冲信号高低电平脉宽的测量。由于测量脉宽是由定时器在高电平(低电平)期间计数实现的,所以单片机的指令周期将直接影响到测量的精度,指令周期越短精度越高。但是如果指令周期短而晶振频率高,将会引入高频干扰,所以晶振要根据系统实现情况选取。此外还要注意PIC单片机定时器预分频比的设定,应在保证测量传感器信号脉宽进不会发生溢出的情况下使分频比最小,这样有利于提高测量精度。
3.2 由RB端口电平变化中断实现
3.3 由外部中断INT实现
表1 测试结果与平均值方 法 测 温 结 果 平均值 汇编程序 C程序 CCP捕捉模块 23.9 23.9 23.9 RB电平变化中断 24.5 24.1 24.3 INT0外部中断 24.4 24.4 24.4
数字式温度传感器 PCI单片机 TMP04 PWM 相关文章:
- PIC单片机数字式测温计设计及仿真(11-28)
- 基于DSP的磁流变阻尼器的控制方法(04-14)
- 用DSP56F805 PWM模块输出高频正弦波(05-25)
- 一种基于DSP的新型单相PWM算法研究(08-14)
- 基于DSP的自动避障小车(04-05)
- 基于DSP的逆变电源控制系统研究(04-28)