|
現(xiàn)在是正常了,可是怎么按下按鍵,直接從0跳到2,怎么回事啊,大家在幫我看看哪里出問題了。
#include "reg52.h"
#define uint unsigned int
#define uchar unsigned char
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //共陽數(shù)碼管碼表
sbit key_s1 = P3^2; //獨(dú)立按鍵S1
uchar num;
void delay(uint z);
void main()
{
uchar i;
P2 = 0xff;
while(1)
{
if(key_s1 == 0)
{
P0=~table[i];
i++;
if (i>9)
i=0;
delay(20); //按鍵消抖
if(key_s1 == 0)
num++;
if(num == 10)
num = 0;
while(!key_s1); //松手檢測(cè)
}
}
}
void delay(uint z)
{
uint x,y; for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
|
|