51单片机外部脉冲计数问题

2019-07-15 09:21发布

  1. sbit IN1 = P1^3;
  2. sbit IN2 = P1^4;
  3. sbit IN3 = P1^5;
  4. sbit IN4 = P1^6;
  5. sbit rm = P3^4;         //右边码盘计数 T0
  6. sbit lm = P3^5;         //左边码盘计数 T1

  7. void Down()
  8. {
  9.     IN1 = 0;
  10.     IN2 = 0;
  11.     IN3 = 0;
  12.     IN4 = 0;   
  13. }

  14. void RTurn90()         //右转90度
  15. {   
  16.     IN1 = 0;
  17.     IN2 = 0;
  18.     IN3 = 1;
  19.     IN4 = 0;
  20. }

  21. void Inittimer()
  22. {
  23.     TMOD = 0x66;      //T0、T1作8位自动重装载计数器
  24.     EA = 1;           //开总中断
  25.     ET0 = 1;          //开中断T0
  26.     ET1 = 1;          //开中断T1
  27.     TH0 = 238;        //赋初值,计数码盘转过18格
  28.     TL0 = 238;
  29.     TH1 = 238;
  30.     TL1 = 238;
  31. }

  32. void main()
  33. {
  34.     InitTimer();
  35.     TR1 = 1;          //开T1计数器
  36.     while(1)
  37.     {
  38.     RTurn90();
  39.      }        
  40. }

  41. void int3() interrupt 3           //中断T1(左边)计数满18格
  42. {
  43.     TR1 = 0;
  44.     Down();
  45. }
复制代码各位大佬,请问下,我想通过T1计数外部脉冲,可是没法触发中断,这是为什么啊
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。