找回密码
 立即注册

QQ登录

只需一步,快速开始

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

蓝牙遥控终于可以了

[复制链接]
跳转到指定楼层
楼主

  1. /**************************************************************************************
  2. *                串口通信实验              *
  3. 实现现象:下载程序后打开串口调试助手,将波特率设置为9600,选择发送的数据就可以显示
  4.    在串口助手上。具体操作参考操作视频
  5. 注意事项:无。                     
  6. ***************************************************************************************/
  7. #include "reg52.h"    //此文件中定义了单片机的一些特殊功能寄存器
  8. typedef unsigned int u16;   //对数据类型进行声明定义
  9. typedef unsigned char u8;
  10. sbit IN1=P2^0;//控制左电机IN1=0、IN2=0制动,IN1=0、IN2=1正转,IN1=1、IN2=0反转,IN1=1、IN2=1制动.
  11. sbit IN2=P2^1;//控制左电机
  12. sbit IN3=P2^2;//控制右电机
  13. sbit IN4=P2^3;//控制右电机
  14. /*******************************************************************************
  15. * 函数名串口
  16. * 输入           : 无
  17. * 输出           : 无
  18. *******************************************************************************/
  19. void UsartInit()
  20. {
  21. SCON=0X50;   //设置为工作方式1
  22. TMOD=0X20;   //设置计数器工作方式2
  23. TH1=0XFD;    //计数器初始值设置,注意波特率是9600的
  24. TR1=1;
  25. ES=1;      //打开接收中断
  26. EA=1;      //打开总中断
  27. }

  28. /*******************************************************************************
  29. * 函 数 名       : main
  30. * 函数功能   : 主函数
  31. * 输    入       : 无
  32. * 输    出      : 无
  33. *******************************************************************************/
  34. void main()
  35. {
  36. UsartInit();  // 串口初始化
  37. while(1);

  38. }
  39. /*******************************************************************************
  40. * 函数名         : Usart() interrupt 4
  41. * 函数功能    : 串口通信中断函数
  42. * 输入           : 无
  43. * 输出           : 无
  44. *******************************************************************************/
  45. void Usart() interrupt 4
  46. {
  47. u8 receiveData;

  48. if(RI)
  49. {
  50. RI=0;
  51. receiveData=SBUF;//出去接收到的数据
  52. if(receiveData==0x30)
  53.   {IN1=1;IN2=1;IN3=1;IN4=1;}
  54.   else if(receiveData==0x31)
  55.   {IN1=0;IN2=1;IN3=0;IN4=0;}
  56.   else if(receiveData==0x32)
  57.   {IN1=0;IN2=1;IN3=0;IN4=1;}
  58.      else if(receiveData==0x33)
  59.   {IN1=0;IN2=1;IN3=1;IN4=0;}
  60.   else if(receiveData==0x34)
  61.   {IN1=0;IN2=0;IN3=0;IN4=1;}
  62.   else if(receiveData==0x35)
  63.   {IN1=0;IN2=0;IN3=1;IN4=0;}
  64.   else if(receiveData==0x36)
  65.   {IN1=1;IN2=0;IN3=0;IN4=0;}
  66.   else if(receiveData==0x37)
  67.   {IN1=0;IN2=0;IN3=0;IN4=0;}
  68.   else
  69.   {IN1=0;IN2=0;IN3=0;IN4=0;}
  70. }
  71. RI = 0;//清除接收中断标志位
  72. SBUF=receiveData;//将接收到的数据放入到发送寄存器
  73. while(!TI);    //等待发送数据完成
  74. TI=0;
  75.         //清除发送完成标志位
  76. }
复制代码

评分

参与人数 4黑币 +68 收起 理由
莫德尔 + 10
1512 + 3 很给力!
山河入酒 + 5
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

沙发
ID:104477 发表于 2018-8-9 22:11 来自手机 | 只看该作者
蓝牙的距离才十米,不能远距离控制这个做什么用?就在十米内那玩吗那还不如不玩,太鸡肋了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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