资源简介
基于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山东大学人机交互期末考题全考后回忆
- 下一篇:集合并、交、差运算演示
相关资源
- 基于51单片机的空调遥控器C源程序
- 单片机课程设计数字时钟
- atmega128单片机的串口通讯程序
- 基于单片机的DAC0832正弦波 发生器 源
- 基于单片机的DAC0832波形发生器 源码
- 单片机多功能数字时钟报告1602LCD Ds
- 51单片机控制RDA5807收音机模块
- STM32单片机WS2812B驱动程序灯效程序
- C8051F020单片机驱动CCD 1304
- 基于C51单片机的声光控灯
- 51单片机电子门铃设计
- DHT11液晶显示C程序+PCB原理图
- 电动牙刷开发例程stc15系列单片机
- M62429控制程序代码
- 一种基于单片机的正弦波输出逆变电
- 单片机游戏-推箱子游戏
- PIC单片机的EEPROM读写及说明
- PIC单片机控制风扇马达
- 基于51单片机的 4×4键盘及8位数码管显
- 基于51单片机的霹雳灯
- MC9s12单片机AD16库
- 8255控制数码管显示程序及图——单片
- 通信电路考试
- 51单片机贪吃蛇游戏程序
- 51单片机控制57步进电机启停,正反转
- NEC 78K0R单片机基本功能程序代码
- 光功率计 下位机
- 51单片机实现Modbus从机程序
- 基于AT89C52单片机的步进电机控制系统
- 51单片机看门狗设计
评论
共有 条评论