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

QQ登錄

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

帖子
查看: 3544|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

簡(jiǎn)單尋跡程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:383059 發(fā)表于 2018-8-7 11:27 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include<reg52.h>
#include<stdio.h>
#include<Step_Moter.h>
#define uint unsigned int
#define uchar unsigned char
#define ulong unsigned long
sbit open=P0^0;//軟開(kāi)關(guān)
sbit ENA=P1^0;
sbit IN1=P1^1;
sbit IN2=P1^2;
sbit IN3=P1^3;
sbit IN4=P1^4;
sbit ENB=P1^5;
sbit ENC=P3^0;
sbit IN5=P3^1;
sbit IN6=P3^2;
sbit IN7=P3^3;
sbit IN8=P3^4;
sbit END=P3^5;
sbit left=P0^1;//左紅外檢測(cè)模塊
sbit centre=P0^2;//中間傳感器
sbit right=P0^3;//右紅外檢測(cè)模塊

uchar t;                       
uchar PWM1,PWM2,PWM3,PWM4;
uchar k=0;
/*延時(shí)函數(shù)*/
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
  for(y=114;y>0;y--);      
}
/*中斷服務(wù)特殊功能寄存器配置*/
void init()
{
TMOD|=0x01;/*定時(shí)器0定時(shí)*/
TH0=(65535-100)/256;
TL0=(65535-100)%256; //定時(shí)0.1ms
ET0=1;
EA=1;
TR0=1;
}                                                     
void main()
{
if(open==0)
{
// Robot_Walk();//循跡過(guò)程中的齊步走動(dòng)作
  init();
  ENA=1;
  ENB=1;
  ENC=1;
  END=1;

  IN1=0;
  IN2=1;
  IN3=0;
  IN4=1;

  IN5=1;
  IN6=0;
  IN7=1;
  IN8=0;
  
  PWM1=25;  
  PWM2=25;
  PWM3=25;  
  PWM4=25;
  
  delay(500);
   
  while(1)
  {
   if(left==0 && centre==0 && right==0)k=1;
   if(left==0 && centre==0 && right==1)k=2;//偏右,左移
   if(left==0 && centre==1 && right==0)k=3;
   if(left==0 && centre==1 && right==1)k=4;//偏右,左移
   if(left==1 && centre==0 && right==0)k=5;//偏左,右移
   if(left==1 && centre==0 && right==1)k=6;//直行
   if(left==1 && centre==1 && right==0)k=7;//偏左,右移
   if(left==1 && centre==1 && right==1)k=8;//停止
   
   switch(k)
   {
    case 2:
     PWM1=PWM2=80;
     PWM3=PWM4=10;
     break;
    case 4:
     PWM1=PWM2=80;
     PWM3=PWM4=10;
     break;
    case 5:
     PWM1=PWM2=10;
     PWM3=PWM4=80;
     break;
    case 7:
     PWM1=PWM2=10;
     PWM3=PWM4=80;
     break;
    case 6:
     PWM1=PWM2=PWM3=PWM4=50;
     break;
    case 8:
     PWM1=PWM2=PWM3=PWM4=0;
     break;
    default:
     PWM1=PWM2=PWM3=PWM4=30;
     break;
   }
  }
}
else
{
  ENA=ENB=ENC=END=0;
}
}
/*中斷服務(wù)程序*/
void Timer() interrupt 1
{
    TR0=0;//賦初值時(shí),關(guān)閉定時(shí)器
    TH0=(65536-100)/256;//賦初值定時(shí)
    TL0=(65536-100)%256;//0.1ms
    TR0=1;//打開(kāi)定時(shí)器
    t++;
if(t>=100)
  t=0;
    if(t<=PWM1)
     ENA=1;
else
  ENA=0;
if(t<=PWM2)
  ENB=1;
else
  ENB=0;
if(t<=PWM3)
  ENC=1;
else
  ENC=0;
if(t<=PWM4)
  END=1;
else
  END=0;
}

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:450030 發(fā)表于 2018-12-23 11:04 | 只看該作者
可以的,謝謝
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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