资源简介
一个简单的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
- 上一篇:燕山大学linux实验截图
- 下一篇:机器学习与R语言,课件
相关资源
- labview魔方程序
- 一个labview仿真的函数信号发生器.vi
- labview编程软件滤波器以及编写程序设
- labview语音输入输出
- labview中的DAQ助手采集多个通道电压
- Labview与CH372CH375的通信测试
- LabVIEW钢琴实例
- 数据采集系统——ADC0808的应用,单片
- 基于AT89C51的数据采集系统设计新方法
- LabVIEW入门与实战开发100例190153
- LABVIEW做的蓝牙数据发送程序.vi
- 基于labview的变声器
- 基于labview的方差标准差计算(求方差
- smart和labview通讯(smart_connet.vi)
- LabVIEW 数据采集 模拟量+编码器(Daq
- LabVIEW 声音信号的采集与存储.vi
- LabVIEW步进电机控制.vi
- 多通道数据采集.vi(labview)
- labview智能电梯(6层电梯.vi)
- 用labview编写的一个神经网络Vi图
- 基于Labview的电子秤的设计.docx
- labview汽车仪表盘
- labview掉halcon.vi
- labview计算器实例.vi88218
- labview 导DXF
- 基于LabVIEW模拟的温度报警器.vi
- 基于LabVIEW的声卡声音采集与播放
- 基于labVIEW的虚拟数据采集与输出仿真
- 基于labview滤波器的设计
- labview FFT变换(频域分析).vi
评论
共有 条评论