實驗內(nèi)容:
利用所學的單片機知識及電路知識編程實現(xiàn)單片機 I/O 口檢測按鍵輸入電平。
????????1.選中 8 位數(shù)碼管的其中 1 位數(shù)碼管,當獨立按鍵 1 每按下一次,數(shù)碼管加一(按下期間加 1),范圍為 0—F;
????????2.選中 8 位數(shù)碼管的另 1 位數(shù)碼管,當獨立按鍵 2 每按下一次,數(shù)碼管減一(松手之后減 1),范圍為 F—0;
????????3.按下獨立按鍵 3 期間,流水燈以 600ms 的速度流動;
????????4.按下獨立按鍵 4,松手之后,8 個 LED 燈作一次花樣循環(huán)。
按鍵一效果圖:
按鍵二效果圖
?
?按鍵三效果圖:
按鍵四效果圖:
?文章來源:http://www.zghlxwxcb.cn/news/detail-737076.html
?代碼如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-737076.html
#include <REGX51.H>
#include <intrins.h>
int table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //共陰數(shù)碼管編碼
int num=0; //全局變量 ,代表當前數(shù)碼管顯示的段碼
void Delay(unsigned int xms){
unsigned char i, j;
while(xms--){
i = 2;
j = 239;
do{
while (--j);
} while (--i);
}
}
void xianshi(int p){
P2_2=1;P2_3=1;P2_4=1; //位選選中第第一位
P0=table[p]; //段選,輸出段碼
}
void leddemo1(){//流水燈模式1
int i;
P0=0x00;//關閉數(shù)碼管段選
for(i=0;i<8;i++){
P2=_crol_(0xfe,i);
Delay(600);
}
P2=0xff;
}
void leddemo2(){ //流水燈模式2
P0=0x00;//關閉數(shù)碼管段選
P2=0x7e;Delay(600);
P2=0xbd;Delay(600);
P2=0xdb;Delay(600);
P2=0xe7; Delay(600);
P2=0xc3; Delay(600);
P2=0xb1; Delay(600);
P2=0x00; Delay(600);
P2=0x18; Delay(600);
P2=0x3c; Delay(600);
P2=0x7e; Delay(600);
P2=0x00; Delay(600);
P2=0x00; Delay(600);
P2=0xff; Delay(600);
P2=0x00; Delay(600);
P2=0xff; Delay(600);
P2=0x00; Delay(600);
P2=0x81; Delay(600);
P2=0xc3; Delay(600);
P2=0xe7; Delay(600);
P2=0xff; Delay(600);
}
void key()
{//獨立按鍵掃描
if(P3_1==0){
Delay(20);
if(P3_1==0){
while(P3_1==0){//按下不松手 累加
num++;
if(num>15)//判斷數(shù)碼是否超出顯示范圍
num=0;
Delay(300);
xianshi(num);
}
}
}
if(P3_0==0){
Delay(20);
if(P3_0==0){
num--;
while(P3_0==0);
Delay(20);
if(num<0)//判斷數(shù)碼是否超出顯示范圍
num=15;
xianshi(num);
}
}
if(P3_2==0){
Delay(20);
if(P3_2==0){
while(P3_2==0);
leddemo1();
Delay(20);
}
}
if(P3_3==0){
Delay(20);
if(P3_3==0){
while(P3_3==0);
leddemo2();
Delay(20);
}
}
}
void main(){
P0=0x00;
while(1)
key();
}
到了這里,關于【51單片機】獨立按鍵,每個按鍵不同功能,數(shù)碼管數(shù)值的加減,控制流水燈模式,包含按鍵消抖,數(shù)碼顯示,流水燈的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!