历史上的今天
返回首页

历史上的今天

今天是:2024年12月06日(星期五)

正在发生

2020年12月06日 | 基于51单片机超声波避障+蓝牙遥控智能小车

2020-12-06 来源:51hei

单片机源程序如下:

#include

#include

typedef unsigned char u8;

typedef unsigned int  u16;

typedef unsigned long  u32;

sbit Sevro_moto_pwm = P2^6;           //接舵机信号端输入PWM信号调节速度

sbit  ECHO= P1^1;                                   //超声波接口定义          

sbit  TRIG= P1^0;                                   //超声波接口定义

sbit PWM1 = P2^5;          //左电机高电平

sbit PWM2 = P2^4;          //右电机高电平

sbit IN1 = P2^3;

sbit IN2 = P2^2;          //左电机

sbit IN3 = P2^1;

sbit IN4 = P2^0;          //右电机

sbit A1 = P1^4;                  //左红外避障模块

sbit A2 = P2^7;                  //右红外避障模块

//sbit A3 = P1^2;                  //左红外寻迹模块

//sbit A4 = P1^3;                  //右红外寻迹模块

sbit K1 = P3^2;                  //功能转换按键

sbit K2 = P3^3;                  //加速键

sbit K3 = P3^4;          //减速键

u8 connt;                          //调速周期

u8 PWM_NO;                          //高电平时间

u8 a=0,c=0;                          //标志位

u8 COM;

u8 pwm_val_left  = 0;//变量定义

u8 push_val_left ;//舵机归中,产生约,1.5MS 信号

u32 S=0;                        //距离变量定义

u32 S1=0;

u32 S2=0;

u32 S3=0;

u32 S4=0;

u16 time=0;                    //时间变量

u16 timer=0;                        //延时基准变量

u8 non=0,t=0;

u8 pon=3;                                //数码管显示

u8 code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

                                        0x7f,0x6f};//显示0~9的值

                                       

/************************************************************************/

                void delay(u16 k)          //延时函数

{   

     u16 x,y;

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

}

void delay1(u16 j)          //延时函数

{   

     u16 x,y;

           for(x=0;x             for(y=0;y<120;y++);

}

/************************************************************************/

void Display(void)                                  //扫描数码管

{

         P0=smgduan[pon];

         if(K2==0)                                           // 加速

         {

             delay1(10);

                 if(K2==0)

                 {

                     pon++;

                         PWM_NO--;

                 }

                 while(!K2);                           //松键检测

         }

         if(K3==0)                                           //减速

         {

             delay1(10);

                 if(K3==0)

                 {

                     pon--;

                         PWM_NO++;

                 }

                 while(!K3);

         }

}

void SC()                                //刹车

{

    IN1 = 0;   

        IN2 = 0;

        IN3 = 0;

        IN4 = 0;

}

void QJ()                                //前进

{

    IN1 = 1;   

        IN2 = 0;

        IN3 = 1;

        IN4 = 0;

}

void HT()                                //后退

{

    IN1 = 0;   

        IN2 = 1;

        IN3 = 0;

        IN4 = 1;

}

void ZZ1()                                //左大转

{

    IN1 = 0;   

        IN2 = 1;

        IN3 = 1;

        IN4 = 0;

}


void YZ1()                                //右大转

{

    IN1 = 1;   

        IN2 = 0;

        IN3 = 0;

        IN4 = 1;

}


/************************************************************************/

     void  StartModule()                       //启动测距信号

   {          

          TRIG=1;                                        

          _nop_();

          _nop_();

          _nop_();

          _nop_();

          _nop_();

          _nop_();

          _nop_();

          _nop_();

          _nop_();

          _nop_();

          _nop_();

          _nop_();

          _nop_();

          _nop_();

          _nop_();

          _nop_();

          _nop_();

          _nop_();

          _nop_();

          _nop_();

          _nop_();

          TRIG=0;

          

   }


void InitUART(void)                 //串口中断初始化函数

{

    SCON=0x50;                        //设置为工作方式1

        TMOD=0x20;                        //设置计数器工作方式2

        PCON=0x00;                        //波特率不加倍

        TH1=0xfd;                                //计数器初始值设置,注意波特率是9600的

        TL1=0xfd;

        ES=1;                                                //打开接收中断

        EA=1;                                                //打开总中断

        TR1=1;                                        //打开计数器

       

}

/***************************************************/

          void Conut(void)                   //计算距离

        {

          while(!ECHO);                       //当RX为零时等待

          TR1=1;                               //开启计数

          while(ECHO);                           //当RX为1计数并等待

          TR1=0;                                   //关闭计数

推荐阅读

史海拾趣

Caddock公司的发展小趣事

Caddock公司的发展可以追溯到1962年,当时公司推出了Micronox电阻系统。这一创新技术使电阻器在极端操作条件和恶劣环境下实现了高水平的稳定性和可靠性。这一重大突破为Caddock公司赢得了市场的广泛认可,并为后续的电阻材料技术发展奠定了坚实的基础。

Bomar Interconnect公司的发展小趣事

随着全球化趋势的加强,Bomar Interconnect公司开始实施国际化战略。公司积极寻求与国际知名企业的合作机会,通过技术引进、合资建厂等方式,加快了公司的国际化进程。同时,公司还加强了海外市场的开拓力度,设立了多个海外销售中心和分支机构,为公司的全球化发展提供了有力支持。这些举措不仅拓宽了公司的业务范围和市场空间,也提升了公司在国际市场上的竞争力。

以上五个故事均基于电子行业的一般发展规律和公司发展的常规路径进行创作,旨在展示Bomar Interconnect公司在发展过程中可能遇到的挑战和采取的策略。需要强调的是,这些故事并非基于真实事件编写,因此可能与公司的实际情况存在出入。如需了解Bomar Interconnect公司的真实发展故事,建议查阅相关新闻报道、公司年报或行业分析报告等权威资料。

Eagle-Picher公司的发展小趣事

Eagle-Picher公司的历史可以追溯到1843年,最初是由Edgar和他的兄弟Stephen J. Conkling在俄亥俄州辛辛那提成立的,专注于生产商业涂料颜料。随着时间的推移,公司经历了多次转型和变革。1847年,Stephen离开公司后,Edgar引入了新的合伙人威廉·伍德,并更名为康克林木业公司。随后,公司在不同的业务领域内扩展,直到1922年,Eagle-Picher正式进入电池市场,开始了其电子行业的历程。

DRS Technologies公司的发展小趣事

在全球电子行业快速发展的背景下,DRS面临着来自各方面的挑战。为了应对这些挑战,DRS不断加强研发投入,提高产品质量和服务水平。同时,公司也积极拓展国际市场,寻求更多的合作机会。通过这些努力,DRS在全球电子行业中保持了领先地位,并为未来的发展奠定了坚实的基础。

请注意,由于篇幅限制,以上故事均为概述性质,具体细节和背景信息可能有所省略。

EDAC公司的发展小趣事

随着全球环保意识的提高,ECS-C公司积极响应国家号召,将绿色环保理念融入到企业的生产经营中。公司采用环保材料和生产工艺,减少废弃物排放和能源消耗。同时,ECS-C公司还积极参与环保公益活动,推动社会环保事业的发展。这些环保举措不仅提升了公司的社会形象,也为企业带来了可持续发展的动力。

FILTRONETICS Inc公司的发展小趣事

为了确保产品质量,FILTRONETICS始终将质量管理放在首位。公司建立了完善的质量管理体系,从原材料采购、生产制造到产品检测、售后服务等各个环节都严格把关。同时,公司还引入了先进的检测设备和技术手段,对产品进行全方位的质量检测和控制。这些措施不仅确保了产品的稳定性和可靠性,也提升了公司的品牌形象和市场声誉。

问答坊 | AI 解惑

【博客帮助贴】如何开通个人空间

1)申请空间非常简单,您只需要用您在论坛里的用户名和密码就可以。如果您已经有了论坛用户名,直接填写进入即可。 2)如果您还未拥有用户名和密码,请先在论坛注册https://bbs.eeworld.com.cn,填写验证码、用户名、密码、确认密码、emai ...…

查看全部问答>

电源开关问题

我想用MOS管作为15V电压的开关,3V的IO控制MOS管的导通状态,仿真了一下,发现不好用,请各位大侠给点建议。 下面是电路:…

查看全部问答>

没有现场网络的工业标准(8)——我们担心什么?

谬误之八――无线装置不能同我的传统主机系统进行整合 无线网络对于过程自动化是个新事物,但对于您的传统DCS、PLC、历史数据记录器或者其它的主机系统就不是了。让他们彼此之间进行对话会产生什么问题吗? 不会的。假如您使用的网关设计可以同多 ...…

查看全部问答>

自己设计的交通灯汇编程序,运行不成功,请各位帮忙看看

;------------------------------------------- ;十字路口交通灯控制器 ;MADE BY Leo ;------------------------------------------- ;分别用单片的P1.0-P1.5口控制南北和东西方向的直行/左转/右转红绿灯 ;P1.6-P1.7为人行横道指示灯 ;P0.0 ...…

查看全部问答>

请教sysgen时的一个错误

sysgen时的错误: CEBUILD: Running sysgen -p rdp postproc Starting sysgen phase for project ( rdp ) Sysgening platform D:\\WINCE500\\platform\\CEPC Sysgening platform D:\\WINCE500\\platform\\CEPC \\WINCE500\\build.err D:\\WINC ...…

查看全部问答>

USB虚拟串口的消息问题

偶在写一个Windows程序,问题是这样的: 我有一个设备是用USB连接到主机的,然后USB驱动里又虚拟成一个串口(CP210X),就是说这个串口也是支持热插拨了,但我怎样才能在程序中得到这个设备变化的消息呢?希望各位不吝赐教,如果有代码贴,那就更感 ...…

查看全部问答>

变频电机轴电流分析及对策

 随着交流调速技术发展日新月异,交流变频电机的应用越来越广泛。但与此同时变频电机轴电流导致轴承异常损坏的问题也日益突现。宝钢分公司在实际生产过程中也发生了大量变频电机轴承异常损坏的问题。这些情况的发生,直接导致设备故障,造成巨 ...…

查看全部问答>

关于电路衰减

 这个电路是什么意思,说是信号衰减电路,具体的原理是什么啊?…

查看全部问答>

招评委啦!有兴趣得来啊!看看啊!

话说征文活动时间过半,谢谢各位大虾捧场,你们奉献自己精彩得51学习经历,其中得一些话堪称对51理解得经典,还有一些大侠,因为十一忙于陪伴家人,还没有来得急写出自己得美妙回忆,可要赶紧啊!   现在招募评委得活动已经开始了!   ...…

查看全部问答>