• 大小: 772KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-18
  • 语言: 其他
  • 标签: 单片机  

资源简介

基于AT89C51的八路抢答器,内含源程序和仿真.DSN文件,导入工程即可使用。

资源截图

代码片段和文件信息

#include 
#define uint unsigned int
#define uchar unsigned char
unsigned char code table[]={0x3f0x060x5b0x4f0x66
0x6d0x7d0x070x7f0x6f0x770x7c
0x390x5e0x790x71};
sbit start_stop = P3^6;
sbit reset = P3^7;
sbit key1 = P1^0;
sbit key2 = P1^1;
sbit key3 = P1^2;
sbit key4 = P1^3;
sbit key5 = P1^4;
sbit key6 = P1^5;
sbit key7 = P1^6;
sbit key8 = P1^7;
sbit state = P3^4;
sbit kaishi=P3^1;

bit start_stop_flag = 0;
bit key1_flag = 0;
bit key2_flag = 0;
bit key3_flag = 0;
bit key4_flag = 0;
bit key5_flag = 0;
bit key6_flag = 0;
bit key7_flag = 0;
bit key8_flag = 0;
bit reset_flag = 0;
bit action = 0;
bit kaishi_flag=0;

uchar second = 20;
uchar timer0_count = 0;
uchar number = 0;
uchar number_display = 0;
/*-----------------------------------------------------------
延时函数
------------------------------------------------------------*/
void delay(uint z)
{
uint xy;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
/*-----------------------------------------------------------
数码管显示驱动函数
------------------------------------------------------------*/
void display(uchar numberuchar second)
{
uchar second_firstsecond_second;
second_first = second / 10;
second_second = second % 10;

P2 = 0xfe;
P0 = table[number];
delay(2);

P2 = 0xfd;
P0 = 0x40;
delay(2);

P2 = 0xfb;
P0 = table[second_first];
delay(2);

P2 = 0xf7;
P0 = table[second_second];
delay(2);
}
/*-----------------------------------------------------------
开始键扫描函数
------------------------------------------------------------*/
void start_stop_keyscan()
{
if(start_stop == 0)
{
delay(8);
if((start_stop == 0)&&(!start_stop_flag))
{
start_stop_flag = 1;
action  = 1;
TR0 = 1;
state = 0;
}
}
else
{
start_stop_flag = 0;
}
}
/*-----------------------------------------------------------
八位抢答键扫描函数
------------------------------------------------------------*/
uchar key_scan8()
{
if(key1 == 0)
{
delay(8);
if((key1 == 0)&&(!key1_flag))
{
key1_flag = 1;
number  = 1;
number_display = number;
}
}
else
{
key1_flag = 0;
number  = 0;
}

if(key2 == 0)
{
delay(8);
if((key2 == 0)&&(!key2_flag))
{
key2_flag = 1;
number  = 2;
number_display = number;
}
}
else
{
key2_flag = 0;
number  = 0;
}

if(key3 == 0)
{
delay(8);
if((key3 == 0)&&(!key3_flag))
{
key3_flag = 1;
number  = 3;
number_display = number;
}
}
else
{
key3_flag = 0;
number  = 0;
}

if(key4 == 0)
{
delay(8);
if((key4 == 0)&&(!key4_flag))
{
key4_flag = 1;
number  = 4;
number_display = number;
}
}
else
{
key4_flag = 0;
number  = 0;
}

if(key5 == 0)
{
delay(8);
if((key5 == 0)&&(!key5_flag))
{
key5_flag = 1;
number  = 5;
number_display = number;
}
}
else
{
key5_flag = 0;
number  = 0;
}

if(ke

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件      267648  2018-06-24 21:37  八路抢答器\5号选手按下抢答器截图.png
     文件      146040  2018-06-24 21:34  八路抢答器\89C51抢答器抢答器.DSN
     文件       37888  2018-06-24 21:37  八路抢答器\Thumbs.db
     文件        5323  2018-06-24 21:32  八路抢答器\abc.c
     文件      259165  2018-06-24 21:36  八路抢答器\主界面截图.png
     文件      267470  2018-06-24 21:37  八路抢答器\倒计时截图.png
     目录           0  2018-06-24 21:39  八路抢答器\

评论

共有 条评论