標(biāo)題:
STC單片機學(xué)習(xí)-按鍵實驗
[打印本頁]
作者:
51黑ww
時間:
2016-4-13 19:30
標(biāo)題:
STC單片機學(xué)習(xí)-按鍵實驗
本實驗演示STC15F104E如何識別按鍵事件
http://player.youku.com/player.php/sid/XMzU0MzM3Mzgw/v.swf
按按鈕一次,LED燈就翻轉(zhuǎn)一次亮滅狀態(tài)。然后等待下一次按鈕事件。
材料:
STC15F104E一片
一個LED
一個220Ω電阻
一個按鍵開關(guān)
電路圖:
解析:220Ω電阻用于限流,由于STC輸入端默認是上拉的,所以我們對開關(guān)不用加拉電阻,直接接地即可。
222107ybm6h4ylmk9r7kmb.gif
(7.05 KB, 下載次數(shù): 100)
下載附件
2016-4-13 19:31 上傳
程序:
/*
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; //翻轉(zhuǎn)LED亮滅狀態(tài)
}
}
}
}
復(fù)制代碼
Keil uVersion2工程文件:
按鈕.rar
(1.55 KB, 下載次數(shù): 10)
2016-4-13 19:29 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
實物視頻:
由于一下找不到按鈕開關(guān),所以用一條電線接觸GND引腳暫時代替。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1