1. LEDライトのステータスを制御する独立したボタン
オンオフ実験が完了すると、LED の状態を制御できるようになりますが、まず、キースイッチは機械構造の弾性により、閉じたときに一瞬安定してオンにならず、また、オンにならないことがわかります。オフにすると一斉にオフになります。したがって、ジッターをなくす、つまり適切な遅延を与えるようにプログラムする必要があります。
#include"reg52.h"
//定义LED灯
sbit LED1 = P2^0;
sbit LED2 = P2^1;
sbit LED3 = P2^2;
sbit LED4 = P2^3;
sbit LED5 = P2^4;
sbit LED6 = P2^5;
sbit LED7 = P2^6;
sbit LED8 = P2^7;
//独立したボタンを定義する
sbit KEY1 = P3^1; //ボタン 1 は P3^1 ピン、ボタン 2 は P3^0 ピンであることに注意してください
sbit KEY2 = P3^0;
sbit KEY3 = P3^2;
sbit KEY4 = P3^3;
void Delay(int time)
{ while(time--) //while ループには 10us かかります { } }
int main()
{ while(1) { if(KEY1==0) { 遅延(500); while(KEY1==0); 遅延(500); LED1 =~ LED1; }
}
}
実験現象は次のとおりです
2. 独立したボタン制御 LED ライト表示バイナリ
LEDの点灯・消灯とLEDの状態制御の実験は終了しました LEDライトの2値表示を制御するにはLEDライトP2を直接操作します 初期状態ではP2の全端子がハイレベルを出力し、その後LEDライトの2値表示を制御しますP2 を直接デクリメントします 実験効果は、次のような操作によって実現できます。
#include"reg52.h"
//独立したボタンを定義します
sbit KEY1 = P3^1; //ボタン 1 は P3^1 ピン、ボタン 2 は P3^0 ピンであることに注意してください
void Delay(int time)
{ while(time--) //while循環一回必要10us { } } int main() { while(1) { if(KEY1==0) { Delay(500); while(KEY1==0); 遅延(500); P2--; }
}
}
実験現象は次のとおりです
3. LED ライトシフトを制御する独立したボタン
独立したキー KEY1 と KEY2 を制御して左右のシフトを実現する手順は次のとおりです。
#include"reg52.h"
//独立したボタンを定義する
sbit KEY1 = P3^1; //ボタン 1 は P3^1 ピン、ボタン 2 は P3^0 ピンであることに注意してください
sbit KEY2 = P3^0;
void Delay(int time)
{ while(time--) //while ループには 10us かかります { } } int main() { int num = -1; while(1) { //LED ライトが右に移動します if(KEY1 == 0) { 遅延(500); while(KEY1==0); 遅延(500); num++; if(num>=8) num=0; P2 =~ (0x01<<num); }
//LEDランプ左移
if(KEY2==0)
{ if(num<=0) num=8; else { 遅延(500); while(KEY2==0); 遅延(500); 番号--; P2 =~ (0x01<<num); } }
}
}
実験現象は次のとおりです