单片机按键触发C程序

来源:百度知道 编辑:UC知道 时间:2024/06/03 11:26:43
求怎么编写一个微动开关(就是按一下又弹起来的开关),要求按一下开,按一下关(上升沿和下降沿触发都没关系),怎么编写,解决了赠送100

楼上这么多还叫简单啊!是51系列的吧,那就用中断吧!!例如AT89s52,用P3.2中断输入,用P1.1输出,首先在代码适当位置初始化下面代码一次
EA=1;//中断总开关
EX0=1;//开外部中断,即P3.2口,单片机第12脚切换为中断输入

//接下来是中断处理函数
void key_proc() interrupt 0//连接到中断入口0
{
int i=3000;while(--i>0);//简单去抖动
P1.1=~P1.1;//对P1.1电平求反
}
当按键按下时,可能由于抖动,可能发生多次进入中断,看到的结果是多次变化后的,可以加入适当的延时来解决按键抖动,以上相当简单了.仅供参考.

while(1)
{
if(keyflag==1) //有按下切出死循环
break;
else continue;
}
while(1)
{
..... //用户自己的程序
}

这种方法是模拟按键按下启动真正的应用程序,触发的是自己的功能程序短。从效果上来还是可以的