资源简介

一共有三个labview温度控制程序,其中一个是自己编写的,可以对温度进行检测调控

资源截图

代码片段和文件信息


//任务:实现对温度传感器件DS18B20的温度值得读取,并把温度值发送到上位机labview处理

#include 
#include
#define uchar unsigned char
#define uint  unsigned int
sbit DQ =P3^6;  //定义DS18B20通信端口
uchar flag=0;

code uchar table[]={0xc00xf90xa40xb00x99
                    0x920x820xf80x800x90   //0~9的段码
                    0x400x790x240x300x19
                    0x120x020x780x000x10   //带小数点0~9的段码
                    0xbf0xff};                      //“-“和“全灭“的段码


//uchar pc_command; //只要PC有发过来0x0a过来就算是告诉单片机启动发送指令
uchar flag;             //正负号标志

void delay(unsigned int i) //延时函数
{
while(i--);
}
//显示程序
void display(uchar bit_countuchar dat)
{
    P2=0x00;
    P0=table[dat];
    P2=(0x01)<    delay(500);
}

void dis_Temperature(uint t)
{
    uchar i;
if(flag==1)
{i=20;}
else
    {i=21;}
display(0i);
    i=t/100;
    display(1i);
    i=t%100/10;
    display(2i+10);
    i=t%100%10;
    display(3i);
}

void Init_DS18B20(void) //初始化函数
{
unsigned char x=0;
DQ = 1;  //DQ复位
delay(8);  //稍做延时
DQ = 0;  //单片机将DQ拉低
delay(80);  //精确延时 大于 480us
DQ = 1;  //拉高总线
delay(14);
x=DQ;  //稍做延时后 如果x=0则初始化成功 x=1则初始化失败
delay(20);
}

uchar Read(void) //读一个字节
{
unsigned char i=0;
unsigned char dat = 0;
for (i=8;i>0;i--)
{
DQ = 0;  // 给脉冲信号
dat>>=1;
DQ = 1;  // 给脉冲信号
if(DQ)
dat|=0x80;
delay(4);
}
return(dat);
}


void Write(unsigned char dat) //写一个字节
{
unsigned char i;
for (i=8; i>0; i--)
{
DQ = 0;
DQ = dat&0x01;
delay(5);
DQ = 1;
dat>>=1;
}
delay(4);
}

uint ReadTemperature(void) //读取温度
{
unsigned char a=0;
unsigned char b=0;
unsigned int t=0;
float f_t=0;
Init_DS18B20();
Write(0xCC);  // 跳过读序号列号的操作
Write(0x44);  // 启动温度转换
Init_DS18B20();
Write(0xCC);  //跳过读序号列号的操作
Write(0xBE);  //读取温度寄存器等(共可读9个寄存器) 前两个就是温度
a=Read();
b=Read();
if(b<127)
{
t=b;t<<=8;t=t|a;
flag=0;
}
else
{
a=~a;b=~b;
t=b;t<<=8;t=t|a;t=t+1;
flag=1;
}
f_t=t*0.0625;         //温度值在寄存器中为11位,分辨率为0.0625
t=f_t*10+0.5;        //乘以10表示小数点后面只取1位,加0.5是四舍五入
return(t);
}


void serial_int()
{
    //设置定时器1的工作方式为方式2
    TMOD=0x20;
    //设定定时器1的初值,使串口通讯的波特率为9600bps
    TH1=0xfd;
     TL1=0xfd;
    SCON=0x50;
    PCON=0x00;
    ES=1;
    EA=1;
    TR1=1;
}
void com_send_byte(uchar onebyte)
{
  ES = 0;           //关串口中断
  SBUF = onebyte;   //把要发送的数据写入SBUF,单片机会自动发送该数据,需要一段时间
  while (TI == 0);  //等待发送结束
  TI = 0;           //把发送标志清零
  ES=1; 
}

/* 当有数据发送到单片机时,会执行以下中断服务函数*/
void uart_int(void) interrupt 4 using 3
{
  uchar tmpData;
  if (RI == 1)                      /* 判断是不是接收中断*/
  {
    RI = 0;                         /* 清串口接收中断   */
    tmpData = SBUF;                    /* 读取接收到的数据*/
    //P0 = LED_TAB[temp];
flag = 1;
if(tmpData == 1)   //加热
{
/

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      37739  2017-08-24 16:50  labview温度控制上位机\基于Arduino与LabVIEW的热电偶高温监测系统(2).vi

     文件       9492  2009-06-01 10:33  labview温度控制上位机\温度检测与控制实验\Derivative action.vi

     文件      13068  2009-06-01 10:33  labview温度控制上位机\温度检测与控制实验\Get dt.vi

     文件      16604  2009-06-01 10:33  labview温度控制上位机\温度检测与控制实验\Get error (sp-pv).vi

     文件      16348  2009-06-01 10:33  labview温度控制上位机\温度检测与控制实验\Get PID gains.vi

     文件      33032  2009-06-01 10:33  labview温度控制上位机\温度检测与控制实验\Integral action.vi

     文件      17932  2009-06-01 10:33  labview温度控制上位机\温度检测与控制实验\manual.vi

     文件      16216  2009-03-20 16:06  labview温度控制上位机\温度检测与控制实验\PID(温度-电压).vi

     文件      29540  2009-06-16 10:49  labview温度控制上位机\温度检测与控制实验\PID.vi

     文件       5728  2009-06-01 10:33  labview温度控制上位机\温度检测与控制实验\Proportional action.vi

     文件      10332  2009-06-01 10:33  labview温度控制上位机\温度检测与控制实验\PV filter.vi

     文件       6376  2009-06-18 20:27  labview温度控制上位机\温度检测与控制实验\V TO T.vi

     文件      16032  2009-06-04 13:10  labview温度控制上位机\温度检测与控制实验\判断加热.vi

     文件      15972  2009-05-30 16:58  labview温度控制上位机\温度检测与控制实验\判断散热.vi

     文件       8344  2009-05-30 16:45  labview温度控制上位机\温度检测与控制实验\加热温度转化电压.vi

     文件      21572  2009-06-05 08:39  labview温度控制上位机\温度检测与控制实验\当前温度值.vi

     文件      22640  2009-06-09 08:28  labview温度控制上位机\温度检测与控制实验\控制温度1.vi

     文件       8348  2009-05-30 16:47  labview温度控制上位机\温度检测与控制实验\散热温度转化电压.vi

     文件      97368  2009-08-10 13:39  labview温度控制上位机\温度检测与控制实验\温度测量与控制实验.vi

     文件      19680  2009-06-26 16:42  labview温度控制上位机\温度检测与控制实验\转化数字量.vi

     文件      38129  2015-05-31 21:58  labview温度控制上位机\温度采集系统\温度采集系统\1.vi

     文件       5115  2015-05-23 12:51  labview温度控制上位机\温度采集系统\温度采集系统\codeC\STARTUP.A51

     文件      10161  2015-05-31 21:31  labview温度控制上位机\温度采集系统\温度采集系统\codeC\tempCap

     文件       4030  2015-05-31 21:30  labview温度控制上位机\温度采集系统\温度采集系统\codeC\tempCap.c

     文件       4475  2015-05-31 21:31  labview温度控制上位机\温度采集系统\温度采集系统\codeC\tempCap.hex

     文件         31  2015-05-31 21:31  labview温度控制上位机\温度采集系统\温度采集系统\codeC\tempCap.lnp

     文件       9699  2015-05-31 21:31  labview温度控制上位机\温度采集系统\温度采集系统\codeC\tempCap.LST

     文件      14308  2015-05-31 21:31  labview温度控制上位机\温度采集系统\温度采集系统\codeC\tempCap.M51

     文件      10449  2015-05-31 21:31  labview温度控制上位机\温度采集系统\温度采集系统\codeC\tempCap.OBJ

     文件       1025  2015-05-23 12:51  labview温度控制上位机\温度采集系统\温度采集系统\codeC\tempCap.opt.bak

............此处省略18个文件信息

评论

共有 条评论