单片机原理及其应用——单片机控制按键点亮发光二极管
目錄
- 一、實驗要求
- 二、分析
- (一)電路原理
- (二)機械式按鍵的抖動時間與解決方法
- 三、Proteus仿真軟件畫原理圖
- 四、Keil編程軟件編寫程序
- 五、實驗結(jié)果
- (一)仿真結(jié)果
- (二)連接電路燒錄
一、實驗要求
1.根據(jù)設(shè)計思路,使用Proteus ISIS仿真軟件繪制仿真電路原理圖,并合理設(shè)置元件參數(shù)。
2.用KeilC51軟件編寫一個獨立按鍵點亮一個發(fā)光二極管的程序。
3.Keil C51與Proteus聯(lián)調(diào),仿真調(diào)試觀察實驗現(xiàn)象。
4.將程序燒錄至開發(fā)板,硬件調(diào)試觀察實驗現(xiàn)象。
二、分析
(一)電路原理
因為是通過單片機控制一個按鍵點亮發(fā)光二極管,這里我們通過將按鍵一端接地,一端接到單片機引腳且通過上拉電阻連接+5V電源。當(dāng)按鍵按下時單片機引腳輸入為低電平(0),而沒有按下時由于通過上拉電阻連接+5V電源,引腳輸入為高電平(1)。
我們通過設(shè)置檢測與按鍵相連的引腳的電平來檢測按鍵的狀態(tài),本次實驗選用的是P2口,其中按鍵和上拉電阻與P2.0口相連,如下:
(二)機械式按鍵的抖動時間與解決方法
機械式按鍵在按下按鍵到按鍵松開時的實際電平變化波形如下圖,即按鍵在按下何松開時會產(chǎn)生抖動,抖動時間與按鍵的機械特征有關(guān)。
而若在按鍵的抖動時間內(nèi)對單片機引腳上的電平信號進行檢測時就會出錯,此時我們就要消除抖動,消除抖動分為兩種方法:軟件延時和硬件延時。
1、軟件延時是通過在檢測按鍵按下時(按鍵連接的單片機引腳為低電平時)執(zhí)行一條延時語句(大約10ms)后確認(rèn)按鍵已經(jīng)按下,從而跳過抖動時間。
例本次實驗可以這樣設(shè)置延時語句:
或者也可以通過設(shè)置一個延時函數(shù),晶振頻率為12MHz,由于for()循環(huán)大約為8μs,調(diào)用該延時函數(shù),delay(10)表示延時10ms,即125×8μs=1ms,1ms×10=10ms。
void delay(unsigned int x)//設(shè)置一個延時函數(shù) {unsigned int i,j;for(i=0;i<x;i++)for(j=0;j<125;j++); }delay(10);2、硬件延時是通過采用兩個與非門構(gòu)成的硬件R-S觸發(fā)器來消除抖動。
三、Proteus仿真軟件畫原理圖
發(fā)光二極管選用的是P1口,按鍵選用的是P2口,當(dāng)然也可以選擇其它口(比如發(fā)光二極管選用P0口要加上拉電阻),各元器件的取值原理圖如下:
四、Keil編程軟件編寫程序
對發(fā)光二極管LED位定義,當(dāng)按鍵Button按下時可以通過if(Button==0)來檢測,然后通過一段延時后再次確認(rèn)按鍵按下,此時點亮發(fā)光二極管,即LED=1,而若按鍵沒有按下則LED=0,程序代碼如下:
//單片機控制按鍵點亮發(fā)光二極管實驗 #include<reg51.h> sbit Button=P2^0; //對按鍵字節(jié)操作法定義 sbit LED=P1^0; //對發(fā)光二極管字節(jié)操作法定義 void delay(unsigned int x) {unsigned int i,j;for(i=0;i<x;i++)for(j=0;j<125;j++); } void main() { unsigned int i;while(1) //定義一個while(1)循環(huán),無限循環(huán){ if(Button==0) //按鍵按下時執(zhí)行以下語句{delay(10); //延時10msif(Button==0) //若按鍵按下則執(zhí)行以下語句LED=1; //發(fā)光二極管點亮}else //按鍵沒按下時執(zhí)行以下語句LED=0; //發(fā)光二極管熄滅} }五、實驗結(jié)果
(一)仿真結(jié)果
當(dāng)沒按下按鍵時,發(fā)光二極管D1是熄滅的:
按鍵按下時,發(fā)光二極管D1點亮:
(二)連接電路燒錄
通過燒錄軟件,導(dǎo)入可執(zhí)行文件,當(dāng)按鍵按下時,發(fā)光二極管D1點亮:
總結(jié)
以上是生活随笔為你收集整理的单片机原理及其应用——单片机控制按键点亮发光二极管的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 单片机原理及其应用——单片机控制8只发光
- 下一篇: 单片机原理及其应用——单片机控制按键依次