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

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条回答
langzitianya
1楼-- · 2019-07-16 06:23
你仿真的时候看一下w的值,可能w的值改变了!
blust
2楼-- · 2019-07-16 12:18
为什么都在纠结for语句,而全部忽略了二楼的观点???for语句这么写循环到溢出的话是可以结束的,但是逻辑关系错误了的话是无论如何都无法执行的。
天门无痕
3楼-- · 2019-07-16 15:26
 精彩回答 2  元偷偷看……
blust
4楼-- · 2019-07-16 19:16
按照你程序的逻辑来看,2楼说的是对的,这个跟for循环没有关系
sinap_zhj
5楼-- · 2019-07-16 22:18
是,跟for循环没有关系。
从火星刚回来
6楼-- · 2019-07-17 00:26
你这像是在发波,是不是延时太短了,执行的效果看不出来。

一周热门 更多>