196 基于单片机热敏PT100温度采集系统设计

实验要求

使用热敏电阻之类的温度传感器件(如PT100),将被测温度变化的电压或电流采集下来,进行A/D转换后,单片机中进行数据的处理,在显示器上将被测温度显示出来。

设计思路

由于这次的温度测量用的是热敏电阻,输出的是模拟量,怎么才能获得它的电压呢?

我们采用的恒流源的方式获取热敏电阻两端电压,再利用数学关系求得温度值,并显示出来。

完整版 电路图和程序代码 下载地址

https://pan.baidu.com/s/1pgr9myFxReVX9CedGQk7SQ?pwd=8888

部分代码展示

#include <reg52.h>
#include<absacc.h>
#define uint unsigned int
#define uchar unsigned char

sbit OE  = P1^0;
sbit EOC = P1^1;
sbit ST  = P1^2;
sbit CLK = P1^3;

sbit RS=P2^0;
sbit RW=P2^1;
sbit E=P2^2;

#define LCD P0
uint s1,s2,s3,i,j;

uchar code tab[]="TEM:";

void delay(uint z)//延时函数
{ 
  uint x,y;
    for (x=z;x>0;x--)
     for(y=110;y>0;y--);

}
 write_com(uchar com)//写命令
{
  RS=0;
  RW=0;
  E=1;
  LCD=com;
  delay(10);
  E=0;
 
}
write_data(uchar dat)//写数据
{
  RS=1;
  RW=0;
  E=1;
  LCD=dat;
  delay(10); 
  E=0;

}

void Display(uchar x)//显示函数
{ 
  float v,r;
  long int t,nt;
  v=(float)x*0.7/256+1.3;//求得电压值
  r=(v/0.01423)*10;
  t=((int)r-1000)*2.551;//求得电压
  nt=-t;

        
    for(i=0;i<4;i++)
    {
     write_com(0x80+0x03+i);
     write_data(tab[i]);
	}	   
      if(nt>0)
     {
      s1=nt/100;
      s2=nt%100/10;
      s3=nt%10;
       
      write_com(0x80+0x03+0x05);
	  write_data('-');}
      if(nt<=0)
     {s1=t/100;
      s2=t%100/10;
      s3=t%10;
      write_com(0x80+0x03+0x05);
	  write_data('+');}
     write_com(0x80+0x03+0x06);
	 write_data(0x30+s1);	
     write_com(0x80+0x03+0x07);
	 write_data(0x30+s2);
    write_com(0x80+0x03+0x08);
	 write_data('.');
     write_com(0x80+0x03+0x09);
	 write_data(0x30+s3);	
     write_com(0x80+0x03+0x0a);
	 write_data('C');
       
     

}

 完整版 电路图和程序代码 下载地址

https://pan.baidu.com/s/1pgr9myFxReVX9CedGQk7SQ?pwd=8888

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值