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./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] |
|
来自: 昵称11763061 > 《stc 8pin》