C51单片机之按键控制LED【02】
生活随笔
收集整理的這篇文章主要介紹了
C51单片机之按键控制LED【02】
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
前言
1.獨(dú)立按鍵
當(dāng)按下時(shí),金屬?gòu)椘聣?#xff0c;使得中間3個(gè)點(diǎn)連接一起。
查看原理圖
#include <REGX52.H> // REGX52有關(guān)于位定義的,而REG52則沒(méi)有,需要自己sbit定義
2.按下K1點(diǎn)亮LED
#include <REGX52.H> // REGX52有關(guān)于位定義的,而REG52則沒(méi)有,需要自己sbit定義 #include <INTRINS.H>// 延時(shí)xms void Delay1ms(unsigned int xms) //@11.0592MHz {unsigned char i, j;while (xms) // while里面是延時(shí)1ms的代碼{_nop_();i = 2;j = 199;do{while (--j);} while (--i);--xms;} } void test1() {while (1){if(P3_1 == 0) // 按下按鍵K1 點(diǎn)亮LED{P2_0 = 0;}else{P2_0 = 1;}} }void main() {test1(); }
利用軟件延時(shí)消抖。
3.按鍵控制LED狀態(tài)
#include <REGX52.H> // REGX52有關(guān)于位定義的,而REG52則沒(méi)有,需要自己sbit定義 #include <INTRINS.H>// 延時(shí)xms void Delay1ms(unsigned int xms) //@11.0592MHz {unsigned char i, j;while (xms--) // while里面是延時(shí)1ms的代碼{_nop_();i = 2;j = 199;do{while (--j);} while (--i);} }// 按下按鍵才點(diǎn)亮,再按一次就熄滅 void test2() {while (1){if(P3_1 == 0){Delay1ms(20); // 軟件延時(shí)消抖while (P3_1 == 0); // 檢測(cè)松手Delay1ms(20); // 延時(shí)消抖P2_0 = ~P2_0;}}} void main() {test2(); }4.按鍵控制LED移位
// 獨(dú)立按鍵控制LED移位 // 所使用開(kāi)發(fā)板D1~D8是從左到右的 // 按下K1右移,按下K2左移 void test4() {unsigned char LEDNum = 0;P2 = 0xFE;// 上電時(shí)要讓D1點(diǎn)亮while (1){if (P3_1 == 0){// 軟件消抖Delay1ms(20);while (P3_1 == 0); // 檢測(cè)松手Delay1ms(20);LEDNum++;if (LEDNum >= 8){LEDNum = 0;}// 0x01 << 1 --> 0000 0010 取反 --> 1111 1101// 0x01 << 2 --> 0000 0100 取反 --> 1111 1011// ...// 0x01 << 7 --> 1000 0000 取反 --> 0111 1111// 0x01 << 8 --> 0000 0000 取反 --> 1111 1111// 因此當(dāng)左移到8位時(shí),需要重新從0開(kāi)始移位P2 = ~(0x01 << LEDNum);}// 按下K2右移if (P3_0 == 0){// 軟件消抖Delay1ms(20);while (P3_0 == 0); // 檢測(cè)松手Delay1ms(20);if(LEDNum == 0){LEDNum = 7; // 0再--就變成255了}else{LEDNum--;}P2 = ~(0x01 << LEDNum);}} } void main() {test4(); }尾聲
🌹🌹🌹
寫文不易,如果有幫助煩請(qǐng)點(diǎn)個(gè)贊~ 👍👍👍
Thanks?(・ω・)ノ🌹🌹🌹
😘😘😘
👀👀由于筆者水平有限,在今后的博文中難免會(huì)出現(xiàn)錯(cuò)誤之處,本人非常希望您如果發(fā)現(xiàn)錯(cuò)誤,懇請(qǐng)留言批評(píng)斧正,希望和大家一起學(xué)習(xí),一起進(jìn)步ヽ( ̄ω ̄( ̄ω ̄〃)ゝ,期待您的留言評(píng)論。
附GitHub倉(cāng)庫(kù)鏈接
總結(jié)
以上是生活随笔為你收集整理的C51单片机之按键控制LED【02】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python3提取字符串中的手机号码
- 下一篇: 针对初学者以 MQL5 编写“EA 交易