找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2878|回復(fù): 5
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)藍(lán)牙小車制作,四驅(qū)PWM納姆輪 附程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
功能:前進(jìn)后退、左移右移、原地360、對(duì)角行走,電源8.4v,減速比128/min,HC04藍(lán)牙模塊

制作出來的實(shí)物圖如下:





單片機(jī)源程序如下:
  1. #include <REGX52.H>
  2. unsigned char count=0;
  3. unsigned char pwm=5; //占空比設(shè)定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; //開機(jī)等待
  11. }

  12. void qianjin() //前進(jìn):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() //逆時(shí)針
  29. {  
  30.   P1=0X56;   
  31. }
  32. void ssz() //順時(shí)針
  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() //左轉(zhuǎn)
  53. {
  54.     P1=0X50;
  55. }
  56. void youzhuan()//右轉(zhuǎn)
  57. {
  58.     P1=0X09;
  59. }
  60. void Timer0_Int() //T0初始化
  61. {
  62.     TMOD=0X01;
  63.     TH0= 0XFc; //1ms定時(shí)
  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定時(shí)
  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;  //開啟計(jì)時(shí)
  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位自動(dòng)重裝模式
  104.    TH1 = 0xfd;
  105.    TL1 = 0xfd; //9600波特率
  106.    TR1 = 1; //啟動(dòng)定時(shí)器1
  107. }
  108. //串口中斷
  109. void UART_SER() interrupt 4
  110. {
  111. if(RI)
  112.   {
  113.     RI = 0;//清除接收標(biāo)志
  114.     switch(SBUF)
  115.      {
  116.        case 0x00: tingzhi(); break; //停止
  117.        case 0x01: qianjin(); break; //前進(jìn)
  118.        case 0x02: houtui(); break; //后退
  119.        case 0x03: zuoyi(); break; //左移
  120.        case 0x04: youyi(); break; //右移
  121.              case 0x05: nsz(); break; //逆時(shí)針
  122.        case 0x06: ssz(); break; //順時(shí)針
  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; //左轉(zhuǎn)
  128.              case 0x12: youzhuan(); break; //右轉(zhuǎn)
  129.          }
  130.   }
  131. }
  132. void main()
  133. {
  134.   tingzhi();
  135.     Timer0_Int();
  136.     UART_INIT();//串口初始化
  137.   while(1);      
  138. }
復(fù)制代碼









51hei圖片_20230509181314.jpg (3.43 MB, 下載次數(shù): 79)

51hei圖片_20230509181314.jpg

評(píng)分

參與人數(shù) 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:143767 發(fā)表于 2023-5-13 12:09 | 只看該作者
樓主,沒有藍(lán)牙APP啊
回復(fù)

使用道具 舉報(bào)

板凳
ID:891876 發(fā)表于 2023-5-13 23:26 | 只看該作者
dj3365191 發(fā)表于 2023-5-13 12:09
樓主,沒有藍(lán)牙APP啊

手機(jī)串口助手都行,買模塊一般有送
回復(fù)

使用道具 舉報(bào)

地板
ID:1091382 發(fā)表于 2023-9-13 00:59 | 只看該作者
藍(lán)牙怎么接線
回復(fù)

使用道具 舉報(bào)

5#
ID:1093267 發(fā)表于 2023-9-20 09:13 | 只看該作者
挺好的 樓主辛苦 感謝分享
回復(fù)

使用道具 舉報(bào)

6#
ID:143767 發(fā)表于 2023-9-28 11:46 | 只看該作者
樓主你好,做出來用手機(jī)串口助手控制一點(diǎn)反應(yīng)都沒有,前進(jìn)的命令是0X01,后退的命令是0X02嗎?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表