找回密码
 立即注册

QQ登录

只需一步,快速开始

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

蓝牙发送字符并回收

[复制链接]
跳转到指定楼层
楼主
ID:114255 发表于 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;                                                 //清除发送完成标志位
}


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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