资源简介
本系统包括单片机数据采集部分(源程序:实现四路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
- 上一篇:数据库课程设计完整版
- 下一篇:react.js完整项目
相关资源
- labview编程软件滤波器以及编写程序设
- labview语音输入输出
- labview中的DAQ助手采集多个通道电压
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 飞思卡尔单片机MC9S12XS12G128驱动(硬件
- 51单片机PWM程序,占空比、周期可调整
- 单片机和adc0809数字电压表
- PIC单片机完成的电子密码锁
- Labview与CH372CH375的通信测试
- 单片机、ADC0808809设计简易数字电压表
- LabVIEW钢琴实例
- 51单片机多功能自行车测速仪
- 单片机做的6位时分秒数字钟
- 单片机电子时钟 闹钟 日历
- 音乐代码转换软件 单片机编程时用
- 单片机课程设计 篮球计分器
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 单片机与温度传感器DS18B20的程序设计
- 51单片机基于protues的几个仿真实例
- 基于52单片机的直流电压测量
- 38k单片机红外发送代码、keil
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51单片机控制舵机程序
- 武汉理工大学 单片机课程设计 16*16点
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
评论
共有 条评论