单片机/MCUwilliam hill官网
直播中

菜鸡1号

5年用户 3经验值
私信 关注
[问答]

小白求解按键k2实现一个LED1灯的翻转

1.按键k2实现一个LED1灯的翻转
2.按键k3按下计时,松开按键,单片机串口发送按下的时间(单位ms)
3.LED2闪烁,周期为2s,其中亮1.5秒,灭0.5秒,要求时间准确。
第三个实现不了
# define uint unsigned int
***it key2=P3^4;
***it LED1=P1^0;
uint count1=0;
void delay(uint i)
        while(--i);        
void init()
        TMOD=0x21;
        TL0=0x17;
        TL1=0xfd;
        TR0=1;
        SM1=1;
        ET0=1;
        ES=1;
void main()
        init();
        {
                {
                        LED1=~LED1;
                }
                {        
                        {
                                TL0=0x17;
                        }
                        if(ti==1)
                                TI=0;
                        }
        }        
void timer() interrupt 1
         TH0=0xfc;
         count2++;
         if(count2==500)
         if(count2==2000)
          LED2=~LED2;
         }
}

回帖(4)

李猛

2019-10-28 08:55:37
坐等大神解答
举报

chenwei6991627

2019-10-28 09:29:33
定时器就能解决的问题,进行计数就可以了
举报

阿信509

2019-10-28 10:06:45
第三个简单呀,做个定时器,每0.5秒记一次,判断到时就翻转呗
举报

人中狼

2019-10-28 11:34:26
贴出来的程序大括号不完整,有可能是贴的问题,定时器中断程序有问题,这种情况应该有多个标志,一个是定时0.5秒的标志,一个是当前LED的状态标志,是0.5秒阶段,还是1.5秒阶段。另外定时器的计数变量没有清零
举报

更多回帖

发帖
×
20
完善资料,
赚取积分