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

QQ登錄

只需一步,快速開始

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

智能小車紅外遙控單片機(jī)源碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
分享一個(gè)智能小車紅外遙控源碼:
想學(xué)習(xí)的可以了解一下。



  1. /**********************亞博智能小車?yán)?***********************
  2. *  平臺(tái):BST-V51  + Keil uVision3 + STC89C52
  3. *  名稱:智能小車?yán)?br />
  4. *  編寫:羅工
  5. *  晶振:11.0592MHZ
  6. *  說明:免費(fèi)開源,不提供源代碼分析,有問題直接到交流群交流
  7. *  QQ交流群:217588580
  8. *  硬件設(shè)置:要有自己動(dòng)手能力,進(jìn)行組裝接線和傳感器靈敏度的調(diào)試,才能完成實(shí)驗(yàn)
  9. *  使用說明:根據(jù)下面IO口自己用杜邦線連接各種模塊,可以自己修改各種模塊IO口

  10. *  學(xué)習(xí)建議:進(jìn)行智能小車程序?qū)W習(xí)前,可先看51單片機(jī)開發(fā)板配套28課視頻教程

  11. ******************************************************************/
  12. //上電后小車直接進(jìn)入待命狀態(tài),通過遙控控制小車前后左右停

  13. /**************************************************************
  14. //重要說明:一定要把P3.2 IO口上的杜邦線取下,程序才能正常運(yùn)行
  15. //因?yàn)镻3.2為單片機(jī)外部中斷觸發(fā)腳,本實(shí)驗(yàn)采用外部中斷方式判斷紅外信號(hào)
  16. ****************************************************************/

  17. //遙控器對(duì)應(yīng)小車前后左右位置請(qǐng)看紅外搖控器編碼說明圖
  18.                
  19. #include<reg52.h>
  20. #include"bst_car.h"
  21.    

  22. #define Imax 14000    //此處為晶振為11.0592時(shí)的取值,
  23. #define Imin 8000    //如用其它頻率的晶振時(shí),
  24. #define Inum1 1450    //要改變相應(yīng)的取值。
  25. #define Inum2 700
  26. #define Inum3 3000

  27. unsigned char f=0;
  28. unsigned char Im[4]={0x00,0x00,0x00,0x00};
  29. unsigned char show[2]={0,0};
  30. unsigned long m,Tc;
  31. unsigned char IrOK;

  32.    
  33. /************************************************************************/       
  34. //延時(shí)函數(shù)       
  35.    void delay(unsigned int k)
  36. {   
  37.      unsigned int x,y;
  38.          for(x=0;x<k;x++)
  39.            for(y=0;y<2000;y++);
  40. }
  41. /************************************************************************/       
  42. //外部中斷解碼程序
  43. void intersvr0(void) interrupt 1 using 1
  44. {
  45.     Tc=TH0*256+TL0;      //提取中斷時(shí)間間隔時(shí)長
  46.     TH0=0;
  47.     TL0=0;              //定時(shí)中斷重新置零
  48.     if((Tc>Imin)&&(Tc<Imax))
  49.     {
  50.         m=0;
  51.         f=1;
  52.         return;
  53.     }       //找到啟始碼

  54.     if(f==1)
  55.     {
  56.         if(Tc>Inum1&&Tc<Inum3)
  57.         {
  58.             Im[m/8]=Im[m/8]>>1|0x80; m++;
  59.         }
  60.         if(Tc>Inum2&&Tc<Inum1)
  61.         {
  62.          Im[m/8]=Im[m/8]>>1; m++; //取碼
  63.         }
  64.         if(m==32)
  65.         {
  66.          m=0;  
  67.          f=0;
  68.          if(Im[2]==~Im[3])
  69.         {
  70.            IrOK=1;
  71.         }
  72.         else IrOK=0;   //取碼完成后判斷讀碼是否正確
  73.         }
  74.                //準(zhǔn)備讀下一碼
  75.    }

  76. }
  77. /************************************************************************/
  78. //全速前進(jìn)
  79. void  run(void)
  80. {  
  81.          Left_moto_go ;   //左電機(jī)往前走
  82.          Right_moto_go ;  //右電機(jī)往前走
  83. }

  84. //全速后退
  85.      void  backrun(void)
  86. {
  87.          Left_moto_back ;   //左電機(jī)后退
  88.          Right_moto_back ;  //右電機(jī)后退
  89. }

  90. //右轉(zhuǎn)
  91.      void  rightrun(void)
  92. {
  93.          Left_moto_go ;   //左電機(jī)前進(jìn)
  94.          Right_moto_Stop ;  //右電機(jī)停止
  95. }

  96. //左轉(zhuǎn)
  97.      void  leftrun(void)
  98. {
  99.          Left_moto_Stop ;   //左電機(jī)停止
  100.          Right_moto_go ;  //右電機(jī)前進(jìn)
  101. }
  102. //STOP
  103.      void  stoprun(void)
  104. {
  105.          Left_moto_Stop ;   //左電機(jī)停止
  106.          Right_moto_Stop ;  //右電機(jī)停止
  107. }


  108. /*********************************************************************/                 
  109. /*--主函數(shù)--*/
  110. void main(void)
  111. {
  112.          
  113.     m=0;
  114.     f=0;

  115.     IT0=1;
  116.     EX0=1;

  117.     TMOD=0x11;  
  118.     TH0=0;
  119.         TL0=0;
  120.     TR0=1;
  121.         EA=1;

  122.         delay(100);          


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

完整源碼下載:
智能小車紅外遙控實(shí)驗(yàn).rar (22.88 KB, 下載次數(shù): 56)

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

使用道具 舉報(bào)

沙發(fā)
ID:191130 發(fā)表于 2017-4-19 10:40 | 只看該作者
好人一生平安
回復(fù)

使用道具 舉報(bào)

板凳
ID:185968 發(fā)表于 2017-4-22 21:59 | 只看該作者
頂一個(gè),有學(xué)習(xí)意義
回復(fù)

使用道具 舉報(bào)

地板
ID:193705 發(fā)表于 2017-5-11 15:46 | 只看該作者
有份詳細(xì)說明就好了
回復(fù)

使用道具 舉報(bào)

5#
ID:214546 發(fā)表于 2017-6-25 21:43 | 只看該作者
好人一生平安,我需要黑幣
回復(fù)

使用道具 舉報(bào)

6#
ID:422713 發(fā)表于 2018-11-8 01:03 來自手機(jī) | 只看該作者
調(diào)哪個(gè)讓它不全速前進(jìn)啊
回復(fù)

使用道具 舉報(bào)

7#
ID:453359 發(fā)表于 2018-12-24 13:52 | 只看該作者
求代碼
回復(fù)

使用道具 舉報(bào)

8#
ID:453359 發(fā)表于 2018-12-24 20:19 | 只看該作者
怎么調(diào)速度
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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