|
給你改了,對比一下就知道哪里錯了。
- #include <reg51.h>
- sbit S1=P3^4;
- sbit S2=P3^5;
- sbit S3=P3^6;
- sbit S4=P3^7;
- unsigned char keyval;
- void a(void);
- void b(void);
- void c(void);
- void d(void);
- void keyscan(void);
- void delay10ms(void);
- void main(void)
- {
- keyval=0;
- while(1)
- {
- keyscan();
- switch(keyval)
- {
- case 1:a();break;
- case 2:b();break;
- case 3:c();break;
- case 4:d();break;
- }
- }
- } //<-----------少了這個。
- void keyscan(void)
- {
- P3=0xff;
- if((P3&0xf0)!=0xf0)
- {
- delay10ms();
- if(S1==0)
- keyval=1;
- if(S2==0)
- keyval=2;
- if(S3==0)
- keyval=3;
- if(S4==0)
- keyval=4;
- }
- }
- void a(void)
- { P0=0xf9;
- while(1); // <--??
- }
- void b(void)
- { P0=0xa4;
- while(1); // <--??
- }
- void c(void)
- { P0=0xb0;
- while(1); // <--??
- }
- void d(void)
- { P0=0x99;
- while(1); // <--??
- }
- void delay10ms(void)
- {
- unsigned char i,j;
- for(i=0;i<100;i++)
- for(j=0;j<100;j++);
- }
復(fù)制代碼 |
|