51单片机应用——8路抢答器设计
要求:
(1) 按下”开始“按键后才开始抢答,且抢答允许指示灯亮;
(2)按下“开始”键后如果有人抢答,则抢答指示灯灭,7段数码管显示抢答着编号。
设计思路
P3.0端口连接“开始”按键;P3.6端口连接一个LED,指示抢答允许;P0口接7段数码管,显示抢答者编号;P2口接8个独立式按键,依次编号为1~8;P1口接抢答者指示灯,当P2口的某一个独立按键按下后,对应的抢答者指示灯亮。
proteus设计原理电路图如下:
软件设计
代码清单:
/*
实现功能:8路抢答器设计。
(1) 按下”开始“按键后才开始抢答,且抢答允许指示灯亮;
(2)按下“开始”键后如果有人抢答,则抢答指示灯灭,7段数码管显示抢答者编号。
P3.0端口连接“开始”按键;
P3.6端口连接一个LED,指示抢答允许;
P0口接7段数码管,显示抢答者编号;
P2口接8个独立式按键,依次编号为1~8;
P1口接抢答者指示灯,当P2口的某一个独立按键按下后,对应的抢答者指示灯亮;
[2024-01-31] zoya
*/
#include <reg51.h>
#include <intrins.h>
typedef unsigned char uchar;
#define GPIO_SMG P0 // 数码管
#define GPIO_LED P1 // 抢答者指示灯
#define GPIO_BTN P2 // 抢答者按键
unsigned char code smg[]={
0x00, 0x06, 0x5b,