本實驗演示STC15F104E如何識別按鍵事件
按按鈕一次,LED燈就翻轉一次亮滅狀態(tài)。然后等待下一次按鈕事件。
材料:
STC15F104E一片
一個LED
一個220Ω電阻
一個按鍵開關
電路圖:
解析:220Ω電阻用于限流,由于STC輸入端默認是上拉的,所以我們對開關不用加拉電阻,直接接地即可。
程序:
- /*
- STC15F104E按鍵實驗
- Ansifa
- 2012-2-19
-
- 硬件連接方法:
- 一個LED串聯(lián)一個220Ω電阻,接到VCC和P3.3引腳。
- 一個按鈕接到P3.2與GND之間。
- */
-
- #include "reg51.h"
- sbit key = P3 ^ 2; //按鈕
- sbit LED = P3 ^ 3; //燈
-
- void DelayMS(n) //@5MHz 軟件延時n毫秒函數(shù)
- {
- unsigned char i, j;
- i = 5*n;
- j = 218;
- do
- {
- while (--j);
- } while (--i);
- }
-
-
- void main()
- { LED=1; //LED=0是亮,1是滅,初值滅燈
- while(1) //制造一個死循環(huán)
- {
- //先檢測高電平,等待30ms后檢測是否低電平,就能把下降沿檢測出來,這個是下降沿觸發(fā)電路,有防抖功能。
- if(key == 1) //因為按鈕接key端和GND,所以是下降沿觸發(fā)。
- {
- DelayMS(30);
- if(key == 0)
- {
- LED = !LED; //翻轉LED亮滅狀態(tài)
- }
- }
- }
- }
復制代碼
Keil uVersion2工程文件:
按鈕.rar
(1.55 KB, 下載次數(shù): 10)
2016-4-13 19:29 上傳
點擊文件名下載附件
實物視頻:
由于一下找不到按鈕開關,所以用一條電線接觸GND引腳暫時代替。
|