遇到的问题
1.发送的字符个数与读取回来的字符个数有时候会不一样
例如发送78, 返回的有时候是7878 或787或7或8。
2.只发送一位数字的时候LED也是黑的
单片机程序如下
#include
#define uchar unsigned char
#define uint unsigned int
***it dula=P2^6;
***it wela=P2^7;
***it d1=P1^0;
uchar num;
uchar dat[20];
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void LED(uchar num) //LED显示接收到的数据
{
dula=1;
P0=table[num];
dula=0;
wela=1;
P0=0xfe;
wela=0;
}
void init(void)
{
TMOD=0x20;
PCON=0x80;
SCON=0x50;
TL1=0xFA;
TH1=0xFA;
TR1=1;
}
void rece(void)
{
uint i=0;
while(RI==0); //扫描判断是否接收到数据,
dat[i] = SBUF; //接收数据SBUF赋与dat
RI=0; //RI清零。
SBUF = dat[i]; //在原样把数据发送回去
while(ti==0);
TI=0;
i++;
num=dat[i-1];
}
void main()//主程序功能:实现接收数据并把接收到的数据原样发送回去///////
{
init();//串口初始化
while(1)
{
while(RI==0);
rece();
LED(num); //显示接收到的数据
}
}
1
|
|
|
|
好。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
|
|
|
|
|
我想问问***it dula=P2^6;
***it wela=P2^7;
***it d1=P1^0;
这个dula wela d1分别什么什么含义
谢谢
|
|
|
|
|
麻烦你把Labview的程序截图也贴上来,不然还得打开,没那么多功夫。学会提问呐
|
|
|
|
|