k2加一,k3减一之前试过了,可以,但是要k1开的时候,k2、k3才能加一减一,这个没有做到,k1没开的时候,k2也会从零开始加一;现在我改了程序,出现别的问题(但是我懂得改回原先的样子),请问怎样才能k1开的时候k2加一、减一呢?
- #include<at89x52.h>
- #define uchar unsigned char
- sbit k1=P3^0;
- sbit k2=P3^2;
- sbit k3=P3^4;
- uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
- void delay1ms(uchar a)
- {
- uchar b,c;
- for(c=1;c>0;c--)
- for(b=142;b>0;b--)
- for(a=2;a>0;a--);
- }
-
- void main()
- {
- uchar i;
- while(1)
- {
- if(k1==0)
- {
- delay1ms(10);
- if(k1==0)
- {
- P2=0xc0;
- }
- while(!k1);
- }
- if(P2==0xc0)
- {
- if(k2==0)
- {
- delay1ms(10);
- if(k2==0)
- {
- P2=tab[++i];
- }
- while(!k2);
- }
- }
- if(k3==0)
- {
- delay1ms(10);
- if(k3==0)
- {
- P2=tab[--i];
- }
- while(!k3);
- }
- }
- }
复制代码
-
哈,可以了,谢谢你
一周热门 更多>