找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1231|回复: 1
打印 上一主题 下一主题
收起左侧

51单片机两路循迹小车

[复制链接]
跳转到指定楼层
楼主
ID:438586 发表于 2018-12-12 21:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#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空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2018-12-14 01:22 | 只看该作者
补全原理图或者详细说明一下电路连接即可获得100+黑币
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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