- #include <reg51.h>
- sbit Led = P1^1;
- sbit Button = P2^1;
- void delay_ms(unsigned int x)
- {
- unsigned int i,j;
- for(i=x;i>0;i--)
- for(j=110;j>0;j--);
- }
- int ScanButton()
- {
- unsigned int i = 0;
- if(Button == 1 && i == 0)
- {
- delay_ms(1);
- if(Button == 1)
- {
- i = 1;
- }
- }
- else if(Button == 1 && i == 1)
- {
- delay_ms(1);
- if(Button == 1)
- {
- i = 2;
- }
- }
- else if(Button == 1 && i == 2)
- {
- delay_ms(1);
- if(Button == 1)
- {
- i = 3;
- }
- }
- else
- {
- i = 0;
- }
- return i;
- }
- void mian()
- {
- unsigned char k = 0;
- Led = 0; // 0 灭 1 亮
- k = ScanButton();
- while(1)
- {
- switch(k)
- {
- case 0:
- {
- Led = 1;
- delay_ms(1000);
- Led = 0;
- delay_ms(1000);
- }
- break;
- case 1:
- {
- Led = 1;
- delay_ms(1000);
- Led = 0;
- delay_ms(1000);
- }
- break;
- case 2:
- {
- Led = 1;
- delay_ms(2000);
- Led = 0;
- delay_ms(2000);
- }
- break;
- case 3:
- {
- Led = 1;
- delay_ms(3000);
- Led = 0;
- delay_ms(3000);
- }
- break;
-
- default: ; break;
- }
-
- }
-
- }
复制代码
随手写的,逻辑应该是对的,具体的定义,你可以自己搞搞 |