新手必看(STC89C52)单片机寻迹避障蓝牙四轮小车的简单实现

发布者:科技革新者最新更新时间:2019-12-03 来源: 51hei关键字:STC89C52  单片机  寻迹避障蓝牙  四轮小车 手机看文章 扫描二维码
随时随地手机看文章

一、关于材料的选择           

1.L289驱动电机x2

2.1.5V电池(可以买充电电池,我用了几十个电池了!!!)我是用8节1.5v构成12v电池单独给4个电机供电,另外3节1.5v给单片机供电,4.5v与           5v差不多。

3.底板加4马达(电机)。

4.有条件可以用电钻(我是在各个店单独购买的,所以底板孔与器件孔不搭配,自己钻的)

5.若干杜邦线,公对公 母对母 公对母都买X3应该足够了,最短就好了不需要那么长,但是有钱可以买X1

6.淘宝上的板子STC89C52,有各种现成的接口,适合新手学习,学习过后可以自己焊板子。

7.4个红外避障模块,2个寻迹模块,一个蓝牙模块

8.手机商城下个蓝牙串口来操作控制。


二、关于环境

1.我用的 keil4 (能够编译查看代码是否正确。)

2.下载stc-isp来烧程序(先断单片机电 然后烧 再开电,不然烧不起吧。)

3.烧的程序名后缀是.Hex。

4.usb-单片机线一根,我的是淘宝送的。


三、关于一些细节

1.我用的是H桥来控制电机,比较普遍。

2.因为我的小车电机是单独供电的,所以地线(12v的负极)要接在单片机的地线接口上!!

3.杜邦线与线接口要处理好确保通电。


四、部分代码

sbit IN2 = P0^1;

sbit IN3 = P0^2;

sbit IN4 = P0^3;

sbit IN5 = P0^4;

sbit IN6 = P0^5;

sbit IN7 = P0^6;

sbit IN8 = P0^7;

                   


sbit Left_bizhang = P3^0;

sbit Right_bizhang = P3^1;

sbit Left_led=P3^2;

sbit Right_led=P3^3;


unsigned char pwm_val =0;

unsigned char push_val =0;


void delay(unsigned int k)

{

      unsigned int x,y;

          for(x=0;x          {

             for(y=0;y<2000;y++);

           }

}


void run(void)

{

      push_val=3;

IN1=0; 

IN2=1;        

IN3=0; 

IN4=1; 

IN5=1;        

IN6=0;

IN7=1;

IN8=0;        

}


void backrun(void)

{

IN1=1;

IN2=0;

IN3=1;

IN4=0;

IN5=0;

IN6=1;

IN7=0;

IN8=1;

}


void leftrun(void)

{

      IN1=0;

IN2=0;

IN3=1;

IN4=0;

IN5=0;

IN6=1;

IN7=0;

IN8=0;

}

void rightrun(void)

{

     IN1=1;

IN2=0;

IN3=0;

IN4=0;

IN5=0;

IN6=0;

IN7=0;

IN8=1;

}

void stop(void)

{

IN1=0;

IN2=0;

IN3=0;

IN4=0;

IN5=0;

IN6=0;

IN7=0;

IN8=0;

}

void Che_init()

{

      P1=0x00;

          TMOD=0x01;

          TH0=0xFC;

          TH0=0x18;

          TR0=1;

          EA=1;

}

void UART_INIT()

{

        SM0 = 0;

        SM1 = 1;//串口工作方式1

        REN = 1;//允许串口接收

        EA = 1;//开总中断

        ES = 1;//开串口中断

        TMOD = 0x20;//8位自动重装模式

        TH1 = 0xfd;

        TL1 = 0xfd;//9600波特率

        TR1 = 1;//启动定时器1

}


void xunji(){


       while(1){

                        if(Left_led==1&&Right_led==1)

                {

                        ET0=1;

                        run();

                }

                else

                {

                        if(Left_led==0&&Right_led==1)

                        {

                                    IN1=0;

                                        

IN2=0;

IN3=0;

IN4=1;

IN5=1;

IN6=0;

IN7=0;

IN8=0;

                        }

                        if(Right_led==0&&Left_led==1)

                        {

                        

                                     IN1=0;

IN2=1;

IN3=0;

IN4=0;

IN5=0;

IN6=0;

IN7=1;

IN8=0;

                        }

                        

                }

                }

}

void bizhang(){


                  while(1)

        {

                run();

                

                 if(Left_bizhang==1&&Right_bizhang==1)

                 {

                         run();


                 }

                 else


                 {

                         if(Left_bizhang==1&&Right_bizhang==0)

                         {


                                 backrun();

                                 delay(50);

                                 leftrun();

                                delay(100);

                         }

                         if(Left_bizhang==0&&Right_bizhang==1)

                         {

                                 backrun();

                                 delay(50);

                                 rightrun();

                                delay(100);

                         }

                 }

        

        }

}


关键字:STC89C52  单片机  寻迹避障蓝牙  四轮小车 引用地址:新手必看(STC89C52)单片机寻迹避障蓝牙四轮小车的简单实现

上一篇:智能窗帘设计:51单片机+A/D转换+光敏电阻+LCD1602+步进电机
下一篇:单片机电子时钟和led流水灯的结合(仿真+程序)

推荐阅读最新更新时间:2024-11-20 06:33

两机串行通讯单片机汇编语言编程举例
A、B两机之间串行通讯(方式1),用‘检验和’校验波特率为2400,发送缓冲区和接收缓冲区都为片内30H开始的16个字节单元。已知:fosc=11.0592MHz。 设计A发送,B接收的双方协议如下: 1、首先A发送‘AA’信号,B接收到后发送‘BB’应答; 2、A方最多只发送20次‘AA’,若无应答,置错误标志,退出。 3、A收到‘BB’后,开始发送缓冲区的数据,同时求检验和,共16个字节。 4、B接收数据,存入缓冲区,并同时求检验和。 5、当一个数据块发送完后,A再发送检验和(一个字节)。 6、B接收到A的检验和后,再与本身的检验和比较。 7、若接收正确,B方发送‘00’,否则发送‘EE‘,请求重发。 8、若
[单片机]
两机串行通讯<font color='red'>单片机</font>汇编语言编程举例
单片机的模块化编程
现在生产的许多单片机对8051的内核进行了扩展,比如,内部看门狗,ADC转换、EEPROM、PWM等功能。在编程控制程序时,如需要利用这些扩展模块,一般程序体积会变大,文本的长度较长。在调试程序时就显得不太方便了,较好的方法是根据程序段的功能进行模块化编程。 当然在利用一般的单片机编程时,将实现同一目的的程序段进行封装,进行模块化编程,对于程序的维护和调试也是很有帮助的。 1、在运用C语言进行编程时,要养成良好的编程书写习惯。 在程序的开始一般的格式: /********************** File name: 文件名称 Author: 作者 Version: 版本号 Description: 功能描
[单片机]
基于飞思卡尔MCU的汽车信息娱乐系统方案
方案描述: 与快速发展的便携式电子产品保持同步,同时专注于本身严格的质量标准和车型生命周期的要求,是汽车制造商和车载信息娱乐系统供应商面临的挑战。 飞思卡尔 提供成熟的 汽车信息娱乐 平台解决方案,帮助车载信息娱乐系统设计人员满足这些快速变化的需求。 方案设计图:
[汽车电子]
基于飞思卡尔<font color='red'>MCU</font>的汽车信息娱乐系统方案
STC12C5A60S2单片机双串口同时通讯的完整版modbus程序
电路原理图如下: /****************************** 程序功能: modbus RTU 模式设置读取十六个继电器状态,以及内部保持寄存器的设置读取 硬件测试环境:单片机stc89C52RC十六继电器485接口控制板 通信协议: 晶振:11.0592 波特率:9600 8位数据 1位停止位 偶校验 485通位接口P3.7控制方向端 控制板地址: 修改localAddr(变量) 线圈个数:16个 线圈地址范围:0x0000~0x000F 保持寄存器个数:16个(字节型) 寄存器地址:0x0000~0x000F \******************************\ 功能码简介: 02:读
[单片机]
STC12C5A60S2<font color='red'>单片机</font>双串口同时通讯的完整版modbus程序
基于单片机的声光报警系统的设计方案
  1 声光报警系统基本原理   超声波是指频率高于20000Hz 的机械波。为了实现超声波回波测距,必须通过超声波传感器产生和接收超声波。超声波传感器是利用压电效应和逆压电效应原理实现电能和超声波能之间的相互转化,即超声波发射器是通过逆压电效应将电能转换为超声波能,产生超声波;而超声波接收器是通过压电效应将超声波能转换为电能,接收超声波。若超声波发射器发出的超声波是以速度v( 单位:m/s) 在介质中传播,在有效防范区域内遇到被测物体超声波受到反射,被超声波接收器接收,传播经历的时间为t(单位:s),那么可以计算出入侵者与防范物体之间的距离s(单位:m),公式为:   系统结构框图如图1 所示,单片机按照晶振电路给出的时钟时
[单片机]
基于<font color='red'>单片机</font>的声光报警系统的设计方案
单片机与TA8435的步进电机细分控制
1 步进电机 步进电动机是纯粹的数字控制电动机,它将电脉冲信号转变为角位移,即给一个脉冲,步进电机就转一个角度,因此非常合适单片机控制,在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,电机则转过一个步距角,同时步进电机只有周期性的无累积误差,精度高。 步进电动机有如下特点: 1)步进电动机的角位移与输入脉冲数严格成正比。因此,当它转一圈后,没有累计误差,具有良好的跟随性。 2)由步进电动机与驱动电路组成的开环数控系统,既简单、廉价,又非常可靠,同时,它也可以与角度反馈环节组成高性能的闭环数控系统。 3)步进电动机的动态响应快,易于启停、正反转及变速。 4)速度可在相当宽的范
[工业控制]
PIC单片机模拟异步串行通讯UART
用TMR0实现定时查询。任何带中断的PIC上都可以实现。可用此法扩展多个串口。 ;|--------------------------------------------------------------| ;| Implement duplex USART base on normal I/O pin | ;| Using TIMER0 interrupt for bit timing | ;| Tested on PIC16F83 running at 4MHz | ;| Written by Paul Zhang, Microchip Tech Inc
[单片机]
MCU为工业和汽车设计师扩展8位空间
2008 年 4 月 28 日 ,随着企业的功率预算不断紧缩,而嵌入式内容需求却在日益增加,企业对高度集成、高性能微控制器( MCU )的需求成为必然。为了满足工业和汽车市场的这一需求,飞思卡尔近日为其 S08D 系列增加了强大的新成员,该新成员具有卓越的 8 位性能和片上功能。 飞思卡尔高度集成的 9S08DZ128 MCU 内置控制器区域网络( CAN )接口、电子可擦除可编程只读存储器( EEPROM )和片上仿真 / 调试工具。嵌入式 CAN 接口为众多汽车和工业控制应用提供了理想连通性解决方案。而嵌入式 EEPROM 则通过实现轻松地数据写入和擦除,提高了系统设计灵活性,消除了外部串行 EEPROM 。具有
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved