1、 需求
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
:
本设计要求完成8路抢答器设计,控制8个知识竞赛的抢答按钮,控制用数字显示抢到的台,抢答台上用LED显示抢到/未抢到,手动复位,等功能,我们采用89S52单片机做为主控CPU,外接一个7段共阴极数码管来显示抢到的台,接8个LED来显示是否抢到台,8个按键用来抢答,用单片机的复位脚来直接控制复位。此设计关键问题是判断是哪个强到的台,抢到台以后其他选手在复位前抢答无效。我们在这设计时采用循环等待判断的方法,可以使软件设计简单,复位我们也采用单片机的复位脚来控制,可以近一步简化软件设计。
2、 总体方案设计
硬件总体框图:
软件结构图:
3. 详细设计
1)Protel电路原理图:
总图:
按键电路:
8个独立按键连接到P1脚,平时没按下时为P1脚为高电平,一旦有按键按下,P1脚的P1.0—P1.7就会有相应的引脚被拉底。此时软件就可以检测判断是那个按键按下。
数码管显示电路:
为了显示抢答到的选手好,设计中采用了一个共阴极数码管接到P0,因为P0为开漏的,所以加了一个排阻进行拉高,电路如下:
LED显示:
为了让选手知道自己抢到或未抢到,设计中在P2口连接了8个LED,平时P2口为高电平,LED熄灭,当有选手按键后,软件设计让相应的LED点亮,电路如下:
复位电路:
复位电路采用了单片机的复位端,这样设计可以简化软件的量,使程序更加简洁化。
元件清单:
Part Type
Designator
Footprint
1K
R9
10K
RES
12.000MHZ
Y1
22u
C1
30p
C2
30p
C3
80C52
U1
DIP-40
470
R5
470
R4
470
R7
470
R6
470
R3
470
R8
470
R1
470
R2
DPY_7-SEG_DP
DS1
LED
LED4
LED
LED1
LED
LED2
LED
LED3
LED
LED6
LED
LED8
LED
LED5
LED
LED7
SW-PB
Reset
软件流程图:
程序清单:
/**********************************************************************************************************
** Copyright(c) 2007
贵州大学
** 文件描述:
8路抢答器
** 当前版本:V1.0
** 作 者:
彭凌华
** 完成时间:2007/12/1
** 适应芯片:
* 89c52
********************************************************************************************************/
#include
#define uchar unsigned char
#define uint unsigned int
code unsigned char ledmap[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71
};
//数码管显示值
void main(void)
{
uchar Key;
while ( P1==0xff);//等待按键
Key=P1;
switch(Key)
{
case 0xfe: P0=ledmap[0];P2^0=0;break;
//按键1
case 0xfd: P0=ledmap[1];P2^1=0;break;
//按键2
case 0xfb: P0=ledmap[2];P2^2=0;break;
//按键3
case 0xf7: P0=ledmap[3];P2^3=0;break;
//按键4
case 0xef: P0=ledmap[4];P2^4=0;break;
//按键5
case 0xdf: P0=ledmap[5];P2^5=0;break;
//按键6
case 0xbf: P0=ledmap[6];P2^6=0;break;
//按键7
case 0x7f: P0=ledmap[7];P2^7=0;break;
//按键8
default:break;
}
while(1); //等待复位
}
元件布局图: