0~9999递增递减
- #include <STC12C5A60S2.H>
- #define uchar unsigned char
- #define uint unsigned int
- sbit DU=P2^0;
- sbit WE=P2^1;
- sbit key1=P3^0;
- sbit key2=P3^1;
- uchar code duma[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
- uchar qian,bai,shi,ge,num;
- uint count=0;
- bit flag1=0,flag2=0;
- void delay(uint z)//12MHz晶振1T MCU
- {
- uint x,y;
- for(x=z;x>0;x--)
- for(y=1250;y>0;y--);//12T MCU改为125
- }
- void main()
- {
- while(1)
- {
- if(key1==0)
- {
- delay(10);
- if(key1==0&&flag1==0)
- {
- flag1=1;
- if(count<9999)
- count++;
- }
- }
- else flag1=0;
- if(key2==0)
- {
- delay(10);
- if(key2==0&&flag2==0)
- {
- flag2=1;
- if(count>0)
- count--;
- }
- }
- else flag2=0;
- qian=duma[count/1000%10];
- bai=duma[count/100%10];
- shi=duma[count/10%10];
- ge =duma[count%10];
- P0=0X00;DU=1;DU=0;
- switch(num)
- {
- case 0: P0=0xfe;WE=1;WE=0;P0=qian;DU=1;DU=0; break;
- case 1: P0=0xfd;WE=1;WE=0;P0=bai;DU=1;DU=0; break;
- case 2: P0=0xfb;WE=1;WE=0;P0=shi;DU=1;DU=0; break;
- case 3: P0=0xf7;WE=1;WE=0;P0=ge; DU=1;DU=0; break;
- }
- delay(1);
- num++;
- if(num==4)
- num=0;
- }
- }
复制代码 |