找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4653|回复: 0
收起左侧

C51单片机用三个QTI传感器循迹宝贝车源程序

[复制链接]
ID:230352 发表于 2017-9-1 15:33 | 显示全部楼层 |阅读模式
用三个传感器循迹,宝贝车
三个QTI信号线从右到左一次接P2_1,P2_2,P2_3  
0.png

单片机源程序如下:
  1. /************************************************
  2. 文件 : three QTI Folloe line.c
  3. 描述 :QTI寻迹传感器测试程序
  4. 编写 : 任晓东
  5. 说明 :程序利用三个QTI传感器实现了寻线的功能
  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.         //硬件串口使用定时器1,供AT89S52与PC机通信使用
  18.         TMOD |= 0x20;       //定时器1方式2.8位自动重装模式
  19.         SCON = 0x50;        //模式1,8位数据
  20.         TH1 = 0xFD;         //波特率为9600
  21.         TL1 = 0xFD;
  22.         TR1 = 1;            //起动定时器
  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)//左转子程序
  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)//右转子程序
  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. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
three QTI Follow Line.zip (24.91 KB, 下载次数: 23)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表