电子技术论坛

 找回密码
 快速注册

QQ登录

只需一步,快速开始

搜索
下载方法|用单线程|避免多扣帖子规范|求助必读|发帖建议积分策略|勋章介绍|新人必读获取金币|推广论坛|出售帖子基本礼节|致会员信|版规总则
禁涉政治|反对低俗|举报专帖征集相片|留下足迹|推荐精华上传附件|制作分卷|使用网盘禁发qq群|恶意灌水|纯表情帖加入团队|监督机制|安全上网
查看: 2052|回复: 3

智能往返小车的控制

[复制链接]
发表于 2012-3-15 12:36:20 | 显示全部楼层 |阅读模式

注册家电维修技术论坛,与同行畅聊维修技术,享更多技术论坛功能。

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
1.          智能往返小车的控制,用51单片机来实现控制,现在拿出来跟大家分享:
  实现任务
小车能在起跑线与终点线自动往返。
   (1)车辆从起跑线出发,到达终点线后停留10S,然后自动返回起跑线。
   (2)中间300CM的限速区,车辆往返均要求以低速通过,通过时间8S。
  
跑道宽度0.5m,表面为瓷砖地板,两侧有2cm的黑线作为跑道分界线,终点有黑带提示‘,跑道如下图所示
  

(原文件名:000.jpg)


2.系统方案选择  
根据题目要求,电动车系统应具有:起点加速前进、减速, 限速区减速,加速,终点停留,后退、限速区减速、加速,起点停留等功能,为此按功能,系统可划分若干基本模块:黑白、检测模块,控制器模块,电机驱动模块。  

2.  主要硬件设计
(1)控制电路电路的设计,如下图所示:

(原文件名:红外检测和光藕隔离.jpg)


(原文件名:H桥.jpg)


单片机 (原文件名:4.jpg)




程序:
#include <reg52.h>                 //  
        #define uchar unsigned char        //  开头定义,方便下面使用
        #define uint unsigned int
        #define ulong unsigned long
        sbit P32=P3^2;         // 红外检测口
        sbit P12=P1^2;        //  直流电机I/O口1
        sbit P13=P1^3;        //  直流电机IO口2
    void delly(ulong y); //   
        void unit();
  
        uint code data_table[]={250,250,250,150,250,0,250,150,250};//用数组,调制每个期间的PWM
        uchar i,timeh,timel;                                                                                                                                                  
        uint pwm_data,time_counter,counter1;
        main()
        {                                                         
          unit();
          while(1)
          {
            if(i<5)//开始前进
                {
                  P12=1;  
                  P13=0;
                  delly(pwm_data);
                  P12=0;
          delly(1000-pwm_data);//占空比
                }
                else if(i==5)//到打终点后,停止

                {
                  P13=0;
                  P12=0;
                  delly(333333);
                  P13=1;
                   while(i==5);                }
                else if(i>5&i<9)//到达终点之后返回
        {
                 P12=0;            
                 P13=1;
                 delly(pwm_data);                                                                                                   
                 P13=0;
         delly(1000-pwm_data);//返回到起跑线上停止
            }                 
        else
                  {
                  P13=0;
                  P12=0;
                  while(1);
                }
                       //  
          }
        }
  
void unit()
{
  i=0;
   P3=0xff;//   
   P1=0xff;
  time_counter=0;                                                                                                
  pwm_data=data_table[i];
  TMOD=0x11;//   
  TH0=0x00;//     
  TL0=0x00;
  EA=1;//   
  ET0=1;
  EX0=1; //   
  IT0=1;//′  
}
        //// óê±′|àí/////
void delly(ulong y) //延时
{
  while(y)
    y--;
}
        //////////// D  ′|àí2 &#8226; ////////////
void int0() interrupt 0 using 0//中断0
{   
   

  //timel=TL0;
  if(i>=1)
  {
    if((time_counter-counter1)>20)
      i++;     
  }  
  else  
  {
    i++;
    TR0=1;
  }
  pwm_data=data_table[i];
  counter1=time_counter;
   //timeh=TH0;  
}
void timer0() interrupt 1 using 1 //定时器0中断,  
{      
       TR0=0;
           if(time_counter<10000)
         time_counter++;
           else
             time_counter=0;
       //ET0=0;
       TH0=0x00;
       TL0=0x00;
       TR0=1;
          // t1_flag=1;
}
 

发表于 2012-3-15 12:48:37 | 显示全部楼层
看不懂
发表于 2012-3-15 12:49:38 | 显示全部楼层
请问楼主单片机好学吗
发表于 2014-12-19 19:41:17 | 显示全部楼层
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|家电维修技术论坛 ( 鄂ICP备09003585号-2 )

GMT+8, 2025-2-25 00:01 , Processed in 0.033658 second(s), 4 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

CopyRight © 电子技术论坛
电子邮箱:8794149@qq.com | 联系 QQ:3081868839 | 官方网址:www.dzdu.com

Qiji. All Rights Reserved


服务条款 | 站长声明

Wuhan Qiji Technology Co., Ltd.武汉奇迹科技有限公司版权所有


鄂ICP备09003585号-2鄂公网安备42010602000420号

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