51单片机实现独立按键控制LED灯
生活随笔
收集整理的這篇文章主要介紹了
51单片机实现独立按键控制LED灯
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本節博客主要實現以下效果:
?3-1獨立按鍵控制LED亮滅
? ? 本段代碼主要使用了if...else...語句實現按下按下燈亮,松開按鍵時燈滅
#include <REGX51.H>void main() {while(1){if(P3_1==0&&P3_0==0){P2_0=0;}else{P2_0=1;}} }?3-2獨立按鍵控制LED狀態
首先使用較為靈活的延時函數生成代碼,進行修改后如下
void Delay(unsigned int xms) {unsigned char i, j;while(xms){i = 2;j = 239;do{while (--j);} while (--i);xms--;} }?按鍵代碼:
void main() {while(1){if(P3_1==0){Delay(20);while(P3_1==0); //{}Delay(20);P2_0=~P2_0;}} }實現效果:
?3-2獨立按鍵控制LED狀態
?3-3獨立按鍵控制LED顯示二進制
顯示二進制的延時函數與上述一致,但是按鍵部分稍有變化
if(P3_1==0){Delay(20);while(P3_1==0);Delay(20);LEDNum++; P2=~LEDNum; }注意:要對按鍵進行消抖,判斷按鍵是否仍然繼續按下,在此之前定義一個局部變量記錄變化,最后讓其取反賦值給P2
unsigned char LEDNum=0;實現效果:
?3-3獨立按鍵控制LED顯示二進制
?3-4獨立按鍵控制LED移位
3-4設置兩個按鍵控制LED燈的移位,延時部分一致,與3-3比較可以定義一個全局變量
unsigned char LEDNum;?P3_1控制LED右移,P3_0控制LED左移
if(P3_1==0){Delay(20);while(P3_1==0);Delay(20);LEDNum++;if(LEDNum>=8)LEDNum=0;P2=~(0x01<<LEDNum);}if(P3_0==0){Delay(20);while(P3_0==0);Delay(20);if(LEDNum==0)LEDNum=7;elseLEDNum--;P2=~(0x01<<LEDNum);}一開始D1是不亮的,所以可在代碼前添加以下代碼,表示將其狀態取反后賦值給P2
P2=~0x01;實現效果:
?3-4獨立按鍵控制LED移位
總結
以上是生活随笔為你收集整理的51单片机实现独立按键控制LED灯的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言实验八 二维数组,☆C语言实验六(
- 下一篇: 电子商务平台的API集成接口的意义