2022-4-26 基于单片机的四路抢答器(风吹摇铃 奔赴星海)
基于单片机的四路抢答器系统设计软件:Proteus8.10和keil4 。proteus8.10版本安装包可在微信公众号下载系统源代码和仿真等资料可在文末的链接中下载系统组成:单片机最小系统、八位共阳极数码管(前五位用于显示时间,第六位不显示,最后两位用于显示玩家)、七个LED、八个NPN三极管、独立按键(分为两个部分:一是时间设置和抢答等按键、二是四位玩家操作按键)系统功能:系统具有时间设置,开
·
基于单片机的四路抢答器
系统设计软件:Proteus8.10和keil4 。proteus8.10版本安装包可在微信公众号下载
系统源代码和仿真等资料可在文末的链接中下载
系统组成:单片机最小系统、八位共阳极数码管(前五位用于显示时间,第六位不显示,最后两位用于显示玩家)、七个LED、八个NPN三极管、独立按键(分为两个部分:一是时间设置和抢答等按键、二是四位玩家操作按键)
系统功能:系统具有时间设置,开始抢答,重新开始、抢答完成等
初始上电显示时间设置 可对时间的分和秒进行设置 设置完成后 ,然后按下开始抢答按键进行抢答,此时时间由你设置好的时间开始倒计时,对应的LED灯点亮。四位玩家可以进行抢答,当有任何一位玩家抢答后,时间停止倒计时。其他玩家抢答无效。一轮抢答结束后,此时按下新一轮按键,进入时间设置界面,可设置时间进行第二轮抢答。
具体组成如下图所示:
上电 ,前面四位数码管显示时间 后面两位数码管显示玩家序号
抢答结束界面:
部分代码:
#include "reg52.h"
#include "intrins.h"
#include "key.h"
#define uchar unsigned char
#define uint unsigned int
uchar dd[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff};
//共阳极数码管断码表
uchar count=0; //定义计数时间变量
uchar fen=1,miao=20; //定义时间初始值
sbit k0=P3^7; //分秒切换按键
//定义按键接口
sbit k1=P1^0;//时间+
sbit k2=P1^1; //时间-
sbit k3=P1^2; //开始
sbit k4=P1^3; //重新开始
sbit k5=P1^4; // 1号
sbit k6=P1^5; // 2号
sbit k7=P1^6; //3号
sbit k8=P1^7; // 4号
//定义按键标志位 用于后期的切换和判断
bit k0_flag=0, k3_flag=0, k5_flag=0,k6_flag=0, k7_flag=0, k8_flag=0;
uchar yi=0,er=0; //定义玩家变量
void delay1ms() //@11.0592MHz 延时函数
{
unsigned char i, j;
_nop_();
_nop_();
_nop_();
i = 11;
j = 190;
do
{
while (--j);
} while (--i);
}
更多推荐
已为社区贡献1条内容
所有评论(0)