zoukankan      html  css  js  c++  java
  • 嵌入式开发之项目---遥控小车课题设计

    C语言控制程序:

       #include<reg52.h>
       #define uchar unsigned char
       #define uint unsigned int

       //此变量用于记录小车目前所处的操作状态
       uint opchoice=0;

       //次变量用于控制小车速度的档位
       uint speed=2;

       //前进
       sbit KF=P3^0;

       //后退
       sbit KB=P3^1;

       //左转
       sbit KL=P3^4;

       //右转
       sbit KR=P3^5;

       //延时子函数
       void DelayMs(uint ms)
       {
        uchar t;
     while(ms--)
     for(t=0;t<120;t++);
       }

       //小车前进
       void forward()
       {
        P2=100*speed;
     DelayMs(10);
     P1=100*speed;
     P0=0x02;
       }

       //小车停止
       void backward()
       {
      P2=0;
      DelayMs(10);
      P1=0;
      P0=0x04;
       }

       //小车左转
       void turnleft()
       {
        P2=100*speed;
     DelayMs(10);
     P1=50*speed;
     P0=0x08;
       }

       //小车右转
       void turnright()
       {
        P2=50*speed;
     DelayMs(10);
     P1=100*speed;
     P0=0x10;
       }

       //主程序
       void main()
       {
        P2=0;
     DelayMs(10);
     P1=0;
     EA=1;     //总中断允许
     IT0=1;     //中断触发方式边沿触发
     EX0=1;     //允许INT0中断
     while(1)
     {
      //上电开始检测KF,KB,KL,KR的状态
      if(KF==0)opchoice=1;
      if(KB==0)opchoice=2;
      if(KL==0)opchoice=3;
      if(KR==0)opchoice=4;
      switch(opchoice)
      {
       case 0:backward();break;
       case 1:forward();break;
       case 2:backward();break;
       case 3:turnleft();break;
       case 4:turnright();break;
       default:;
      }

     }
       }
      
       //换挡中断
       void EX_INT0()interrupt 0
       {
        speed=speed%3+1;
    // opchoice=0;
       }

    红外控制部分:

     遥控小车课题设计

    问题:

    1、  当A处开关S闭合时,左边电路发射红外线,右边电路检测到红外线后,在OUT输出端得到的是单峰脉冲吧?

    A处应加入38kHz的一段脉冲波形(用NE555或单片机),红外接收模块才输出一个脉冲。

    2、  A处和B处的器件有什么替代器件么?

    A处可以买任意型号的红外发射管,B处可以买任意型号一体化红外接收组件(38kHz,能响应连续的红外载波,三个脚的),电子市场很多,管脚定义可能不同,可以问买家。

     

    3、  这个电路可以较好的实现以下功能吗?

    功能描述:当左边按键S按下时,在CPU处能得到一个单峰脉冲,表征左边电路按键S按下。

    不行,按键S必须接NE555。

    硬件电路部分:

    遥控小车课题设计

    http://blog.sina.com.cn/s/blog_70c2b7560100qskk.html

  • 相关阅读:
    简单所以不要忽视,关于 和 程序员应了解的实际应用
    即使用ADO.NET,也要轻量级动态生成更新SQL,比Ormlite性能更高
    即使用ADO.NET,也要轻量级实体映射,比Dapper和Ormlite均快
    如何在前端实现语义缩放(第一步)
    react教程 — 性能优化
    react教程 — 组件
    react教程 — redux
    create-react-app 创建项目 及 配置
    CSS 预处理器
    react 和 vue 对比
  • 原文地址:https://www.cnblogs.com/pengkunfan/p/3946882.html
Copyright © 2011-2022 走看看