资源简介

本系统包括单片机数据采集部分(源程序:实现四路0-5V模拟电压信号采集与一路温湿度采集)和LabVIEW软件部分(源程序:数据现实,绘图等)。可以通过修改实现8路穆尼信号的采集。使用说明已经包含在文件中,可以用于学习单片机、LabVIEW和实验数据采集等。

资源截图

代码片段和文件信息

#include 
#include 

sbit SDA=P1^5;
sbit SCL=P1^6;
sbit dis=P1^7;                                      //用于串口发送及工作状态指示

#define IIC_Add 0xB8                                //器件地址
#define IIC_RX_Length 8

unsigned char WR_Flagim; 
unsigned char send_data[11];
unsigned char IIC_TX_Buffer[]={0x030x000x04};      //读温湿度命令(无CRC校验)
unsigned char IIC_RX_Buffer[IIC_RX_Length] = {0x00};//读回的温湿度
unsigned int  Humidity_ValueTempreture_Value;
unsigned char Humidity_Temp_ValueTempreture_Temp_Value;

void delay10us(void) //这个延时函数 要大于5US以上
{
_nop_();
_nop_(); 
_nop_(); 
_nop_(); 
_nop_(); 
_nop_(); 
}

void delay1ms(unsigned int t)
{
unsigned int i;
   unsigned int j;
   for(j=t;j>0;j--)
    for(i=124;i>0;i--);  
}

void Timer0_init()
{
TMOD |= 0x01;         
TH0=0x00;       
TL0=0x00;
EA=1;            
ET0=1;           
TR0=1;     


//**********************************************
//送起始位 sda=1->0
void I2C_Start()
{
   SDA=1;
   SCL=1;
   delay10us();
   SDA=0;
   delay10us();
   SCL=0; 
}
//************************************************
//送停止位 sda=0->1
void I2C_Stop()
{
    SDA=0;
    delay10us();
    SCL=1;
    delay10us();
    SDA=1;
}
//************************************************
//主应答(包含ack:sda=0和no_ack:sda=0)
void Ack(void)
{  //设置SDA 口为输出
    SDA=0;
    SCL=0;
    delay10us();
    SCL=1;
    delay10us();
    SCL=0;
    SDA=1;
}

void NoAck(void)
{  //设置SDA 口为输出
    SDA=1;  
    SCL=0;
    delay10us();
    SCL=1;
    delay10us();
    SDA=1;
    SCL=0;
}

// 检测 SDA是否回ACK
bit Test_Ack()
{  //设置SDA 口为输入
    bit ACK_Flag=0;
    SCL=0;
    SDA=1;    
    delay10us();
    SCL=1;
    delay10us();
    if(SDA==0)
      ACK_Flag = 1;
    else 
      ACK_Flag = 0;
    SCL=0;
    return ACK_Flag;
}

//*************************************************
//字节发送程序
//发送c(可以是数据也可是地址),送完后接收从应答
//不考虑从应答位
void SendData(unsigned char buffer)
{
    unsigned char BitCnt=8;//一字节8位
   //设置SDA 口为输出
    do
    {
     SCL=0;
   delay10us();
       if((buffer&0x80)==0) //判断最高位是0还是1
         SDA=0;
       else
         SDA=1;
       SCL=1;
   delay10us();
       buffer=buffer<<1;//将buffer中的数据左移一位
       BitCnt--;
    }
    while(BitCnt);
    SCL=0;        
}
//**************************************************
//字节接收程序
//接收器件传来的数据,此程序应配合|主应答函数|i2c_ack_main()使用
//return: uchar型1字节
unsigned char ReceiveData()
{
   unsigned char BitCnt=8IIC_RX_Data=0;
   unsigned char temp=0;
   SDA=1;           //读入数据 设置SDA 口为输入
   do
   {
      SCL=0;
  delay10us();  
  IIC_RX_Data=_crol_(IIC_RX_Data1);   //数据左移一位
  BitCnt--;   
  SCL=1;
  delay10us();
      if(SDA==1)
        IIC_RX_Data = IIC_RX_Data|0x01;  //低位置1
      else
        IIC_RX_Data = IIC_RX_Data&0x0fe; //低位清0     
    }
    while(BitCnt);
    SCL=0;
    return IIC_RX_Data;
}

//****************************************

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

     文件       1123  2013-05-01 20:57  基于LabVIEW和单片机的数据采集系统设计\使用说明.txt

     文件       4153  2013-04-30 18:31  基于LabVIEW和单片机的数据采集系统设计\数据采集与处理(STC12C2052AD)\stc12c2052ad.h

     文件      14956  2013-05-02 13:34  基于LabVIEW和单片机的数据采集系统设计\数据采集与处理(STC12C2052AD)\数据采集与处理

     文件       6825  2013-05-02 13:34  基于LabVIEW和单片机的数据采集系统设计\数据采集与处理(STC12C2052AD)\数据采集与处理.c

     文件       3405  2013-05-02 13:34  基于LabVIEW和单片机的数据采集系统设计\数据采集与处理(STC12C2052AD)\数据采集与处理.hex

     文件         60  2013-05-02 13:34  基于LabVIEW和单片机的数据采集系统设计\数据采集与处理(STC12C2052AD)\数据采集与处理.lnp

     文件        764  2013-05-02 13:34  基于LabVIEW和单片机的数据采集系统设计\数据采集与处理(STC12C2052AD)\数据采集与处理.LST

     文件      23073  2013-05-02 13:34  基于LabVIEW和单片机的数据采集系统设计\数据采集与处理(STC12C2052AD)\数据采集与处理.M51

     文件      17618  2013-05-02 13:34  基于LabVIEW和单片机的数据采集系统设计\数据采集与处理(STC12C2052AD)\数据采集与处理.OBJ

     文件        649  2013-05-02 13:44  基于LabVIEW和单片机的数据采集系统设计\数据采集与处理(STC12C2052AD)\数据采集与处理.plg

    .......     54923  2013-05-02 13:44  基于LabVIEW和单片机的数据采集系统设计\数据采集与处理(STC12C2052AD)\数据采集与处理.uvopt

     文件      13296  2013-04-30 15:32  基于LabVIEW和单片机的数据采集系统设计\数据采集与处理(STC12C2052AD)\数据采集与处理.uvproj

    .......     54917  2013-05-01 20:57  基于LabVIEW和单片机的数据采集系统设计\数据采集与处理(STC12C2052AD)\数据采集与处理_uvopt.bak

     文件          0  2013-04-30 14:35  基于LabVIEW和单片机的数据采集系统设计\数据采集与处理(STC12C2052AD)\数据采集与处理_uvproj.bak

     文件      25480  2013-05-01 13:56  基于LabVIEW和单片机的数据采集系统设计\数据采集与处理(LabVIEW)\处理算法.vi

     文件     401314  2013-05-02 13:43  基于LabVIEW和单片机的数据采集系统设计\数据采集与处理(LabVIEW)\数据采集与处理系统(主界面).vi

     文件      24880  2013-04-11 11:39  基于LabVIEW和单片机的数据采集系统设计\数据采集与处理(LabVIEW)\自适应屏幕分辨率.vi

     目录          0  2013-05-02 13:44  基于LabVIEW和单片机的数据采集系统设计\数据采集与处理(STC12C2052AD)

     目录          0  2013-05-01 13:57  基于LabVIEW和单片机的数据采集系统设计\数据采集与处理(LabVIEW)

     目录          0  2013-05-01 21:15  基于LabVIEW和单片机的数据采集系统设计

     文件        233  2013-05-01 21:29  基于LabVIEW和单片机的数据采集系统设计\新建 文本文档.txt

----------- ---------  ---------- -----  ----

               647669                    21


评论

共有 条评论