16路抢答器课程设计带电路图和程序文档格式.docx
- 文档编号:3607969
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:18
- 大小:119.23KB
16路抢答器课程设计带电路图和程序文档格式.docx
《16路抢答器课程设计带电路图和程序文档格式.docx》由会员分享,可在线阅读,更多相关《16路抢答器课程设计带电路图和程序文档格式.docx(18页珍藏版)》请在冰点文库上搜索。
在抢答未开始时任何抢答均无效,抢答开始可显示最先抢答代表队的编号,同时给出声光提示,并封锁输入的数据,在系统清零前禁止其他选手抢答。
具有定时抢答功能,抢答时间可由主持人设定。
在设定时间内抢答有效,定时器停止工作,定时时间已到,无人抢答,本次抢答无效,其主要技术参数如下:
(1)可同时供16个代表队参加比赛;
(2)给节目主持人一个控制开关,用来控制系统清零和抢答开始;
(3)能随时更改抢答时间;
(4)有数码显示功能。
二、硬件电路设计
2.1系统框图
AT89S51单片机要实现主持人按开始键后,抢答器开始20秒倒计时。
20秒之内有人抢答,则在LED数码管上显示该代表队编号并封锁输入,其他选手抢答无效。
此时按下开始键,复位键有效。
在开始抢答之前,主持人可预先设定抢答时间和限时时间。
系统具有声光提示功能。
由我们分析可以看到,核心部分还是AT89S51单片机,基于AT89S51单片机的系统框图如图2-1-1所示:
电源电路
复位电路AT89C51
主持人按键数码提示anjian按键
键
选手按键
图2-1系统框图
2.2时钟电路设计
单片机必须在时钟的驱动下才能工作。
AT89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。
只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。
时钟频率控制电路如图2-2-1所示。
图2-2外部振荡电路
单片机在工作时,由内部振荡器产生或由外部直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。
其大小是时钟信号频率的倒数。
时钟频率选为12MHz。
2.3复位电路设计
在抢答器中复位是为定时做铺垫的,在抢答之前要复位,抢答完毕要复位,按了复位键之后LED显示F。
单片机的复位引脚RST出现2个机器周期以上的高电平时即可实现复位,复位后单片机的各状态都恢复到初始化状态,其电路图如图2-3所示。
图2-3复位电路
2.4抢答电路设计
单片机常用的键盘有全编码键盘和非编码键盘两种。
全编码键盘能有硬件逻辑自动提供与被按键对应的编码,如BCD码键盘、ASCII码键盘等,价格较贵,一般的单片机应用系统较少采用;
非编码键盘分为独立式键盘和矩阵式键盘,硬件上只是提供通、断两种状态,其他工作都靠软件完成,经济实用,目前单片机应用系统中多采用这种方法。
在智力抢答器设计中,要求有16个代表队参加抢答,每个代表队一个抢答按钮,就需要16个按钮,而选手抢答器按钮就是用独立式键盘或矩阵式键盘来完成的。
独立式键盘电路要求一个端口连接一个按键,硬件电路简单但浪费成本。
当按键数较多时,要占用较多的I/O口线。
因此一般在按键数大于8时,通常采用矩阵式键盘电路。
若P0口和P2口用于控制数码管的显示(P1口控制七段数码管,P2口则驱动数码管的位显示),P3口用于主控电路的设计,剩下的八位的P1口如果用独立式键盘明显达不到要求,但如果采用矩阵式键盘电路,8个I/O刚好可以构成4×
4矩阵式键盘电路,满足16个代表队参加抢答的要求。
16路抢答器抢答电路设计即4×
4矩阵式键盘电路,如图2-4:
图2-4矩阵式键盘
2.5显示电路设计
在本设计中采用的是共阴极接法的数码管,由P0口驱动七段数码显示管,P2口驱动数码管位。
由P0、P2口共同组成LED数码管显示电路。
由于P0口不带有上拉电阻,所以在设计中需另外外接上拉电阻,以提供一定的拉电流。
P2口本身自带电阻,所以无需外接。
因为AT89C51单片机P0、P2口都自带锁存器,所以无需另外外接锁存器。
其与单片机一起来显示所抢答的代表队的编号和倒计时时间或限时时间。
其接口电路如图2-5所示:
图2-5显示电路
2.6控制电路设计
抢答器控制电路主要控制抢答开始、停止以及抢答时间调节。
它是供主持人操作的实现调节抢答时间、开始抢答等控制的控制功能电路。
控制电路的设计跟报警电路的设计都需要通过语言来实现,单纯的硬件电路并不能实现任何东西。
在控制电路的设计中,我接的是P3口,是因为P3口的每一个口线都有第二功能,在这里要用到的也就是它的第二功能,在前面的介绍中我们已经知道,P3口有两个中断,两个定时,一个读一个写口线,还有串行输入输出口线。
16路智力抢答器硬件电路设计图如图2-6:
图2-6控制电路
三、程序流程图
开始
初始化
NN开始键按调时键按
下,下,
YY
抢答键是否加1S或减1S按下
NY
判断哪位选手抢答,并
在数码管上显示
倒计时
Y
进入下一题,选手是否作N时间到并重新开始答计时
按下复位键
参考文献
[1]周润景,袁伟亭,景晓松.Proteus在MCS-51&
ARM7系统中的应用百例[M].北京:
电子工业出版社,2006.5-7
[2]余发山,王福忠等.单片机原理及应用技术[M].徐州:
中国矿业大学出版社,2003[3]张凯,马忠梅编著,MCS-51单片机综合系统及其设计开发[M].北京:
科学出版
社,1996
[4]欧阳文.ATMEL89系列单片机的原理及开发实践[M].北京:
中国电力出版社,
2007
[5]靳栀,潘育山,邬芝权.单片机原理及应用C51编程技术[M].成都:
西南交通大
学出版社,2004
[6]黄继昌,乔苏文,张海贵.实用报警电路[M].北京:
人民邮电出版社,2005.2[7]求是科技.单片机典型模块设计实例导航[M].北京:
人民邮电出版社,2008[8]龚云新,胡长盛.单片机实用技术教程[M].北京:
北京师大出版社,2007.6[9]徐爱钧.8051单片机实践教程—asm51汇编语言与C51高级语言应用[M].北京:
电
子工业出版社,2005.3
[10]王凌霄.微型计算机原理及应用[M].徐州:
中国矿业大学出版社,2004[11]康华光.电子技术基础(模拟部分)[M].高等教育出版社.1999[12]康华光.电子技术基础(数字部分)[M].高等教育出版社.1999[13]何希才.常用电子电路应用365例[M].北京:
电子工业出版社,2006[14]张肃文.高频电子线路[M].高等教育出版社.2007
[15]徐曼.电子基础与技能[M].北京:
电子工业出版社,2006.6
附录A总电路图
附录B程序清单#include<
reg52.h>
#defineuintunsignedint#defineucharunsignedchar
#defineKEYIOP1
ucharcodetable[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
sbitled1=P2^0;
sbitled2=P2^1;
sbitled3=P2^2;
sbitled4=P2^3;
sbitkey1=P3^0;
sbitkey2=P3^1;
sbitkey3=P3^2;
sbitkey4=P3^3;
sbitbur=P3^7;
ucharkeydata;
ucharreset_flag;
uchartime_count;
ucharstop_flag;
voiddisplay(uchardisdata);
voiddisplay_time(uchardisdata);
ucharkeyscan();
voiddelayms(uintxms)//延时函数
{
uinti,j;
for(i=xms;
i>
0;
i--)
for(j=110;
j>
j--);
}
voidinit_timer0()
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
voidmain()
uchartime_max=30;
led1=1;
led2=1;
init_timer0();
time_count=time_max;
stop_flag=1;
while
(1)
display_time(time_count);
display(keydata);
if(key1==0)
delayms(10);
while(!
key1);
reset_flag=1;
stop_flag=0;
bur=1;
if(key2==0)
key2);
reset_flag=0;
if(key3==0)
key3);
time_max++;
if(key4==0)
key4);
time_max--;
if(reset_flag==1)
keydata=keyscan();
if(keydata!
=0)
stop_flag=1;
bur=0;
voiddisplay(uchardisdata)
ucharge,shi;
shi=disdata/10;
ge=disdata%10;
P0=table[shi];
led1=0;
delayms(4);
P0=table[ge];
led2=0;
voiddisplay_time(uchardisdata)
led3=0;
led3=1;
led4=0;
led4=1;
voidT0_time()interrupt1//中断程序{
staticucharcount;
count++;
if(count==20)
count=0;
if(time_count!
if(stop_flag==0)
time_count--;
ucharkeyscan()
{uchartemp,key=0;
KEYIO=0xfe;
temp=KEYIO;
temp=temp&
0xf0;
if(temp!
=0xf0)
switch(temp)
case0x7e:
key=1;
break;
case0xbe:
key=2;
case0xde:
key=3;
case0xee:
key=4;
while(temp!
KEYIO=0xfd;
case0x7d:
key=5;
case0xbd:
key=6;
case0xdd:
key=7;
case0xed:
key=8;
KEYIO=0xfb;
case0x7b:
key=9;
case0xbb:
key=10;
case0xdb:
key=11;
case0xeb:
key=12;
KEYIO=0xf7;
case0x77:
key=13;
case0xb7:
key=14;
case0xd7:
key=15;
case0xe7:
key=16;
returnkey;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 16 抢答 课程设计 电路图 程序