标题: 蓝牙发送字符并回收 [打印本页]

作者: 1358279517    时间: 2016-4-14 19:05
标题: 蓝牙发送字符并回收
#include<reg51.h>


sbit a=P1^0;                         //led1
sbit b=P1^1;
sbit c=P1^2;
sbit d=P1^3;
sbit h1=P0^0;         //红外对管
sbit h2=P0^1;         //红外对管
sbit h3=P0^4;         //红外对管



int  go,back,left,right,clean,clean_over,xunji,xunji_over;
int flag_uart=0;
int flag_on=0;


void UsartConfiguration();                          //串口初始化


void main()
{
        UsartConfiguration();
        while(1)
        {
          if(flag_uart==1)
         {
                 ES=0;
                  flag_uart=0;
                  switch(flag_on)
                 {
                   case 1:        go=1;         break;
                   case 2:        back=1;       break;
                   case 3:        left=1;       break;
                   case 4:        right=1;      break;
                   case 5:        clean=1;        break;
                   case 6:        xunji=1;        break;
                   case 7:        clean_over=1;   break;
                   case 8:        xunji_over=1;   break;
                 }
                 ES=1;
                 flag_on=0;
         }
         if(go==1)
         a=0;


        }
}

//串口初始化
void UsartConfiguration()
{
        SCON=0X50;                        //设置为工作方式1
        TMOD=0X20;                        //设置计数器工作方式2
        PCON=0X80;                        //波特率加倍
        TH1=0XFd;                                //计数器初始值设置,注意波特率是9600
        TL1=0XFd;
        ES=1;                                                //打开接收中断
        EA=1;                                                //打开总中断
        TR1=1;                                        //打开计数器
}


//串口中断:中断入口号4

void Usart() interrupt 4
{

        int receiveData;
        receiveData=SBUF;//出去接收到的数据
        RI = 0;//清除接收中断标志位


        //new
        flag_uart  =  1;
        if(receiveData==97)          flag_on=1;
        else if(receiveData=='i')    flag_on=2;
        else if(receiveData=='j')    flag_on=3;
        else if(receiveData=='k')         flag_on=4;
        else if(receiveData=='l')    flag_on=5;
        else if(receiveData=='m')         flag_on=6;
        else if(receiveData=='n')         flag_on=7;
        else if(receiveData=='o')         flag_on=8;




        SBUF=receiveData;    //将接收到的数据放入到发送寄存器
        while(!TI);                         //等待发送数据完成
        TI=0;                                                 //清除发送完成标志位
}







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1