本帖最后由 liuda 于 2015-1-21 21:55 編輯

- #include<reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit menu=P2^4;//啟停
- sbit dir1=P2^5;//方向
- sbit jia=P2^6;// 加鍵
- sbit jian=P2^7;//減鍵
- uchar sm,dir,c,i;
- uchar table[]={0x01,0x04,0x02,0x08};
- uchar table1[]={0x08,0x02,0x04,0x01};
- void delay1(uint k)//延時函數
- {
- uint i,j;
- for(i=k;i>0;i--)
- for(j=5;j>0;j--);
- }
- void delay(uint k)//延時函數
- {
- uint i,j;
- for(i=k;i>0;i--)
- for(j=170;j>0;j--);
- }
- void key()
- {
- if(menu==0)
- {
- delay(10);
- if(menu==0)
- {
- c=!c;
- while(!menu);
- }
- }
- if(dir1==0)
- {
- delay(10);
- if(dir1==0)
- {
- dir=!dir;
- while(!dir1);
- }
- }
- if(jia==0)
- {
- delay(10);
- if(jia==0)
- {
- sm++;
- if(sm==100)
- sm=30;
- while(!jia);
- }
- }
- if(jian==0)
- {
- delay(10);
- if(jian==0)
- {
- sm--;
- if(sm==30)
- sm=100;
- while(!jian);
- }
- }
- }
- void main()
- {
- sm=30;
-
- while(1)
- {
- key();
- if(c==1)
- {
- if(dir==0)
- {
- for(i=0;i<4;i++)
- {
- P0=table[i];
- delay1(sm);
- }
- }
- if(dir==1)
- {
- for(i=0;i<4;i++)
- {
- P0=table1[i];
- delay1(sm);
- }
- }
- }
- }
- }
復制代碼
|