抢答器

利用独立按键设计一个抢答器,代码很简单,但是却花了近一个小时,接错线,线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);     // 维持灯的状态
}

 

posted @ 2014-03-25 22:15  彩蛋  阅读(391)  评论(0编辑  收藏  举报