抢答器

利用独立按键设计一个抢答器,代码很简单,但是却花了近一个小时,接错线,线8位的顺序出错等,原以为很简单的东西,却花了大量时间在代码之外,或许这就是单片机的特点吧,不光是代码要正确,还要外部连接正确才能最终达到预期的效果。

#include <reg52.h>



sbit Key1 = P0^0;  //按键1

sbit Key2 = P0^1;  //按键2

sbit Key3 = P0^2;  //按键3

sbit Key4 = P0^3;  //按键4



void main(void)

{

    bit Flag = 0;  // bit类型,做布尔变量 标识是否有键按下

    P1 = 0xFF;       // 先将LED灭

    while (!Flag)  // 如果没有按键按下

    {

        if (!Key1)       // 如果是键1

        {

            P1 = 0xFE; // 第一个灯亮

            Flag = 1;  // 标识有人抢答

        }

        else

        if (!Key2)

        {

            P1 = 0xFD;

            Flag = 1;

        }

        else

        if (!Key3)

        {

            P1 = 0xFB;

            Flag = 1;

        }

        else

        if (!Key4)

        {

            P1 = 0xF7;

            Flag = 1;

        }

    }

    while (Flag);     // 维持灯的状态

}

 

你可能感兴趣的:(抢答器)