基于atmega16的八人抢答器c程序

这是一个使用C语言编写的基于atmega16微控制器的八人抢答器程序,具备启动、抢答有效性判断、数码管显示、蜂鸣器反馈等功能。抢答器有8个按键,30秒内有效,违规和正确回答有不同的声音提示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/******************************************************************************
   功能说明:

1、该抢答器有8路抢答按键输入,对应8路指示输出,抢答成功的路其相应的LD亮,平时为灭,同时,数码管显示相应的选手编号,其他键按下无效。

2、设置一键作为裁判、启动键。当按下此键后抢答才有效,否则视为违规,违规的抢答者相应的灯亮,违规抢答响2短声有效抢答响一长声

3、启动后LD按1秒速度流动闪亮30秒,每秒响一短嘀声。超过30秒未抢答作废:响四长声。

4、设置另一裁判键,按下表示回答正确。

5、有效抢答后对应的LD亮,LD停止流动。此时只有2个裁判健有效:按下ok-key为回答正确键,蜂鸣器响4声,频率由低到高;按下启动键为回答错误,蜂鸣器响3声,频率由高到低

6、判断完毕,主持人出题。当主持人按下启动键,选手就可以开始抢答了。


******************************************************************************/
#include <iom16v.h>
#include <macros.h>

 

//宏定义
#define rdkey ~PINA //定义按键端口
#define led PORTB                  //定义LED显示端口
#define cp_key (PIND&0x04)          //定义裁判2、启动键、错误键。
#define ok_key (PIND&0x02)          //定义裁判1:正确键.
#define on_spk  PORTD|=1<<7       //定义蜂鸣器开
#define off_spk  PORTD&=~(1<<7)    //定义蜂鸣器关

//宏定义:定义无符号数据的简写
#define uchar unsigned char
#define uint unsigned int

//全局变量定义
uchar ld=0;                          //定义LED移动位
uchar flag=0;                 &

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值