数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 1695|回复: 9

[C51] 求助:单片机1秒钟内按2下按钮开关LED灯亮

[复制链接]
发表于 2022-10-20 14:01:25 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
本帖最后由 燎原之势 于 2022-10-20 14:03 编辑

程序实现功能是,在1秒内按2下按钮开关LED灯亮。


刚接触单片机不久,下面写的这段代码。  求大咖们赐教


#include<reg51.h>
unsigned char flag,num,keyn;
sbit KEY=P1^0;
sbit LED=P1^1;
void delay(unsigned int a)
{
unsigned int i,j;
for(i=0;i<a;i++)
for(j=0;j<125;j++);
}

void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
   if(num>20)
  {
   num=0;
  flag=0xff;
   }
}

void keyscan()
  {
     if(P1.0==0)
    {
     delay(10);
     TR0=1; //有效按键启动定时器
     if(P1.0==0)keyn++;
     }
}


main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
ET0=1;
num=0;
keyn=0;
while(1)
{
flag=0x00;
while(flag==0x00)//等待1秒定时结束
{
keyscan();
}
if(keyn>=2)
{
LED=0; //1秒内按两次键,灯亮
keyn=0;
TR0=0;
}

}
}


发表于 2022-10-20 20:28:37 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2022-10-20 20:42:33 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2022-10-20 21:57:36 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2022-10-21 09:59:42 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-21 12:21:59 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2022-11-10 10:45:57 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2022-11-10 11:23:18 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2022-11-10 15:51:21 来自手机浏览器 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2022-11-18 15:15:30 | 显示全部楼层
游客请登录后查看回复内容

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-12-17 05:25 , Processed in 0.140401 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表