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

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条回答
天门无痕
1楼-- · 2019-07-17 00:38
从火星刚回来 发表于 2016-4-15 16:56
你这像是在发波,是不是延时太短了,执行的效果看不出来。

延时我改过了   长的   短的  都用过还是没用啊
天门无痕
2楼-- · 2019-07-17 01:08
 精彩回答 2  元偷偷看……
silverze
3楼-- · 2019-07-17 04:03
怎么没看到w的声明,key函数也没写返回值类型,这程序能通过编译?
从火星刚回来
4楼-- · 2019-07-17 08:31
天门无痕 发表于 2016-4-15 18:50
延时我改过了   长的   短的  都用过还是没用啊

你在循环里面设个断点,你看程序进去不,进去了就是你管脚的事。另外P3^6是个复用口,你看设置好着没。

一周热门 更多>