chfeijj 发表于 2011-11-30 14:06:32

智能小车的仿真

智能小车的仿真。
http://cache.amobbs.com/bbs_upload782111/files_48/ourdev_700252JTO86A.jpg
(原文件名:111.jpg)

chfeijj 发表于 2011-11-30 14:07:02

#include <reg52.h>

#define sen_port P1

//sbit SEN1=P1^0;
//sbit SEN2=P1^1;

sbit EN1=P1^0;
sbit IN1=P1^1;
sbit IN2=P1^2;

sbit EN2=P1^3;
sbit IN3=P1^4;
sbit IN4=P1^5;

void delay(int n)               //延时子程序
{
unsigned char i,j,k;
for(i=n;i>0;i--)
for(j=100;j>0;j--)
for(k=200;k>0;k--);
}

unsigned char sensor_inp()
{
        unsigned char sensor;
        sensor = sen_port;
        sensor &= 0x03;
        P0 = sensor;
        return sensor;
}

void forward()                //two motos are runing forward
{
        IN1=1;
        IN2=0;
        IN3=1;
        IN4=0;
        EN1=1;
        EN2=1;
}

void backward()                //two motos are runing backward
{
        IN1=0;
        IN2=1;
        IN3=0;
        IN4=1;
        EN1=1;
        EN2=1;
}
void turn_right()        //left moto is runing, but right moto is brake
{
        IN1=1;
        IN2=0;
        IN3=0;
        IN4=0;
        EN1=1;
        EN2=1;
}
void rotate_left()        //right moto is runing forward, and left moto is running backward
{
        IN1=1;
        IN2=0;
        IN3=0;
        IN4=1;
        EN1=1;
        EN2=1;
}
void turn_left()        //right moto is runing, but left moto is brake
{
        IN1=0;
        IN2=0;
        IN3=1;
        IN4=0;
        EN1=1;
        EN2=1;
}
void rotate_right()        //left moto is running forward, and right moto is running backward
{
        IN1=0;
        IN2=1;
        IN3=1;
        IN4=0;
        EN1=1;
        EN2=1;
}
void free()                        //two motos is free
{
        IN1=0;
        IN2=0;
        IN3=0;
        IN4=0;
        EN1=0;
        EN2=0;
}
void stop()                        //two motos stop
{
        IN1=1;
        IN2=1;
        IN3=1;
        IN4=1;
        EN1=1;
        EN2=1;
}       
void main(void)
{
        delay(10);
        P0=0x55;
        while(1)
        {
//                P0=P1;               
//        delay(100); forward();
//                delay(100); stop();


//        delay(100); backward();
//                delay(100); stop();                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
//        delay(100);
turn_left();
//                delay(100); stop();
//        delay(100); turn_right();
//                delay(100); stop();
//        delay(100); rotate_left();
//                delay(100); stop();
//        delay(100); rotate_right();
//                delay(100); stop();
//        delay(100); stop();
//        delay(200);       
//        forward();
//delay(200);       
//        backward();
//        delay(20);

        }
}

ju748 发表于 2011-11-30 14:29:20

这车高级啊。。。

./emotion/em014.gif

加个方向灯吧。。。撞着人不好、。。。。

kakarotto 发表于 2011-11-30 22:04:27

没看出来像小车啊……

chfeijj 发表于 2011-12-2 11:29:50

51的学习板,现在要加无线模块或者红外控制,仿真只是说我能驱动电机。
硬件也已经联起来,要加控制的程序,以后写完了,慢慢放上更新的程序。
刚学这个,休息时间才搞搞这个,见笑了。

jingjidaolu 发表于 2011-12-2 22:21:26

这个可以,挺好的,只不过这个原理图似乎缺少点什么,据目前我的了解还不能看出来。回复【4楼】chfeijj
-----------------------------------------------------------------------

回复【楼主位】chfeijj
-----------------------------------------------------------------------

Medichen 发表于 2011-12-3 11:24:29

学习一下

h804588475 发表于 2011-12-3 14:50:47

不错~

indiemaple 发表于 2011-12-14 19:42:46

学习一下

qymingcool 发表于 2011-12-18 12:29:49

mark

wenfaxiang 发表于 2011-12-18 14:36:53

回复【楼主位】chfeijj
-----------------------------------------------------------------------

我也在弄这个 学下下

kang732816702 发表于 2012-1-2 15:15:22

我也一直想做一个。。。。这个就不错

ammyself1 发表于 2012-1-16 11:44:29

mark

a6906385 发表于 2012-2-13 19:51:17

mark

杏仁酥 发表于 2016-6-5 07:05:13

MARK下,请问这个图中的,L298模块中的vss电源线要连吗,这个电路图和《智能小车设计指导第二版》16页中的图有点不同,这两个功能上有什么差别吗,
页: [1]
查看完整版本: 智能小车的仿真