打印

急!!单片机采集小车往返运动的时间

[复制链接]
2572|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
newair|  楼主 | 2010-8-14 10:40 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 newair 于 2010-8-14 10:59 编辑

由单片机外部中断0和1控制小车的电机正反转,程序已经写好,但是采集小车运动一趟的时间不会请高手指点,最好各个程序,谢
谢。

图片上ab两端有行程开关,小车碰到行程开关,产生下降沿脉冲,触发外部中断小车正反转。怎样用定时器采集小车运动的一趟的
时间???




相关帖子

沙发
newair|  楼主 | 2010-8-14 11:08 | 只看该作者
附上我编的程序

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

  sbit a=P1^0;//直流电机的两端
sbit b=P1^1;

  uchar count0,count1;//中断标志
  uint aa,dat, t0_count;
  uchar code table[]={   //数码管显示编码 //共阴极,高电平有效
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};

void display(uint); //函数声明显示小车运动周期
  delay(uchar x)
{
        uchar a,b;
        for(a=x;a>0;a--)
                for(b=255;b>0;b--);       
}

void inti()
{
              EA=1;
         EX0=1;
         EX1=1;
        IT0=1;//边沿触发
         IT1=1;
         a=0;
         b=0;
          TMOD=0x01;
          TH0=(65536-10000)/256;;
                 TL0=(65536-10000)%256;//定时1mS
          ET0=1;
                 TR0=0; //关计数器0
          t0_count=0;
}
void  main ()
{  inti();
  display(12345);//初始化显示

   while(1)
   {         display(???);
   }
}


  void interrupt0() interrupt 0
{
  count0++;         
if(count0==1)//正传
          {   
                         a=1;
                 b=0;
                 count0=0;
                 TR0=1;//开始计时
          }
}

   void interrupt1() interrupt 2)//反传
{         
  count1++;

    if(count1==1)
  {   
                 a=0;
         b=1;
        count1=0;
}
         
}




   void time0() interrupt 1 //采集小车一趟或一个周期的时间
  {   
      TH0=(65536-10000)/256;
      TL0=(65536-10000)%256;//定时10mS
          t0_count++;
          
  }


  void display(uint a)

使用特权

评论回复
板凳
newair|  楼主 | 2010-8-14 11:09 | 只看该作者
给自己猜猜,请高手,大侠们指点

使用特权

评论回复
地板
老鱼探戈| | 2010-10-26 12:48 | 只看该作者
当触发a端行程开关时置开始计时标志(第一次触发,按照你的程序用TM0 计时(把长时间的计时方在中断外),此时开TM0中断),b端开关不影响计时,当a端开关再次触发(第二次)读取行程一趟的时间,关TM0中断。

使用特权

评论回复
5
justrong| | 2011-3-30 15:40 | 只看该作者
记不清好像有一个中断是可以自动触发计时的

使用特权

评论回复
6
xubx83| | 2011-3-30 16:57 | 只看该作者
有些单片机的定时器带门控触发

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

34

帖子

1

粉丝