基于51单片机的八路抢答器控制设计(毕设课设资料)

本设计是以八路抢答为基本理念。考虑到依需设定限时回答的功能,利用STC89C52单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。用开关做键盘输出,扬声器发生提示。同时系统能够实现:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;抢答限定时间为60秒,倒计时为5秒时蜂鸣器报警,选手抢答成功后显示选手编号以及剩余时间。

【资源下载】下载地址如下:768
https://docs.qq.com/doc/DTlRSd01BZXNpRUxl

#include<intrins.h>
sbit smg1=P2^0;		//定义数码管第一位
sbit smg2=P2^1;		//定义数码管第二位
sbit smg3=P2^2;		//定义数码管第三位
sbit keyks=P3^0;	//定义开始按键
sbit keytz=P3^1;	//定义停止按键
sbit keyqc=P3^2;	//定义清除按键
sbit key1=P1^0;		//定义1号抢答选手
sbit key2=P1^1;		//定义2号抢答选手
sbit key3=P1^2;		//定义3号抢答选手
sbit key4=P1^3;		//定义4号抢答选手
sbit key5=P1^4;		//定义5号抢答选手
sbit key6=P1^5;		//定义6号抢答选手
sbit key7=P1^6;		//定义7号抢答选手
sbit key8=P1^7;		//定义8号抢答选手
sbit spk=P3^7;		//定义蜂鸣器
int djs=60,js=0;		   //djs和bt是初始倒计时时间,可修改
//int table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
int table[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x40};

void delayms(int x)	   //延时函数
{
char i;
while(x--)
 {
  for(i=500;i>0;i--); 
 }
}
 


void Timer0_init()			//定时器0初始化
{
      js=0;
	  TMOD=0x01;	  			//T0为定时器方式1
      TH0=0x4c;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值