找到问题了,当按键按下时,定时器还在计时,如果延时使pp计数值超过20,cjne a,#20,rel无效,需要等到pp溢出才能继续计数 |
有一个思路,把按键判断放到定时到1秒pp清零之后,这样不会卡 |
显示器是扫描显示的吧。 这应要求每间隔一个时间T(如5ms),就要刷新一次,否则显示就不正常了,是吧。 当你按键时,是不是扫描就顾不到了,程序【停留】键处理上了,显示自然就不正常了。 仔细想想是不是这样的呢?当你DELAY的时间内,扫描是不是顾不到了。 |
当按键按下时程序死循环,影响到其他时序了。每个按键设立一个内存,当程序确认按键按下时,该内存为0 则时间加1,然后该内存设置为1 。当按键松开时内存设置为0。就是说只有按键按下,该内存为0的情况下时间加1。也可以用位寻址区 |