资源简介
基于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 八路抢答器\
- 上一篇:2014山东大学人机交互期末考题全考后回忆
- 下一篇:集合并、交、差运算演示
相关资源
- STC8951系列单片机中方指南
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 飞思卡尔单片机MC9S12XS12G128驱动(硬件
- 51单片机PWM程序,占空比、周期可调整
- 单片机和adc0809数字电压表
- PIC单片机完成的电子密码锁
- 单片机、ADC0808809设计简易数字电压表
- 51单片机多功能自行车测速仪
- 单片机做的6位时分秒数字钟
- 单片机电子时钟 闹钟 日历
- 音乐代码转换软件 单片机编程时用
- 单片机课程设计 篮球计分器
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 单片机与温度传感器DS18B20的程序设计
- 51单片机基于protues的几个仿真实例
- 基于52单片机的直流电压测量
- 38k单片机红外发送代码、keil
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51单片机控制舵机程序
- 武汉理工大学 单片机课程设计 16*16点
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- 浙江工业大学2005-2006学年单片机习题
- 单片机与PC机串口通讯仿真
- 毕业设计 单片机 对讲机 protues仿真
- 数据采集系统——ADC0808的应用,单片
评论
共有 条评论