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

QQ登錄

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

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

C51單片機(jī)用三個(gè)QTI傳感器循跡寶貝車源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
用三個(gè)傳感器循跡,寶貝車
三個(gè)QTI信號(hào)線從右到左一次接P2_1,P2_2,P2_3  


單片機(jī)源程序如下:
  1. /************************************************
  2. 文件 : three QTI Folloe line.c
  3. 描述 :QTI尋跡傳感器測(cè)試程序
  4. 編寫 : 任曉東
  5. 說(shuō)明 :程序利用三個(gè)QTI傳感器實(shí)現(xiàn)了尋線的功能
  6. ************************************************/
  7. #include <AT89X52.h>
  8. #include <stdio.h>
  9. #include<BoeBot.h>

  10. #define uint unsigned int
  11. #define uchar unsigned char
  12. uchar QTIState ;
  13. void Time1_init(void)
  14. {
  15.                
  16.         EA = 1;
  17.         //硬件串口使用定時(shí)器1,供AT89S52與PC機(jī)通信使用
  18.         TMOD |= 0x20;       //定時(shí)器1方式2.8位自動(dòng)重裝模式
  19.         SCON = 0x50;        //模式1,8位數(shù)據(jù)
  20.         TH1 = 0xFD;         //波特率為9600
  21.         TL1 = 0xFD;
  22.         TR1 = 1;            //起動(dòng)定時(shí)器
  23.         TI = 1;
  24. }

  25. void Forward(void)//向前行走子程序
  26. {
  27.         P1_1=1;
  28.         delay_nus(1700);
  29.         P1_1=0;
  30.         P1_0=1;
  31.         delay_nus(1300);
  32.         P1_0=0;
  33.         delay_nms(20);
  34. }

  35. void Pivot_Left(void)//左轉(zhuǎn)子程序
  36. {
  37.           P1_1=1;
  38.           delay_nus(1500);
  39.           P1_1=0;
  40.           P1_0=1;
  41.           delay_nus(1350);
  42.         P1_0=0;
  43.           delay_nms(20);
  44. }

  45. void Pivot_Right(void)//右轉(zhuǎn)子程序
  46. {
  47.           P1_1=1;
  48.           delay_nus(1650);
  49.           P1_1=0;
  50.           P1_0=1;
  51.           delay_nus(1500);
  52.           P1_0=0;
  53.           delay_nms(20);
  54. }

  55. void  Rotate_right(void)
  56. {
  57.         P1_1=1;
  58.           delay_nus(1650);
  59.           P1_1=0;
  60.           P1_0=1;
  61.           delay_nus(1650);
  62.           P1_0=0;
  63.           delay_nms(20);


  64. }

  65. void Rotate_Left(void)
  66. {
  67.         P1_1=1;
  68.           delay_nus(1350);
  69.           P1_1=0;
  70.           P1_0=1;
  71.     delay_nus(1350);
  72.           P1_0=0;
  73.           delay_nms(20);


  74. }
  75. void Get_QTI_State(void)
  76. {
  77.         QTIState = P2&0x0e ;
  78. }

  79. void Follow_Line(void)
  80. {
  81.         Get_QTI_State();
  82.         switch(QTIState)
  83.         {
  84.                 case 0x04 : Forward();
  85.                                         break;
  86.                 case 0x06 : Pivot_Right();
  87.                                         break;
  88.             case 0x02 : Rotate_right();
  89.                                     break;
  90.                 case 0x0c : Pivot_Left();
  91.                                         break;
  92.                 case 0x08 : Rotate_Left();
  93.                                         break;
  94.                 default :  break;
  95. ……………………

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

所有資料51hei提供下載:
three QTI Follow Line.zip (24.91 KB, 下載次數(shù): 23)



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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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