资源简介
一个简单的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 的数据处理范例
- LabVIEW\\labVIEW 文件\\NI风格控件包
-
Mathsc
ript编程指南 - 基于RS232的数据采集系统设计
- Labview教程之实战100例vi.zip
- labview basic 1
- NI,labview的CRIO控制手册
- LabVIEW教程花了2W块钱去学习得到的
- LabVIEW状态机
- 小草手把手教你labview仪器控制
- labview实用工程
- labview学习资料
- labview生成一维码
- LABVIEW应用55个
- 小草手把手教你LabVIEW仪器控制.pdf
- LabVIEW(虚拟仪器LabVIEW)) 外文翻译
- 被动毫米波雷达中基于PCI总线高速数
- 数据采集系统设计 用FPGA+程序代码
- 百旺增值税开票软件数据采集工具.
- LABVIEW最实用的技巧合集.pdf
- 16位8通道同步采样数据采集系统AD76
- labview小游戏-汉诺塔
- NI Labview CLAD官方模拟题
- labview边干边学数据库应用
- PLC课程设计(五层电梯).pdf
- Labview在线离线混合地图
- 4QAM 方式OFDM labview
- 《LabVIEW入门与实战开发100例》源程序
- labview程序设计2009 附源程序
评论
共有 条评论