找回密码
 立即注册

QQ登录

只需一步,快速开始

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

51单片机蓝牙小车制作,四驱PWM纳姆轮 附程序

[复制链接]
跳转到指定楼层
楼主
功能:前进后退、左移右移、原地360、对角行走,电源8.4v,减速比128/min,HC04蓝牙模块

制作出来的实物图如下:





单片机源程序如下:
  1. #include <REGX52.H>
  2. unsigned char count=0;
  3. unsigned char pwm=5; //占空比设定1-10

  4. sbit Apwm12=P3^4;   //PWM输出
  5. sbit Apwm34=P3^5;   //PWM输出
  6. sbit Bpwm12=P3^6;   //PWM输出
  7. sbit Bpwm34=P3^7;   //PWM输出

  8. void tingzhi() //停止
  9. {
  10.   P1=0x00; //开机等待
  11. }

  12. void qianjin() //前进:A1=1 A2=0,A3=0 A4=1,B1=1 B2=0,B3=1 B4=0  
  13. {
  14.   P1=0X59;
  15. }

  16. void houtui() //后退:A1=0 A2=1,A3=1 A4=0,B1=0 B2=1,B3=0 B4=1
  17. {
  18.   P1=0XA6;
  19. }
  20. void zuoyi() //左移
  21. {
  22.   P1=0X6A;
  23. }
  24. void youyi() //右移
  25. {  
  26.   P1=0X95;  
  27. }
  28. void nsz() //逆时针
  29. {  
  30.   P1=0X56;   
  31. }
  32. void ssz() //顺时针
  33. {  
  34.   P1=0XA9;
  35. }
  36. void zuoshang() //左上
  37. {
  38.     P1=0X48;
  39. }
  40. void zuoxia() //左下
  41. {
  42.     P1=0X22;
  43. }
  44. void youshang() //右上
  45. {
  46.     P1=0X11;
  47. }
  48. void youxia() //右下
  49. {
  50.     P1=0X84;
  51. }
  52. void zuozhuan() //左转
  53. {
  54.     P1=0X50;
  55. }
  56. void youzhuan()//右转
  57. {
  58.     P1=0X09;
  59. }
  60. void Timer0_Int() //T0初始化
  61. {
  62.     TMOD=0X01;
  63.     TH0= 0XFc; //1ms定时
  64.      TL0= 0X66;
  65.     TR0= 1;
  66.     ET0= 1;
  67.     EA = 1;
  68. }
  69. void timer0()interrupt 1 //T0中断程序
  70. {
  71.      count++;
  72.      TR0= 0;
  73.      TH0= 0XFc; //重载1ms定时
  74.       TL0= 0X66;
  75. if(count<=pwm)
  76.      {
  77.        Apwm12=1;
  78.      Apwm34=1;
  79.      Bpwm12=1;
  80.      Bpwm34=1;
  81.      }
  82.      else
  83.      {
  84.          Apwm12=0;
  85.      Apwm34=0;
  86.      Bpwm12=0;
  87.      Bpwm34=0;
  88.      }
  89.    
  90.     if(count>=10)
  91.      {
  92.          count=0; //10ms清零
  93.      }
  94.          TR0= 1;  //开启计时
  95.      }

  96. void UART_INIT() //串口初始化
  97. {
  98.    SM0 = 0;
  99.    SM1 = 1; //串口工作方式1
  100.    REN = 1; //允许串口接收
  101.    EA = 1; //开总中断
  102.    ES = 1; //开串口中断
  103.    TMOD = 0x20; //8位自动重装模式
  104.    TH1 = 0xfd;
  105.    TL1 = 0xfd; //9600波特率
  106.    TR1 = 1; //启动定时器1
  107. }
  108. //串口中断
  109. void UART_SER() interrupt 4
  110. {
  111. if(RI)
  112.   {
  113.     RI = 0;//清除接收标志
  114.     switch(SBUF)
  115.      {
  116.        case 0x00: tingzhi(); break; //停止
  117.        case 0x01: qianjin(); break; //前进
  118.        case 0x02: houtui(); break; //后退
  119.        case 0x03: zuoyi(); break; //左移
  120.        case 0x04: youyi(); break; //右移
  121.              case 0x05: nsz(); break; //逆时针
  122.        case 0x06: ssz(); break; //顺时针
  123.              case 0x07: zuoshang(); break; //左上
  124.              case 0x08: youshang(); break; //右上
  125.              case 0x09: zuoxia(); break; //左下
  126.              case 0x10: youxia(); break; //右下
  127.              case 0x11: zuozhuan(); break; //左转
  128.              case 0x12: youzhuan(); break; //右转
  129.          }
  130.   }
  131. }
  132. void main()
  133. {
  134.   tingzhi();
  135.     Timer0_Int();
  136.     UART_INIT();//串口初始化
  137.   while(1);      
  138. }
复制代码









51hei图片_20230509181314.jpg (3.43 MB, 下载次数: 79)

51hei图片_20230509181314.jpg

评分

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

查看全部评分

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

使用道具 举报

沙发
ID:143767 发表于 2023-5-13 12:09 | 只看该作者
楼主,没有蓝牙APP啊
回复

使用道具 举报

板凳
ID:891876 发表于 2023-5-13 23:26 | 只看该作者
dj3365191 发表于 2023-5-13 12:09
楼主,没有蓝牙APP啊

手机串口助手都行,买模块一般有送
回复

使用道具 举报

地板
ID:1091382 发表于 2023-9-13 00:59 | 只看该作者
蓝牙怎么接线
回复

使用道具 举报

5#
ID:1093267 发表于 2023-9-20 09:13 | 只看该作者
挺好的 楼主辛苦 感谢分享
回复

使用道具 举报

6#
ID:143767 发表于 2023-9-28 11:46 | 只看该作者
楼主你好,做出来用手机串口助手控制一点反应都没有,前进的命令是0X01,后退的命令是0X02吗?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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