八路搶答器設計

隨着科學技術的發展和普及,各種各樣的競賽越來越多,其中搶答器的作用也越來越重要。本文設計出以STC89C52RC單片機爲核心的八路搶答器。

所需元器件如下:
STC89C52RC芯片 *1
10K電阻 *1
200Ω電阻 *7
10uF 電解電容 *1
22pF 瓷片電容 *2
12MHz晶振 *1
按鍵 *10
單位7段數碼管 *1
74LS08 *1
74LS21 *1

代碼如下:

#include<reg52.h>
#define uint unsigned int
#define uchar signed char
sbit kai_key=P3^7;   //定義裁判開始按鍵
void delay(uint x)   //延時函數
{
	uchar i;
	while(x--)
	{
		for(i=0;i<120;i++);
	}
}

void main()    //主函數
{
	IT0=1;       //設置外部中斷0邊沿觸發方式
	EX0=1;       //設置中斷允許位
	P1=0xff;     //P1端口各位寫“1”
	P0=0x76;     //初始化數碼管,顯示字型“H”
	while(1)
	{
		if(kai_key==0) //判斷裁判開始鍵是否按下
		{
			delay(50);    //延時去抖
			if(kai_key==0)//判斷裁判開始鍵是否按下
			{
				while(kai_key==0)//等待按鍵鬆開
				EA=1;     //開外部中斷
				P0=0x3f;   //數碼管顯示“0”
			}
		}
	}
}
void qdq_int0(void)interrupt 0 using 1
{
	uchar key;
	EA=0;         //關外部中斷
	key=(P1&0xff);  //讀取按鍵
	switch(key)  //根據鍵值顯示相應鍵號
	{
		case 0xfe: P0=0x06;break;
		case 0xfd: P0=0x5b;break;
		case 0xfb: P0=0x4f;break;
		case 0xf7: P0=0x66;break;
		case 0xef: P0=0x6d;break;
		case 0xdf: P0=0x7d;break;
		case 0xbf: P0=0x07;break;
		case 0x7f: P0=0x7f;break;
	}
}

仿真電路圖如下:

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章