STC学习笔记2-按键实验
本实验演示STC15F104E如何识别按键事件
按按钮一次,LED灯就翻转一次亮灭状态。然后等待下一次按钮事件。材料:
STC15F104E一片
一个LED
一个220Ω电阻
一个按键开关
电路图:
解析:220Ω电阻用于限流,由于STC输入端默认是上拉的,所以我们对开关不用加拉电阻,直接接地即可。
程序:[pre lang='cpp' line='1']/*
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亮灭状态
}
}
}
}[/code]Keil uVersion2工程文件:
(Keil 下载地址:
http://www.doyoung.net/DOC/KeilC51uV2_PS.zip)
按钮.rar(1.55 KB)
(下载次数: 28, 2012-9-1 22:08 上传) 实物视频:
由于一下找不到按钮开关,所以用一条电线接触GND引脚暂时代替。
[media]http://player.youku.com/player.php/sid/XMzU0MzM3Mzgw/v.swf[/media]
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。