单片机的最简连线抢答器课程设计说明书.doc_第1页
单片机的最简连线抢答器课程设计说明书.doc_第2页
单片机的最简连线抢答器课程设计说明书.doc_第3页
单片机的最简连线抢答器课程设计说明书.doc_第4页
单片机的最简连线抢答器课程设计说明书.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

摘要随着我国经济和文化事业的发展,在很多公开竞争场合要求有公正的竞争裁决,诸如证券、股票交易及各种智力竞赛等,因此出现了抢答器。抢答器作为一种工具,已经广泛应用于各种智力和知识竞赛场合。本设计以八路智力竞赛抢答器为基本概念,从实际应用出发,利用电子设计自动化( EDA)技术,用数字、模拟电子器件设计具有扩充功能的抢答器。该抢答器的设计利用Multisim11完成了原理图设计和电路仿真,具有数字显示、倒计时显示、编码译码功能,应用效果良好。关键词:电子设计自动化;数字电子技术;抢答器;仿真AbstractAlong with our country economic and cultural development of the cause, competition situation requires a fair competition award, such as securities, stock trading and various intelligence contest, hence the responderResponder is a tool that has been widely used in various intelligence and knowledge competitions occasions. The design to eight-way quiz Responder basic concepts, from the practical application, the use of electronic design automation (EDA) technology, with digital, analog electronics design extension of the answering device. The design of the Responder use Multisim11 completed the schematic design and circuit simulation, with digital display, countdown shows, coding and decoding functions, with good results.Key words: EDA; digital electronic technology; Responder; Simulation单片机的最简连线抢答器一、实验目的通过单片机的最简连线抢答器的设计实验,要求学生回顾所学单片机的基础理论和基础实验,掌握组合电路、时序电路、编程器件和任意集成电路的综合使用及设计方法,熟悉掌握优先编码器、触发器、计数器、单脉冲触发器、555电路、译码/驱动电路的应用方法,熟悉掌握时序电路的设计方法。达到数字实验课程大纲所要求掌握的基本内容。二、设计要求与内容2.1设计要求 抢答成功和违规抢答均可LED显示; 抢答键的权目为8个; 抢答LED显示延时5S; 抢答信号处理过程分为有效、未抢答、违规。2.2设计内容(1)抢答器一般是由很多电路组成的,线路复杂,可靠性不高,功能也比较简单,特别是当抢答路数很多时,实现起来就更为困难。因此我们设计了以单片机为核心的新型智能的抢答器,在保留了原始抢答器的基本功能的同时又增加一系列的实用功能并简化其电路结构。(2)抢答控制:设计AN0AN7为8个抢答键。P0.0P0.7为8路抢答信号输入端。当有抢答键按下时,对应输入端为低电平“0”反之为高电平“1”。AN8为抢答启动键。(3)显示控制:违规抢答信号和第一有效抢答信号都由LED显示。三、设计及原理3.1 总体方案设计3.1.1 设计思路本题的根本任务是准确判断出第一抢答者的信号并将其锁存。实现这一功能可选择使用触发器或锁存器等。在得到第一信号之后应立即将电路的输入封锁,即使其他组的抢答信号无效。同时还必须注意,第一抢答信号应该在主持人发出抢答命令之后才有效。当电路形成第一抢答信号之后,用编码、译码及数码显示电路显示出抢答者的组别,也可以用发光二极管直接指示出组别。在主持人没有按下开始抢答按钮前,参赛者的抢答开关无效;当主持人按下开始抢答按钮后,开始进行30秒倒计时,此时,若有组别抢答,显示该组别并使抢答指示灯亮表示“已有人抢答”;当计时时间到,仍无组别抢答,则计时指示灯灭表示“时间已到”,主持人清零后开始新一轮抢答。、3.1.2 总电路框图图 3.1总电路框图3.2 各模块设计方案及原理说明3.2.1 抢答显示模块此部分电路主要完成的功能是实现8路选手抢答并进行锁存,同时有相应发光二极管点亮和数码显示。使用优先编码器 74LS148 和锁存器 74LS297 来完成。该电路主要完成两个功能:一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号(显示电路采用七段数字数码显示管);二是禁止其他选手按键,其按键操作无效。在使用传统的数码管显示。数码管具有:低能耗、低损耗、低压、寿命长、耐老化、防晒、防潮、防火、防高(低)温,对外界环境要求低,易于维护,同时其精度高,称量快,精确可靠,操作简单。数码显示是采用BCD编码显示数字,程序编译容易,资源占用较少。 静态显示,电路图中所示。显示器由9个共阳极数码管组成。输入只有两个信号,它们是串行数据线DIN和移位信号CLK。9个串/并移位寄存器芯片74LS148首尾相连,每片的并行输出作为LED数码管的段码74LS148的引脚图如图3-2所示74LS148为8位串入并出移位寄存器,1、2为串行输入端,Q0-Q7为并行输出端,CLK为移位时钟脉冲上升沿移入一位;MR为清零端,低电平时并行输出为零。图3.2 74LS148引脚图4LS148的输入端和输出端低电平有效。是输入信号,为三位二进制编码输出信号,1时,编码器禁止编码,当0时,允许编码。是技能输出端,只有在0,而均无编码输入信号时为0。为优先编码输出端,在0而的其中之一有信号时,0。各输入端的优先顺序为:级别最高,级别最低。如果0(有信号),则其它输入端即使有输入信号,均不起作用,此时输出只按编码,000。优先编码被广泛用于计算机控制系统中,当有多个外设申请中断时,优先编码器总是给优先级别高的设备先编码。图3.3译码显示电路进制译码器是将输入的二进制代码的各种状态按特定含义翻译成对应输出信号的电路。也称为变量译码器。若输入端有n位,代码组合就有2n个,当然可译出2n个输出信号。显示译码器由译码输出和显示器配合使用,最常用的是BCD七段译码器。其输出是驱动七段字形的七个信号,常见产品型号有74LS48、74LS47等。字符显示器:分段式显示是将字符由分布在同一平面上的若干段发光笔划组成。电子计算器,数字万用表等显示器都是显示分段式数字。而LED数码显示器是最常见的。通常有红、绿、黄等颜色。LED的死区电压较高,工作电压大约1.53V,驱动电流为几十毫安。74LS47译码驱动器输出是低电平有效,所以配接的数码管须采用共阳极接法;而74LS48译码驱动器输出是高电平有效,所以,配接的数码管须采用共阴极接法。数码管常用型号有BS201、BS202等。共阴式LED数码管,使用时,公阴极接地,7个阳极ag由相应的BCD七段译码器来驱动。 3.2.2 倒计时电路图 3.4 倒计时模块原理图该部分主要由555 定时器秒脉冲产生电路、十进制同步加减计数器74LS192 减法计数电路、74LS48 译码电路和 2 个 7 段数码管即相关电路组成。完成的功能是当主持人按下开始抢答按钮后,进行30s倒计时,到0s时倒计时指示灯亮。当有人抢答时,计时停止。两块74LS192 实现减法计数,通过译码电路 74LS48 显示到数码管上,其时钟信号由时钟产生电路提供。74LS192 的预置数控制端实现预置数30s,计数器的时钟脉冲由秒脉冲电路提供。按键弹起后,计数器开始减法计数工作,并将时间显示在共阴极七段数码显示管上,当有人抢答时,停止计数并显示此时的倒计时时间;如果没有人抢答,且倒计时时间到时, 输出低电平到时序控制电路,控制报警电路报警,同时以后选手抢答无效。3.2.3硬件模块方案 主控制器模块:采用AT89C51单片几机控制 抢答器显示模块:数码管显示 电源方案的选择:采用三端稳压器电路 抢答器键盘模块:独立式键盘 计分器显示模块:采用带有锁存功能的移位寄存器74LS595芯片 计分器键盘模块:行列式键盘 3.2.4计分器的电路设计 主控制器采用AT89C51单片机作为微处理器,AT89C51是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,片内含4K bytes的可反复擦写的Flash只读程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash 存储单元。 计分器的工作原理是采用最小系统,用4x4键盘来输入是选手需要加减进行分数的加减输入。主板上的6个数码显示,加几分的数,按确定键后分数值从串口p3.0,p3.1传到计分器显示模块上再通过数码管驱动模块显示原理图如图3-5所示图3.5计分器原理图3.2.5 抢答器的电路设计抢答器的工作原理是采用单片机最小系统,用查询式键盘进行抢答。通过抢答按键模块,连接按键进行抢答。其工作原理为: 主持人按清零键后,选手可按键抢答,单片机锁存信号,屏蔽外界信号。串显示编号,并有丁冬声输出。抢答选手的编号一直保持到主持人将系统清除为止。抢答器原理如图3-6。如图3.6抢答器原理图四、程序流程4.1 软件设计4.1开始程序流程图4.2开始抢答程序流程图4.3判断犯规程序流程图4.4答题程序流程图4.5加减分流程图五、电路仿真5.1 抢答电路第2路抢答器抢答后的显示,同时发光二极管指示灯发光,如下图:图 5.1 抢答电路仿真CTR端的示波器波形:如图,拨动开关后,CTR上跳,有人抢答时,CTR下跳图 5.2 CTR端仿真曲线5.2 倒计时电路倒计时开始后开始计数,同时倒计时指示灯亮直到倒数到0秒熄灭,如下图:图 5.3 倒计时电路仿真在BO1和BO2端放置示波器,波形如图:计时器个位减到0时,BO1出现一个下跳;计时器十位减到0时,BO2出现一个下跳。图 5.4 BO1端仿真曲线图 5.5 BO2端仿真曲线六、收获、体会和建议这次课程设计的电路是比较复杂的。虽然以前在模电、Protel课程设计中接触过一些电子电路,但在初期还是感到无从下手。在整个电路的设计过程中,花费时间最多的是各个单元电路的连接及电路的细节设计上,在多种方案的选择中,仔细比较分析其原理以及可行的原因,最后还是在通多次对电路的改进,终于使整个电路可稳定工作。设计过程中,深刻的体会到在设计过程中,需要反复实践,其过程很可能相当烦琐,有时花很长时间设计出来的电路还是需要重做,那时心中未免有点灰心,有时还特别想放弃,此时更加需要静下心,查找原因。设计思路是最重要的,只要你的设计思路是成功的,那你的设计已经成功了一半。因此我们应该在设计前做好充分的准备,像查找详细的资料,为设计的成功打下坚实的基础。 设计单元电路阶段,这个阶段可以说是考察数电书本知识的阶段。所有的设计方法还有步骤在数电书上都有,而且还有例题。这个阶段遇到的主要问题就是以前的知识忘记不少,所以做设计的时候要常随手翻阅课本,这个阶段的难度也不是很大,一般翻课本就可以找到答案并解决问题。 实验阶段可以说是这次设计中最重要的部分,因为以前的只是理论而不是真正的实体。所以说它是最重要的。实验阶段遇到的问题有:对软件不熟悉;对实验过程中信号的测量知识学习很少;因为各个模块是分开做而后又组装到一起的,所以兼容性不是很好(也就是不能融合为一个整体,部分工作能行但是接到一起就会出现问题);针对以上几个问题我们作出了以下的“对策”:软件不熟悉,就借来参考书,一步一步的对着学,而且老师给的资料上也有软件的使用说明,所以随着接触的增加软件也就越来越熟悉,这方面的问题不是太难因为一边理论一边学习正好是学习的好方法,而且也学的特别快。另外就是要熟练地掌握课本上的知识,这样才能对试验中出现的问题进行分析解决。这是应用课本知识的大好时机。总之,通过这次练习有了很多收获。在摸索该如何设计电路使之实现所需功能的过程中,特别有趣,培养了我的设计思维,增强了动手能力。在改进电路的过程中,同学们共同探讨,最后的电路已经比初期设计有了很大提高。在体会到了设计电路的艰辛的同时,更体会到成功的喜悦和快乐。电路的改进方案在计时电路中加入运放和蜂鸣器运放外接12V电源并单独接地,抢答时间结束时可以发出“滴”的声音表示报警。 附录附:单片机程序计分器显示程序(附1)/抢答器加减记分显示程序2 DBUF EQU 30H ;三位显示缓冲区首址 ORG 0000H AJMP MAIN ORG 0030HMAIN: MOV SP,#60H ACALL KEYSCAN ;调用键盘扫描子程序判断是加分或减分 CJNE A,#0EH,NEXT2 ;不是加分键,则转移判断是减分键?NEXT1: ACALL KEYSZ ;是加分键,调用键盘设置子程序 ACALL DISPLAY ;调用串口静态显示子程序 SJMP MAINNEXT2: CJNE A,#0FH,MAIN ;都不是,则转MAIN AJMP NEXT1 ;是减分键,调用键盘设置子程序 ORG 0100HKEYSZ: PUSH PSW ;键盘设置子程序 PUSH ACC SETB RS1 MOV R0,#DBUF ;R0指向显示缓冲区首地址 MOV R7,#3 ;设置键盘输入位数L1: CLR RS1 ACALL KEYSCAN ;调用键盘扫描子程序取按下键的键号 SETB RS1 CJNE A,#0AH,L2 ;键入数合法性检测(是否大于9)L2: JNC L1 ;大于9,重新键入 MOV R0,A ;键号送显示缓冲区 INC R0 DJNZ R7,L1 ;3位数值输入完否?未完继续,否则返回 POP ACC POP PSW CLR RS1 RETKEYSCAN:MOV R3, #0F7H ;扫描初值(P1.3=0) MOV R1, #00H ;取码指针L3: MOV A, R3 ;开始扫描 MOV P1, A ;将扫描值输出至P1 MOV A, P1 ;读入P1值,判断是否有键按下 MOV R4, A ;存入R4,以判断按键是否放开 SETB C ;C=1 MOV R5, #04H ;扫描P1.4P1.7L4: RLC A ;将按键左移一位 JNC KEYIN ;判断C=0?有键按下则C=0,跳至KEYIN INC R1 ;C=1,则无键按下,将取码指针值加1 DJNZ R5, L4 ;4列扫描完毕了吗? MOV A, R3 ;扫描值载入 SETB C ;C=1 RRC A ;扫描下一行(P1.3P1.0) MOV R3, A ;存回扫描寄存器 JC L3 ;C=1?是则P1.0尚未扫描到 SJMP KEYSCAN ;C=0,则四行已扫描完毕KEYIN: MOV R7, #60 ;延时消除抖动D2: MOV R6, #248 ; DJNZ R6, $ ; DJNZ R7, D2 ;D3: MOV A, P1 ;延时后再读入P1值 XRL A, R4 ;与上次读入值作比较 JZ D3 ;A=0,表示按键未放,等待按键释放 MOV A, R1 ;按键已放开,取码指针载入累加器 MOV DPTR,#TABLE ;键盘码表首地址送DPTR MOVC A, A+DPTR ;查键码 RET ;返回TABLE: DB 00H,01H,02H,03H ;键码安排表与键盘相同 DB 04H,05H,06H,07H DB 08H,09H,0AH,0BH DB 0CH,0DH,0EH,0FH ORG 0200HDISPLAY:MOV R0, #DBUF ;串口静态显示子程序 MOV R2,#3 ;显示3位数码 MOV DPTR,#SEGTAB;DISP: MOV A,R0 ; MOVC A,A+DPTR ;取字段码 MOV SCON,#0 ;置串口工作方式0 MOV SBUF,A ;开始发送 JNB TI,$ ;等待发送完毕 CLR TI ;发送完毕,标志位清零 INC R0 ;缓冲单元地址增1 DJNZ R2,DISP ;三位数码发送完否? RET ;发送完毕,则返回SEGTAB: DB 0FCH,60H,0DAH,0F2H ;0,1,2,3(共阳极字段码表) DB 66H,0B6H, 0BEH,0E0H ;4,5,6,7 DB 0FEH,0F6H,0EEH,3EH ;8,9,A,B DB 9CH,7AH,9EH,8EH ;C,D,+,- ENDDBUF EQU 30H ;三位显示缓冲区首址ORG 0000HAJMP MAINORG 0030HMAIN: MOV SP,#60H ACALL KEYSCAN ;调用键盘扫描子程序判断是加分或减分 CJNE A,#0EH,NEXT2 ;不是加分键,则转移判断是减分键?NEXT1: ACALL KEYSZ ;是加分键,调用键盘设置子程序ACALL DISPLAY ;调用串口静态显示子程序SJMP MAINNEXT2: CJNE A,#0FH,MAIN ;都不是,则转MAIN AJMP NEXT1 ;是减分键,调用键盘设置子程序ORG 0100HKEYSZ: PUSH PSW ;键盘设置子程序 PUSH ACC SETB RS1 MOV R0,#DBUF ;R0指向显示缓冲区首地址 MOV R7,#3 ;设置键盘输入位数L1: CLR RS1 ACALL KEYSCAN ;调用键盘扫描子程序取按下键的键号 SETB RS1 CJNE A,#0AH,L2 ;键入数合法性检测(是否大于9)L2: JNC L1 ;大于9,重新键入 MOV R0,A ;键号送显示缓冲区 INC R0 DJNZ R7,L1 ;3位数值输入完否?未完继续,否则返回 POP ACC POP PSW CLR RS1 RETKEYSCAN: MOV R3, #0F7H ;扫描初值(P0.3=0) MOV R1, #00H ;取码指针L3: MOV A, R3 ;开始扫描 MOV P0, A ;将扫描值输出至P1 MOV A, P0 ;读入P1值,判断是否有键按下 MOV R4, A ;存入R4,以判断按键是否放开 SETB C ;C=1 MOV R5, #04H ;扫描P1.4P1.7L4: RLC A ;将按键左移一位 JNC KEYIN ;判断C=0?有键按下则C=0,跳至KEYIN INC R1 ;C=1,则无键按下,将取码指针值加1 DJNZ R5, L4 ;4列扫描完毕了吗? MOV A, R3 ;扫描值载入 SETB C ;C=1 RRC A ;扫描下一行(P1.3P1.0) MOV R3, A ;存回扫描寄存器 JC L3 ;C=1?是则P1.0尚未扫描到 SJMP KEYSCAN ;C=0,则四行已扫描完毕KEYIN: MOV R7, #60 ;延时消除抖动D2: MOV R6, #248 ; DJNZ R6, $ ; DJNZ R7, D2 ;D3: MOV A, P0 ;延时后再读入P1值 XRL A, R4 ;与上次读入值作比较 JZ D3 ;A=0,表示按键未放,等待按键释放 MOV A, R1 ;按键已放开,取码指针载入累加器 MOV DPTR,#TABLE ;键盘码表首地址送DPTR MOVC A, A+DPTR ;查键码 RET ;返回TABLE: DB 00H,01H,02H,03H ;键码安排表与键

温馨提示

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

评论

0/150

提交评论