51单片机的按键控制小灯亮灭的问题(程序类型:c语言)

具体要求是:按两下按键,灯亮;按两下按键,灯灭;求一个最简练的C语言程序完成此功能,谢谢大家了,急用..... 具体要求是:按两下按键,灯亮;按两下按键,灯灭;
求一个最简练的C语言程序完成此功能,谢谢大家了,急用..
展开
 我来答
力蕙昀7W
推荐于2018-10-26 · TA获得超过115个赞
知道答主
回答量:10
采纳率:0%
帮助的人:6.9万
展开全部
#include<reg52.h>
#define uint unsigned int
sbit LED = P1^0;
sbit KEY1 = P1^2;
void delay(uint);
void main(void)
{
LED = 1; //初始化LED熄灭
KEY1 = 1; //赋值KEY1高电平
while(1)
{
if(!KEY1) //检测到按键按下
{
LED = ~LED; /*LED取反,此时LED = 0,灯亮。当松手时,KEY1 = 1,不满足if语句
进入循环,LED继续保持当前状态即LED = 0,如果再次按下按键,此时检测到KEY1 = 0,进入循
环,LED取反得到LED = 0,灯亮。*/
delay(500); /*此处延迟,保证连续两次按键动作处在程序的延时过程中,不进行其他程序从而不会影响小灯。*/
}
}

}
void delay(uint z) //延时函数
{
uint x, y;
for(x=85; x>0; x--)
for(y=z; y>0; y--);
}

可下载到单片机验证。
宿兴电子
2024-11-28 广告
联系我们一、有无震荡源 无源这里的“源”不是指电源,而是指震荡源。也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫。而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。 二、价格不同 有源蜂鸣器往比无源蜂鸣器贵,就是因为里面多个震荡... 点击进入详情页
本回答由宿兴电子提供
nacaw42
2011-05-18 · TA获得超过337个赞
知道答主
回答量:624
采纳率:0%
帮助的人:272万
展开全部
系统设置如下 p1.0 按键1 p1.1 按键2 p1.2按键3
p2.0 p2.1 p 2.2 分别接一个继电器和LED
IO口 初始化均为高电平

程序
main()
{
while(1)
{
if(p1.0==0)

if(p1.1==0)

if(p1.2==0)

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
黑龙江少帅
推荐于2017-12-15
知道答主
回答量:28
采纳率:0%
帮助的人:9.7万
展开全部
int0中断 程序我先试试

#include <reg52.h>
sbit P10 = P1^0;
sbit K1= P3^2;
unsigned char a;
void main(void)
{

IT0=1;
EX0=1;
EA=1;
while(1)
{
}

}

int0() interrupt 0
{

a++;
if(a%2==0)
{
P10=~P10;
}
}

希望采纳 看不懂 继续追问 在professional仿真成功
更多追问追答
追问
可以不用中断吗?
这个程序按键怎么消抖得?
我之写了个不用中断的,但不行,等等,我把程序理好,再发上来,你看看是哪里出错了?
追答
这个  ……
消抖好说 延时就可以了
不中断…… 没试过 因为我编按键一般都中断
你先发你的 我试试能不能改
为什么不要中断啊
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
syling525
2011-05-18
知道答主
回答量:7
采纳率:0%
帮助的人:3.9万
展开全部
你的开和关是一个按键吗?
追问
恩,单键控制
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式