/***************************
闲鱼搜索:科创工作室
***************************/
#include <REGX52.H>
#include <Delay.h>
#include <juzheng.h>
#include <ledliang.h>
#include <Timer0.h>
char miao=20,fen=2;
unsigned char flag1=0,s0_flag=0,k_flag=0,flag2=0,flag3=0;
unsigned char keynumber;
int beepnum=0;
sbit beep=P2^5;
sbit k1=P3^1;
sbit k2=P3^0;
sbit k3=P3^2;
sbit k4=P3^3;
void key_scan()
{
if((k1==0)&&(flag2==0)) //调试界面时间切换 flag1:0调试分钟界面 1调试秒钟界面
{
ET0=0;
Delay(200);
flag1++;
if(flag1>=2)
{
flag1=0;
}
}
if((k4==0)&&(flag2==0)) //切换界面 flag3:0调试 1抢答
{
flag3=1;
if(s0_flag==0) //判断界面标志位 在抢答界面的话就进行抢答 否则无操作
{
ET0=1;
}
if(s0_flag==1)
{
s0_flag=0;
}
}
}
void gaibian() //调时间改变 K2 + K3-
{
if((flag1==0)&&(flag2==0))//分钟
{
if(k2==0)
{
ET0=0;
Delay(200);
fen++;
if(fen>=100)
{fen=99;}
}
if(k3==0)
{
ET0=0;
Delay(200);
fen--;
if(fen<=0)
{fen=0;}
}
}
if((flag1==1)&&(flag2==0)) //秒钟
{
if(k2==0)
{
ET0=0;
Delay(200);
miao++;
if(miao>=60)
{miao=59;}
}
if(k3==0)
{
ET0=0;
Delay(200);
miao--;
if(miao<=0)
{miao=0;}
}
}
}
void xianshi1() //数码管显示位置
{
// ledliang(1,0);
ledliang(1,fen%10);
ledliang(2,10);
ledliang(3,miao/10);
ledliang(4,miao%10);
ledliang(7,12);
ledliang(8,flag2);
}
void key_K() //按键操作函数
{
keynumber=juzheng();//按键按下扫描
if(keynumber==16) //新一轮开始
{
// 判断标志位 为0置1
s0_flag=1;k_flag=0;flag2=0,flag3=0;
fen=2;miao=20;beepnum=0;
ET0=0;
//分和秒置为初始值 关闭定时器 关闭倒计时
//抢答器清零
//所有标志位清零
}
if((keynumber==1)&&(flag2==0)) //判断按下
{
Delay(100); //消抖
if(keynumber==1) //再次判断 1号
{
if(k_flag==0) //判断是否已经有玩家抢答 若没有,则把标志位置1 其他玩家抢答无效
{
k_flag=1; //若没有,则把标志位置1 其他玩家抢答无效
ET0=0; // 判断s0按键标志位 为0置1 为1置0
flag2=1;
}
}
}
if((keynumber==2)&&(flag2==0))
{
Delay(100);
if(keynumber==2) //2号
{
if(k_flag==0) //判断是否已经有玩家抢答 若没有,则把标志位置1 其他玩家抢答无效
{
k_flag=1;
ET0=0; //抢答后关闭定时器
flag2=2;
}
}
}
if((keynumber==3)&&(flag2==0))
{
Delay(100);
if(keynumber==3) // 3号
{
if(k_flag==0) //判断是否已经有玩家抢答 若没有,则把标志位置1 其他玩家抢答无效
{
k_flag=1;
ET0=0;
flag2=3;
}
}
}
if((keynumber==4)&&(flag2==0))
{
Delay(100);
if(keynumber==4) //4号
{
if(k_flag==0) //判断是否已经有玩家抢答 若没有,则把标志位置1 其他玩家抢答无效
{
k_flag=1;
ET0=0;
flag2=4;
}
}
}
if((keynumber==5)&&(flag2==0))
{
Delay(100);
if(keynumber==5) //5号
{
if(k_flag==0)//判断是否已经有玩家抢答 若没有,则把标志位置1 其他玩家抢答无效
{
k_flag=1;
ET0=0;
flag2=5;
}
}
}
if((keynumber==6)&&(flag2==0))
{
Delay(100);
if(keynumber==6) //6号
{
// 判断K5标志位 为0置1
if(k_flag==0) //判断是否已经有玩家抢答 若没有,则把标志位置1 其他玩家抢答无效
{
k_flag=1;
ET0=0;
flag2=6;
}
}
}
if((keynumber==7)&&(flag2==0))
{
Delay(100);
if(keynumber==7) //7号
{
if(k_flag==0) //判断是否已经有玩家抢答 若没有,则把标志位置1 其他玩家抢答无效
{
k_flag=1;
ET0=0;
flag2=7;
}
}
}
if((keynumber==8)&&(flag2==0))
{
Delay(100);
if(keynumber==8) //8号
{
// 判断K5标志位 为0置1
if(k_flag==0) //判断是否已经有玩家抢答 若没有,则把标志位置1 其他玩家抢答无效
{
k_flag=1;
ET0=0;
flag2=8;
}
}
}
}
void main()
{
Timer0Init(); //定时器0
while(1)
{
key_scan(); //按键
gaibian(); //调参
xianshi1(); //显示
if(flag3==1) //一轮抢答开始
{
key_K();
}
if(k_flag==1)
{
beepnum=beepnum+1;
if(beepnum<=100)
{
beep=~beep;
}
}
}
}
void Timer0Routine() interrupt 1
{
static int T0count;
TL0 = 0x18; //
TH0 = 0xFC; //
T0count++;
if(T0count>=1000)
{
T0count=0; //清零 秒减1
miao--;
}
// if(fen<=0)
// {
// fen=0;
// }
if(miao==0) //秒小于等于0
{
miao=59; //秒置59,分-1
fen--;
}
if((fen==0)&&(miao==1))//判断 当时间为零实时关闭定时器,将时间清零
{
ET0=0;fen=0;miao=0;
//开始抢答标志位清零 否则抢答有效
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
基于51普中单片机的八位抢答器
共29个文件
obj:5个
c:5个
lst:5个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 3 下载量 88 浏览量
2024-03-01
11:41:07
上传
评论 1
收藏 46KB RAR 举报
温馨提示
基于普中的八位抢答器 适配普中51单片机 适配普中51单片机 适配普中51单片机 适配普中51单片机 适配普中51单片机 基于普中的八位抢答器通常是一个电子项目,用于在一个竞赛或讨论场合中确定哪位参与者首先按下按钮以回答问题或发表观点。抢答器通常由多个按钮、一个微控制器(如51单片机)和显示模块(如LED数码管或LCD显示屏)组成。
资源推荐
资源详情
资源评论
收起资源包目录
普中板子代码.rar (29个子文件)
普中板子代码
8路抢答器
Objects
8lu.build_log.htm 1002B
Delay.obj 888B
Timer0.obj 3KB
8lu 22KB
8lu.hex 4KB
ledliang.__i 128B
8lu.lnp 189B
ledliang.obj 4KB
juzheng.obj 6KB
main.obj 11KB
juzheng.h 84B
8lu.uvgui.good cool谢 91KB
juzheng.c 1KB
8lu.uvgui.liwei 90KB
Listings
juzheng.lst 3KB
main.lst 10KB
Timer0.lst 2KB
ledliang.lst 2KB
Delay.lst 1KB
8lu.m51 19KB
Timer0.c 566B
Delay.h 85B
ledliang.c 558B
Delay.c 158B
8lu.uvproj 15KB
ledliang.h 109B
main.c 5KB
Timer0.h 84B
8lu.uvopt 8KB
共 29 条
- 1
资源评论
- tangtanglyin2024-06-03资源有一定的参考价值,与资源描述一致,很实用,能够借鉴的部分挺多的,值得下载。
- 林木9542024-04-08资源很赞,希望多一些这类资源。
- 2301_772167752024-06-05资源不错,内容挺好的,有一定的使用价值,值得借鉴,感谢分享。
科创工作室li
- 粉丝: 3936
- 资源: 88
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功