论坛账号至少一个月登录一次,否则会被自动冻结!论坛全站广告位出租300元一年,有需要联系QQ:154000559。下载资料E币不足?可以每日签到可获取E币,土豪则可以充值即可。
搜索
版图设计服务,首选奋芯电子 微信:13816911948
广告位出租:ML02 有需要联系QQ:2322712906。
欢迎大家来EDA1024硬件设计开发论坛学习交流!【eda1024.com】
广告位出租:ML04 有需要联系QQ:2322712906。
芯片版图外包,首选奋芯电子 微信:13816911948

[转帖] 简单循迹小车程序

[复制链接]
查看: 810|回复: 0

86

主题

87

帖子

178

E币

工程师

Rank: 4

积分
86
发表于 2017-1-24 15:06:11 | 显示全部楼层 |阅读模式

新手上路,很多不足的地方请大神指点。
#include<AT89x51.H>

        

        sbit In8=P1^0;                  
        sbit In7=P1^1;                  
        sbit In6=P1^2;                  
        sbit In5=P1^3;   
        sbit In4=P1^4;
        sbit In3=P1^5;
        sbit In2=P1^6;
        sbit In1=P1^7;            


        sbit out1=P3^4;   
        sbit out2=P3^5;                    
        sbit out3=P3^6;     
        sbit out4=P3^7;   

        int q1,q,q2;
void dianji(int z)
{

if(z == 0)
{
    out1=1;
    out2=0;
    out3=1;
    out4=0;


}
if(z == 4)
{
q1 = 5;                 //转向系数   转弯的角度
while(q1--)
{
  out1=1;
  out2=0;
  out3=0;
  out4=0;
  }
           }
  if(z == 5)

{

     q1 = 5;                 //转向系数

while(q1--)
{
  out1=0;
  out2=0;
  out3=1;
  out4=0;
  }
}


if(z == 3 )
{
q1 = 15;                 //转向系数

while(q1--)
{
  out1=1;
  out2=0;
  out3=0;
  out4=0;
  }
}
if(z == 6)
{
q1 = 15;                        //转向系数
while(q1--)
{
  out1=0;
  out2=0;
  out3=1;
  out4=0;
  }
}
if(z == 2)
{
q1 = 25;                   //转向系数
while(q1--)
{
  out1=1;
  out2=0;
  out3=0;
  out4=0;
  }
}
  if(z == 7)
{
q1 = 25;                   //转向系数
while(q1--)
{
  out1=0;
  out2=0;
  out3=1;
  out4=0;
  }
}
if(z == 1)
{
q1 = 1;                //死循环
while(q1)
{
  out1=1;
  out2=0;
  out3=0;
  out4=0;
  if(In2 == 1||In3 == 1||In4 == 1||In5 == 1||In6 == 1||In7 == 1)         q1 = 0;
  }
}
if(z == 8)
{
q1 = 1;         //死循环
while(q1)
{
  out1=0;
  out2=0;
  out3=1;
  out4=0;
if(In2 == 1||In3 == 1||In4 == 1||In5 == 1||In6 == 1||In7 == 1)        q1 = 0;
  }

}


}


void main()
{


while(1)
{

q2 = 1;  //可调速 与下方q2比值为速度  1:0为全速


while(q2--)
{
q=0;
if(In1 == 1)  q = 1;
if(In2 == 1)  q = 2;
if(In3 == 1)  q = 3;
if(In4 == 1)  q = 4;
if(In5 == 1)  q = 5;
if(In6 == 1)  q = 6;
if(In7 == 1)  q = 7;
if(In8 == 1)  q = 8;

dianji(q);
}


q2 = 0;   //可调速


while(q2--)
{
out1=0;
    out2=0;
    out3=0;
    out4=0;
}



}          }
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 入住EDA1024

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|Archiver|手机版|小黑屋|EDA1024硬件论坛 ( 苏ICP备15024581号 )

GMT+8, 2022-1-28 07:04 , Processed in 0.059320 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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