標(biāo)題: 藍(lán)牙串口通訊程序求助,紅色的是串口部分 [打印本頁(yè)]

作者: 55123    時(shí)間: 2015-10-13 15:46
標(biāo)題: 藍(lán)牙串口通訊程序求助,紅色的是串口部分
大神啊,我搞了好久沒想明白,我這樣寫的是錯(cuò)的嗎,為啥不行啊,我要奔潰了,紅色是串口部分
#include<reg52.h>
  #define uchar unsigned char
  #define uint unsigned int
  uchar flag,temp;
  sbit IN1=P1^0;
  sbit IN2=P1^1;         /*底盤轉(zhuǎn)動(dòng)*/

  sbit IN3=P2^0;
  sbit IN4=P2^1;   /*手臂上下升降*/

  sbit IN5=P2^2;
  sbit IN6=P2^3;  /*機(jī)械手抓取*/

  void init()
{
   TMOD=0X20;  //定時(shí)器1的工作方式2
   SCON=0X50;  //串行口的工作方式1 且REN=1
   TH1=0XFD;
   TL1=0XFD;
   EA=1;   //開啟總中斷
   TR1=1;  //開啟定時(shí)器1
   ES=1;   //開啟串行口中斷


  }
   void delay(uchar z)
  {
   uint x,y;
   for(x=110;x--;x>0)
     for(y=z;y--;y>0);                               
  }

  void right ()
  {
   IN1=1;
   IN2=0;
   delay(10);

  }
  void left()
  {
   IN1=0;
   IN2=1;
        delay(10);
  }
  void up()
  {
   IN3=1;
   IN4=0;
   delay(10);
  }
  void down()
  {
   IN3=0;
   IN4=1;
   delay(10);
  }
  void capture()   //抓取
  {
   IN5=1;
   IN6=0;
   delay(10);
  }
  void loosen()        //松開
  {
    IN5=0;
        IN6=1;
        delay(10);
  }

  void main ()
  {
   init();
   while(1)
   {
    if(flag==1)
          {
            flag=0;
                SBUF=temp;
                TI=0;
                switch(temp)
                      {
                            case 'U':
                                  up();
                                  break;
                                case 'D':
                                  down();
                                  break;
                                case 'R':
                                  right();
                                  break;
                                case 'L':
                                  left();
                                  break;
                                case 'C':
                                  capture();
                                  break;
                                case 'T':
                                  loosen();
                                  break;
                                  
                          }
          }
   }

  }

  void supend() interrupt 4 //串行口中斷函數(shù)
  {
    if(RI)
        {
         RI=0;
         temp=SBUF;
         flag=1;
        }
  }







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