本帖最后由 szshawn2010 于 2011-5-8 15:27 编辑
按键长按、短按、双击,就行了,其实其他道理是一样的,请哪位高手不吝指教啊。 zjszjtk 发表于 2011-3-2 13:18
读到按键,对标志S1置1。
不停的读S1及按键是否存在。
若S1==0,KEY1==0,则是长按键
若S1==1,KEY1==0, 则是按键中&计时中,回到 GOTO $-2 中
若S1==1,KEY1==1,则是短按OR双击。
进入到是否 是双击的判断。
延时M 这毫秒 (双击间隔为M毫秒,即表示约在M毫秒内的击键判为双击。超出不候),
判读KEY1==1,则是短按
KEY1==0,则为双击。
定时中断中,判读到S1==1,则开启N秒倒计时(N表示长按的时间),计时结束时
S1=0.
如果不想 让MCU 一直等待这个结果,可以设置一个定时标志。定时中断中,读一下。把结果返回成一个值即可 |