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

QQ登錄

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

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

51單片機(jī)兩路循跡小車(chē)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:438586 發(fā)表于 2018-12-12 21:20 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include <reg52.h>

#define unint unsigned int
#define unchar unsigned char


/*
* ?????
*/
sbit ENA = P2^0;
sbit ENB = P2^1;
sbit IN1 = P2^2;
sbit IN2 = P2^3;
sbit IN3 = P2^4;
sbit IN4 = P2^5;
sbit jiance1 = P1^0;  //????
sbit jiance2 = P1^1;  //????


int time1 = 0,shu = 0;
void zhengzhuan();
void youzhuan();
void zuozhuan();
void xunji();
void  Time0Config();

void main()
{         
        Time0Config();
        P0=0xff;
        while(1)
        {
           xunji();             //????
        }         
}



void  Time0Config()
{
        TMOD = 0x01;                //???0????1
        TH0 = 0x3C;
        TL0 = 0xB0;                        //?????????50ms
        ET0 = 1;                        //???0????
        TR0 = 1;
        EA  = 1;                                //?????
}


void zhengzhuan()
{
        int i;
        for(i=0;i<30;i++)
        {
  IN1=1;
  IN2=0;
  IN3=1;
  IN4=0;
       
}
        for(i=0;i<10;i++)
        {
  IN1=0;
  IN2=0;
  IN3=0;
  IN4=0;
       
}
        }
void zuozhuan()
{
                int i;
        for(i=0;i<30;i++)
        {
  IN1=1;
  IN2=0;
  IN3=0;
  IN4=0;
               
}
        for(i=0;i<10;i++)
        {
  IN1=0;
  IN2=0;
  IN3=0;
  IN4=0;
               
}
}
void youzhuan()
{
                int i;
        for(i=0;i<30;i++)
        {
   IN1=0;
   IN2=0;
   IN3=1;
   IN4=0;
}
        for(i=0;i<10;i++)
        {
   IN1=0;
   IN2=0;
   IN3=0;
   IN4=0;
}
       
        }
void stop()
{
                int i;
        for(i=0;i<100;i++)
        {
   IN1=0;
   IN2=0;
   IN3=0;
   IN4=0;
}
       
        }


void xunji()
{
                zhengzhuan();

                while(jiance1==1&&jiance2==0)
                {
                        stop();
        //                break;
                }
                //????????,????
                while(jiance1==0&&jiance2==0)
                {
                        zuozhuan();
                //        break;
                }
                while(jiance1==1&&jiance2==1)
                {
                        youzhuan();
                //        break;
                }                       
}


void time0(void) interrupt 1     //???0??????
{
        TH0 = 0x3C;
        TL0 = 0xB0;
        time1++;
        if(!(time1 - 20))
        {  time1 = 0;
           shu++;
        }               
}       


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

使用道具 舉報(bào)

沙發(fā)
ID:1 發(fā)表于 2018-12-14 01:22 | 只看該作者
補(bǔ)全原理圖或者詳細(xì)說(shuō)明一下電路連接即可獲得100+黑幣
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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