0~99计数显示,并用3个开关K1,K2,K3分别实现加1,减1,清零。为什么只能加到1,不能加到99。。下面是程序#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit K1=P2^0;sbit K2=P2^1;sbit K3=P2^2;uchar code SEG_CODE[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07,0x7f,0x6f};void delay(uint t)//延时函数{ uint x,y; for(x=t;x>0;x--) for(y=110;y>0;y--);}void k1(){ uchar i=0; P0=SEG_CODE[i%10]; //个位 P1=SEG_CODE[i/10]; //十位 { while(1) { i++; if(i>99) i=0; P0=SEG_CODE[i%10]; //个位 P1=SEG_CODE[i/10]; //十位 } } while(K1==0); }void k2(){ uchar i=!0; P0=SEG_CODE[i%10]; //个位 P1=SEG_CODE[i/10]; //十位 { i--; if(i<0) i=0; P0=SEG_CODE[i%10]; //个位 P1=SEG_CODE[i/10]; //十位 } while(K2==0); } void k3(){ { P0=0x3f; P1=0x3f; } while(K3==0);}void main()//主函数{ P0=0x3f; P1=0x3f; while(1) { delay(10); if(K1==0) k1(); delay(10); if(K2==0) k2(); delay(10); if(K3==0) k3(); }}
谢谢啦,大神,解决了,但是又有个问题,我K1按了加1,加到了10,然后按K3清零,接着再按K1就直接11了,不是再从0开始加。
追答k3里加上i=0;