永发信息网

51单片机,按下S18,LED灯暂停计时,再按一下又继续计时啊?

答案:2  悬赏:10  手机版
解决时间 2021-02-14 08:39
  • 提问者网友:抽煙菂渘情少年
  • 2021-02-14 02:28
#include "reg52.h"
sbit LED1=P1^0; //定义LED管脚
sbit LED2=P1^1;
sbit LED3=P1^2;

sbit s18=P3^5;

sbit key=P3^4; //定义开始,程序执行后重新开始
#define uchar unsigned char
#define uint unsigned int
delay1ms(int t) //延时子程序
{
uint i;
uint j;
for(i=0;i for(j=0;j<116;j++);
}
void main(void)//主程序
{
while(key == 1); //等待按键按下开始

while(1)
{

LED1=0;//开
delay1ms(1000*2);//延时m 秒
LED1=1;//关
delay1ms(1000*2);//延时2 秒
LED2=0;
delay1ms(1000*1);
LED2=1;
delay1ms(1000*2);
LED3=0;//开
delay1ms(1000*3);//延时m 秒
LED3=1;//关
delay1ms(1000*2);//延时2 秒
while(key!=0);//等待按键按下开始下一轮循环, 如果是高电平有效的话,这句改成while(key!=1);
}
}
最佳答案
  • 五星知识达人网友:往事隔山水
  • 2021-02-14 03:14
按下S18,LED灯暂停计时,再按一下又继续计时啊?
------
你原来的程序,在循环中,有很多的步骤。
你希望,在哪一个步骤,等待按键按下,再按一次,才继续?

如果,是在任意一个步骤,都能:按键停下、再按键继续,
这就要使用外部中断了。
全部回答
  • 1楼网友:夜余生
  • 2021-02-14 03:44
我。。知。。道 加。。我。。私。。聊
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯