使用按钮控制LED闪烁,当按钮开始闪烁时,应再次闪烁

时间:2019-11-03 00:10:32

标签: c led keil 8051

我正在尝试执行基于8051微控制器的实验室任务,在该任务中,我要开始闪烁LED,首先应该如何按下按钮,当再次按下按钮时应该停止闪烁,但不是发生我想要的。 谢谢

我正在使用Keil IDE进行仿真我正在使用Proteus Simulation。 在“调试”模式下,它可以正常运行我想要的功能,但是在仿真过程中,它的输出不相同。

#include <reg52.h>
sbit bulb = P1^0;
sbit switchh = P1^1;
void delay(int);
void ports_setup();
void main () {
        int FG = 1;
        bulb = 0;       //Making Bulb Off Initially
        while(1) {
            while (FG) {
                bulb = 1;
                delay (1000);
                bulb = 0;
                delay (1000);
                if ( switchh == 0 ) {
                    FG = 0;
                    break;
                }
            }
            while (!FG) {
                if (switchh == 0 ) {
                    FG = 1;
                    break;
                }
            }
        }
}

void ports_setup () {
    bulb = 0;       // Making P1.0 as output
    switchh = 1;        // Making P1.1 as Input
}
void delay(int time) {
    int i, j;
    for(i=0; i<time; i++) {
        for(j=0; j<100; j++) {
        }
    }
}[enter image description here][1]


  [1]: https://i.stack.imgur.com/RS5rx.png

0 个答案:

没有答案