能帮忙编个程序吗?如下图能使开关按5下灯泡亮一下,开关再按5下,灯泡灭一下

[复制链接]
6868|53
21CHdwLHR 发表于 2015-5-29 23:14 | 显示全部楼层
21CHdwLHR 发表于 2015-5-29 13:17
#include
#define uchar unsigned char
#define uint unsigned  int

好的,没问题!!!
21CHdwLHR 发表于 2015-5-29 23:53 | 显示全部楼层
wuyua 发表于 2015-5-29 14:13
谢谢,不过要求用的是计数器,中断方式2的
你这个用的是延时函数吧
能否用工作方式2写下? ...

#include <reg52.h>
#define uchar unsigned char
#define uint unsigned  int
sbit key1=P3^4;
sbit led=P1^0;
uint i,j=0;

void main()
{
        TMOD=0x01;*/初值自己改下,定时器T0工作在模式2方式*/
        TH0=0x38;
        TL0=0x38;
        EA=1;
        ET0=1;
       
        while(1)
{
                if(key1==0)
        {
       
        TR0=1;
        while(!key1);
        TR0=0;
       
        j++;
       
if(j==5)
led=0;
if(j==10)
led=1;
               

}

}

}
 楼主| wuyua 发表于 2015-5-30 00:00 | 显示全部楼层
感谢各位大神,明天好好想想:)
吕工程 发表于 2015-5-30 08:40 | 显示全部楼层
表达非常详细,直得跟大家学习。
 楼主| wuyua 发表于 2015-5-30 12:36 | 显示全部楼层
21CHdwLHR 发表于 2015-5-29 23:53
#include
#define uchar unsigned char
#define uint unsigned  int

这个程序我试了下,按5下确实亮了(不过一直亮着),再按5下灭了。
但是再按5下就没反应了。。。没有循环吧还是,我不太懂
love_872072322 发表于 2015-5-30 18:05 | 显示全部楼层
whtwhtw 发表于 2015-5-28 19:17
设一个计数器,按一下计数器加一,加到5,执行led=!led;计数器清零,然后再计数。 ...

大神妙解!:loveliness:
21CHdwLHR 发表于 2015-5-30 23:11 | 显示全部楼层
wuyua 发表于 2015-5-30 12:36
这个程序我试了下,按5下确实亮了(不过一直亮着),再按5下灭了。
但是再按5下就没反应了。。。没有循环吧 ...

对啊,就没有循环。我只是给你写了单个的,你加一个循环就好了。
wang168506 发表于 2015-6-1 15:50 | 显示全部楼层
hgjinwei 发表于 2015-5-29 18:24
看来大家都很闲啊

装死尾巴居然还动
hjh2008303 发表于 2015-6-2 09:15 | 显示全部楼层
yuandf 发表于 2015-5-29 09:15
if( ! ((++keyCount)%5)     )
{
      led=!led;

十五楼高手
czghn1 发表于 2015-6-2 14:25 | 显示全部楼层
PIC  单片机  我来帮你编  看到联系
wxw5766 发表于 2015-6-2 14:39 | 显示全部楼层
抛开电路不说。15L代码,简洁明了
深圳铭伟科技 发表于 2015-6-3 12:57 | 显示全部楼层
涨姿势了!好多大神
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部