一、按键模板
(一)标准例程调试后的结论
(1)Dispose_Key()中的keycode = 0
写在if(bloose==0){中}则按一次键可能会作用两次
(2)nTimer>=400和nTimer==400的区别
加入原来是400,——》40,则可能本来nTimer>40,<400那么ntimer==40会卡住
(二)模板
Init_T0(); Service_T0(){ GetKeyNum(); }; Dispose_Key{ if(keycode) { if(bloose) } };
main(){ while(1){ 最小周期的一次操作 } }
(三)最小周期的一次操作
单个流水灯;多个流水灯;双重流水灯;小鸟归巢;倒计时灯个数;
(1)双重流水灯——不卡顿:交替时不卡顿
避免重叠
(2)小鸟归巢——”双循环“(流水8次,一次流水流的个数随第几次流水而变化)+或运算+位操作
(3)倒计数灯个数——倒计时:一时间周期移位一位
只进行一次倒计时:全部熄灭后需要恢复”数字“
暂停,不进行下一次流水
灯个数:P0 = ~(0XFF>>GESHU)
(四)键控流水灯
加减速;模式切换;启停;
(1)模式切换——切换到另一个模式后,需要在该模式从头开始
(2)启停——主循环中包含在if(nTimer){中}