标题: 帮忙看一下,为什么进不去中断 [打印本页]

作者: 看好自己    时间: 2016-9-22 17:09
标题: 帮忙看一下,为什么进不去中断
#include<reg52.h>

void main()
{

        RCAP2H = 0xfc;
        RCAP2L = 0x66;
        T2CON = 0x00;
        TH2 = RCAP2H;
        TL2 = RCAP2L;
        EA = 1;
        ET2 = 1;
        TR2 = 1;   
        while(1);
}

void dfs()interrupt 5
{
        TF2 = 0;
}


作者: 31415    时间: 2016-9-25 16:06
51还是52?

作者: ZG_LG    时间: 2016-9-25 18:12
PIC的吗?
作者: a0931727149    时间: 2016-9-26 05:34
有進入中斷程式 ...用晶振12M 的52系列晶片(AT89s52 ,STC89c52),會有1.76ms 的中斷...
作者: liuyimao485812    时间: 2016-9-26 06:53
先开各个中断,再开总中断,顺序不能反。
作者: yzwzfyz    时间: 2016-9-26 23:21
"先开各个中断,再开总中断" 是个好习惯。但“顺序不能反”的说法是不正确的。
作者: hsanper    时间: 2016-9-27 22:19
TMOD工作方式还没有设置
作者: npn    时间: 2016-9-28 07:07
楼上试试这个中断程序能不能进去

  1. #include <reg51.h>

  2. sfr AUXR   = 0x8E;

  3. void InitTimer0(void)
  4. {
  5.     TMOD = 0x01;
  6.     TH0 = 0x0A2;
  7.     TL0 = 0x40;
  8.     EA = 1;
  9.     ET0 = 1;
  10.     TR0 = 1;
  11. }

  12. void main(void)
  13. {
  14.     AUXR = AUXR|0x80;  
  15.     InitTimer0();
  16.     while(1);
  17. }

  18. void Timer0Interrupt(void) interrupt 1
  19. {
  20.     TH0 = 0x0A2;
  21.     TL0 = 0x40;
  22.     P3++;
  23. }
复制代码

作者: davedoff86    时间: 2016-9-29 14:29

void time1_init()                          //T1初始化
{
        TMOD = 0x10;                        //計時器1,方式0,16位
        TH1  = 0xb8;                        //計時器1初值
        TL1  = 0xEF;                        //大約10ms
        EA=1;                                //總中斷開
        ET1=1;                                //允許計時器1中斷

}

void time1_Inte() interrupt 3 //T1中斷
{
        TH1 = 0xb8;                        //計時器1初值
        TL1 = 0x00;
        Count++;                                //長度加1
}
作者: shuisheng60    时间: 2019-2-3 20:21
楼主的思路没有弄通!因为就算你那个代码中断了,你也看不到他的情况.你要弄一个能让你看到或听到,又或是示波器能测到的事物来作为你判定的标准.你没有判定的标准,单片机累死你也感受不到




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1