各位大虾,有没简洁的编码器编程思路呀。 最近做一个编码器的程序,编码器A/B接4.7K上拉和474电容对地,通过1K电阻连到STC单片机的IO口,晶振频率为11.059M,A/B中的一路接中断口p3.3,使用一路中断检测。 中断程序如下: EXTINT: CLR EA PUSH ACC PUSH PSW NOP NOP JNB P3.5,EXTINT0 ;通过检测B的高低判断正反转 LCALL DATADEC ;调用数据增加处理程序 SJMP EXTINTOUT EXTINT0: LCALL DATAINC ;调用数据减少处理程序 EXTINTOUT: SETB P3.3 ;置位中断口 JNB P3.3,EXTINTOUT POP PSW POP ACC SETB EA RETI 编码器的旋转能判断正确,就是程序容易死在这里面的EXTINTOUT段。 不知道是什么原因,我预想的外部中断口的静止状态不常为高。各位大虾有什么好的建议呀!非常感谢
|