基于单片机的抢答器系统研究设计报告终稿.docx
- 文档编号:30270865
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:26
- 大小:307.50KB
基于单片机的抢答器系统研究设计报告终稿.docx
《基于单片机的抢答器系统研究设计报告终稿.docx》由会员分享,可在线阅读,更多相关《基于单片机的抢答器系统研究设计报告终稿.docx(26页珍藏版)》请在冰豆网上搜索。
基于单片机的抢答器系统研究设计报告终稿
南昌航空大学
计算机课程设计
题目:
基于单片机的抢答器系统设计
学院:
测试与光电工程学院
专业名称:
电子科学与技术
班级学号:
09083110
学生姓名:
XXX
指导教师:
王庆
2012年6月
基于单片机的抢答器系统设计
摘要:
单片机是一门技术性,应用性、实践性很强的学科。
课程设计是学好本门课程的又一重要实践性教学环节,课程设计的目的和任务就是配合单片机的教学和平时实验,以达到巩固消化课程的内容,进一步加强综合应用能力及单片机应用系统开发和设计能力的训练,启发创新思维,使之具有独立单片机产品和科研的基本技能,是以培养学生综合运用所学知识的过程,是知识转化为能力和能力转化为工程素质的重要阶段。
在实际生活中有好多地方都用到了单片机,因此学习好这门课程有着十分重要的意义
此次设计提出了用AT89C52单片机为核心控制元件,设计了一个简易的八路抢答器,本方案中AT89C52单片机与按键、数码管、蜂鸣器等构成八路抢答器,利用了单片机的延时电路、按键复位电路、时钟电路、定时/中断等电路,
利用汇编语言编程,以实现一些基本的功能,使设计的抢答器具有实时显示抢答成功的选手号和抢答后剩余时间以及选手抢答犯规报警的特点,并具有复位功能,使其能够开始新一轮的答题和比赛。
本设计的系统实用性强、判断精确、操作简单、扩展功能强,它的功能实现由按键控制。
比赛开始,主持人读完题之后按下开始抢答键,数码管立即实时显示30秒倒计时,直到有一个选手抢答时,相应的会在数码管上显示出该选手的编号和抢答所剩的时间,同时蜂鸣器发出声音,以提示有人抢答本题,如果在规定的30s时间内没有做出抢答,则此题作废,即开始新一轮的抢答。
关键字:
AT89C52单片机、实时显示、按键控制、复位
目录
1绪论3
2整体设计方案3
2.1单片机的选择3
2.2电路设计方案4
3系统硬件设计5
3.1抢答器工作原理5
3.2单片机最小系统设计5
3.3控制系统及所需元件6
3.4各部电路功能图6
4系统软件设计8
4.1抢答器流程图8
4.2程序流程图9
5系统仿真10
5.1设计思路10
5.2电路仿真11
6工作总结13
参考文献13
致谢13
附录14
源程序代码14
1绪论
二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。
不过,这种电脑,通常是指个人计算机,简称PC机。
它由主机、键盘、显示器等组成。
还有一类计算机,大多数人却不怎么熟悉。
这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。
顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。
因为它体积小,通常都藏在被控机械的“肚子”里。
它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。
现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。
各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”。
在知识竞赛中,往往会用到抢答器,故此我们就选择利用单片机编程来设计抢答器,即使两个选手的抢答时间相差几微秒,也能轻松的分辨出哪个选手先抢答到题。
本设计是由一个AT89C52单片机控制的八路抢答模拟器,由一组四位共阴数码管显示,其中1位数码管显示抢答成功的选手号,2位数码管显示剩余时间,抢答成功后蜂鸣器立即发出声音提示。
本文主要介绍了单片机抢答器的设计过程和工作原理,以及它的实际用途。
采用单片机AT89C52作为整个控制核心,其控制主要系统分为五个模块,分别为:
显示模块、存储模块、语音模块、抢答开关模块、复位模块。
该系统通过开关电路中的按键输入抢答信号,利用一个数码管来完成显示功能,用按键来让选手进行抢答,在数码管上显示哪一位选手先答题的,从而实现整个抢答过程。
工作时,用按键通过开关电路输入各路的抢答信号,经单片机的处理,输出控制信号,实现智能抢答。
随着我国经济和文化事业的发展,在很多公开竞争场合要求有公正的竞争裁决,诸如证券、股票交易及各种智力竞赛等,因此出现了抢答器。
抢答器一般是由很多电路组成的,线路复杂,可靠性不高,功能也比较简单,特别是当抢答路数很多时,实现起来就更为困难。
因此我们设计了以单片机为核心的新型智能的抢答器,在保留原始抢答器的基本功能的同时又增加了数码管显示电路实现了其它功能。
抢答器又称为第一信号鉴别器,其主要应用于各种知识竞赛、文艺活动等场合。
2整体设计方案
2.1单片机的选择
1、ATMEL公司的89C52单片机,是增强型RISC内载Flash的单片机,芯片上的Flash存储器附在用户的产品中,可随时编程,再编程,使用户的产品设计容易,更新换代方便。
89C52单片机采用增强的RISC结构,使其具有高速处理能力,在一个时钟周期内可执行复杂的指令,每MHz可实现1MIPS的处理能力。
89C52单片机工作电压为2.7~6.0V,可以实现耗电最优化。
89C52的单片机广泛应用于计算机外部设备,工业实时控制,仪器仪表,通讯设备,家用电器,宇航设备等各个领域。
由于单片机的种类很多,在选择单片机时要依据实际设计要求选择合适的单片机。
例如当设计仅仅需要一个单片机定时器那么选择89C1051或89C205151即可,而不选择89C52,因为后者的价格较高一些。
当然若程序和数据区的要求较高那么选择的单片机还要满足程序空间的要求。
2、AT89C52与AT89C51的区别
表2-151和52的比较
单片机
数据存储器
程序存储器
定时器
中断
51系列
128B
4KB
2
5
52系列
256B
8KB
3
8
①RAM空间增大:
AT89C51有128字节的内部RAM,称之为DATA存储区。
AT89C52的内部RAM扩展为256字节,其中高128字节,位于从80H开始的地址空间中,称之为IDATA存储区,但IDATA区的访问只能是间接寻址方式。
②内部FLASH变大:
AT89C51有4K字节的内部FLASHPERAM,而。
AT89C52的内部FLASHPERAM增加1倍,达到8K。
③中断源增加:
在AT89C52中P1.0和P1.1还可分别作为定时器/计数器2的外部计数输入(P1.0/T2)和(P1.1/T2EX),也就是说,P1.0同时可作为定时器/计数器T2的外部计数输入,和输出占空比50%的时钟脉冲端口,P1.1同时可作为定时器/计数器T2捕获/重新装载触发和方向控制端口。
故,AT89C52除了具备AT89C51的定时器/计数器T0和定时器/计数器T1,还额外增加了一个定时器/计数器T2。
而定时器/计数器T2的控制和状态位单独位于T2CON、T2MOD,定时器/计数器T2在16位捕获方式或自动重新装载方式下的捕获/重载寄存器组是(TCAO2H、RCAP2L)。
2.2电路设计方案
在本课题中,我们选用现在较为流行的52系列单片机,即选用ATMEL公司的AT89C52。
该系统采用单片机AT89C52作为控制核心,可以完成运算控制、信号识别以及显示功能的实现。
由于用了单片机,使其技术比较成熟,应用起来方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。
整个系统具有极其灵活的可编程性,能方便地对系统进行功能的扩张和更改性。
AT89C52单片机特点:
可靠性好,单片机按照工业控制要求设计,抵抗工业噪声干扰优于一般的CPU,程序指令和数据都可以烧写在ROM许多信号通道都在同一芯片,因此可靠性高;易扩充:
单片机有一般电脑所必须的器件,如三态双向总线,串并行的输入及输出引脚,可扩充为各种规模的微电脑系统;控制功能强:
单片机指令除了输入输出指令,逻辑判断指令外还有更丰富的条件分支跳跃指令。
3系统硬件设计
3.1抢答器工作原理
智力竞赛抢答器用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,采用单片机AT89C52,它是低功耗、高性能的CMOS型8位单片机。
片内带有8KB的Flash存储器,且允许在系统内改写或用编程器编程。
该智力竞赛抢答器的准确度很高,其误差主要由晶振自身的误差所造成。
AT89C52单片机由微处理器,存储器,I/O口以及特殊功能寄存器SFR等部分构成。
其存储器在物理上设计成程序存储器和数据存储器两个独立的空间,片内程序存储器的容量为8KB,片内数据存储器为256B个字节。
AT89C52单片机有4个8位的并行I/O口:
P0口,P1口,P2口和P3口。
各个接口均由接口锁存器,输出驱动器,和输入缓冲器组成。
P1口是唯一的单功能口,仅能用作通用的数据输入/输出口。
P3口是双功能口除了具有数据输入/输出功能外,每条接口还具有不同的第二功能,如P3.0是串行输入口线,P3.1口是串行输出口线。
在需要外部程序存储器和数据存储器扩展时,P0可作为分时复用的低8位地址/数据总线,P2口可作为高8位的地址总线。
P3口也可作为AT89C52的一些特殊功能口,同时为闪烁编程和编程校验接收一些控制信号。
3.2单片机最小系统设计
本课题采用了单片机最小系统来实现八路抢答器,下面是单片机最小系统的原理。
单片机的主要功能是负责整个系统的控制,不承担复杂的数据处理任务,因此在设计单片机最小系统时通常选用AT89C5l、AT89C52、AT89S51、AT89S52(S系列芯片支持ISP功能)等型号的8位单片机作为MCU。
本单片机最小系统采用的是AT89C52。
一个典型的单片机最小系统一般由时钟电路、复位电路、片外RAM、片外ROM、按键、数码管、液晶显示器、外部扩展接口等部分组成,图3-1给出了单片机最小系统的原理图。
图3-1单片机最小系统的原理图
3.3控制系统及所需元件
1、控制系统:
主要由单片机应用电路、存储器接口电路、显示接口电路组成。
其中单片机AT89C52是系统工作的核心,它主要负责控制各个部分协调工作。
2、所需元件:
该系统的核心器件是AT89C52,在其外围接上复位电路、上拉电阻、数码管、按钮及扬声器。
各元件为:
晶振X1、电容C1、C2、C3、电阻RP1等。
P3.0和P3.1由裁判控制,分别是抢答开始和停止键。
P1.0-P1.7是8组抢答的输入口,P2.0--P2.3口为数码管的段选口,位选口用的是P0.0--P0.6口输出,P3.6为蜂鸣器的控制口。
3.4各部电路功能图
1、AT89C52的管脚图如下图3-2所示:
图3-2AT89C52管脚图
2、外部振荡电路单片机必须在AT89C52的驱动下才能工作。
在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元。
外部振荡电路见图3-3所示:
图3-3外部振荡电路
3、①复位电路:
由电容串联电阻构成,由图并结合“电容电压不能突变”的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且这个高电平持续的时间由电路的RC值来决定。
典型的52单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位。
一般C取10μf,R取1K。
当然也有其他取法的,原则就要让RC组合可以在RST脚上产生不少于2个机周期的高电平;
复位电路采用图3-4所示:
图3-4复位电路
②复位输入高电平有效。
当振荡器工作时,RST引脚出现两个机器周期以上的高电平,使单片机复位。
若要复位只需按“RST”键,此电源Vcc经电阻分压,在RST端产生一个复位高电平。
③软件复位实际上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳转到指定程序。
4、采用共阴极七段码7SEG-MPX4-CC显示,由高电平点亮。
图形如下图3-5所示:
图3-5共阴极数码管
5、采用八个BUTTON按钮作为抢答的选择按键,如图3-6所示:
图3-6八个BUTTON按钮
4系统软件设计
4.1抢答器流程图
硬件电路确定后,软件的编程要与硬件相匹配,软硬件才能结合完成所要实现的功能。
由功能分析得到以下的软件结构图:
图4-1软件系统结构图
4.2程序流程图
整个程序主要由定时器T0、定时器T1、外部中断0和主程序构成。
1、定时器T0用于使扬声器发声,当需要响铃时,把响铃标志位置一,每次中断都对P3.6取反,扬声器发声,改变定时器初值,可改变扬声器频率。
定时器程流程图如下:
图4-2响铃程序流程图
2、定时器T1用于倒计时,每次中断为50ms,当计数标志为20时即为一秒,显示数字减一。
其流程图如下:
图4-3倒计时中断流程图
3、外部中断0用于调整倒计时时间,流程图如下:
图4-4调整抢答时间流程图
5系统仿真
5.1设计思路
1、主持人按“开始抢答”键,会有提示音,并立刻进入抢答倒计时(预设30s抢答时间),如有选手抢答,会有提示音,并会显示其号数并立刻进入回答倒计时(预设30s抢答时间),不进行抢答查询,所以只有第一个按抢答的选手有效。
数码管上只显示第一个抢答的选手号,倒数时间到小于10s会每秒响一下提示音。
如倒计时期间,主持人想停止倒计时可以随时按“停止”按键,系统会自动进入准备状态,等待主持人按“开始抢答”进入下次抢答计时,下次抢答是先按复位键。
2、如果主持人未按"开始抢答"键,而有人按了抢答按键,犯规抢答,LED上不断闪烁“PP”和犯规选手号数并且蜂鸣器响个不停,直到按下“停止”键为止。
3、P3.0为开始抢答,P3.1为停止,P1.0—P1.7为八路抢答输入,数码管段选为P0口,位选为P2口低3位,蜂鸣器输出为P3.6口。
八路抢答器的源程序见附录1。
5.2电路仿真
1、在proteus中画好其总电路图如下图5-1所示:
图5-1八路抢答器总电路图
2、利用keil软件编写源程序,其源程序见附录1,把keil软件中的源程序生成可执行文件,下载到proteus原理图中进行仿真,调试。
其选手没有抢答时的状态如下图5-2所示:
图5-2选手准备抢答时的显示图
3、3号选手抢答成功如下图5-3所示:
图5-33号选手抢答成功显示
6工作总结
经过这些天的努力,我们较好的完成了设计任务,通过此次课程设计,我再次认识到了自学的重要性,以及学以致用的道理。
我在图书馆查阅了大量的资料,同时也认识到了图书馆的重要作用。
通过此次的抢答器的设计,让我重新拾起了以前所学习的电子知识,及我觉得此次设计让我更加巩固了所学的知识并在设计的过程中学会了与时俱进,克服了编程的枯燥感,让我受益匪浅。
在今后的学习过程中,应该多到图书馆看一些专业方面的书籍,以丰富自己的知识。
也使我加深了对单片机及接口技术的理解和应用,由于知识水平的局限,设计中可能会存在着一些不足,我真诚的接受老师和同学的批评和指正。
在这个过程中,我也曾经因为实践经验的缺乏失落过,也曾经仿真成功而热情高涨。
生活就是这样,汗水预示着结果也见证着收获,劳动是人类生存生活永恒不变的话题。
虽然这只是一次的极简单的课程制作(八路抢答器),可是平心而论,也耗费了我们不少的心血,这就让我不得不佩服专门搞单片机开发的技术前辈,才意识到老一辈对我们社会的付出,为了人们的生活更美好,他们为我们社会所付出多少心血啊!
但当课程设计完成时,那感觉是甜蜜的,没有耕耘,哪来得收获的喜悦,不懂付出怎么能知道回报的快乐,一分耕耘一分收获,有付出才会有回报,就在这样的痛与快乐的交换中,我学到了知识,学到了做人的道理。
参考文献
1.刘教瑜、曾勇.单片机原理及应用.武汉理工大学出版社2011
2.何立民.单片机高级教程.第1版.北京:
北京航空航天大学出版社2001
3.赵晓安.MCS-51单片机原理及应用.天津:
天津大学出版社2001.3
4.李广第.单片机基础.第1版.北京:
北京航空航天大学出版社1999
5.徐惠民、安德宁.单片微型计算机原理接口与应用.第1版.北京:
北京邮电大学出版社1996
6.何立民.从Cygnal80C51F看8位单片机发展之路.单片机与嵌入式系统应用2002年,第5期:
P5~8
7.夏继强.单片机实验与实践教程.北京:
北京航空航天大学出版社2001
致谢
首先衷心地感谢我的指导老师王老师。
本文从选题到完成,从理论上的探讨到实际问题的解决,无处不饱含着王老师的心血。
王老师的悉心指导和建议给了我极大的帮助和支持,使我受益匪浅,在此论文完成之际,谨向王老师致以深深的谢意和崇高的敬意。
我还要感谢我的队友郭海君同学,这次的课程设计也让我看到了团队的力量,我认为我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。
刚开始的时候,我们就分配好了各自的任务,有的绘制原理图,进行仿真实验,有的积极查询相关资料,并且经常聚在一起讨论各个方案的可行性。
在课程设计中只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失败。
团结协作是我们成功的一项非常重要的保证,而这次设计也正好锻炼我们这一点,这也是非常宝贵的。
附录
源程序代码
OKEQU20H;抢答开始标志位
RINGEQU22H;响铃标志位
ORG0000H
AJMPMAIN
ORG000BH
AJMPTT0
ORG001BH
AJMPTT1
ORG0040H;避开中断向量区
MAIN:
MOVR1,#30;初设抢答时间为30s
MOVTMOD,#11H;设置定时器/方式1
MOVTH0,#0F0H
MOVTL0,#0FFH;越高发声频率越高,越尖
MOVTH1,#3CH
MOVTL1,#0B0H;50ms为一次溢出中断/F=12MHz
SETBEA;设置EA=1,启动总中断
SETBET0
SETBET1;允许2个中断,T0/T1
CLROK;使OK=0,禁止抢答
CLRRING
SETBTR1
SETBTR0;一开始就运行定时器,以开始显示PPP。
如果想重新计数,重置TH1/TL1就可以了
;=====查询程序=====
START:
MOVR5,#0BH
MOVR4,#0BH
MOVR3,#0BH
ACALLDISPLAY;未开始抢答时候显示PPP
JBP3.0,FEIFA;若未按下开始抢答键即P3.0=1则跳转到FEIFA
ACALLDELAY
JBP3.0,FEIFA;去抖动,如果"开始键"按下就向下执行,否者跳到非法抢答查询
ACALLBARK;按键发声
MOVA,R1
MOVR6,A;送R1->R6,因为R1中保存了抢答时间
SETBOK;抢答标志位,用于COUNT子程序中判断是否查询抢答
MOVR3,#0AH;抢答只显示计时,灭号数
AJMPCOUNT;进入倒计时程序,"查询有效抢答的程序"在COUNT里面
FEIFA:
JNBP1.0,FALSE1;若P1.0=0则转移到FALSE1,即有人非法抢答
JNBP1.1,FALSE2
JNBP1.2,FALSE3
JNBP1.3,FALSE4
JNBP1.4,FALSE5
JNBP1.5,FALSE6
JNBP1.6,FALSE7
JNBP1.7,FALSE8
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
FALSE7:
ACALLBARK
MOVR3,#07H
AJMPERROR
FALSE8:
ACALLBARK
MOVR3,#08H
AJMPERROR
;=====倒计时程序(抢答倒计时跳到改程序)=====
COUNT:
MOVR0,#00H;重置定时器中断次数
MOVTH1,#3CH
MOVTL1,#0B0H;重置定时器
RECOUNT:
MOVA,R6;R6保存了倒计时的时间,之前先将抢答时间给R6
MOVB,#0AH
DIVAB;即A/B,商在A中,余数在B中,除十后分出个位/十位
MOV30H,A;十位存于(30H)
MOV31H,B;个位存于(31H)
MOVR5,30H;取十位
MOVR4,31H;取个位
MOVA,R6
SUBBA,#0CH;带借位减,A=A-016H-Cy
JNCLARGER;若Cy=0则转移,即大于10s跳到LARGER/小于等于10s会提醒
MOVA,R0
CJNEA,#0AH,FULL;1s中0.5s向下运行
CLRRING
AJMPCHECK
FULL:
CJNEA,#14H,CHECK;下面是1s的情况,响并显示号数并清R0,重新计数
SETBRING
MOVA,R6
JZQUIT;计时完毕
MOVR0,#00H
DECR6;一秒标志减1
AJMPCHECK
LARGER:
MOVA,R0
CJNEA,#14H,CHECK;如果1s向下运行,否者跳到查"停/显示"
DECR6;计时一秒R6自动减1
MOVR0,#00H
CHECK:
JNBP3.1,QUIT;如按下停止键退出
ACALLDISPLAY
JBOK,ACCOUT;如果是抢答倒计时,如是则查询抢答,否者跳过查询继续倒数(这里起到锁抢答作用)
AJMPRECOUNT
ACCOUT:
JNBP1.0,TRUE1
JNBP1.1,TRUE2
JNBP1.2,TRUE3
JNBP1.3,TRUE4
JNBP1.4,TRUE5
JNBP1.5,TRUE6
JNBP1.6,TRUE7
JNBP1.7,TRUE8
AJMPRECOUNT
QUIT:
CLROK;如果按下了"停止键"执行的程序
CLRRING
ACALLBARK
AJMPSTART
;=====正常抢答处理程序=====
TRUE1:
ACALLBARK;按键发声
MOVR3,#01H
CLROK;因为答题的计时不再查询抢答,所以就锁了抢答
AJMPCOUNT
TRUE2:
ACALLBARK;
MOVR3,#02H
CLROK
AJMPCOUNT
TRUE3:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 抢答 系统 研究 设计 告终