找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 5349|回復(fù): 1
收起左側(cè)

[求助]51串口問題

[復(fù)制鏈接]
ID:25849 發(fā)表于 2010-9-2 11:15 | 顯示全部樓層 |閱讀模式

大俠們,大家好,小弟初來乍道,請(qǐng)教一個(gè)問題!

我想調(diào)試串口,發(fā)一個(gè)指令出去,收另外一個(gè)指令回來,實(shí)現(xiàn)握手,但是怎么也實(shí)現(xiàn)不了,請(qǐng)指點(diǎn):


#include <REG52.H>
#include <stdio.h>
unsigned char redata;
void delay( unsigned int m)
{
unsigned char j;
for(m; m > 0; m--)
for(j = 200; j > 0; j--);
}

//握手
void woshou_code(void)
{
 unsigned char woshou_tx[6]={0xaa, 0x00, 0xcc ,0x33, 0xc3, 0x3c};
 unsigned char jieshou[16]={0};
 unsigned char i=0;
  unsigned char woshou_rx[17]={0xaa, 0x00,0x4f,0x4b,0x5f,0x56,0x34,0x2e,0x32,0x0b, 0x02 ,0x00 ,0xcc ,0x33, 0xc3, 0x3c};

 while(woshou_tx!='\0')
 { SBUF=woshou_tx;
  while(!TI);
  TI=0;
   i++;
  }


     if(RI)
  {
          RI=0;
   for(i=0;i<16;i++)
   {
           redata=SBUF;
   jieshou=redata;
   i++;
   }
        }
 for(i=0;i<16;i++)
  {
  if(jieshou!=woshou_rx)
  woshou_code();
  if(jieshou=='0'&&woshou_rx=='0')
  return;
  }
}

void ser_int (void) interrupt 4 using 1
{
if(TI==1)
TI=0;
if(RI)
RI=0;
redata=SBUF;
}


void main (void) 
{
 SCON = 0x50;      //REN=1允許串行接受狀態(tài),串口工作模式1               
 TMOD|= 0x20;      //定時(shí)器工作方式2                    
 PCON|= 0x80;                                                          
 TH1 = 0xF3;     // //baud*2  /*  波特率4800、數(shù)據(jù)位8、停止位1。效驗(yàn)位無 (12M)
 TL1 = 0xF3;         
 TR1  = 1;                                                             
 ES   = 1;        //開串口中斷                  
 EA   = 1;        // 開總中斷 
 while(1)
  {
  delay(200);
   woshou_code();
  }
}

 
回復(fù)

使用道具 舉報(bào)

ID:25849 發(fā)表于 2010-9-2 11:53 | 顯示全部樓層
幫幫忙啊,哎,怎么沒有人啊?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表