標(biāo)題:
[求助]串口通訊 請(qǐng)請(qǐng)幫忙
[打印本頁(yè)]
作者:
lucky_MI
時(shí)間:
2012-10-4 10:37
標(biāo)題:
[求助]串口通訊 請(qǐng)請(qǐng)幫忙
題目:?jiǎn)纹瑱C(jī)接收數(shù)據(jù)包內(nèi)容用數(shù)碼管分屏顯示
出現(xiàn)的問(wèn)題:數(shù)碼管顯示的數(shù)不是我想要的數(shù),可以看出有疊加,但是不知如何修改,請(qǐng)求幫忙
#include<reg51.h>
unsigned char buf;
unsigned char num[6]={0xaa,0x00,0x00,0x00,0x00,0xbb};
unsigned char num_suc[6];
unsigned char rx_i=0;
unsigned char tx_i=0;
unsigned char re_succ_flag=0;
unsigned char num_1[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char a[4];
unsigned char times;
sbit P2_4=P2^4;
sbit P2_5=P2^5;
sbit P2_6=P2^6;
sbit P2_7=P2^7;
void inter_serial() interrupt 4
{
if(TI==1)
{
if(tx_i<6)
{SBUF=num_suc[tx_i];
tx_i++; }
else tx_i=0;
TI=0;
}
if(RI==1)
{
buf=SBUF;
if(buf==0xaa)
rx_i=0;
num[rx_i]=buf;
rx_i++;
if(rx_i==6&&buf==0xbb)
{
re_succ_flag=1;
num_suc[0]=num[0];
num_suc[1]=num[1];
num_suc[2]=num[2];
num_suc[3]=num[3];
num_suc[4]=num[4];
num_suc[5]=num[5];
}
RI=0;
}
}
void delay()
{
unsigned char i;
for(i=0;i<200;i++);
}
void delay1()
{
unsigned char i,j;
for(i=0;i<200;i++)
for(j=0;j<200;j++);
}
void display()
{ unsigned char i;
a[0]=buf%10;
a[1]=buf%100/10;
a[2]=buf%1000/100;
a[3]=times;
for(i=0;i<4;i++)
{
if(i>=0&&i<3)
{
P0=num_1[a
];
}
else if(i==3)
P0=num_1[times];
switch(i)
{
case 0: P2_4=0;
case 1: P2_5=0;
case 2: P2_6=0;
case 3: P2_7=0;
}
delay();
P2|=0XF0;
}
}
void main()
{ unsigned char i;
TMOD=0X20;
TH1=0XFD;
TL1=0XFD;
TR1=1;
SCON=0X50;
EA=1;
ES=1;
while(1)
{
if(re_succ_flag==1)
{
num_suc[0]=0xbb;
num_suc[5]=0xaa;
TI=1;
re_succ_flag=0;
if(i>0&&i<5)
{
buf=num_suc
;
times=i;
}delay1();
}
display();
}
}
作者:
siunsiu
時(shí)間:
2012-10-10 11:15
你發(fā)送,接收完成沒(méi)清除NUM
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1