单片机学习小组
直播中

陈辉

7年用户 212经验值
私信 关注

STC15F104E识别按键事件实验演示

本实验演示STC15F104E如何识别按键事件

按按钮一次,LED灯就翻转一次亮灭状态。然后等待下一次按钮事件。

材料:
STC15F104E一片
一个LED
一个220Ω电阻
一个按键开关

电路图:
解析:220Ω电阻用于限流,由于STC输入端默认是上拉的,所以我们对开关不用加拉电阻,直接接地即可。
  


程序:
  •     /*
  •     STC15F104E按键实验
  •     Ansifa
  •     2012-2-19
  •     硬件连接方法:
  •     一个LED串联一个220Ω电阻,接到VCC和P3.3引脚。
  •     一个按钮接到P3.2与GND之间。
  •     */
  •     #include "reg51.h"
  •     ***it key = P3 ^ 2;  //按钮
  •     ***it LED = P3 ^ 3;  //灯
  •     void DelayMS(n)                //@5MHz 软件延时n毫秒函数
  •     {
  •             unsigned char i, j;
  •             i = 5*n;
  •             j = 218;
  •             do
  •             {
  •                     while (--j);
  •             } while (--i);
  •     }
  •     void main()
  •     {   LED=1;     //LED=0是亮,1是灭,初值灭灯
  •         while(1)  //制造一个死循环
  •         {
  •              //先检测高电平,等待30ms后检测是否低电平,就能把下降沿检测出来,这个是下降沿触发电路,有防抖功能。
  •             if(key == 1)   //因为按钮接key端和GND,所以是下降沿触发。
  •             {
  •                 DelayMS(30);
  •                 if(key == 0)
  •                 {
  •                                     LED = !LED;  //翻转LED亮灭状态
  •                 }
  •             }
  •         }
  •     }



Keil uVersion2工程文件:    按钮.rar  

实物视频:
由于一下找不到按钮开关,所以用一条电线接触GND引脚暂时代替。

更多回帖

发帖
×
20
完善资料,
赚取积分