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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4337|回復: 1
打印 上一主題 下一主題
收起左側

8051單片機尋跡小車程序及其原理圖

[復制鏈接]
跳轉到指定樓層
樓主
    分享:   
    8051單片機尋跡小車程序及其原理圖  
   隨著現代電子技術的飛速發展,通信技術也取得了長足的進步。在無線通信領域,越來越多的通信產品大量涌現出來。但設計無線數據傳輸產品往往需要相當的無線電專業知識和價格高昂的專業設備,因而影響了用戶的使用和新產品的開發。
    卓越的專業51黑電子論壇,會讓我們人生更坦途。

設計一種以89C51單片機為控制核心,具備避障、循跡和遙控功能的智能小車.使用光電開關檢測障礙,通過控制電機轉向來進行壁障;使用紅外傳感器尋找線路,控制智能小車自行循跡;使用紅外遙控器實現前進、后退、向右、向左、停止和發動功能.小車由底盤、傳感器和車載電路組成,車載電路包括電源、單片機最小系統和驅動.系統采用了模塊化設計方法,結構簡單,可靠性高.

單片機源程序如下:
  1. #include<reg51.h>
  2. #define uchar  unsigned  char
  3. #define  uint  unsigned  int
  4. sbit R=P1^0;//左邊傳感器
  5. sbit M=P1^1;//中間傳感器
  6. sbit L=P1^2;//右邊傳感器
  7. sbit RM=P1^3;//右邊電機
  8. sbit LM=P1^4;//左邊電機

  9. void  turnLLL(void);//左轉45度
  10. void  turnLL(void);//左轉30度
  11. void  turnL(void);//左轉15度
  12. void  turn(void);//居中
  13. void  turnR(void);//右轉15度
  14. void  turnRR(void);//右轉30度
  15. void  turnRRR(void);//右轉45度
  16. void  delay(uint z);//延時0.1ms
  17. void main()
  18. {
  19.           uint i;
  20.          DDRA=0X00;
  21.         DDRB=0XFF;
  22.     DDRD|=0X30;
  23.         TCCR1A=0x91; //8位相位修正PWM 8000000/(64*2*256)=244.14hz
  24.         TCCR1B=0x03; //clk/64
  25.         OCR1A=250;        //初值占空比100%
  26.         while(1)
  27.         {
  28.                  PINA=i;
  29.                 for(i=0;i<8;i++)
  30.                 {
  31.                            if(PINA==0xf7)//加速前進4燈1111,0111
  32.                           {
  33.                                OCR1A=170;//占空比100%/202
  34.                              turn();//居中
  35.                      }
  36.                          if(PINA==0xef)//加速前5燈1110,1111
  37.                           {
  38.                                OCR1A=170;//占空比100%
  39.                              turn();//居中
  40.                      }
  41.                          if(PINA==0xe7)//加速前進4、5燈1110,0111
  42.                           {
  43.                                OCR1A=170;//占空比100%
  44.                              turn();//居中
  45.                      }
  46.                      if(PINA==0xcf)//速度稍減前進5、6燈1100,1111
  47.                      {
  48.                               OCR1A=170;//占空比90%/176
  49.                             turnL();//左轉-15度
  50.                      }
  51.                           if(PINA==0xdf)//速度稍減前進6燈1101,1111
  52.                      {
  53.                               OCR1A=120;//占空比90%/176
  54.                             turnL();//左轉-15度
  55.                      }
  56.                      if(PINA==0x9f)//速度再減前進6、7燈1001,1111
  57.                      {
  58.                               OCR1A=110;//占空比80%/150
  59.                             turnLL();//左轉-30度
  60.                      }
  61.                             if(PINA==0xbf)//速度再減前進7燈1011,1111
  62.                      {
  63.                               OCR1A=110;//占空比80%/150
  64.                             turnLL();//左轉-30度
  65.                      }
  66.                       if(PINA==0x3f)//速度減前進7、8燈0011,1111
  67.                       {
  68.                               OCR1A=90;//占空比70%/150
  69.                             turnLLL();//左轉-45度
  70.                       }
  71.                       if(PINA==0X7f)//速度稍減前進8燈0111,1111
  72.                       {
  73.                               OCR1A=90;//占空比70%/150
  74.                         turnLLL();//右轉45度
  75.                       }
  76.                      if(PINA==0xf3)//速度稍減前進3、4燈1111,0011
  77.                      {
  78.                               OCR1A=120;//占空比90%/176
  79.                             turnR();//右轉15度
  80.                      }
  81.                            if(PINA==0xfb)//速度稍減前進3燈1111,1011
  82.                      {
  83.                               OCR1A=120;//占空比90%/176
  84.                             turnR();//右轉15度
  85.                      }
  86.                      if(PINA==0Xf9)//速度再減前進2、3燈1111,1001
  87.                      {
  88.                               OCR1A=110;//占空比80%150
  89.                             turnRR();//右轉30度
  90.                     }
  91.                             if(PINA==0Xfd)//速度再減前進2燈1111,1101
  92.                      {
  93.                               OCR1A=110;//占空比80%/150
  94.                             turnRR();//右轉30度
  95.                     }
  96.                     if(PINA==0Xfc)//速度稍減前進1、2燈1111,1100
  97.                     {
  98.                             OCR1A=90;//占空比70%/150
  99.                           turnRRR();//右轉45度
  100.                     }
  101.                     if(PINA==0Xfe)//速度稍減前進1燈1111,1110
  102.                     {
  103.                               OCR1A=90;//占空比70%/150
  104.                            turnRRR();//右轉45度
  105.                     }
  106.                 }
  107.         }
  108. }

  109. /*-45度*/
  110. void  turnLLL()
  111. {
  112.          uchar i;
  113.         DDRB=0XFF;
  114.         PORTB=0XFF;
  115.         for(i=0;i<5;i++)
  116.         {
  117.                 PORTB&=~BIT(0);                                          
  118.                 delay(18);        
  119.                 PORTB|=BIT(0);
  120.                 delay(4);
  121.         }
  122. }
  123. /*-30度*/
  124. void  turnLL()
  125. {
  126.          uchar i;
  127.         DDRB=0XFF;
  128.         PORTB=0XFF;
  129.         for(i=0;i<5;i++)
  130.         {
  131.                 PORTB&=~BIT(0);                                          
  132.                 delay(18);        
  133.                 PORTB|=BIT(0);
  134.                 delay(6);
  135.         }
  136. }
  137. /*-15度*/
  138. void  turnL()
  139. {
  140.          uchar i;
  141.         DDRB=0XFF;
  142.         PORTB=0XFF;
  143.         for(i=0;i<5;i++)
  144.         {
  145.                 PORTB&=~BIT(0);                                          
  146.                 delay(18);        
  147.                 PORTB|=BIT(0);
  148.                 delay(8);
  149.         }
  150. }

  151. /*0度居中*/
  152. void  turn()//居中
  153. {
  154.          uchar i;
  155.         DDRB=0XFF;
  156.         PORTB=0XFF;
  157.         for(i=0;i<5;i++)
  158.         {
  159.                 PORTB&=~BIT(0);                                          
  160.                 delay(18);        
  161.                 PORTB|=BIT(0);
  162.                 delay(10);
  163.         }
  164. }

  165. /*15度*/
  166. void  turnR()
  167. {
  168.          uchar i;
  169.         DDRB=0XFF;
  170.         PORTB=0XFF;
  171.         for(i=0;i<5;i++)
  172.         {
  173.                 PORTB&=~BIT(0);                                          
  174.                 delay(18);        
  175.                 PORTB|=BIT(0);
  176.                 delay(12);
  177.         }
  178. }
  179. /*30度*/
  180. void  turnRR()
  181. {
  182.          uchar i;
  183.         DDRB=0XFF;
  184.         PORTB=0XFF;
  185.         for(i=0;i<5;i++)
  186.         {
  187.                 PORTB&=~BIT(0);                                          
  188.                 delay(18);        
  189.                 PORTB|=BIT(0);
  190.                 delay(14);
  191.         }
  192. }
  193. /*45度*/
  194. void  turnRRR()
  195. {
  196.          uchar i;
  197.         DDRB=0XFF;
  198.         PORTB=0XFF;
  199.         for(i=0;i<5;i++)
  200.         {
  201.                 PORTB&=~BIT(0);                                          
  202.                 delay(18);        
  203.                 PORTB|=BIT(0);
  204.                 delay(17);
  205.         }
  206. }

  207. /*定時0.1MS*/
  208. void  delay(uint z)
  209. {
  210.            uint i,j;
  211.           for(i=0;i<z;i++)
  212.                           for(j=0;j<90;j++);
  213. }
復制代碼

篇幅很長,請下載查閱。


51hei.png (4.36 KB, 下載次數: 65)

51hei.png

8051單片機尋跡小車程序及其原理圖.rar

449.51 KB, 下載次數: 91, 下載積分: 黑幣 -5

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

使用道具 舉報

沙發
ID:508502 發表于 2020-9-14 16:01 | 只看該作者
先收藏,謝謝分享
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩成人在线免费观看 | 国产一区二区精品在线观看 | 国精日本亚洲欧州国产中文久久 | 欧美h | 亚洲精品视频免费 | 国产在线激情视频 | 亚洲欧美一区二区三区1000 | 成人久久久 | 成人久久久 | 国产精品一区二区在线播放 | 久久久成人动漫 | 久久福利电影 | 欧美精品被 | 蜜桃色网 | 国产日韩欧美一区 | 国产91精品久久久久久久网曝门 | 日本特黄a级高清免费大片 成年人黄色小视频 | 日本超碰在线 | 亚洲国产欧美91 | www精品美女久久久tv | 亚洲精品久久久久久久久久吃药 | 国产精品美女在线观看 | 男人天堂网av | 欧美精品在线观看 | 91在线看片 | 亚洲免费在线观看av | www视频在线观看 | 欧美不卡一区 | 亚洲精品一二三区 | 中文字字幕一区二区三区四区五区 | 91在线观看网址 | 精品中文字幕一区二区 | 亚洲精品一区中文字幕乱码 | 成人羞羞国产免费视频 | 99色视频| 81精品国产乱码久久久久久 | 亚洲精品久久久久久久久久久久久 | 日韩欧美网 | 亚洲网在线 | 精品久久久一区二区 | 在线看片网站 |