我寫的是0~9的加減,從0~9的加法是可行的。
但是按下s4就直接回到0了。沒有減下去請問大佬們我哪里寫錯了嗎
單片機源程序如下:
- #include <reg51.h>
- sbit s2=P3^0;
- sbit s3=P3^1;
- sbit s4=P3^2;
- sbit we=P2^7;
- sbit du=P2^6;
- char code m[]={0x3f,0x06,0x5b,0x4f,0x66,0xdf6d,0x7d,0x07,0x7f,0x77};
- int c=0;
- void ys(int a)
- {
- int i,j;
- for(i=0;i<a;i++)
- for(j=0;j<a;j++);
- }
- void main()
- {
- while(1)
- {
- we=1;
- P0=0xfe;
- we=0;
- if(s2==0)
- {
- ys(10);
- if(s2==0)
- {
- du=1;
- P0=0x00;
- du=0;
- ys(200);
- }
- }
- if(s3==0)
- {
- ys(20);
- if(s3==0)
- {
- if(c<9)
- {
- c++;
- du=1;
- P0=m[c];
- du=0;
- ys(200);
- }
- }
- }
- if(s4==0)
- {
- ys(20);
- if(s4==0)
- {
- if(c>0)
- {
- c--;
- du=1;
- P0=m[c];
- du=0;
- ys(200);
- }
- }
- }
- }
- }
復制代碼 |