labview读单片机数据问题
先发程序#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar temp,ge,shi,bai,aa;
sbit dula=P2^6;
sbit wela=P2^7;
uchar code table[]={
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void delay(uint z);
void init();
void display(uchar ge,uchar shi,uchar bai);
void main()
{
init();
while(1)
{ display(ge,shi,bai);
if(aa==20)
{
aa=0;
temp++;
TR1=1;
if(temp==101)
{
temp=0;
}
bai=temp/100;
shi=temp%100/10;
ge=temp%10;
}
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void display(uchar ge,uchar shi,uchar bai)
{
wela=1;
P0=0xc1;
wela=0;
dula=1;
P0=table;
dula=0;
delay(5);
P0=0X00;
wela=1;
P0=0xc2;
wela=0;
dula=1;
P0=table;
dula=0;
delay(5);
P0=0X00;
wela=1;
P0=0XC4;
wela=0;
dula=1;
P0=table;
dula=0;
delay(5);
P0=0X00;
}
void init()
{
TMOD=0X21;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TH1=0XFD;
TL1=0XFD;
SCON=0X50;
PCON=0X00;
ES=1;
EA=1;
ET0=1;
TR0=1;
}
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
aa++;
}
void seri() interrupt 4
{
ES=0;
TI=0;
SBUF=temp;
ES=1;
}
这段程序一开始是简单的0-100自加程序
最近学习了labview
就想用labview通过串行通讯做一个简单的上位机监控界面。
这里就想把数码管的值实时显示在labview上面。
红色部份是串行通讯,将uchar temp的值赋值给SBUF,
但是为什么labview显示不出来呢? 为什么没有主程序呢?
另外,用51的话建议用CPUVIEW简单点,现在51的全功能版本也是免费的了!好运! 还有,您的串口中断程序(CPU的),是当串口收到数据后进行数据发送的,而您的LABVIEW程序,却只有读,所以下位机是不会返回数据的! 恩,问题已经解决了。SBUF起先并没有赋值。在void main()中 对SBUF赋初值就可以进入中断了。
也可以改用查询的方式。已经解决了。
还是要谢谢cpubbs哦 请问LABVIEW怎么弄 请问LABVIEW怎么弄
xyhyou 发表于 2009-4-11 17:20 http://www.cpubbs.com/bbs/images/common/back.gif
大家好,cpubbs论坛第一,二版本学习套件全套资料免费下载!2008-4-19
http://www.cpubbs.com/bbs/viewthread.php?tid=54941&fromuid=19
看这个吧兄弟!全套都可以下载的,学习很适合!好运!
页:
[1]