欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 串口調試,求指導 [打印本頁]

作者: bitandpower    時間: 2012-11-3 19:13
標題: 串口調試,求指導

各位大仙,我用串口調試助手往單片機里發送數據,然后再數碼管里顯示,下面是我的程序,但不知哪錯了,求指導啊!!

#include <reg52.h>
#include <intrins.h>
unsigned char code non_dot[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};    //數字不帶小數點
unsigned char code dot[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};   //數字帶小數點
int i=0;   
unsigned char data Temp[10];
unsigned char data dis_digit;
unsigned char data first;
int k=1,m=1,flag=0;     //定義全局變量
void ser_uart(void);   //函數聲明
void timer0();

//定時器的初始化,定時器1,模式2,波特率:9600,用于串行口。定時器0,模式1,用于數碼管的動態掃描
void init()
{
 TMOD=0X21;  //初始化定時器0和1.
 TH1=0Xfd;
 TL1=0Xfd;
 TH0=0XFE;
 TL0=0X17;
 TR1=1;
 //TR0=1;
 SCON=0X50;
 PCON=0X00;   //波特率沒有倍增
 EA=1;
 ES=1;
 ET0=1;
 dis_digit=0xfe;
}

//主函數
void main()
{
 init();
 while (1);
}

//串口中斷程序
void ser_uart(void) interrupt 4 //串行中斷服務程序
{
  
   if(RI)                        //判斷是接收中斷產生
     {
   RI=0;
   if(SBUF==‘%’)
 { flag=1;
   while(flag==1)
  {                    
     Temp=SBUF;
     if(Temp!='#')
     {
  i++;
  break;
      }
     else { TR0=1; break;}
  
   }  
 }  
  /* else
  display(Temp);  */
                
/*    }
   if(TI)                       
     TI=0;
}
*/

//判定有無小數點及顯示整數程序
/*void judge(unsigned char *data)

 int j=0;
 for(j=0;j<=i;j++)
 {
  if{*(data+j)!='.'} ;
  else display(Temp);
 }
 
}
*/

//定時器0中斷程序,負責數碼管的動態掃描
/*void timer0() interrupt 1

 
 TH0=0XFE;
 TL0=0X17;

 P2=0XFF;          //先關閉所有數碼管
 if(k<i)
 { P0=non_dot[(Temp[k])-0x30];
   k++;
 }
 else k=1;
 
 P2=dis_digit;
 if(m<i-1)
 { m++;
  dis_digit=_crol_(dis_digit,1);    //位選通值左移,下次中斷時選通下一位數碼管
  }
  else
  { m=1; dis_digit=0xfe; }
 
}






歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1