基于51单片机的八路抢答器设计

一.硬件方案

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

二.设计功能

(1)采用4位数码管设计;下排按键一一对应八位选手。
(2)竖排三个按键,从上到下依次为:开始、暂停、复位。
(3)操作流程:上电后数码管显示“----”当主持人按下“开始”键后,60秒,开始计时,此时,八位选手就可以抢答,如有紧急情况需要停止的话,主持人按“暂停”键就可以,如果有选手抢答成功,数码管显示“1 25”,1表示是1号选手,25表示剩余还25秒,小于5秒时,蜂鸣器响,提示时间快要结束,当为0秒时,此题结束,表示没有任何选手抢答成功,主持人按“复位”键后从新开始。
(4)可以设定时间,在上电后,数码管显示“----”,此时按下1号选手对应的按键,进入时间设定状态,2号选手对应的按键为时间加,3号选手对应的按键为时间减,设定完成后再按1号选手键退出。

三.设计原理图

(1)原理图主要采用AD软件进行设计,如图:
在这里插入图片描述
(2)Protues仿真图如下:
在这里插入图片描述

四.软件设计

主程序源码

void main()
{
   
int djs1=60;
Timer0_init();	 //初始化定时器中断
spk=1;			  //蜂鸣器不响
        djs=60;		//倒计时赋值
while(1)
{
   

LOOP1:   djs=djs1;
djsxs22();	//LOOP1是标号,显示 -  --

if(key1==0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值