资源简介
本系统包括单片机数据采集部分(源程序:实现四路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完整项目
相关资源
- 多串口数据采集.zip
- 用Labview编写贪吃蛇
- 郭天祥AVR单片机
- 单片机电子时钟的设计
- 基于单片机的电子定时器的课程设计
- 基于labView 象棋游戏
- 基于单片机的函数信号发生器课程设
- Labview Ftp
- 51单片机频率计-六位数码管显示-汇编
- LCD 240128液晶显示
- LabView的PID程序
- 51单片机—串口计算器
- 51单片机—计算器包含小数计算
- avr 单片机的fft
- 基于51单片机的温度控制系统.rar
- PIC单片机主机和从机SPI通信
- 基于物联网技术的宿舍安全防控系统
- labview读取excel表格
- 基于labview的双声道音频信号录制系统
- 51单片机电子钟 proteus仿真 完美电子钟
- 基于单片机两位LED倒计时器
- 《LabVIEW虚拟仪器程序设计与应用》课
- AT89C52的使用手册
- MF RC500的单片机源程序有注释
- 单片机433Mhz无线通讯,符合modbus。
- 51单片机数码管动态显示+汇编程序+
- labview2011链接
- 89C51 单片机IO 口模拟串行通信的实现
- LABVIEW-动画界面设计(小触摸屏APP)
- 基于labview的直流电机转速控制
评论
共有 条评论