晤眼睇,建议你还是一步一步调试出来。
比如按一下亮、按一下灭,再扩展出来。
跟LS所说,
1、没有主循环,也就是while(1){},当然不严格来说,main()默认会做循环,但这样不严谨,而且前面定义的也被重复执行了;
2、if(i==10)进入后,进入了一个死循环while(1)里,没有跳出来,只能重启才能跳出来,这样做是错的。解决办法是在此处的while(1)里做个判断,if(i>10)则break,跳出这个while;
3、按照你说//再按5次关闭所有led,应该是if(i >= 15),并且关闭应该是P1 = 0xFF;
并且记得进入if(i >= 15)后,应该有一个i = 0的清零语句,不然没办法从头计数,实现i = 5, i = 10的控制;
4、最后,也是很致命的是:加松手抖动,如果不加松手抖动,起码你得把所有判断语句设置为">=",不然很容易手振,按了几下按键,导致i = 16/17/18的,这时程序就判断不了了。
总而言之,新手就一步一步来
|