找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 6342|回復: 0
收起左側

STC單片機學習-按鍵實驗

[復制鏈接]
ID:113472 發(fā)表于 2016-4-13 19:30 | 顯示全部樓層 |閱讀模式
本實驗演示STC15F104E如何識別按鍵事件

按按鈕一次,LED燈就翻轉一次亮滅狀態(tài)。然后等待下一次按鈕事件。

材料:
STC15F104E一片
一個LED
一個220Ω電阻
一個按鍵開關

電路圖:
解析:220Ω電阻用于限流,由于STC輸入端默認是上拉的,所以我們對開關不用加拉電阻,直接接地即可。
222107ybm6h4ylmk9r7kmb.gif

程序:
  1.     /*
  2.     STC15F104E按鍵實驗
  3.     Ansifa
  4.     2012-2-19
  5.      
  6.     硬件連接方法:
  7.     一個LED串聯(lián)一個220Ω電阻,接到VCC和P3.3引腳。
  8.     一個按鈕接到P3.2與GND之間。
  9.     */
  10.      
  11.     #include "reg51.h"
  12.     sbit key = P3 ^ 2;  //按鈕
  13.     sbit LED = P3 ^ 3;  //燈
  14.      
  15.     void DelayMS(n)                //@5MHz 軟件延時n毫秒函數(shù)
  16.     {
  17.             unsigned char i, j;
  18.             i = 5*n;
  19.             j = 218;
  20.             do
  21.             {
  22.                     while (--j);
  23.             } while (--i);
  24.     }
  25.      
  26.      
  27.     void main()
  28.     {   LED=1;     //LED=0是亮,1是滅,初值滅燈
  29.         while(1)  //制造一個死循環(huán)
  30.         {
  31.              //先檢測高電平,等待30ms后檢測是否低電平,就能把下降沿檢測出來,這個是下降沿觸發(fā)電路,有防抖功能。
  32.             if(key == 1)   //因為按鈕接key端和GND,所以是下降沿觸發(fā)。
  33.             {
  34.                 DelayMS(30);
  35.                 if(key == 0)
  36.                 {
  37.                                     LED = !LED;  //翻轉LED亮滅狀態(tài)
  38.                 }
  39.             }
  40.         }
  41.     }
復制代碼

Keil uVersion2工程文件: 按鈕.rar (1.55 KB, 下載次數(shù): 10)
實物視頻:
由于一下找不到按鈕開關,所以用一條電線接觸GND引腳暫時代替。

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表