HASK:位自变量,读电脑键盘汇编程序中的位自变量,当读电脑键盘汇编程序KEYSCAN检验到有键合闭时置“1”,相反置“0”。

R2:键值自变量,读电脑键盘汇编程序KEYSCAN读取的键值。

KVALU:键值自变量,R2的键值送至这儿,供此汇编程序下一回分辨或子程序应用。

K20MS:20ms记时器自变量,当初次检验到有键合闭时往里送值10。程序流程复位中设置定时器中断为2ms间隔时间。进到定时器中断后,最先分辨K20MS是不是为0?若此0则立即撤出定时器中断;若不以0则将K20MS减1后再撤出定时器中断。那样K20MS自变量从10瘦到0時间为20ms。键断掉时都是相同地实行。

KAVA:位自变量,告知子程序:键合闭(断掉)合理。

程序流程表述:

1.程序流程复位时KSTEP的数值0,因此一进到本子h程序流程,程序流程立刻就跳至型号KSC0处,在此地启用读电脑键盘汇编程序KEYSCAN。

1.1从KEYSCAN出去后,若位自变量HASK的数值0,表明沒有键合闭,程序流程立即跳至型号RET处撤出。

1.2若位自变量HASK的数值1,就是说有键合闭,这时将标值1送进步进电机标示自变量KSTEP中,有利于到时候进到本子h程序流程时,程序流程立即跳至型号KSC1处。再将从KEYSCAN汇编程序读出的键值送进自变量KVALU中,用以到时候再启用读电脑键盘汇编程序KEYSCAN时与R2读取的键值开展较为。

最终将标值10送进20ms记时器自变量K20MS中,用以2ms定时器中断后减1,随后撤出汇编程序。

2.当子程序再度启用本子h程序流程时,程序流程立刻就跳至型号KSC1处。

2.1在此地最先辨别20ms记时器自变量K20MS是不是瘦到0(也就是说辨别20ms廷时来到沒有?),若K20MS不以0(20ms廷时都还没到),则马上撤出。

2.2若K20MS为0(表明20ms廷时時间来到),再度启用读电脑键盘汇编程序KEYSCAN。启用KEYSCAN汇编程序后,再度辨别位自变量HASK是不是合理?

2.2.1若HASK失效,表明之前(KSC0处)将会是遭受一回干挠。因此校准KSTEP(清0),撤出。使到时候启用本程序流程时,又重新开始。

2.2.2若HASK合理,则将此次从KEYSCAN读取的键值与之前读取并存有KVALU中的键值开展较为。

2.2.2.1若较为值不一样,则程序流程跳至型号KE1处,将新的键值存进KAVALU中,20ms后再启用KEYSCAN汇编程序,再度较为。

2.2.2.2若较为值同样,则表明此次键合闭合理,因此置位KAVA(当子程序是键按住实行时),告知子程序,键合闭合理,能够实行此键所需做的程序流程了。一起将标值2送进步进电机标示自变量KSTEP中,有利于到时候进到本子h程序流程时,程序流程立即跳至型号KSC2处。最终将标值10送进20ms记时器自变量K20MS中,在到时候进到KSC2型号处,也得等20ms以后再辨别键是不是断掉。