51单片机简易抢答器

本文详细介绍了如何使用51单片机设计并实现一个简易的抢答器系统,涵盖了硬件连接、软件编程及抢答逻辑实现等方面的知识。

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

#include <reg52.h>

#define wei P2 
#define seg P0 

sbit P3_0 = P3^0;
sbit P3_1 = P3^1;
sbit P3_2 = P3^2;
sbit P3_3 = P3^3;

unsigned char code smgduan[18]={0x00, 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
unsigned char code smgwei[8] = {0x00, 0x04,0x08, 0x0c, 0x10, 0x14, 0x18, 0x1c};

void DelayUs2x(unsigned int n)//t = 2*n + 6 us
{
	while(--n);
}
void DelayMs(unsigned int n)//t = n ms
{
	while(n--)
	{
		DelayUs2x(245);
		DelayUs2x(245);
	}
}

int disp(unsigned char i) //按键抢答
{
	//while(1)
	//{
	  if(P3_3 == 0)
		{
			DelayMs(1);
			if(P3_3 == 0)
			{
				if(i == 0 || i == 5)
				{
					i = 4;
					return i;
				}
			}
			while(P3_3 == 0);
		}
		else if(P3_2 == 0)
		{
			DelayMs(1);
			if(P3_2 == 0)
			{
				if(i == 0 || i == 5)
				{
					i =3;
					return i;
				}
			}
			while(P3_2 == 0);
		}
		else if(P3_0 == 0)
		{
			DelayMs(1);
			if(P3_0 == 0)
			{
				if(i == 0 || i == 5)
				{
					i = 2;
					return i;
			
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值