基于51单片机铂电阻PT100温度计程序设计与仿真,使用用铂热电阻PT100作为温度传感器,用LM324作为放大电路、ADC0804模数转换电路将其随被测温度变化的电压信号采集下来送单片机进行处理,将被测温度数据送4位一体共阴数码管显示器上显示出来。温度测量范围:-50度到200度。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
基于51单片机铂电阻PT100温度计程序设计与仿真
#include <REGX51.H>
#include <intrins.h>
#define Disdata P0
#define discan P2
sbit adrd=P3^7; //IO口定义
sbit adwr=P3^6;
sbit csad=P3^4;
sbit DIN=P0^7; //LED小数点控制
unsigned char j,k,ad_data,t;
unsigned char dis[4]={0x00,0x00,0x00,0x00};
unsigned char code dis_7[12]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x40};
unsigned char code scan_con[4]={0xfe,0xfd,0xfb,0xf7}; // 列扫描控制字
void delay(unsigned int t)
{
for(;t>0;t--)
{
;
}
} //11微秒延时函数
void scan()
{
char k;
for(k=0;k<4;k++) //四位LED扫描控制
{
Disdata=dis_7[dis[k]];
if(k==1)
{
DIN=1; //加入小数点
}
discan=scan_con[k];
delay(90);
discan=0xff;
}
}
void ad0804()
{
P1=0xff; //读取P1口之前先给其写全1
csad=0; //选通ADCS
adrd=0; //AD读使能
ad_data=P1; //AD数据读取赋给P1口
adrd=1;
csad=1; //关闭ADCS
adwr=0;
}
{
ad0804();
ad_compute();
scan();
}
}
...............................................完整源程序请下下载附件
全部资料51hei下载地址:
基于51单片机铂电阻PT100温度计程序设计与仿真.zip
(76.61 KB, 下载次数: 693)
|