智力抢答器单片机课程设计.docx
《智力抢答器单片机课程设计.docx》由会员分享,可在线阅读,更多相关《智力抢答器单片机课程设计.docx(17页珍藏版)》请在冰豆网上搜索。
![智力抢答器单片机课程设计.docx](https://file1.bdocx.com/fileroot1/2022-11/16/9ed3e708-e27f-45ee-95e0-f73347b64457/9ed3e708-e27f-45ee-95e0-f73347b644571.gif)
智力抢答器单片机课程设计
单片机课程设计
课程名称:
单片机原理与接口技术
实验项目:
智力抢答器
第1章、设计目的、要求及方案
1.1设计目的
现如今电视节目日益丰富其中的竞赛环节也越来越多,其中智力抢答器是不可或缺的器材。
在本学期学习了单片机这门课之后,我们小组成员觉得可以试着自己来实现抢答器的功能,令它能准确、公正、直观地判断出第一抢答者,并通过抢答器的数码管显示和蜂鸣器报警指出抢答组别。
我们最终做出一种数字式抢答器的设计方案,通过Proteus设计完成,利用WAVE6000软件编辑程序,仿真验证,适用于多种竞赛场合。
1.2设计要求
设计一个用于智力竞赛的抢答器,其功能的实现是由单片机控制的,满足
(1)能容许2-6组进行抢答。
(2)能显示抢答组号。
(3)各组记分,并能记分显示。
(4)比赛结束时,能发出报警声
1.3设计方案
在设计中采用的单片机是AT89C51,它主要负责控制各个部分协调工作。
P1.0和P1.7由裁判控制,分别是抢答开始和停止键。
P1.1—P1.6是6组抢答的输入口,按下对应按钮即为抢答。
P0口为数码管的段选口,位选口用的是P2口的低4位,外部中断0。
外部中断1,P3.3用于控制有组答题完成后结束计时。
P3.4—P3.5分别实现了时间的加一和减一。
P3.6为蜂鸣器的控制口。
外部中断和内部中断并存,单片机有硬件复位端,只要输入持续4个机器周期的高电平即可实现复位。
外部还接有蜂鸣器用来发出报警音。
采用7SEG-MPX4-CC-BLUE显示,它是共阴极的由高电平点亮。
系统仿真用到了WAVE6000和Proteus软件,通过仿真可以显示所设计系统的功能,对于程序的调试等有很大的帮助。
1.4实验器件
采用单片机AT89C51,10k的上拉电阻、若干按钮、扬声器、晶体振荡器X1、电容C1和C2、带极性的电容C3、排阻RESPACK-8以及数码管7SEG-MPX4-CC-BLUE。
1.5总体框图
第2章、硬件设计
2.1总体设计电路图
整个系统分为:
外部振荡电路、复位电路、加减分电路及蜂鸣器报警电路、抢答电路及裁判控制开始停止电路、数码管显示电路几个部分。
2.2模块设计电路
2.1.1单片机AT89C51简介
本设计的核心是单片机AT89C51。
AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C51提供以下标准功能:
4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
2.2.2振荡电路
振荡电路使用外部振荡电路,由两个1nF的电容和一个晶体振荡器组成
外部震荡电路
2.2.3复位电路
外部中断和内部中断并存,单片机有硬件复位端,只要输入持续4个机器周期的高电平即可实现复位。
硬件复位后的各状态可知寄存器及存储器的值都恢复到了初始值。
因为本设计功能中有倒计时时间的记忆功能,所以不能对单片机进行硬件复位,只能用软复位。
软复位实际上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳转到程序开始。
复位电路
2.2.4加减分电路及蜂鸣器报警电路
P3.3接口的开关按下意味着答题结束,P3.4接口开关表示给抢答相应组加上一分,P3.5接口开关按下表示相应组减去一分。
裁判示意开始抢答、有组抢答成功、违规抢答、最后5s倒计时都会触发蜂鸣器发出警报。
P3.6为蜂鸣器控制口。
加减分电路及蜂鸣器报警电路
2.2.5抢答电路及裁判控制开始停止电路
P1.0和P1.7由裁判控制,分别是抢答开始和停止键。
P1.1-P1.6是6组抢答的输入口,按下按钮抢答。
抢答电路及裁判控制开始停止电路
数码管7SEG-MPX4-CC-BLUE,它是共阴极的数码管
允许抢答后,开始倒计时从15s知道0s。
在最后5s蜂鸣器会发出警报。
第三组抢答,答题时间有30s,在最后5s蜂鸣器会发出警报。
若还没有允许抢答就有人按下抢答器,那么蜂鸣器会发出警报,并显示是哪一组违规抢答。
如图为第一组违规抢答
如图为第三组回答正确加一分
如图为第三组回答错误减一分
电路具有记忆功能,每次抢答后都能看到抢答组的分数。
如图表示第三组已经获得4分
第3章、软件编程
OKEQU20H
RINGEQU22H
ORG0000H
AJMPMAIN
ORG000BH
AJMPT0INT
ORG0013H
AJMPINT1SUB
ORG001BH
AJMPT1INT
ORG0040H
MAIN:
MOVR1,#0FH
MOVR2,#01EH
MOVTMOD,#11H
MOVTH0,#0F0H
MOVTL0,#0FFH
MOVTH1,#3CH
MOVTL1,#0B0H
SETBEA
SETBET0
SETBET1
SETBEX1
CLROK
CLRRING
SETBTR1
SETBTR0
START:
MOVR5,#00H
MOVR4,#00H
MOVR3,#00H
ACALLDISPLAY
JBP1.0,NEXT
ACALLDELAY
JBP1.0,NEXT
ACALLBARK
MOVA,R1
MOVR6,A
SETBOK
MOVR3,0AH
AJMPCOUNT
NEXT:
JNBP1.1,FALSE1
JNBP1.2,FALSE2
JNBP1.3,FALSE3
JNBP1.4,FALSE4
JNBP1.5,FALSE5
JNBP1.6,FALSE6
AJMPSTART
FALSE1:
ACALLBARK
MOVR3,#01H
AJMPERROR
FALSE2:
ACALLBARK
MOVR3,#02H
AJMPERROR
FALSE3:
ACALLBARK
MOVR3,#03H
AJMPERROR
FALSE4:
ACALLBARK
MOVR3,#04H
AJMPERROR
FALSE5:
ACALLBARK
MOVR3,#05H
AJMPERROR
FALSE6:
ACALLBARK
MOVR3,#06H
AJMPERROR
INT1SUB:
MOVR4,#0AH
MOVR5,#0AH
JNBP3.4,INC1
JNBP3.5,DEC1
JNBP1.7,BACK1
ACALLDISPLAY
AJMPINT1SUB
MOVA,R3
SUBBA,#01H
JZXXY1
SUBBA,#02H
JZXXY2
SUBBA,#03H
JZXXY3
SUBBA,#04H
JZXXY4
SUBBA,#05H
JZXXY5
SUBBA,#06H
JZXXY6
XXY1:
MOVR7,41H
XXY2:
MOVR7,42H
XXY3:
MOVR7,43H
XXY4:
MOVR7,44H
XXY5:
MOVR7,45H
XXY6:
MOVR7,46H
INC1:
INCR7
CJNER3,#01H,L1
MOV51H,R7
L1:
CJNER3,#02H,L2
MOV52H,R7
L2:
CJNER3,#03H,L3
MOV53H,R7
L3:
CJNER3,#04H,L4
MOV54H,R7
L4:
CJNER3,#05H,L5
MOV55H,R7
L5:
CJNER3,#06H,LL
MOV56H,R7
LL:
ACALLDELAY1
AJMPINT1SUB
DEC1:
DECR7
ACALLDELAY1
AJMPINT1SUB
BACK1:
RETI
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:
JNBP1.7,QUIT
ACALLDISPLAY
JBOK,ACCOUT
AJMPRECOUNT
ACCOUT:
JNBP1.1,TRUE1
JNBP1.2,TRUE2
JNBP1.3,TRUE3
JNBP1.4,TRUE4
JNBP1.5,TRUE5
JNBP1.6,TRUE6
AJMPRECOUNT
QUIT:
CLROK
CLRRING
AJMPSTART
TRUE1:
ACALLBARK
MOVA,R2
MOVR6,A
MOVR3,#01H
MOVR7,41H
CLROK
AJMPCOUNT
TRUE2:
ACALLBARK;
MOVA,R2
MOVR6,A
MOVR3,#02H
MOVR7,42H
CLROK
AJMPCOUNT
TRUE3:
ACALLBARK;
MOVA,R2
MOVR6,A
MOVR3,#03H
MOVR7,43H
CLROK
AJMPCOUNT
TRUE4:
ACALLBARK;
MOVA,R2
MOVR6,A
MOVR3,#04H
MOVR7,44H
CLROK
AJMPCOUNT
TRUE5:
ACALLBARK;
MOVA,R2
MOVR6,A
MOVR3,#05H
MOVR7,45H
CLROK
AJMPCOUNT
TR