单片机抢答器.docx

上传人:b****6 文档编号:7002620 上传时间:2023-01-16 格式:DOCX 页数:7 大小:190.46KB
下载 相关 举报
单片机抢答器.docx_第1页
第1页 / 共7页
单片机抢答器.docx_第2页
第2页 / 共7页
单片机抢答器.docx_第3页
第3页 / 共7页
单片机抢答器.docx_第4页
第4页 / 共7页
单片机抢答器.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

单片机抢答器.docx

《单片机抢答器.docx》由会员分享,可在线阅读,更多相关《单片机抢答器.docx(7页珍藏版)》请在冰豆网上搜索。

单片机抢答器.docx

单片机抢答器

第一章绪论

 

抢答器是为智力竞赛参赛者答题时进行抢答而设计的一种优先判决器电路,广泛应用于各种知识竞赛、文娱活动等场合。

能够实现抢答器功能的方式有多种,可以采用前期的模拟电路、数字电路或模拟与数字电路相结合的方式,但这种方式制作过程复杂,而且准确性与可靠性不高,成品面积大,安装、维护困难。

所以我们介绍一种利用AT89S51单片机和汇编语言为核心部件进行逻辑控制及信号产生的四路抢答器。

该抢答器电路简单,维护容易。

 

第二章方案论证与分析

2.1硬件方案与分析

此抢答器要求在主持人未按下开始按钮前,任何选手不得按抢答按钮,否则犯规;并且在主持人按下开始按钮后,在指定的抢答时间T内,如无选手按抢答按钮,此题作废;倒计时显示器提示抢答的剩余时间。

如果有选手按下抢答键抢答,显示器开始显示答题剩余时间。

所以抢答器单片机进行编程,实现抢答器的计时、抢答锁存、犯规报警、复位的作用,并且和按钮、发光二极管、八段数码管、蜂鸣器等元件组成四路抢答器电路,实现抢答、复位、提示、显示倒计时、警报的功能。

单片机方面我们选用AT89S51,对它利用汇编语言进行编程。

2.2软件方案与分析

软件方面我们利用keil对单片机进行编程和调试,编程调试成功后,利用双龙软件将程序写入单片机,进行硬件测试。

3.3总体方案

软件编程测试成功后,就可以和硬件结合,最后的单片机电路应完成以下抢答器电路功能:

(1)在主持人按下开始键之前,数码管只显示默认的图像“8”,并且各位选手处的二极管全部处在熄灭状态。

(2)按下开始键之后,单片机开始倒计时,数码管显示倒计时时间。

(3)如果有参赛者率先在规定时间内抢答成功,则选手开关处的二极管点亮,倒计时停止,变为答题时间倒计时。

(4)如果有参赛者在主持人未按抢答器之前抢答,则蜂鸣器发出持续警报,并且选手按键处二极管点亮,提示该选手犯规。

(5)如果在规定时间内无人抢答,当倒计时结束时此题作废。

(6)无论是在规定时间内有人按键、无人按键或有人抢答,都需要主持人再按一下复位键,之后电路复位,回到初始状态,进入下一轮抢答。

 

第三章硬件模块功能

此抢答器电路主要有单片机部分、按键模块、二极管显示模块、数码管显示模块、蜂鸣器模块组成。

这些模块的功能如下:

(1)单片机部分:

通过读取P1.0~P1.3的状态读取按键情况;通过P1.4~P1.7控制显示选手处二极管是否点亮;通过P3.0对蜂鸣器进行控制;通过9引脚(rst)对单片机进行复位控制;通过P3.2进行单片机的抢答开始。

(2)按键模块:

KEY1~KEY4的信息可以直接传输到P1.0~P1.3。

单片机一直对p1口的低四位检索,一旦检测到有按键按下,则读出数据,进行比较,检测出谁按下的键,然后跳到键盘处理程序——回答倒计时,跳出键盘检测程序,后来按键按下不做响应。

(3)二极管模块:

通过P1.4~P1.7控制抢答或犯规选手的灯是否点亮,一旦单片机检测到按键模块有按键按下,就会将其所对应的二极管点亮。

(4)数码管显示模块:

数码管显示模块由一个共阴极数码管和一个限流电阻组成,用来显示倒计时时间。

(5)蜂鸣器模块:

当有人犯规时,蜂鸣器模块负责进行发出持续警报。

按下复位才能解除。

第四章软件设计

该程序在回答完一题后按下复位键才能进行下一轮抢答。

具体单片机编程软件如下:

org0000h

ajmpmain

org0003h;教师的抢答按钮程序

setbf0;即抢答按钮按下T0开始回答倒计时

setbtr0

reti

org000bh

ajmpintt0

org001bh

ajmpintt1

org0030h

main:

movsp,#60h

movtmod,#11h;设置t0和t1工作方式

movtl0,#0b0h;50ms的初始值0b0h

movth0,#03ch;3ch

movr1,#20;20次为1s

movr2,#5;倒计时为5s也用作led寻址的偏移量

clrp3.0;把p3.0设为低电平,用于高电平启动蜂鸣器

setbea

setbet0

setbex0

setbit0;设置脉冲触发中断

index:

mova,p1;一直检查p1口有没有按键输入,读p1口数据

anla,#0fh;屏蔽高四位

mov28h,a;保存键盘值,

lcalldelay;调用延时程序

mova,p1;再读p1口

anla,#0fh

cjnea,28h,return;两次结果不一样,是抖动引起的转到return

key:

cjnea,#0eh,key2;有按键,不是键一跳走

clrp1.4;键一处理程序,指示谁强答到

jbf0,dd;比较是否抢答键按下

setbp3.0;提前有人抢答蜂鸣器响

lcallsixunhuan;进入死循环,下同

dd:

lcallast

key2:

cjnea,#0dh,key3;同上

clrp1.5

jbf0,dd1

setbp3.0;

lcallsixunhuan

dd1:

lcallast

key3:

cjnea,#0bh,key4

clrp1.6

jbf0,dd2

setbp3.0

lcallsixunhuan

dd2:

lcallast

key4:

cjnea,#07h,return

clrp1.7

jbf0,dd3

setbp3.0

lcallsixunhuan

dd3:

lcallast

return:

nop;有一个键按下后就不执行此段程序了

ajmpindex;跳到键盘处理程序,无,返回继续。

delay:

movr6,#13;延时程序

delay1:

movr5,#250;250

delay2:

nop

djnzr5,delay2

djnzr6,delay1

ret

ast:

clrET0;按键处理程序,把t0中断关了,防止进入中断0

setbet1

movtl1,#0e0h;t1中断初值

movth1,#03ch

setbtr1;开计时t1

movr4,#20;设置中断次数

movr3,#9;设置偏移量16,9秒定时

ajmp$;等待中断

sixunhuan:

clrea

sjmp$

intt0:

movtl0,#0b0h;重新付初值

movth0,#03ch

djnzr1,loop1;r1为0说明有1s了显示出来

movr1,#20;20

djnzr2,loop2;不为零跳走,为零过了5s进入死循环

mova,#0;把0送A,显示0数字

movdptr,#tbb

movca,@a+dptr

movp2,a

clrea;关中断,进入死循环

sjmp$

loop2:

mova,r2;把偏移量r2送给a

movdptr,#tbb;显示时间程序

movca,@a+dptr

movp2,a

loop1:

reti

intt1:

movtl1,#0b0H;重新赋值

movth1,#03ch

djnzr4,loop4;r4不为0没到1s继续中断

movr4,#20

djnzr3,lop;r3为0说明超时,进入死循环(可该)

mova,#0;把0送给A显示0数字

movdptr,#tbb

movca,@a+dptr

movp2,a

clrea;死循环

sjmp$

lop:

mova,r3;时间显示,把偏移量送给a

movdptr,#tbb

movca,@a+dptr

movp2,a

loop4:

reti

tbb:

db3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh

db77h,7ch,39h,5eh,79h,71h;数码管表

end

程序仿真完成后,进入protel进行对电路的总体仿真。

电路图详见附件。

 

第五章附件

四路抢答器原理图:

 

心得

通过这次参加电子设计大赛,我们学到很多,对专业知识的理解更加深刻,通过这次比赛,深深的感觉到自身知识的不足。

更加感觉到集体团结的力量,在这次电子设计大赛中,我们三人一组,同心协力完成这次比赛,我们分工合作。

虽然,我们设计的不是最完美的,有很多不足之处,但却是我们三人齐心协力的结果。

在以往的学习中,多是理论教学,能动手做的很少,这次比赛锻炼了我们的动手能力。

手脑并用,完成设计任务。

不自己亲自操作是不会感到其中的困难。

非常高兴能参加这次比赛,这次比赛使我们受益匪浅,希望学校能多开展这样的比赛,锻炼了学生的能力还可以增加课余活动。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 从业资格考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1