找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2945|回复: 1
打印 上一主题 下一主题
收起左侧

[求助]串口通讯 请请帮忙

[复制链接]
跳转到指定楼层
楼主
ID:45219 发表于 2012-10-4 10:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
题目:单片机接收数据包内容用数码管分屏显示
出现的问题:数码管显示的数不是我想要的数,可以看出有叠加,但是不知如何修改,请求帮忙
#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空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:45357 发表于 2012-10-10 11:15 | 只看该作者
 你发送,接收完成没清除NUM
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表