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

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

QQ登錄

只需一步,快速開(kāi)始

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

51單片機(jī)控制尋跡避障小車(chē)各種源程序(功能很多)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
包括電路設(shè)計(jì),一些論文還有調(diào)試程序


程序適用單片機(jī)
這些程序都可以用ATMEL公司的, AT89C51 C52
                              AT89S51 S52
          可以用STC公司的,   STC89C51
                              STC89C52
請(qǐng)初學(xué)的朋友注意,不要再問(wèn)你這些程序是不是只能用在51上面的,不能用在52上面。


程序調(diào)試步驟
1.在裝好車(chē)后,一步一步來(lái),先把驅(qū)動(dòng)模塊與單片機(jī)控制板連接好。其它不接,下載程序1    -  程序4 看小車(chē)前進(jìn)后退是否正常。如果正常
再往下一步。不要在全部安裝好后,就直接測(cè)試下面的一些比較復(fù)雜的應(yīng)用的程序!


關(guān)于KEIL打少開(kāi)頭文件問(wèn)題

關(guān)于KEIL打少開(kāi)頭文件問(wèn)題!
很多朋友反應(yīng)你的程序是不是不能用呀,編譯通不過(guò)呀,我們用的KEIL UV3
如果編譯少文件的話請(qǐng)把AT89X51.H    AT89X52.H這個(gè)頭文件放到
X:\Keil\C51\INC
注意X為安裝盤(pán),安裝不同位置不同找到對(duì)應(yīng)的就行

單片機(jī)源程序如下:
  1.         /****************************************************************************
  2.          簡(jiǎn)單尋跡程序:接法
  3.          
  4.      EN1 EN2 PWM輸入端,本程序不使用這二個(gè),直接使插上跳線帽,使能輸出,這樣就能全速運(yùn)行

  5.          PWM采用轉(zhuǎn)向端輸出PWM法來(lái)使小車(chē),調(diào)速運(yùn)行,原理,驅(qū)動(dòng)端IN1=0  IN2=1 的時(shí)候全速前進(jìn)         ,IN1=0,IN2=0時(shí)電機(jī)停止
  6.          當(dāng)給IN2一個(gè),占空比信號(hào)時(shí),IN1=0 (IN2=0或IN2=1)之間切換,就是前進(jìn)與停止之間切換,占空比調(diào)節(jié)其速度



  7.      P1_0 P1_1 接IN1  IN2    當(dāng) P1_0=1,P1_1=0; 時(shí)左上電機(jī)正轉(zhuǎn)        左上電機(jī)接驅(qū)動(dòng)板子輸出端(藍(lán)色端子OUT1 OUT2)
  8.          P1_0 P1_1 接IN1  IN2    當(dāng) P1_0=0,P1_1=1; 時(shí)左上電機(jī)反轉(zhuǎn)        

  9.          P1_0 P1_1 接IN1  IN2    當(dāng) P1_0=0,P1_1=0; 時(shí)左上電機(jī)停轉(zhuǎn)        

  10.          P1_2 P1_3 接IN3  IN4    當(dāng) P1_2=1,P1_3=0; 時(shí)左下電機(jī)正轉(zhuǎn)        左下電機(jī)接驅(qū)動(dòng)板子輸出端(藍(lán)色端子OUT3 OUT4)
  11.          P1_2 P1_3 接IN3  IN4    當(dāng) P1_2=0,P1_3=1; 時(shí)左下電機(jī)反轉(zhuǎn)   

  12.          P1_2 P1_3 接IN3  IN4    當(dāng) P1_2=0,P1_3=0; 時(shí)左下電機(jī)停轉(zhuǎn)        

  13.          P1_4 P1_5 接IN5  IN6    當(dāng) P1_4=1,P1_5=0; 時(shí)右上電機(jī)正轉(zhuǎn)        右上電機(jī)接驅(qū)動(dòng)板子輸出端(藍(lán)色端子OUT5 OUT6)
  14.          P1_4 P1_5 接IN5  IN6    當(dāng) P1_4=0,P1_5=1; 時(shí)右上電機(jī)反轉(zhuǎn)

  15.          P1_4 P1_5 接IN5  IN6    當(dāng) P1_4=0,P1_5=0; 時(shí)右上電機(jī)停轉(zhuǎn)

  16.          P1_6 P1_7 接IN7  IN8    當(dāng) P1_6=1,P1_7=0; 時(shí)右下電機(jī)正轉(zhuǎn)        右下電機(jī)接驅(qū)動(dòng)板子輸出端(藍(lán)色端子OUT7 OUT8)
  17.          P1_6 P1_7 接IN7  IN8    當(dāng) P1_6=0,P1_7=1; 時(shí)右下電機(jī)反轉(zhuǎn)

  18.          P1_6 P1_7 接IN7  IN8    當(dāng) P1_6=0,P1_7=0; 時(shí)右下電機(jī)停轉(zhuǎn)
  19.    

  20.      P3_4接四路尋跡模塊接口第一路輸出信號(hào)即中控板上面標(biāo)記為OUT1
  21.      P3_5接四路尋跡模塊接口第二路輸出信號(hào)即中控板上面標(biāo)記為OUT2        
  22.      P3_6接四路尋跡模塊接口第三路輸出信號(hào)即中控板上面標(biāo)記為OUT3
  23.          P3_7接四路尋跡模塊接口第四路輸出信號(hào)即中控板上面標(biāo)記為OUT4
  24.          四路尋跡傳感器有信號(hào)(白線)為0  沒(méi)有信號(hào)(黑線)為1
  25.          四路尋跡傳感器電源+5V GND 取自于單片機(jī)板靠近液晶調(diào)節(jié)對(duì)比度的電源輸出接口

  26.                                                                                                                                                                                          
  27.          關(guān)于單片機(jī)電源:本店驅(qū)動(dòng)模塊內(nèi)帶LDO穩(wěn)壓芯片,當(dāng)電池輸入6V時(shí)時(shí)候可以輸出穩(wěn)定的5V
  28.          分別在針腳標(biāo)+5 與GND 。這個(gè)輸出電源可以作為單片機(jī)系統(tǒng)的供電電源。
  29.         ****************************************************************************/
  30.         
  31.         
  32.         #include<AT89x51.H>


  33.     #define Left_1_led        P3_4         //P3_4接四路尋跡模塊接口第一路輸出信號(hào)即中控板上面標(biāo)記為OUT1
  34.         #define Left_2_led        P3_5         //P3_5接四路尋跡模塊接口第二路輸出信號(hào)即中控板上面標(biāo)記為OUT2        

  35.     #define Right_1_led       P3_6         //P3_6接四路尋跡模塊接口第三路輸出信號(hào)即中控板上面標(biāo)記為OUT3
  36.         #define Right_2_led       P3_7         //P3_7接四路尋跡模塊接口第四路輸出信號(hào)即中控板上面標(biāo)記為OUT4


  37.         #define Left_moto_pwm          P1_1         //PWM信號(hào)端
  38.         #define Left_moto_pwm1          P1_3
  39.         
  40.         #define Right_moto_pwm          P1_5
  41.         #define Right_moto_pwm1          P1_7                                                                 
  42.                                                                  


  43.         #define Left_moto_go      {P1_0=1,P1_1=0,P1_2=1,P1_3=0;}    //左邊兩個(gè)電機(jī)向前走
  44.         #define Left_moto_back    {P1_0=0,P1_1=1,P1_2=0,P1_3=1;}         //左邊兩個(gè)電機(jī)向后轉(zhuǎn)
  45.         #define Left_moto_Stop    {P1_0=0,P1_1=0,P1_2=0,P1_3=0;}    //左邊兩個(gè)電機(jī)停轉(zhuǎn)                     
  46.         #define Right_moto_go     {P1_4=1,P1_5=0,P1_6=1,P1_7=0;}        //右邊兩個(gè)電機(jī)向前走
  47.         #define Right_moto_back   {P1_4=0,P1_5=1,P1_6=0,P1_7=1;}        //右邊兩個(gè)電機(jī)向前走
  48.         #define Right_moto_Stop   {P1_4=0,P1_5=0,P1_6=0,P1_7=0;}        //右邊兩個(gè)電機(jī)停轉(zhuǎn)   

  49.         unsigned char pwm_val_left  =0;//變量定義
  50.         unsigned char push_val_left =0;// 左電機(jī)占空比N/10
  51.         unsigned char pwm_val_right =0;
  52.         unsigned char push_val_right=0;// 右電機(jī)占空比N/10
  53.         bit Right_moto_stop=1;
  54.         bit Left_moto_stop =1;
  55.         unsigned  int  time=0;
  56.    
  57. /************************************************************************/        
  58. //延時(shí)函數(shù)        
  59.    void delay(unsigned int k)
  60. {   
  61.      unsigned int x,y;
  62.          for(x=0;x<k;x++)
  63.            for(y=0;y<2000;y++);
  64. }
  65. /************************************************************************/
  66. //前速前進(jìn)
  67.      void  run(void)
  68. {
  69.      push_val_left=7;         //速度調(diào)節(jié)變量 0-9。。。9最小,0最大
  70.          push_val_right=7;
  71.          Left_moto_go ;   //左電機(jī)往前走
  72.          Right_moto_go ;  //右電機(jī)往前走
  73. }

  74. //前速后退
  75.      void  backrun(void)
  76. {
  77.      push_val_left=3;         //速度調(diào)節(jié)變量 0-9。。。0最小,1最大
  78.          push_val_right=3;
  79.          Left_moto_back ;   //左電機(jī)往前走
  80.          Right_moto_back ;  //右電機(jī)往前走
  81. }

  82. //左轉(zhuǎn)
  83.      void  leftrun(void)
  84. {
  85.    
  86.          Left_moto_back ;   //左電機(jī)往前走
  87.          Right_moto_go ;  //右電機(jī)往前走
  88. }

  89. //右轉(zhuǎn)
  90.      void  rightrun(void)
  91. {
  92.    
  93.          Left_moto_go ;   //左電機(jī)往前走
  94.          Right_moto_back ;  //右電機(jī)往前走
  95. }


  96. /************************************************************************/
  97. /*                    PWM調(diào)制電機(jī)轉(zhuǎn)速                                   */
  98. /************************************************************************/
  99. /*                    左電機(jī)調(diào)速                                        */
  100. /*調(diào)節(jié)push_val_left的值改變電機(jī)轉(zhuǎn)速,占空比            */
  101.                 void pwm_out_left_moto(void)
  102. {  
  103.    if(Left_moto_stop)
  104.    {
  105.     if(pwm_val_left<=push_val_left)
  106.                {
  107.                      Left_moto_pwm=1;
  108.                      Left_moto_pwm1=1;
  109.                    }
  110.         else
  111.                {
  112.                  Left_moto_pwm=0;
  113.                      Left_moto_pwm1=0;
  114.                    }
  115.         if(pwm_val_left>=10)
  116.                pwm_val_left=0;
  117.    }
  118.    else   
  119.           {
  120.            Left_moto_pwm=0;
  121.            Left_moto_pwm1=0;
  122.                   }
  123. }
  124. /******************************************************************/
  125. /*                    右電機(jī)調(diào)速                                  */  
  126.    void pwm_out_right_moto(void)
  127. {
  128.   if(Right_moto_stop)
  129.    {
  130.     if(pwm_val_right<=push_val_right)
  131.               {
  132.                Right_moto_pwm=1;
  133.                    Right_moto_pwm1=1;
  134.                    }
  135.         else
  136.               {
  137.                    Right_moto_pwm=0;
  138.                    Right_moto_pwm1=0;
  139.                   }
  140.         if(pwm_val_right>=10)
  141.                pwm_val_right=0;
  142.    }
  143.    else   
  144.           {
  145.            Right_moto_pwm=0;
  146.            Right_moto_pwm1=0;
  147.               }
  148. }
  149.       
  150. /***************************************************/
  151. ///*TIMER0中斷服務(wù)子函數(shù)產(chǎn)生PWM信號(hào)*/
  152.          void timer0()interrupt 1   using 2
  153. {
  154.      TH0=0XFc;          //1Ms定時(shí)
  155.          TL0=0X18;
  156.          time++;
  157.          pwm_val_left++;
  158.          pwm_val_right++;
  159.          pwm_out_left_moto();
  160.          pwm_out_right_moto();
  161. }        

  162. /*********************************************************************/                 
  163. /*--主函數(shù)--*/
  164.         void main(void)
  165. {

  166.         TMOD=0X01;
  167.         TH0= 0XFc;                  //1ms定時(shí)
  168.          TL0= 0X18;
  169.         TR0= 1;
  170.         ET0= 1;
  171.         EA = 1;


  172. ……………………

  173. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
5.小車(chē)配套程序.rar (1.08 MB, 下載次數(shù): 694)


評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:412449 發(fā)表于 2018-11-6 23:31 | 只看該作者
這個(gè)資料很好,很全面
回復(fù)

使用道具 舉報(bào)

板凳
ID:411366 發(fā)表于 2018-11-12 15:14 | 只看該作者
很好,謝謝
回復(fù)

使用道具 舉報(bào)

地板
ID:604493 發(fā)表于 2019-8-30 00:16 來(lái)自觸屏版 | 只看該作者
有沒(méi)有主程序
回復(fù)

使用道具 舉報(bào)

5#
ID:608128 發(fā)表于 2019-9-8 19:48 | 只看該作者
功能全面,值得參考
回復(fù)

使用道具 舉報(bào)

6#
ID:611378 發(fā)表于 2019-9-16 09:05 | 只看該作者
我的小車(chē)沒(méi)有舵機(jī),前四個(gè)都o(jì)k,往下就都不行了,我的只有超聲波避障和藍(lán)牙控制,好氣
回復(fù)

使用道具 舉報(bào)

7#
ID:242298 發(fā)表于 2019-9-22 02:28 | 只看該作者
這個(gè)資料很好,很全面
回復(fù)

使用道具 舉報(bào)

8#
ID:648017 發(fā)表于 2019-11-23 19:04 | 只看該作者

這個(gè)資料很好
回復(fù)

使用道具 舉報(bào)

9#
ID:684871 發(fā)表于 2020-1-14 13:44 來(lái)自觸屏版 | 只看該作者
我的板子上沒(méi)有l(wèi)298n,請(qǐng)問(wèn)可以調(diào)速嗎?
回復(fù)

使用道具 舉報(bào)

10#
ID:688784 發(fā)表于 2020-1-31 17:23 | 只看該作者
下載看不了啊
回復(fù)

使用道具 舉報(bào)

11#
ID:228376 發(fā)表于 2020-2-17 02:20 來(lái)自觸屏版 | 只看該作者
謝謝樓主分享
回復(fù)

使用道具 舉報(bào)

12#
ID:676153 發(fā)表于 2020-2-24 13:13 | 只看該作者
謝謝樓主分享
回復(fù)

使用道具 舉報(bào)

13#
ID:693716 發(fā)表于 2020-2-27 19:38 | 只看該作者
幣不夠了,無(wú)法下載,想問(wèn)問(wèn)樓主,通過(guò)PWM控制電機(jī),有什么辦法能保證多個(gè)電機(jī)同步運(yùn)行嗎?,我自己做的小車(chē),通過(guò)PWM調(diào)速的,有光電編碼器,返回的脈沖和要求運(yùn)行的脈沖是一樣的的,但是電機(jī)就是不能同步啟動(dòng)和同步停止,導(dǎo)致小車(chē)運(yùn)行不能走直線。
回復(fù)

使用道具 舉報(bào)

14#
ID:713570 發(fā)表于 2020-3-23 17:02 來(lái)自觸屏版 | 只看該作者
群主,下載了,沒(méi)有pcb電路圖呀,求電路設(shè)計(jì)圖
回復(fù)

使用道具 舉報(bào)

15#
ID:713570 發(fā)表于 2020-3-23 17:07 來(lái)自觸屏版 | 只看該作者
yrx0203 發(fā)表于 2020-1-14 13:44
我的板子上沒(méi)有l(wèi)298n,請(qǐng)問(wèn)可以調(diào)速嗎?

請(qǐng)問(wèn)有沒(méi)有電路圖,下載下來(lái)只有程序代碼呀
回復(fù)

使用道具 舉報(bào)

16#
ID:713570 發(fā)表于 2020-3-23 17:12 來(lái)自觸屏版 | 只看該作者
群主,為什么我下載下來(lái)沒(méi)有電路圖呀
回復(fù)

使用道具 舉報(bào)

17#
ID:633418 發(fā)表于 2020-4-2 16:45 | 只看該作者
資料很好,感謝分享
回復(fù)

使用道具 舉報(bào)

18#
ID:844202 發(fā)表于 2020-11-16 09:22 | 只看該作者
這個(gè)資料很好 ,很有利于我學(xué)習(xí),謝謝(*°?°)=3
回復(fù)

使用道具 舉報(bào)

19#
ID:971056 發(fā)表于 2021-10-11 08:20 | 只看該作者
謝謝樓主,正好最近在找這個(gè)資料
回復(fù)

使用道具 舉報(bào)

20#
ID:986849 發(fā)表于 2022-4-13 13:12 | 只看該作者
用for調(diào)轉(zhuǎn)速,電機(jī)效率會(huì)降低的嘛
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 一级黄色片免费在线观看 | 日日操网站 | 一区二区三区在线观看视频 | 日本黄色高清视频 | 精品国产99| 欧美精品一区二区三区一线天视频 | 欧美一区二区三区精品 | 亚洲人成人一区二区在线观看 | 干干干日日日 | 最新国产精品视频 | 国产1区2区 | 久久免费视频1 | 日韩一区二区三区四区五区六区 | 欧美日韩亚洲视频 | 亚洲精品乱码久久久久久按摩观 | 一级aaaaaa毛片免费同男同女 | 一本色道久久综合亚洲精品高清 | 国产精品高潮呻吟久久aⅴ码 | 看毛片的网站 | 欧美一区二区小视频 | 黄色一级免费 | jdav视频在线观看免费 | 欧美淫| 日日久 | a级大片 | 大学生a级毛片免费视频 | 国产精品久久久久久吹潮 | 中文字幕在线免费观看 | 亚洲精品欧美 | 中文字幕成人免费视频 | 国产成人免费 | 亚洲精品欧美一区二区三区 | 日韩中文字幕在线播放 | 国产中文字幕在线观看 | 91精品国产91综合久久蜜臀 | 日韩一区二区久久 | 日韩午夜在线观看 | 国产精品夜夜夜一区二区三区尤 | 久久国产美女视频 | 亚洲第一视频网站 | 欧美精品一区三区 |