您现在所在的是:

单片机论坛

回帖:3个,阅读:2426 [上一页] [1] [下一页]
900
yangtze111
文章数:24
年度积分:50
历史总积分:900
注册时间:2008/11/17
发站内信
发表于:2008/12/16 11:26:00
#0楼
有不规则的脉冲
附件
用芯片89S52的定时器T2,对其下降沿进行捕获、中断,然后中断子程序要处理两次中断时TH2之差,如何写中断子程序呢,我就是标志位不知道怎么放,就不会在产生中断的时候将两次TH2的值相减,因为在中断服务程序里将TH2之值付给了R0,再来一次中断TH2之值还是付给了R0,这样就无法将两次的数据相减。就不能比较两次的值。
望高手指点下!
我程序如下:
#include<reg52.h>
sbit P2_0=P2^0;   //定义P2.0口
int R0,R1;
bit flag;        //定义标志位
void timer2_interrupt(void) interrupt 5 using 1 //中断服务程序
    {
    flag=1;   //置标志为1
    }
void main()
{

EA=1;          //打开中断
    ET2=1;        // 开定时器2
T2CON=0X09;  //设置T2为捕获模式,下降沿则产生中断
if(flag)
{
R0=RCAP2H;
R1=RCAP2L;
    if((R0*256+R1)>=(R2*256+R3))   //就是这儿我不知道怎么比较了。
{
R2=R0;R3=R1;                //就是这儿我不知道怎么比较了。
}
else
   
    TF2=0;
EXF2=0;
TH2=0;
TL2=0;
TR2=1;
}
flag=0;
}
追寻BEYOND的声音!  听,多雄厚、多坚强~
~_^          坚持信念,迎接挑战,只向前,永不退~
900
yangtze111
文章数:24
年度积分:50
历史总积分:900
注册时间:2008/11/17
发站内信
发表于:2008/12/16 14:27:00
#1楼
哪位清楚这个,帮忙告诉下,谢谢咯!
追寻BEYOND的声音!  听,多雄厚、多坚强~
~_^          坚持信念,迎接挑战,只向前,永不退~
900
yangtze111
文章数:24
年度积分:50
历史总积分:900
注册时间:2008/11/17
发站内信
发表于:2008/12/16 17:46:00
#2楼
我自己想了个,但是处理数据的时候有点问题,大家看看,哪儿不对!就是那个R0和R2比较的时候,16进制这样比较应该没问题吧?
#include<reg52.h>
sbit P2_0=P2^0;   //定义P2.0口
sfr T2MOD=0xC9;
int R0,R1,R2,R3;        //定义标志位
bit flag;        //定义标志位
int a;
   
void delay100us(void)   //延时100+0us 函数定义
{
   unsigned char i,j;
   for(i=19;i>0;i--)
   for(j=1;j>0;j--);
}


void fire(void)
{
P2_0=1;
delay100us();
P2_0=0;
}

void compare(void)    //比较值
{
if(R0<R2)     //判断下个下降沿到来就是第二个缸
 {
 fire();     //点火子程序
 }    
}

void timer2_interrupt(void) interrupt 5 using 1 //中断服务程序
{

    flag=1;
    TF2=0;
    EXF2=0;
TR2=0;

}

void main()
{
    a=1;
    P2_0=0;
EA=1;          //打开中断
ET2=1;        // 开定时器2
T2CON=0X09;  //设置T2为捕获模式,下降沿则产生中断
TH2=0;
TL2=0;
while(1)
{
if(flag)
{
  a=a++;
  flag=0;
  if(a%2==0)
  {
    R0=RCAP2H;
TH2=0;
    TL2=0;
TR2=1;
  }
   if(a%2==1)
   {
     R2=RCAP2H;
 TH2=0;
     TL2=0;
 TR2=1;
 compare();
   }
}
 
}
}
 
追寻BEYOND的声音!  听,多雄厚、多坚强~
~_^          坚持信念,迎接挑战,只向前,永不退~
900
yangtze111
文章数:24
年度积分:50
历史总积分:900
注册时间:2008/11/17
发站内信
发表于:2008/12/18 10:36:00
#3楼
还好,自己搞定了!
追寻BEYOND的声音!  听,多雄厚、多坚强~
~_^          坚持信念,迎接挑战,只向前,永不退~

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

31.2002