久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: 簡(jiǎn)單的51單片機(jī)藍(lán)牙控制小車(chē)源程序 [打印本頁(yè)]

作者: 123wer煩    時(shí)間: 2019-6-1 15:58
標(biāo)題: 簡(jiǎn)單的51單片機(jī)藍(lán)牙控制小車(chē)源程序
用的是L298N電機(jī)驅(qū)動(dòng)模塊,四驅(qū)的
上傳的只有可以前進(jìn)后退轉(zhuǎn)彎的
具體復(fù)雜程序可以自己進(jìn)行相關(guān)更改


單片機(jī)源程序如下:
  1. #include <reg52.h>           //52芯片配置文件
  2. #include <intrins.h>   //包含nop等系統(tǒng)函數(shù)
  3. #include "bst_car.h"   //包含bst—v51智能小車(chē)頭文件
  4. #define uint unsigned int
  5. #define uchar unsigned char
  6. //--定義使用的IO--//
  7. uchar PuZh[36] = "**********************";
  8. //--聲明全局函數(shù)--//   
  9. void UsartConfiguration();
  10. void Delay_1ms(uint i);
  11. //=========================================================================================================================
  12. void delay(unsigned int xms)                                
  13. {
  14.     unsigned int i,j;
  15.         for(i=xms;i>0;i--)                      //i=xms即延時(shí)約xms毫秒
  16.     for(j=112;j>0;j--);
  17. }

  18. void Delay10us(unsigned char i)            //10us延時(shí)函數(shù) 啟動(dòng)超聲波模塊時(shí)使用
  19. {
  20.    unsigned char j;
  21. do{
  22.   j = 10;
  23.   do{
  24.    _nop_();
  25.    }while(--j);
  26. }while(--i);
  27. }  


  28. void UsartConfiguration()
  29. {        
  30.         SCON=0X50;                        //設(shè)置為工作方式1,8位數(shù)據(jù),可變波特率
  31.         TMOD=0X20;                        //設(shè)置計(jì)數(shù)器工作方式2
  32.         PCON=0X00;                        //波特率不加倍
  33.         TH1=0XFd;                    //計(jì)數(shù)器初始值設(shè)置,9600@11.0592MHz
  34.         TL1=0XFd;
  35.         TR1=1;                                        //打開(kāi)計(jì)數(shù)器
  36.         ES = 1;         //開(kāi)串口中斷
  37.     EA = 1;         //開(kāi)總中斷
  38. }


  39. /********************************************************************
  40. * 名稱 : Delay_1ms()
  41. * 功能 : 延時(shí)子程序,延時(shí)時(shí)間為 1ms
  42. * x * 輸入 : x (延時(shí)一毫秒的個(gè)數(shù))
  43. * 輸出 : 無(wú)
  44. ***********************************************************************/
  45. void Delay_1ms(uint i)//1ms延時(shí)
  46. {
  47.   uchar x,j;
  48.   
  49.   for(j=0;j<i;j++)
  50.     for(x=0;x<=148;x++);
  51. }
  52. /***************************************************************************/


  53. void  StartModule()                          //啟動(dòng)超聲波模塊
  54. {
  55.           TX=1;                                             //啟動(dòng)一次模塊
  56.       Delay10us(2);
  57.           TX=0;
  58. }

  59. void Forward(void)//前進(jìn)
  60. {

  61.         qz_in1=0;
  62.         qz_in2=1;
  63.         qy_in3=1;
  64.         qy_in4=0;
  65.         hz_in1=1;
  66.         hz_in2=0;
  67.         hy_in3=1;
  68.         hy_in4=0;
  69. }

  70. void Stop(void)        //停車(chē)
  71. {

  72.         qz_in1=0;
  73.         qz_in2=0;
  74.         qy_in3=0;
  75.         qy_in4=0;
  76.         hz_in1=0;
  77.         hz_in2=0;
  78.         hy_in3=0;
  79.         hy_in4=0;
  80. }

  81. void back(void)        //后退
  82. {

  83.         qz_in1=1;
  84.         qz_in2=0;
  85.         qy_in3=0;
  86.         qy_in4=1;
  87.         hz_in1=0;
  88.         hz_in2=1;
  89.         hy_in3=0;
  90.         hy_in4=1;        
  91. }   
  92. void Turn_Right(void)         //向右旋轉(zhuǎn)
  93. {
  94.            qz_in1=0;
  95.         qz_in2=0;
  96.         qy_in3=1;
  97.         qy_in4=0;
  98.         hz_in1=1;
  99.         hz_in2=0;
  100.         hy_in3=0;
  101.         hy_in4=0;
  102. }
  103. void Turn_Left()
  104. {
  105.         qz_in1=0;
  106.         qz_in2=1;
  107.         qy_in3=0;
  108.         qy_in4=0;
  109.         hz_in1=0;
  110.         hz_in2=0;
  111.         hy_in3=1;
  112.         hy_in4=0;
  113. }
  114. //=========================================================================================================================

  115. /*************主程序********************/
  116. void main(void)
  117. {
  118.    
  119. /*        unsigned int a;
  120.         cmg88();//關(guān)數(shù)碼管
  121.         delay(400); //啟動(dòng)等待,等LCM講入工作狀態(tài)
  122.         LCMInit(); //LCM初始化
  123.         delay(5);//延時(shí)片刻


  124.     TMOD=TMOD|0x10;//設(shè)T0為方式1,GATE=1;
  125.     EA=1;                                           //開(kāi)啟總中斷
  126.     TH1=0;
  127.     TL1=0;         
  128.     ET1=1;             //允許T0中斷
  129.        */
  130.                 UsartConfiguration();//初始化串口
  131.                 qz_ena=1;
  132.                 qy_enb=1;
  133.                 hz_ena=1;
  134.                 hy_enb=1;
  135.                

  136.         //=======================================================================================================================                        
  137.          while(1)
  138.         {
  139.                    ;
  140. //        Forward();
  141.         //        Turn_Right();
  142.         //        delay(1000);

  143.         /*        RX=1;
  144.             StartModule();                                 //啟動(dòng)模塊
  145.         for(a=951;a>0;a--)
  146.             {
  147.                   
  148.                if(RX==1)
  149.                    {
  150.               Timer_Count();                 //超聲波高電平脈沖寬度計(jì)算函數(shù)
  151.                    }
  152.              } */
  153.            }
  154. }
  155. /********************************************************************
  156. * 名稱 : Com_Int()
  157. * 功能 : 串口中斷子函數(shù)
  158. * 輸入 : 無(wú) * 輸出 : 無(wú)
  159. ***********************************************************************/
  160. void Com_Int(void) interrupt 4
  161. {
  162.         uchar i;
  163.   uchar receive_data;
  164.         
  165.   EA = 0;
  166.         
  167.   if(RI == 1) //當(dāng)硬件接收到一個(gè)數(shù)據(jù)時(shí),RI會(huì)置位
  168.         {                 
  169.                 RI = 0;
  170.                 receive_data = SBUF;//接收到的數(shù)據(jù)
  171.                         
  172.                 if(receive_data == '1')         
  173.                 {
  174.                            Forward();
  175.                 }
  176.                 else if(receive_data == '2')
  177.                 {
  178.                          back();
  179.                 }
  180.                 else if(receive_data == '3')
  181.                 {
  182.                         Turn_Right();
  183.                 }
  184.                 else if(receive_data == '4')
  185.                 {
  186.                         Turn_Left();
  187.                 }
  188.                 else
  189.                 {
  190.                         Stop();
  191.                 }
  192.                
  193.         }
  194.                
  195.                 for(i=0; i<36; i++)
  196.                 {
  197.                         SBUF = PuZh[i];   //將要發(fā)送的數(shù)據(jù)放入到發(fā)送寄存器
  198.                         while(!TI);                    //等待發(fā)送數(shù)據(jù)完成
  199.                         TI=0;                                //清除發(fā)送完成標(biāo)志位
  200.                         Delay_1ms(1);
  201.                 }
  202.                 EA = 1;
  203. }
復(fù)制代碼

所有51代碼工程文件資料51hei提供下載:
藍(lán)牙簡(jiǎn)單小車(chē).zip (23.43 KB, 下載次數(shù): 141)

作者: long191633085    時(shí)間: 2020-1-19 20:27
感謝樓主分享!!
作者: happy2lucky    時(shí)間: 2020-5-29 16:53
那個(gè)數(shù)組36是什么意思?還有數(shù)組里面放的是什么數(shù)據(jù)呢?




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 色婷婷一区二区三区四区 | 久久天堂网 | av色婷婷| 国产精品久久久久久久久 | 日本免费不卡视频 | 韩日中文字幕 | 中文字幕精品在线观看 | 成人动漫免费观看 | 特一级黄色片 | 国产精品一品二区三区的使用体验 | 天天操天天操天天操 | 91久久久久久久久 | 国产精品日日摸天天碰 | 91片黄在线观看 | 亚洲影院在线 | 欧美日韩在线一区二区三区 | 教室脔到她哭h粗话h好爽视频 | av在线播放网站 | 黄视频在线播放 | 一级免费看 | 亚洲一级在线 | 91精品久久久久久久久久 | 成人精品三级av在线看 | 中文在线播放 | 死神来了4无删减版在线观看 | 日本一区二区三区在线视频 | 色婷婷免费视频 | 日本精品网站 | 性大毛片视频 | 伊人av综合 | 在线视频成人 | 久久久九九| 综合导航 | 伊人av综合| 九月丁香婷婷 | 在线国产一区 | 天天爽 | 中文字幕日本 | 婷婷综合五月天 | 国产黄网| 一区二区三区欧美日韩 |