一个按键从1到16- #include <reg52.h>
- sbit P20 = P2^0;
- sbit P21 = P2^1;
- sbit P22 = P2^2;
- sbit ENLED = P1^1;
- sbit K4 = P2^3;
- unsigned char code LedChar[]={
- 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
- 0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E
- };
- void delay();
- void main()
- {
- bit keybuf = 1;
- bit backup = 1;
- unsigned char cnt = 0; //记录按键按下的次数
- ENLED = 0;
- P2=~0x82; //开启Y5,同时给kout4低电平(2~7分别对应Y5到Y1)
- P0=LedChar[cnt];
- while(1)
- {
- keybuf = K4;
- if(keybuf!=backup)
- {
- delay();
- if(keybuf==K4)
- {
- if(backup==0)
- {
- cnt++;
- if(cnt>=16)
- {
- cnt = 0;
-
- }
- P0 = LedChar[cnt];
-
- }
- backup = keybuf;
-
- }
- }
- }
- }
- void delay()
- {
- unsigned int i =1000;
- while(i--);
- }
复制代码 一个按键从16到1
- #include <reg52.h>
- sbit P20 = P2^0;
- sbit P21 = P2^1;
- sbit P22 = P2^2;
- sbit ENLED = P1^1;
- sbit K12 = P2^3;
- unsigned char code LedChar[]={
- 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
- 0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E
- };
- void delay();
- void main()
- {
- bit keybuf = 1;
- bit backup = 1;
- signed char cnt = 15;
- ENLED = 0;
- P2=0xDD; //开启Y5,同时给kout2低电平(2~7分别对应Y5到Y1)
- P0=LedChar[cnt];
- while(1)
- {
- keybuf = K12;
- if(keybuf!=backup)
- {
- delay();
- if(keybuf==K12)
- {
- if(backup==0)
- {
- cnt--;
- if(cnt<0)
- {
- cnt = 15;
-
- }
- P0 = LedChar[cnt];
-
- }
- backup = keybuf;
-
- }
- }
- }
- }
- void delay()
- {
- unsigned int i =1000;
- while(i--);
- }
复制代码
|