找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3307|回復: 1
打印 上一主題 下一主題
收起左側(cè)

[求助]串口通訊 請請幫忙

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:45219 發(fā)表于 2012-10-4 10:37 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
題目:單片機接收數(shù)據(jù)包內(nèi)容用數(shù)碼管分屏顯示
出現(xiàn)的問題:數(shù)碼管顯示的數(shù)不是我想要的數(shù),可以看出有疊加,但是不知如何修改,請求幫忙
#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();
   }
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:45357 發(fā)表于 2012-10-10 11:15 | 只看該作者
 你發(fā)送,接收完成沒清除NUM
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表