找回密码
 立即注册

QQ登录

只需一步,快速开始

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

蓝牙串口通讯程序求助,红色的是串口部分

[复制链接]
跳转到指定楼层
楼主
ID:80127 发表于 2015-10-13 15:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大神啊,我搞了好久没想明白,我这样写的是错的吗,为啥不行啊,我要奔溃了,红色是串口部分
#include<reg52.h>
  #define uchar unsigned char
  #define uint unsigned int
  uchar flag,temp;
  sbit IN1=P1^0;
  sbit IN2=P1^1;         /*底盘转动*/

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

  sbit IN5=P2^2;
  sbit IN6=P2^3;  /*机械手抓取*/

  void init()
{
   TMOD=0X20;  //定时器1的工作方式2
   SCON=0X50;  //串行口的工作方式1 且REN=1
   TH1=0XFD;
   TL1=0XFD;
   EA=1;   //开启总中断
   TR1=1;  //开启定时器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 //串行口中断函数
  {
    if(RI)
        {
         RI=0;
         temp=SBUF;
         flag=1;
        }
  }


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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