基于单片机的八路数字抢答器_第1页
基于单片机的八路数字抢答器_第2页
基于单片机的八路数字抢答器_第3页
基于单片机的八路数字抢答器_第4页
基于单片机的八路数字抢答器_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 数理与信息工程学院单片机原理及应用期末课程设计题 目: 基于单片机的8路抢答器设计 专 业: 计算机科学与技术 班 级: 计本072班 姓 名: 方 雅 群 学 号: 07220304 指导老师: 余 水 宝 成 绩: ( 2009.12 )目 录 第1节 引 言31.1 抢答器的概述31.2 设计任务3第2节 系统硬件电路设计52.1 抢答器电路原理图52.2 单片机系统电路5电源电路设计6 复位电路设计6时钟电路设计72.2.4输入模块电路7数据存储器的扩展电路72.3 锁存显示电路82.4 超限报警电路9第3节 系统软件设计11 3.1 系统主程序设计113.2 抢答信号的处理设计12

2、3.3 键盘扫描子程序123.4 键值处理程序133.5 显示子程序14第4节 结束语16参考文献17基于单片机的8路抢答器设计数理与信息工程学院 计算机科学与技术 方雅群指导教师:余水宝 第1节 引 言 自20世纪90年代以来,单片机已进人到了一个高速发展的阶段,世界上著名的半导体厂商都重视新型单片机的研制、生产和推广。单片机各种新品的不断涌现,使单片机的应用更加深人,灵活性也大大增强。 抢答器是一种广泛应用于企事业单位和商业部门,为各种知识竞赛、文娱活动提供公正客观快速裁决的一种常用电子设备,也是一种逐渐成型的电子产品。市面上所售抢答器价格一般较贵且多为小规模集成电路构成,其性能单一。因此

3、,提高抢答器的性能,使其具有更强的功能,使用可靠方便已为抢答器发展的一个方向。本文介绍一种以MCS-51单片机为核心的八路抢答器系统,它充分利用了单片机系统的优点,具有结构简单、功能强大、可靠性好、实用性强的特点。1.1 抢答器概述工厂、学校和电视台等单位常举办各种知识竞赛,在一些地方举办的竞赛中我们经常看到有抢答的环节,举办方多数采用让选手通过举手的方法判断选手的答题权,这在某种程度上会因为主持人的主观误断造成比赛的不公平性。抢答器是为智力竞赛参赛者答题时进行抢答而设计的一种优先判决器电路,竞赛者而已分为若干个组,抢答是各组对主持人提出的问题在最短的时间内作出判断,并按下抢答器按键回答问题。

4、当第一个人按下按键后,则在显示器上显示该组的号码,同时电路将其他各组按键封锁,使其不起作用。回答完问题后,主持人将所有按键恢复,重新开始下一轮的抢答。由于单片机的处理器速度选择的是12M的晶振,因此,分辨速度可以达到微妙数量级,从而保证了抢答时的公正性和准确性。1.2 设计任务该抢答器主要功能如下: (1) 抢答器同时供8名选手或8个代表队比赛,每组有一个抢答按钮,分别用S0S7表示,按钮编号与选手编号相对应。(2) 设置一个系统清除和抢答控制开关S,该开关由主持人控制。(3) 抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,扬声器发出声响提示,并在数码管上显示选手号码,同时禁止其他

5、选手再抢答。优先抢答选手的编号一直保持到主持人将系统清除为止。 (4) 抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。当主持人启动开始键后,定时器进行减计时。 (5) 参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。(6) 如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。 第2节 硬件电路设计2.1 抢答器电路原理图如下图所示为总体方框图。其工作原理为:接通电源后,主持人将开关拨到清零状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置开始

6、状态,宣布开始抢答器工作。定时器倒计时,扬声器给出声响提示。选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次抢答必须由主持人再次操作清除和开始状态开关。图2-1 抢答器原理框图2.2 单片机系统电路AT89C51单片机是51系列单片机的一个成员,是8051单片机的简化版。内部自带2K字节可编程FLASH存储器的低电压、高性能COMS八位微处理器,与Intel MCS-51系列单片机的指令和输出管脚相兼容。由于将多功能八位CPU和闪速存储器结合在单个芯片中,因此,AT89C51构成的单片机系统是具

7、有结构最简单、造价最低廉、效率最高的微控制系统,省去了外部的RAM、ROM和接口器件,减少了硬件开销,节省了成本,提高了系统的性价比。本文单片机系统电路图见图2-2。图2-2 单片机主机系统图 电源电路设计由于单片机工作时需要的+5V电压,所以在设计电源电路时,需要一个电子元件能够提供+5V电压,本文采用最典型的7805提供电压的电路,即在7805的1脚和公共接地端(即2脚)之间接入0.47心的电容,在公共接地端和三脚+5V电压输出端之间接人0.15心的电容。 复位电路设计MCS-5l的复位输入引脚RST为MCS-51提供了初始化的手段,可以使程序从指定处开始执行,在MCS-5l的时钟电路工作

8、后,只要RST引脚上出现超过两个机器周期以上的高电平时,即可产生复位的操作只要RST保持高电平,则MCS-5l循环复位只有当RST由高电平变低电平以后。MCS-51才从0000H地址开始执行程序。本系统采用按键复位方式的复位电路。 时钟电路设计MCS-51的时钟可以由两种方式产生。一种是内部方式,利用芯片内部的振荡电路;另外一种为外部方式。本论文根据实际需要和简便,采用内部振荡方式。MCS-51内部有一个用于构成振荡器的高增益反相放大器,引脚XTAI_l和XTAI_2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体或陶瓷谐振器一起构成一个自激振荡器。MCS-51虽然有内部振荡

9、电路,但要形成时钟,必须外接元件所以实际构成的振荡时钟电路。外接晶体以及电容Cl和C2构成并联谐振电路接在放大器的反馈回路中。对接电容的值虽然没有严格的要求,但电容的大小会影响振荡器频率的高低、振荡器的稳定性、起振的快速性和温度的稳定性。晶体频率可在1.2MHz12MHz之间任选,电容Cl和C2的典型值在20pF-100pF之间选择,考虑到本系统对于外接晶体的频率稳定性要求不高,所以采取比较廉价的12MHz陶瓷谐振器,根据调试电容选择30pF。 输入模块电路设计抢答器输入信号由八个小按键控制,当有键按下的时候,就产生了有效的输入信号,本文使用了上拉电阻把输入信号先嵌位在高电平。当有按键按下时便

10、使与这个按键相连的引脚变为低电平,产生一个低电平的输入信号。本模块由8个10K的电阻和8个按键构成。2.2.5 数据存储器的扩展电路AT89C51单片机外接数据RAM时,P2口输出存储器地址的高8位,PO口分时输出地址的低8位和传送指令字节或数据。PO口先输出低8位地址信号,在ALE有效时将它锁存到外部地址锁存器中,然后PO口作为数据总线使用,此处地址锁存器选用74LS373,实际电路图连接如图2-3所示。 图2-3数据存储器的扩展电路2.3 锁存显示电路 锁存部分采用串行并行八位输出锁存移位寄存器74LS595要显示字符,首先要把这个字符转换成相应的字形码,然后通过串行口发送到74LS595

11、,74LS595把申行口接收到的数据变为并行输出加到数码管上(提供a-dp的驱动)。本设计采用的是共阳极8段数码管显示器。显示部分采用动态扫描4 位LED显示接口电路,LED动态显示是单片机中应用最为广泛的一种显示方式,其接口电路是把所有显示器的8个笔划段a-dp 同名端并联在一起,而每一个显示器的公共极COM是各自独立地受I/O线控制,CPU的字段输出口送出字形码时,所有显示器由于同名端并连接收到相同的字形码,但究竟哪个显示器亮,则取决于COM端,而这一端是由I/O控制的,所以就可以自行决定何时显示哪一位了,在轮流点亮扫描过程中,每位显示器的点亮时间表是极为短暂的,但由于人的视觉暂留现象及发

12、光二极管的余辉将就尽管实际上各位显示器并非间时点亮,但只要扫描速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。该模块由共阳极LED数码管和2K的电阻组成,用来显示抢答器信号的具体路数的,数码管的两个接地端同时接电源,其余8个引脚分别单片机8个输出口连接,根据单片机引脚与数码管的连接关系,可以列出显示不同数字的段选码,从而准确的输出抢答路数。 图2-4 锁存显示电路原理图2.4 超限报警电路当定时抢答的时间已到,却没有选手抢答时,系统进行短暂报警已示本次抢答无效。报警信号通常有三种类型:闪光报警、鸣音报警、语音报警,本系统采用简单易行的声光报警电路。如图2-5所示报警电路,报警设备选

13、用压电式蜂鸣器,它约需要10mA的驱动电流,只需在其两条引线上加315V的直流电压,即可产生3KHz左右的蜂鸣声音,图中蜂鸣器的一端接在高电平+5V,另一端接Pl.0,在初态Pl.0始终输出高电平1,当需要报警时,程序对其端口清零即可,声音的长短可用延时程序控制实现。图中接入的发光二极管LED为超高线报警器,当P1.1端输出为低电平“0”时,二极管导通,灯亮发出报警信号。图2-5 报警电路第3节 系统的软件设计整个程序的设计思路如下:首先用进位标志C作为主持人按键的状态标志,C=O为可以开始抢答(如果需要也可用一个发光二极管将C的状态显示出来,只需将程序做小小修改即可);接下来开外部中断0:然

14、后是读取按键状态,只要有一个按键按下(引脚为高电平)并且C=0,则开始进入分析按键状态程序,用循环移位指令分析出是第几个按键按下,并将其放入P1口进行显示输出。上述程序相对来说很简单,首先它从硬件的微秒数量级处理速度上确保了不会同时按下2个按键,因此程序没有区分重复按键的部分,另外程序使用了外部中断,从而保证了主持人按键的权限是所有按键中权限最高的。图3-1所示为程序设计流程图。 Y N N Y Y N Y N开始(主持复位)电路初始化开始抢答显示剩余抢答时间有人抢答扬声器短暂报警扬声器发声显示选手号允许答题时间到调节允许抢答时间显示剩余抢答时间显示允许答题时间调节时间显示剩余答题时间允许抢答

15、时间到报警图3-1 程序流程图本抢答器的软件系统主要包括系统主程序设计、抢答信号的处理设计、键盘扫描子程序、键值处理子程序和显示子程序五部分。3.1 系统主程序设计主程序的功能主要是完成内部各寄存单元的初始化,对接口电路的初始化,内部定时器的初始化,中断的初始化及调用显示程序对初始状态的显示以及对外部信号的等待处理,也就是说完成前期的准备工作等待随时对外部信号进行响应。程序清单如下:OK EQU 20H ;抢答开始标志位RING EQU 22H ;响铃标志位ORG 0000HAJMP MAINORG 0003HAJMP INT0SUBORG 000BHAJMP T0INTORG 0013HAJ

16、MP INT1SUBORG 001BHAJMP T1INTORG 0040HMAIN: MOV R1,#30 ;初设抢答时间为30sMOV R2,#60 ;初设答题时间为60sMOV TMOD,#11H ;设置未定时器/模式1MOV TH0,#0F0HMOV TL0,#0FFH ;越高发声频率越高,越尖MOV TH1,#3CHMOV TL1,#0B0H ;50ms为一次溢出中断SETB EASETB ET0SETB ET1SETB EX0SETB EX1 ;允许四个中断,T0/T1/INT0/INT1CLR OKCLR RINGSETB TR1SETB TR0 ;一开始就运行定时器,显示FFF

17、.如果想重新计数,重置TH1/TL1就可以了3.2 抢答信号的处理设计当主持人按下开始抢答键后开始抢答,程序部分采用中断方式进行处理。在中断处理程序中完成相应操作,修改计时单元的数据并使红色指示灯亮。程序清单如下:START: MOV R5,#0BHMOV R4,#0BHMOV R3,#0BHACALL DISPLAY ;未开始抢答时候显示FFFJB P3.0,NEXT ;dddddddACALL DELAYJB P3.0,NEXT ;去抖动,如果开始键按下就向下执行,否者跳到非法抢答查询ACALL BARK ;按键发声MOV A,R1MOV R6,A ;送R1-R6,因为R1中保存了抢答时间

18、SETB OK ;抢答标志位,用于COUNT只程序中判断是否查询抢答MOV R7,#01H ;读抢答键数据信号标志,这里表示只读一次有用信号MOV R3,#0AH ;抢答只显示计时,灭号数AJMP COUNT ;进入倒计时程序,查询有效抢答的程序在COUNT里NEXT: JNB P1.0,FALSE1JNB P1.1,FALSE2JNB P1.2,FALSE3JNB P1.3,FALSE4JNB P1.4,FALSE5JNB P1.5,FALSE6JNB P1.6,FALSE7JNB P1.7,FALSE8AJMP START3.3 键盘扫描子程序对行列式键盘的扫描方法有两种。一为扫描法,对键

19、盘按行逐行扫描查询,其结构清晰但对处于最后行列的按键需经多次扫描; 一为反转法,它先使行全为零,读人列的状态暂存,然后使列全为零,读人行的状态保存,对两次保存数据进行查询即可得知按下键的行列数从而确定键值。在程序中采用反转法对键盘进行扫描。键盘扫描程序在确定键值后保存等待后续处理。程序清单如下:AAAA1 : MOV A,P1CJNE A,#0FFH,AA1 ;当不全为1时的数据为有效数据AA0: MOV 36H,A ;将有效数据送到36H暂存AJMP LOOP2AA1: DEC R7 AJMP AA03.4 键值处理子程序此子程序根据键盘扫描所取得的键值作出相应处理。在抢答时,只有数字键(代

20、表相应抢答分组) 18 按下有效,其它键按下无效。抢答成功,开始答题键按下给出相应信号指示。程序清单如下:TRUE1: ACALL BARKMOV A,R2MOV R6,A ;抢答时间R2送R6MOV R3,#01HCLR OK ;因为答题的计时不再查询抢答,所以就锁了抢答AJMP COUNTTRUE2: ACALL BARKMOV A,R2MOV R6,AMOV R3,#02HCLR OKAJMP COUNTTRUE3: ACALL BARKMOV A,R2MOV R6,AMOV R3,#03HCLR OKAJMP COUNTTRUE4: ACALL BARKMOV A,R2MOV R6,A

21、MOV R3,#04HCLR OKAJMP COUNTTRUE5: ACALL BARK MOV A,R2MOV R6,AMOV R3,#05HCLR OKAJMP COUNTTRUE6: ACALL BARK MOV A,R2MOV R6,AMOV R3,#06HCLR OKAJMP COUNTTRUE7: ACALL BARK MOV A,R2MOV R6,AMOV R3,#07HCLR OKAJMP COUNTTRUE8: ACALL BARK MOV A,R2MOV R6,AMOV R3,#08HCLR OKAJMP COUNT3.5 显示子程序此程序仅完成6位数据的动态显示,可显示数

22、字和代码。初始状态显示8位全熄灭。程序清单如下:DISPLAY:MOV DPTR,#DAT1 ;查表显示程序,利用P0口做段选码口输出/P2低三位做位选码输出,MOV A,R3MOVC A,A+DPTRMOV P2,#0feHMOV P0,AACALL DELAY2MOV DPTR,#DAT2MOV A,R5MOVC A,A+DPTRMOV P2,#0fdHMOV P0,AACALL DELAY2MOV A,R4MOVC A,A+DPTRMOV P2,#0fbHMOV P0,AACALL DELAY2RETDAT1:DB 00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H ;灭,1,2,3,4,5,6,7,8,9,灭,FDAT2:DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H;第一个为零,其他与上相同,因为十位如果为零显示熄灭结束语虽然这次课程设计没有真正做出抢答器,但是总结这次设计,收获还是很多。以前出于胆怯的心理,觉得单片机的知识非常难,但通过这次应用系统设计,在很大程度上提高了自己的独立思考能力和单片机的专业知识,也深刻了解写一篇应用系统的步骤和格式。不过,我所学的知识还仅仅是九牛一毛,远远够不上实际的要求,如何将其用于实践

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论