标题:
STC单片机学习-按键实验
[打印本页]
作者:
51黑ww
时间:
2016-4-13 19:30
标题:
STC单片机学习-按键实验
本实验演示STC15F104E如何识别按键事件
http://player.youku.com/player.php/sid/XMzU0MzM3Mzgw/v.swf
按按钮一次,LED灯就翻转一次亮灭状态。然后等待下一次按钮事件。
材料:
STC15F104E一片
一个LED
一个220Ω电阻
一个按键开关
电路图:
解析:220Ω电阻用于限流,由于STC输入端默认是上拉的,所以我们对开关不用加拉电阻,直接接地即可。
222107ybm6h4ylmk9r7kmb.gif
(7.05 KB, 下载次数: 100)
下载附件
2016-4-13 19:31 上传
程序:
/*
STC15F104E按键实验
Ansifa
2012-2-19
硬件连接方法:
一个LED串联一个220Ω电阻,接到VCC和P3.3引脚。
一个按钮接到P3.2与GND之间。
*/
#include "reg51.h"
sbit key = P3 ^ 2; //按钮
sbit 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
(1.55 KB, 下载次数: 10)
2016-4-13 19:29 上传
点击文件名下载附件
下载积分: 黑币 -5
实物视频:
由于一下找不到按钮开关,所以用一条电线接触GND引脚暂时代替。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1