完整单片机课程设计八位竞赛抢答器.docx

上传人:b****7 文档编号:10443655 上传时间:2023-02-11 格式:DOCX 页数:26 大小:721.45KB
下载 相关 举报
完整单片机课程设计八位竞赛抢答器.docx_第1页
第1页 / 共26页
完整单片机课程设计八位竞赛抢答器.docx_第2页
第2页 / 共26页
完整单片机课程设计八位竞赛抢答器.docx_第3页
第3页 / 共26页
完整单片机课程设计八位竞赛抢答器.docx_第4页
第4页 / 共26页
完整单片机课程设计八位竞赛抢答器.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

完整单片机课程设计八位竞赛抢答器.docx

《完整单片机课程设计八位竞赛抢答器.docx》由会员分享,可在线阅读,更多相关《完整单片机课程设计八位竞赛抢答器.docx(26页珍藏版)》请在冰豆网上搜索。

完整单片机课程设计八位竞赛抢答器.docx

完整单片机课程设计八位竞赛抢答器

(完整)单片机课程设计:

八位竞赛抢答器

编辑整理:

 

尊敬的读者朋友们:

这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整)单片机课程设计:

八位竞赛抢答器)的内容能够给您的工作和学习带来便利。

同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整)单片机课程设计:

八位竞赛抢答器的全部内容。

 

2013-2014学年第2学期

《单片机应用技术》

课程设计报告

 

题目:

八位竞赛抢答器

专业:

班级:

姓名:

指导教师:

成绩:

电气工程学院

2014年月日

学号:

课程设计任务书

学生班级:

学生姓名:

学号:

设计名称:

八位竞赛抢答器

起止日期:

指导教师:

设计要求:

以单片机为核心,设计一个8位竞赛抢答器:

同时供8名选手或8个代表队比赛,分别用8个按钮S0~S7表示。

1.设置一个系统清除和抢答控制开关S,开关由主持人控制。

2。

抢答器具有锁存与显示功能。

即选手按按钮,锁存相应的编号,并在优先抢答选手的编号一直保持到主持人将系统清除为止。

3.抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。

当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间为0。

5s左右.

4.参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。

5。

如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。

 

 

八位竞赛抢答器

摘要

本设计是以八路抢答为基本理念。

考虑到需设定限时回答的功能,利用AT89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。

用开关做键盘输出,扬声器发生提示。

先进行系统硬件设计,该电路由显示电路,抢答电路,晶振电路等部分组成,然后进行系统软件设计,进行软件的仿真,这次课程设计不仅能锻炼我们的动手能力,而且能够培养我们对问题的思考能力以及对知识的进一步了解.

 

关键词:

AT89C51;抢答器;计时;报警

 

4。

3仿真结果分析15

第1章系统总体设计

1.1八位竞赛抢答器的工作原理

抢答器的工作原理是采用单片机最小系统,用程序查询方式使动态显示倒计时时间并且同时使LED灯亮。

主持人按下开始抢答键才可以抢答.主持人没有按下开始抢答按(P3.0),有人抢答则抢答违规,报警并该组LED灯亮,主持人按下开始抢答开关重新抢答。

主持人按下开始抢答按纽(P3。

0),扬声器响声提示,数码管30秒倒计时抢答,扬声器响声提示并该组LED灯亮,30秒内有人抢答则开始60秒倒计时(60秒内必须回答完问题),最后五秒倒计时警报。

从而完成一次抢答或者一次知识竞赛的任务.

1。

2竞赛抢答器总体框图

 

图1总体设计框图

 

第2章系统硬件设计

2.1工作原理

通过键盘改变抢答的时间,原理与闹钟时间的设定相同,将定时时间的变量置为全局变量后,通过键盘扫描程序使每按下一次按键,时间加1(超过30时置0)。

同时单片机不断进行按键扫描,当参赛选手的按键按下时,用于产生时钟信号的定时计数器停止计数,同时将选手编号(按键号)和抢答时间分别显示在LED上。

2。

2晶振电路

该晶振电路使用的是内部时钟电路,晶振的频率为12MHZ,提供89C51的时钟脉冲使89C51工作.复位电路使用的是按键与上电复位,复位电路是单片机初始化,使单片机重新开始执行程序.当复位开关按下RST由低电平变为高电平,则程序从头开始执行,在此次课程设计电路中当一个问题结束主持人后按下复位开关后进行下一题的准备。

晶振电路电路图如下页图2所示:

图2晶振电路电路图

2.3抢答电路

AT89C51的P1口做一个为选手抢答的输入按键引脚,P1。

0至P1。

7轮流输出低电位,给每一个选手编号1至8,当选手按下按钮时,P1口个端口的电平变化从P1口输入,经单片机处理后从P0输出由LED灯显示出来此组。

抢答电路电路图如图3:

图3抢答电路电路图

 

2.4显示电路

此电路包括显示和驱动,显示采用数码管和LED灯,驱动用P2和P0口,违规者编号和正常抢答者编号将通过与P0口相连的LED灯显示出来,抢答30秒倒计时和回答问题时间60秒倒计时由P3口上的数码管采用动态显示.为了保证LED灯和数码管有合适的压降在连接电路为它们相应地串连上了电阻。

显示电路电路图如图4:

图4显示电路电路图

 

2.5控制电路的设计

当赛事进行时,提示开始作答和复位时还需要主持人对抢答器进行控制,其提示是通过扬声器发出声音来实现的。

这就需要我们进行控制电路的设计。

其电路图如图5:

图5控制电路

第3章系统软件设计

智力竞赛抢答器要求有计时记忆功能,一次时间设置完,复位后不需重新进行时间设定,通过键盘扫描输出按键信息,当在扫描到有人按下了答题键,马上关调用显示程序、封锁键盘。

再通过单片机将它转换成能在七段数码管上显示字型码.

图6软件设计

当抢答完毕时,会在数码管上显示抢答者数字号码提示以表示抢答成功.在显示时使用的是七段数码管显示,在本设计中根据实际情况采用的是动态显示方法.并通过查表法将其在数码管上显示出来,其中P1口为字型码输入端,P2口低6位为字选段输入端。

通过查表将字型码送给7段数码管显示的数字。

软件去抖动,如果”开始键"按下就向下执行,否者跳到开始.采用倒计时程序,使其具有倒计时功能。

回答倒计时30秒。

抢答时间5秒。

采用发声警报(由于没有驱动器,因此就用绿灯换了),起到报警作用。

其程序的流程图如下页图7

 

图7程序流程

 

1、如果想调节抢答时间或答题时间,按”抢答时间调节”键或”答题时间调节”键进入调节状态,此时会显示现在设定的抢答时间或回答时间值,如想加一秒按一下"加1s"键,如果想减一秒按一下"—1s”键,时间LED上会显示改变后的时间,调整范围为0s~99s,0s时再减1s会跳到99,99s时再加1s会变到0s。

2、主持人按抢答“开始”键,会有提示音,并立刻进入抢答倒计时(预设30s抢答时间),如有选手抢答,会有提示音,并会显示其号数并立刻进入回答倒计时(预设60s抢答时间),不进行抢答查询,所以只有第一个按抢答的选手有效。

倒数时间到小于5s会每秒响一下提示音.

3、如倒计时期间,主持人想停止倒计时可以随时按"停止”按键,系统会自动进入准备状态,等待主持人按”抢答开始"进入下次抢答计时。

4、如果主持人未按抢答“开始”键,而有人按了抢答按键,犯规抢答,LED上不断闪烁FFF和犯规号数并响个不停,直到按下"停止"键为止.

第4章系统软件仿真

4.1KeiluVision2软件

本课题用到了伟福软件,集成调试环境,集成了编辑器、编译器、调试器,支持软件模拟,支持项目管理功能强大的观察窗口,支持所有的数据类型。

树状结构显示,一目了然,支持ASM(汇编)、C语言,多语言多模块源程序混合调试,在线直接修改、编译、调试源程序,错误指令定位.功能很强大。

用于对程序的调试、编译和生成HEX文件。

其界面如图4.1:

图8KeiluVision2软件界面

 

4。

2Proteus软件仿真

系统仿真还用到了Proteus软件,可通过仿真可以完全显示出所设计系统的功能,对于程序的调试等有很大的帮助。

系统仿真时首先要在使用伟福编译器,把所写的程序进行编译,同时在仿真器里设置生成hex文件,编译无错误时进行Proteus仿真,加载目标代码文件打开元器件单片机属性窗口,在“ProgramFile"栏中添加上面编译好的目标代码文件“hh.hex”;在“ClockFrequency”栏中输入晶振频率为12MHz。

仿真:

单击按钮,启动仿真,结果如下页图所示:

图9仿真结果图

4。

3仿真结果分析

通过电路的仿真,可以看出基于AT89C51单片机控制的抢答器在PROTEUS软件上很好的实现抢答报警、抢答成功显示、抢答倒计时等一系列功能。

当仿真运行开始时,各个模块处于初始阶段.此时无状态显示,但此时抢答键和蜂鸣器都处于开启状态,若此时有选手按下抢答键,则蜂鸣器会发出报警声音,并且在数码管上显示规范的选手编号。

主持人重新按下开始键,此时表示抢答正式开始,并且数码管显示倒计时,同时蜂鸣器发出声音提醒选手抢答正式开始了.选手抢答成功,同时也进入倒计时答题时间。

从仿真的测试结果来看,此设计还是能比较好的实现预期目标.

 

总结

通过这一周的课程设计,我学到了不少的知识。

把以前没有学好的模拟电路的知识进行了补充和加强.这使我受益很大.加深了我对于单片机和数字电路的认识,相信在以后的学习和工作中碰到这些基础的元器件我会更加得心应手.通过查阅大量的资料,我获得了以前在课堂上学不到的东西,我想这对于以后的毕业设计,或者工作也好,都是很有帮助的。

我很认真地对待这个过程中的每一个细节,希望自己能做得更好。

希望今后还有这样的机会,能够让我学到更多的知识。

在此次的数字钟设计过程中,更进一步地熟悉了芯片的结构及掌握了各芯片的工作原理和其具体的使用方法.

在设计电路中,往往是先仿真后连接实物图,但有时候仿真和电路连接并不是完全一致的,因此在实际的电路连接中往往容易遗漏。

在设计电路的连接图中出错的主要原因都是接线和芯片的接触不良以及接线的错误所引起的,在以后的设计过程中进行了修改、改正。

 

参考文献

[1]张伟,《单片机原理及应用》,机械工业出版社,2005

[2]张鑫,《单片机原理及应用》,电子工业出版社,2005

[3]曹国清,《数学电路与逻辑设计》中国矿业大学出版社,2004

[4]任致程,《经典集成电路400例》机械工业出版社,2002

[5]薛栋梁,《单片机原理及应用》,中国水利水电出版社,2001

[6]吴金戎,沈庆阳等,《8051单片机实践与应用》,清华大学出版社,2001

 

附录

(1)总电路图

图10总电路图

(2)程序代码

1主程序

OKEQU20H

RINGEQU22H

ORG0000H

AJMPMAIN

ORG0003H

AJMPINT0SUB

ORG000BH

AJMPT0INT

ORG0013H

AJMPINT1SUB

ORG001BH

AJMPT1INT

ORG0040H

MAIN:

MOVR1,#30

MOVR2,#60

MOVTMOD,#11H

MOVTH0,#0F0H

MOVTL0,#0FFH

MOVTH1,#3CH

MOVTL1,#0B0H

SETBEA

SETBET0

SETBET1

SETBEX0

SETBEX1

CLROK

CLRRING

SETBTR1

SETBTR0

2查询程序

START:

MOVR5,#0BH

MOVR4,#0BH

MOVR3,#0BH

ACALLDISPLAY

JBP3.0,NEXT

ACALLDELAY

JBP3。

0,NEXT

ACALLBARK

MOVA,R1

MOVR6,A

SETBOK

MOVR7,#01H

MOVR3,#0AH

AJMPCOUNT

NEXT:

JNBP1。

0,FALSE1

JNBP1.1,FALSE2

JNBP1.2,FALSE3

JNBP1.3,FALSE4

JNBP1.4,FALSE5

JNBP1.5,FALSE6

JNBP1。

6,FALSE7

JNBP1.7,FALSE8

AJMPSTART

3非法抢答处理程序

FALSE1:

MOVR3,#01H

AJMPERROR

FALSE2:

MOVR3,#02H

AJMPERROR

FALSE3:

MOVR3,#03H

AJMPERROR

FALSE4:

MOVR3,#04H

AJMPERROR

FALSE5:

MOVR3,#05H

AJMPERROR

FALSE6:

MOVR3,#06H

AJMPERROR

FALSE7:

MOVR3,#07H

AJMPERROR

FALSE8:

MOVR3,#08H

4抢答、回答时间调整程序

=====INT0(抢答时间R1调整程序)=====

INT0SUB:

MOVA,R1

MOVB,#0AH

DIVAB

MOVR5,A

MOVR4,B

MOVR3,#0AH

ACALLDISPLAY

JNBP3.4,INC0

JNBP3.5,DEC0

JNBP3。

1,BACK0

AJMPINT0SUB

INC0:

MOVA,R1

CJNEA,#63H,ADD0

MOVR1,#00H

ACALLDELAY1

AJMPINT0SUB

ADD0:

INCR1

ACALLDELAY1

AJMPINT0SUB

DEC0:

MOVA,R1

JZSETR1

DECR1

ACALLDELAY1

AJMPINT0SUB

SETR1:

MOVR1,#63H

ACALLDELAY1

AJMPINT0SUB

BACK0:

RETI

;=====INT1(回答时间R2调整程序)=====

INT1SUB:

MOVA,R2

MOVB,#0AH

DIVAB

MOVR5,A

MOVR4,B

MOVR3,#0AH

ACALLDISPLAY

JNBP3。

4,INC1

JNBP3。

5,DEC1

JNBP3.1,BACK1

AJMPINT1SUB

INC1:

MOVA,R2

CJNEA,#63H,ADD1

MOVR2,#00H

ACALLDELAY1

AJMPINT1SUB

ADD1:

INCR2

ACALLDELAY1

AJMPINT1SUB

DEC1:

MOVA,R2

JZSETR2

DECR2

ACALLDELAY1

AJMPINT1SUB

SETR2:

MOVR2,#63H

ACALLDELAY1

AJMPINT1SUB

BACK1:

RETI

5倒计时程序

REPEAT:

MOVA,R2

MOVR6,A

CLRRING

COUNT:

MOVR0,#00H

MOVTH1,#3CH

MOVTL1,#0B0H

RECOUNT:

MOVA,R6

MOVB,#0AH

DIVAB

MOV30H,A

MOV31H,B

MOVR5,30H

MOVR4,31H

MOVA,R6

SUBBA,#07H

JNCLARGER

MOVA,R0

CJNEA,#0AH,FULL

CLRRING

AJMPCHECK

FULL:

CJNEA,#14H,CHECK

SETBRING

MOVA,R6

JZQUIT

MOVR0,#00H

DECR6

AJMPCHECK

LARGER:

MOVA,R0

CJNEA,#14H,CHECK

DECR6

MOVR0,#00H

CHECK:

JNBP3.1,QUIT

JNBOK,CHECKK

AJMPNEXTT

CHECKK:

JNBP3.0,REPEAT

NEXTT:

ACALLDISPLAY

JBOK,ACCOUT

AJMPRECOUNT

ACCOUT:

MOVA,36H

JNBACC.0,TRUE1

JNBACC。

1,TRUE2

JNBACC.2,TRUE3

JNBACC.3,TRUE4

JNBACC。

4,TRUE5

JNBACC。

5,TRUE6

JNBACC。

6,TZ1

JNBACC.7,TZ2

AJMPRECOUNT

TZ1:

JMPTRUE7

TZ2:

JMPTRUE8

QUIT:

CLROK

CLRRING

AJMPSTART

6正常抢答处理程序

TRUE1:

ACALLBARK

MOVA,R2

MOVR6,A

MOVR3,#01H

CLROK

AJMPCOUNT

TRUE2:

ACALLBARK

MOVA,R2

MOVR6,A

MOVR3,#02H

CLROK

AJMPCOUNT

TRUE3:

ACALLBARK

MOVA,R2

MOVR6,A

MOVR3,#03H

CLROK

AJMPCOUNT

TRUE4:

ACALLBARK

MOVA,R2

MOVR6,A

MOVR3,#04H

CLROK

AJMPCOUNT

TRUE5:

ACALLBARK

MOVA,R2

MOVR6,A

MOVR3,#05H

CLROK

AJMPCOUNT

TRUE6:

ACALLBARK

MOVA,R2

MOVR6,A

MOVR3,#06H

CLROK

AJMPCOUNT

TRUE7:

ACALLBARK

MOVA,R2

MOVR6,A

MOVR3,#07H

CLROK

AJMPCOUNT

TRUE8:

ACALLBARK

MOVA,R2

MOVR6,A

MOVR3,#08H

CLROK

AJMPCOUNT

7犯规抢答程序

ERROR:

MOVR0,#00H

MOVTH1,#3CH

MOVTL1,#0B0H

MOV34H,R3

HERE:

MOVA,R0

CJNEA,#06H,FLASH;0.3s

CLRRING

MOVR3,#0AH

MOVR4,#0AH

MOVR5,#0AH

AJMPCHECK1

FLASH:

CJNEA,#0CH,CHECK1

SETBRING

MOVR0,#00H

MOVR3,34H

MOVR5,#0BH

MOVR4,#0BH

AJMPCHECK1

CHECK1:

JNBP3.1,QUIT1

ACALLDISPLAY

AJMPHERE

QUIT1:

CLRRING

CLROK

AJMPSTART

8其他功能程序

=====显示程序=====

DISPLAY:

MOVDPTR,#DAT1

MOVA,R3

MOVCA,@A+DPTR

MOVP2,#0feH

MOVP0,A

ACALLDELAY2

MOVDPTR,#DAT2

MOVA,R5

MOVCA,@A+DPTR

MOVP2,#0fdH

MOVP0,A

ACALLDELAY2

MOVA,R4

MOVCA,@A+DPTR

MOVP2,#0fbH

MOVP0,A

ACALLDELAY2

RET

DAT1:

DB00h,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh,6Fh,00H,71H

DAT2:

DB3Fh,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh,6Fh,00H,71H

=====发声程序=====

BARK:

SETBRING

ACALLDELAY1

ACALLDELAY1

CLRRING

RET

=====TO溢出中断(响铃程序)=====

T0INT:

MOVTH0,#0ECH

MOVTL0,#0FFH

JNBRING,OUT;

CPLP3.6

OUT:

RETI

;=====T1溢出中断(计时程序)=====

T1INT:

MOVTH1,#3CH

MOVTL1,#0B0H

END

 

(3)评语表

 

指导老师评语

 

课程设计成绩

指导老师签字

2014年月日

 

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

当前位置:首页 > 初中教育 > 学科竞赛

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

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