用pic16f1828,这句for语句为什么不执行?

2020-02-08 09:06发布

用的pic16f1828,MPLAB IDE v8.85

#define       led     LATB5
main()
{ uchar k;
PortInit();
while(1)
{
   // led=1;                         //这样led 要亮
   for(k=4;k==0;k--) led=1;   //这样led就不亮?

以前搞51,现在用pic ,这句为什么不执行,特请教知道的朋友,谢谢先。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
usk5yenj4id04dm
1楼-- · 2020-02-09 08:45
你的for逻辑有问题,初值不合适,循环在第一次判断时就结束了
chengzepeng
2楼-- · 2020-02-09 09:39
 精彩回答 2  元偷偷看……
快乐
3楼-- · 2020-02-09 14:02
fxhfxh 发表于 2012-7-31 15:13
先使k等于4,然后执行一次语句减1,减到0则停止执行语句,难道有错吗?(c语言我是自学的。) ...

关键问题在这里,不是先执行减一,而是先判断K是否等于0,很明显K不等于0,那还用说,退出循环呗!后面的LED = 1就根本不会被执行了.

楼主仔细看看下面for语句的用法吧.


for(表达式1;表达式2;表达式3) 语句;

先求解表达式1,再求解表达式2,若其值为真(非0),则执行for语句中指定的内嵌语句,然后执行表达式3,再计算表达式2,如此循环,直到表达式2为假,则结束循环.
fxhfxh
4楼-- · 2020-02-09 15:37
知道错误了,谢谢楼上各位,谢谢!

一周热门 更多>