一个按键执行两个程序 第二个程序执行不了啊啊啊啊

2019-07-15 14:26发布

我就是写了一个很简单的程序(程序如下),在调试这个程序的时候,我把sheng();函数中第一个if语句的for语句去掉就能执行第二个if语句,为什么加了for循环就没有执行第二个if语句,求大神帮我看看!!
#include<reg52.h>
#define uchar unsigend char
#define uint unsigned int
sbit jk=P3^6;         //定义我要控制的端口
delay(uint x)           //延时
{
while(--);
}
key()
{/***********矩阵键盘的程序我就不写了****************/}
sheng()                             //根据扫描的键值执行相应步骤
{
if(w==0xee)
{
delay(10);
if(w==0xee)
{
for(i=10;i>0;i++)
{
jk=~jk;
delay(200);
}
}
if(w==0xed)
{
delay(10);
if(w==0xed)
{
jk=1;
}
}
}
}
main()
{
while(1)
{
w=key();
sheng();
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
andyyau
1楼-- · 2019-07-15 15:39
i = 10 ,i > 0 一直成立,i++一直加肯定不会往下走啊 最佳答案
夕執
2楼-- · 2019-07-15 16:43
你现在这个程序的含义是在w等于oxee的前提下,w再等于0xed才会执行jk=1,这跟你想要达到的目的一样吗?
liujinyi016
3楼-- · 2019-07-15 18:36
for(i=10;i>0;i++)怎么定的
应该是i--吧
langzitianya
4楼-- · 2019-07-15 19:51
 精彩回答 2  元偷偷看……
天门无痕
5楼-- · 2019-07-15 23:29
andyyau 发表于 2016-4-13 20:39
i = 10 ,i > 0 一直成立,i++一直加肯定不会往下走啊

可是这个for语句在执行循环次数结束的时候是有停止的啊
天门无痕
6楼-- · 2019-07-16 02:57
langzitianya 发表于 2016-4-14 07:12
for(i=10;i>0;i++)确实是一直执行的,你要好好看看这个语句的执行方式了,即使你改成i--你也看看需要减多少次,不然会差一次的!

我现在就是只要把for语句     加进去就执行不了    第二个if语句    可是for循环是会停止的   程序中可能是我打错了

一周热门 更多>