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

QQ登錄

只需一步,快速開始

搜索
查看: 1701|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

藍(lán)牙串口通訊程序求助,紅色的是串口部分

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:80127 發(fā)表于 2015-10-13 15:46 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
大神啊,我搞了好久沒想明白,我這樣寫的是錯(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;
        }
  }


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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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