微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 各位老师,小生求教一个关于C语言的问题。多谢!

各位老师,小生求教一个关于C语言的问题。多谢!

时间:10-02 整理:3721RD 点击:
各位老师,小生求教一个关于C语言的问题key=1;
while(!key);
{
if(num<9)
num++;
}
这样写正确吗?
为什么while(!key);
都是一个语句了。怎么后面还加{}

while语句后面加了;号,表示语句的结束,假如语句为真即如while(1);程序永远停在这里。下面的语句都不会执行下去。

while (1)      
  {
  if(!KEY_ADD)
    {
         DelayMs(10);
     if(!KEY_ADD)     
           {
        while(!KEY_ADD);
               {               //这组大括号不加可以不?
                   if(num<9)   
                  num++;
                         }
           }

可以不加,你是想实现什么功能?能说说要求?

按键实现
按一下加一个数,到9之后就减到0;我就发现那个{}不应该加。

不知道你想实现什么功能?

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71 };
sbit key1=P3^4;
sbit dula=P2^6;
sbit wela=P2^7;
uchar num;
void delay(uchar z);
void main()
{        P1=0xff;
        wela=1;
        P0=0xfe;
        wela=0;
        while(1)
        {
                if(key1==0)
                        {       
                                delay(5);
                                if(key1==0)
                                        {       
                                                num++;
                                                if(num==10)
                                                        num=0;
                                        }
                                while(!key1);
                        }
                else
                        dula=1;
                        P0=table[num];
                        dula=0;
        }
}
void delay(uchar z)
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}
这是程序,你可以看看。

我觉得把while(!key);放入IF里会不会更好一点儿!

while(!key);这条语句是用来,检测按键的释放。我觉得放在外面好理解。放在里面也行,效果一样。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top