}
{ }
P0 = (P2>>4)|0xf0;
头文件
#ifndef _KEY_H_ #define _KEY_H_
sbit ADDR0 = P1^0; sbit ADDR1 = P1^1; sbit ADDR2 = P1^2; sbit ADDR3 = P1^3; sbit ENLED = P1^4;
sbit KEY1 = P2^4; sbit KEY2 = P2^5; sbit KEY3 = P2^6; sbit KEY4 = P2^7; sbit KEYOUT1 = P2^3; sbit KEYOUT2 = P2^2; sbit KEYOUT3 = P2^1; sbit KEYOUT4 = P2^0; #endif
程序二:K1、K2控制数字加减的程序,防抖动 #include
void delay() { } main() {
unsigned char n = 0; P0 = 0XFF; KEYOUT1 = 0; ENLED = 0; ADDR3 = 1;
ADDR2 = 0; ADDR1 = 0; ADDR0 = 0; //控制最右边数码管DS1亮 unsigned int i = 2000; while(i--);
}
P0 = ledchar[0]; while(1) { }
if(!KEY1) //相当于 if(KEY1 == 0) 判断键是否按下 { } if(!KEY2) { }
delay(); if(!KEY2) { }
if(n <= 0) { } else n--;
P0 = ledchar[n]; while(!KEY2);
n = 9;
delay();
if(!KEY1)//再判断健是否按下 { }
if(n >= 9) { } else n++;
P0 = ledchar[n];
while(!KEY1); //等待按键1松开的语句。
n = 0;
程序三、用小灯构成的5位二进制数表示16个按键,1-1,2-2,16-0; #include
ENLED = 0; ADDR3 = 1;
ADDR2 = 1; ADDR1 = 1; ADDR0 = 0; P0 = 0xFF; while(1) { KEYOUT1 = 0; KEYOUT2 = 1; KEYOUT3 = 1; KEYOUT4 = 1; if(KEY1 == 0) { delay(); if(KEY1 == 0) { P0 = ~1;
}
}
if(KEY2 == 0) { delay(); if(KEY2 == 0) { P0 = ~2; }
}
if(KEY3 == 0) { delay(); if(KEY3 == 0) { P0 = ~3; }
}
if(KEY4 == 0) { delay(); if(KEY4 == 0) { P0 = ~4; }
}
while((KEY1 == 0)||(KEY2 == 0)||(KEY3 == 0)||(KEY4 == 0));
//第一行检测完
KEYOUT1 = 1; KEYOUT2 = 0; KEYOUT3 = 1; KEYOUT4 = 1; if(KEY1 == 1) { }
if(KEY2 == 0) { }
if(KEY3 == 0) { }
if(KEY4 == 0) { }
while((KEY1 == 0)||(KEY2 == 0)||(KEY3 == 0)||(KEY4 == 0));//第二行检测完 KEYOUT1 = 1; KEYOUT2 = 1; KEYOUT3 = 0; KEYOUT4 = 1; if(KEY1 == 1)
delay(); if(KEY4 == 0) { }
P0 = ~8; delay(); if(KEY3 == 0) { }
P0 = ~7; delay(); if(KEY2 == 0) { }
P0 = ~6; delay(); if(KEY1 == 0) { }
P0 = ~5;
{ delay(); if(KEY1 == 0) { P0 = ~9;
}
}
if(KEY2 == 0) { delay(); if(KEY2 == 0) { P0 = ~10; }
}
if(KEY3 == 0) { delay(); if(KEY3 == 0) { P0 = ~11; }
}
if(KEY4 == 0) { delay(); if(KEY4 == 0) { P0 = ~12; }
}
while((KEY1 == 0)||(KEY2 == 0)||(KEY3 == 0)||(KEY4 == 0)); KEYOUT1 = 1; KEYOUT2 = 1; KEYOUT3 = 1; KEYOUT4 = 0; if(KEY1 == 1) { delay(); if(KEY1 == 0) { P0 = ~13;
}
//第三行检测完
百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库单片机听课笔记1-8课(金沙滩2024年更新)(5)在线全文阅读。
相关推荐: