既然想自己写,就是想自己学习,帮一下应该的。
首先打开两个定时器:
一个定时中断专门用于查键盘,中断里查按键,按键值放在临时RAM中,如果几次查询结果相同,就查到按键了,把这个按键值从临时RAM转存全局RAM中,方便程序处理。消抖之类不用考虑,定时器中断自然解决这个问题。
另一个定时中断专门控制点灯,每次中断时检查点亮时间计数(此定时器的定时时间),如果是0熄灭指示灯,如果非0 将点亮时间计数减一 。点亮时间计数为全局RAM,字节或字。
主程序就查全局RAM(按键值),有新的按键值,就将其清0并按你的要求处理。
两个定时中断程序分开来写要简洁一些。当然,用一个定时器也可以。
还真写了不少,就这样吧。 |