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计数外部脉冲,可是没法触发中断,这是为什么啊
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
yy2qy
1楼-- · 2019-07-16 07:30
战胜心魔 发表于 2017-11-13 19:04
要有事件触发 上升还是下降看你

计数模式不是计数满了溢出触发中断????
战胜心魔
2楼-- · 2019-07-16 07:33
 精彩回答 2  元偷偷看……
yy2qy
3楼-- · 2019-07-16 11:41
战胜心魔 发表于 2017-11-13 20:59
他的启动停止要控制的

EA,ET1,TR1都置1了,还有啥要设置的?
战胜心魔
4楼-- · 2019-07-16 16:19
先停止 电机启动开始光电驱动开
yy2qy
5楼-- · 2019-07-16 18:48
战胜心魔 发表于 2017-11-13 21:07
先停止 电机启动开始光电驱动开

不理解
战胜心魔
6楼-- · 2019-07-16 21:00
初始化计数停止 判断驱动电机 计数开始 你的电机是P0.0高电平驱动P0.0==1 TR1=1 然后就是中断函数的处理了

一周热门 更多>