• 大小: 2.62MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-09-20
  • 语言: 其他
  • 标签: Labview  数据采集  

资源简介

一个简单的Labview与单片机示波器连接vi,可以实现多通道波形实时数据采集功能。111111222222

资源截图

代码片段和文件信息

#include 
#include 

#define uchar unsigned char
#define uint unsigned int

//ADC控制端定义
#define CLK P2_4 //时钟端
#define DI P2_5  //数据输入端     
#define DO P2_6  //数据输出端 
#define CS P2_7  //ADC使能端
#define EOC P1_7 //转换结束

//函数声明
double GetADC(unsigned char port);//ADC读取数据
void Delay(uint n);//延时子程序
void LCD_show(double a);//LCD显示字符
void uart_init(void);//串口初始化
void timer_init(void);//定时器T0

//全局变量
double u=0;
uint mi;
unsigned char num[]={‘0‘‘1‘‘2‘‘3‘‘4‘‘5‘‘6‘‘7‘‘8‘‘9‘}; //LCD显示
unsigned char buff[20];

void main()
{
    uart_init();
    timer_init(); 
   while(1)
   { }
}  

void timer_init(void)
{
TMOD|=0x02;
TH0=256-10;
TL0=256-10;
EA=1;      //打开总中断
ET0=1;     //定时器T0使能打开
TR0=1;  //开定时器
}
void t0_time()interrupt 1
{
TR0=0;
  for(i=0;i<10;i++)
{
u+=GetADC(2); //读电压
}
u=u/10;
u=(u/4095)*5;
LCD_show(u);

ES=0;      //关闭串口中断
for(m=0;m<5;m++)
{
SBUF=buff[m];
while(!TI);
TI=0;      //清发送完成标志位
  }
  //换行
SBUF=‘\n‘;
  while(!TI);
  TI=0;

ES=1;//开串口中断
TR0=1;//启动定时器
}

void Delay(uint n)

  uint x;
  for(x=0;x _nop_();
}

double GetADC(unsigned char port)//ADC读电压
{
unsigned char ial=0ah=0;
unsigned long ad;
CLK=0;
CS=0;
port<<=4;     //通道号左移4位
for(i=0;i<4;i++)
{
DI=port&0x80;
CLK=1;
Delay(1);
CLK=0;
Delay(1);
port<<=1;
}
DI=0;
for(i=0;i<8;i++)
{
CLK=1;
Delay(1);
CLK=0;
Delay(1);
}
CS=1;
EOC=1;
do 
{
  EOC=1;
      Delay(1);
    }
while(!EOC);
CS=0;
for(i=0;i<4;i++)

DO=1;
CLK=1;
ah<<=1;
if(DO)
ah|=0x01;
CLK=0;
}
for(i=0;i<8;i++)

DO=1;
CLK=1;
al<<=1;
if(DO)       
al|=0x01;
CLK=0;
}
CS=1;
ad=(unsigned int)ah;
ad<<=8;
ad|=al;
return(ad);
}
void LCD_show(double a)
{   
    
  int bci=0j=0;
    b=(int)a;
   a=a-b;    //b为整数,a为小数
  if(b<10)       
i=1;    //1位数
  else if(b<100) 
i=2;    //2位数
  else if(b<1000)
i=3;
 else if(b<10000)
i=4;
 
for(j=0;j
c=b%10;
buff[i-j-1]=num[c];
b=b/10;
}
buff[i]=‘.‘;
for(j=0;j<3;j++)

i++;
c=(int)(a*10);
a=a*10-c;
buff[i]=num[c];
}
}

void uart_init()
{
//9600波特率串口方式1,定时器1,方式2
TMOD=0x20;
TH1=0xFD;
TL1=0xFD;
TR1=1; //启动T1

  SCON=0x50;
EA=1;    //打开总中断
ES=1;    //打开串口中断
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-05-07 09:29  单片机_labview\
     文件     2706579  2016-05-24 11:08  单片机_labview\AD转换实物连接.JPG
     文件       23340  2018-05-07 09:29  单片机_labview\Labview_接收_2014.vi
     目录           0  2018-05-07 08:57  单片机_labview\下位机发送程序\
     文件       11721  2016-09-21 11:03  单片机_labview\下位机发送程序\boxing
     文件        6340  2016-09-21 11:03  单片机_labview\下位机发送程序\boxing.LST
     文件       12505  2016-09-21 11:03  单片机_labview\下位机发送程序\boxing.M51
     文件       12180  2016-09-21 11:03  单片机_labview\下位机发送程序\boxing.OBJ
     文件        2585  2016-09-21 11:03  单片机_labview\下位机发送程序\boxing.c
     文件        5980  2016-09-21 11:03  单片机_labview\下位机发送程序\boxing.hex
     文件          44  2016-09-21 11:03  单片机_labview\下位机发送程序\boxing.lnp
     文件         196  2017-03-23 10:06  单片机_labview\下位机发送程序\boxing.plg
     文件       71396  2017-03-23 10:09  单片机_labview\下位机发送程序\boxing.uvgui.Administrator
     文件       71406  2016-09-21 11:27  单片机_labview\下位机发送程序\boxing.uvgui_Administrator.bak
     文件        5377  2017-03-23 10:09  单片机_labview\下位机发送程序\boxing.uvopt
     文件       13418  2016-05-16 17:55  单片机_labview\下位机发送程序\boxing.uvproj

评论

共有 条评论