单片机课程设计8051系列单片机控制的八路智力抢答器设计.doc
目录1 系统设计41.1 设计任务与要求41.2 方案比较与论证41.3 8051单片机系统说明51.3.1 8051单片机简介51.3.2 80C51的时序图61.4 8051引角及其功能61.5 设计抢答器的目的与意义72 主要元器件分析82.1 80C51芯片82.2 数码管83 硬件设计电路(使用PROTEL软件设计)93.1 单元电路设计93.1.1 单片机最小系统单元设计93.1.2 控制电路设计103.2 总电路设计123.3 PROTEL绘制的PCB图134 程序设计144.1、程序流程144.2、源程序介绍175 功能仿真23致 谢27摘 要抢答器是一种应用非常广泛的设备,在各种竞猜、抢答场合中,它能迅速、客观地分辨出最先获得发言权的选手。早期的抢答器只由几个三极管可控硅、发光管等组成,能通过发光管的指示辨认出选手。现在大多数抢答器均使用单片机和数字集成电路,并增加了许多新的功能,如选手号码显示、抢按器或抢按后的计时、选手得分显示等功能。本文介绍了用8051系列单片机控制的八路智力抢答器。该抢答器除具有基本的抢答功能外,还具有定时、计时和报警功能。关键字:抢答器 ;单片机;报警引 言在知识比赛与娱乐竞赛中,特别是做抢答题目的时候,在抢答过程中,为了知道哪一组或哪一位选手先答题,必须要设计一个系统来完成这个任务。如果在抢答中,靠视觉是很难判断出哪组先答题。利用单片机系统来设计抢答器,使以上问题得以解决,即使两组的抢答时间相差几微秒,也可分辨出哪组优先答题。本文主要介绍了单片机抢答器设计及工作原理,以及它的实际用途。系统工作原理本系统采用8051单片机作为核心。控制系统的四个模块分别为:存储模块、显示模块、语音模块、抢答开关模块。该抢答器系统通过开关电路八个按键输入抢答信号;利用蜂鸣器完成语音的录放功能;利用存储程序;利用一个数码管来完成显示功能。工作时,用按键通过开关电路输入各路的抢答信号,经单片机的处理,输出控制信号,控制数码管和蜂鸣器工作。在数码管上显示哪一组先答题,并通过数码管显示选手的序号以及开始倒计时,从而实现整个抢答过程。“一种基于单片机的抢答器”与一般抢答器有四点不同:首先,抢答器反应异常灵敏。据了解,此抢答器的反应时间仅为几十微秒,大大缩短了抢答器的反应时间,使抢答器可以迅速高效的工作。其次,抢答质量有保证。在抢答过程中,当有人首先枪答成功的同时,会伴有响亮的声音提示,并且,不同的抢答器会有不同的声音,为比赛更加公正透明化提供了依据。第三,抢答器设置了复位键。抢答的活动常常会有几个环节构成,为了保证在每个环节中枪答器都可以快速高效的运作,使得抢答更加顺利的进行,此类抢答器设置了复位键。最后,抢答器利用单片机技术。利用这一技术,保证了抢答器拥有上述功能的同时,提高了抢答器的寿命与质量,让抢答器可以更加实用的同时,提高了抢答器的技术含量。1 系统设计1.1 设计任务与要求设计并制作一个基于单片机8051最简连线抢答器1、基本要求<1>具有八路输入,能够识别最先输入的信号,显示选号,并有声音提示。<2>对回答问题所用的时间进行倒计时显示,并提示结束时间报警。<3>具有抢答开关功能,按下该键后系统进入抢答状态。<4>主持人能够及时对电路进行屏幕清零,进行下一题的抢答2、发挥部分<1>在按下抢答开关之前的信号判断为提前抢答,显示选号,声音提示,连续达到定次数后限制其抢答。<2>具有设置上述提及的时间、次数等参数的功能。 1.2 方案比较与论证方案一:系统各部分采用中小规模集成数字电路,用机械开关按钮作为控制开关,完成抢答输入信号的触发。该方案的特点是中小规模集成电路应用技术成熟,性能可靠,能方便地完成选手抢答的基本功能,但是由于系统功能要求较高,所以电路连接集成电路相对较多,而且过于复杂,并且制作过程工序比较烦琐,使用不太方便。 方案二:该系统采用8051系列单片机80C51作为控制核心,该系统可以完成运算控制、信号识别以及显示功能的实现。由于用了单片机,使其技术比较成熟,应用起来方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。整个系统具有极其灵活的可编程性,能方便地对系统进行功能的扩张和更改。MCS-51单片机特点如下: <1>可靠性好:单片机按照工业控制要求设计,抵抗工业噪声干扰优于一般的CPU,程序指令和数据都可以写在ROM里,许多信号通道都在同一芯片,因此可靠性高,易扩充。<2>单片机有一般电脑所必须的器件,如三态双向总线,串并行的输入及输出引脚,可扩充为各种规模的微电脑系统。 <3> 控制功能强:单片机指令除了输入输出指令,逻辑判断指令外还有更丰富的条件分支跳跃指令。方案比较及其选用依据,显然方案二比方案一简单的多,不但从性能上优于方案一,而且在使用上及其功能的实现上都较方案一简洁,并且由于单片机具有优越的高集成电路性,使其工作速度更快、效率更高。另外80C51单片机采用12MHz的晶振,提高了信号的测量精度,并且使该系统可以通过软件改进来扩张功能。而方案一采用了中小规模集成电路,有其复杂的电路性能,从而可能会使信号的输入输出产生延时及不必要的误差。依此依据选择方案二比较适合。总原理图见附录2。其原理框图如下:抢答按扭优先编码电路锁存器译码电路译码显示主持人控制开关控制电路报警电路秒脉冲产生电路定时电路译码电路显示电路图1-1 抢答器的原理框图1.3 8051单片机系统说明1.3.1 8051单片机简介8051系列单片机是国际上流行多年的代表机型,是国内高校教学和初学者入门首选的主流机型,也是在各种技术期刊和专业书籍中出现频率最高的经典机型。本文以标准80C51为模型,并适当兼顾8051系列的共性和常用型号的特性。内容主要包括:硬件架构、ROM、RAM、指令系统、汇编程序基础和汇编语言工具链、并行端口、定时器、中断逻辑、复位逻辑、时钟电路、电源电路等功能电路的结构和工作原理,以及片内程序存储器编程原理。1.3.2 80C51的时序图 时序图如图1-2所示:图1-2 80C51的时序图时序控制电路:主持人将控制开关拨到“开始”位置时,扬声器发声,抢答电路和定时电路进入正常抢答工作状态。当参赛选手按动抢答键时,扬声器发声,抢答电路和定时电路停止工作。当设定的抢答时间到,无人抢答时,扬声器发声,同时抢答电路和定时电路停止工作。图1-3 时序控制电路1.4 8051引角及其功能电源端Vcc 40脚 接地端GND 20脚 图1-4 80C51的引脚时钟信号输入端 XTAL2 18脚时钟电路引脚 XTAL1 19脚 复位信号输入端RST 9脚 ,高电平有效 地址锁存允许信号端ALE 30脚 ,6分频振荡周期, PSEN 29脚 程序存储器允许输出信号端 用于读取外部的程序存储器,每个机器周期中两次有效。EA 31脚 外部程序存储器地址允许输入,接高电平时,执行片内程序存储器的内容,当PC超过0fffH时,自动变0。接低电平时,访问外部程序存储器。P0 3932脚 8位准双向I/O,在做输入时,要先向口地址80H写1,此时由内部上拉提成高阻态。P1 18脚 8位准双向I/O口1.5 设计抢答器的目的与意义通过这次课程设计,掌握80C51单片机的原理,了解简单多功能抢答器组成原理,初步掌握多功能抢答器的调整及测试方法,提高动手能力和排除故障的能力。同时通过本课题设计与装配、调试,提高自己的动手能力,巩固已学的理论知识,建立单片机理论和实践的结合,了解多功能抢答器各单元电路之间的关系及相互影响,从而能正确设计、计算定时计数的各个单元电路。初步掌握多功能抢答器的调整及测试方法,提高动手能力和排除故障的能力。设计思路:抢答器是一种应用非常广泛的设备,在各种竞赛、抢答场合中,它能迅速、客观地分辨出最先获得发言权的选手。早期的抢答器只由几个三极管、可控硅、发光管等组成,能通过发光管的指示辩认出选手号码。现在大多数抢答器均使用单片机(如MCS-51型)和数字集成电路,并增加了许多新功能,如选手号码显示、抢按前或抢按后的计时、选手得分显示等功能。 本课题利用80C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间和选手号码。用开关做键盘输出,蜂鸣器发生提示。系统达到要求:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;抢答限定时间和回答问题的时间可设在1-99s设定;可以显示是哪位选手有效抢答和无效抢答,正确按键后有音乐提示;抢答时间和回答问题时间倒记时显示,时间完后系统自动复位;按键锁定,在有效状态下,按键无效非法。而基于单片机的竞赛抢答器能解决上述的各个问题。2 主要元器件分析2.1 80C51芯片80C51内含8位CPU;广泛的布尔处理能力:32根双向且分别可寻址的I/O线;128字节RAM;2个16位定时器/计数器;全双工异步串行口(UART);2个中断优先级;5个中断源;片内有时钟震荡器;4K字节片内ROM程序储存器;可寻址的64K字节外部程序储存空间;可寻址得64K字节外部数据储存空间;无片内ROM的8051形式是8031,EPROM型是751,8051AH是采用HMOS工艺制造,所以其管脚与8051兼容。2.2 数码管数码管有8个输入接口和一个共阴极端,8个输入端分别接A,B,C,D,E,F,G七个显示管和一个小数点端DP,数码管引脚图如图2-1。数码管代替二极管,也就是用一位数字的显示来代替两位的二极管,完成同样的故障显示功能。数码管可以把我们需要的POST代码显示出来,在PC的操作系统引导工作完成前,数码管显示的代码总处于变化状态。 图2-1 数码管引脚图1、数码管使用条件(1)段及小数点上加限流电阻。(2)使用电压:段:根据发光颜色决定;小数点:根据发光颜色决定。(3)使用电流:静态:总电流80mA(每段10mA);动态:平均电流4-5mA,峰值电流100mA。2、数码管使用注意事项说明(1)数码管表面不要用手触摸,不要用手去弄引角;(2)焊接温度:260度;焊接时间:5s;(3)表面有保护膜的产品,可以在使用前撕下来。3 硬件设计电路(使用PROTEL软件设计) 3.1 单元电路设计3.1.1 单片机最小系统单元设计根据上面的方案分析,本设计的硬件部分可缺的震荡、复位电路构成了本设计的接线图, 控制系统主要由单片机应用电路、存储器接口电路、显示接口电路,抢答电路,主持人控制电路等组成。其中单片机8051是系统工作的核心,它主要负责控制各个部分协调工作. 所需元件:该系统的核心器件是8051。在其外围接上复位电路、上拉电阻、数码管、按钮及蜂鸣器。元件为:晶振X1、电容C1、C2、 电阻RES、外部中断0,P3.2由裁判控制,是抢答开始键。P1.0-P1.7是8组抢答的输入口, P2.0-P2.3口为数码管的段选口,位选口用的是P0.0-P0.7输出,P3.7口为蜂鸣器输出口。P0口和P1口要分别接上上拉电阻。设计如图3-1所示图3-1 单片机基本电路3.1.2 控制电路设计1) 八个开关按钮电路图3-2:图3-2 按钮电路 2)蜂鸣器电路图3-3所示:图3-3 蜂鸣器电路该电路是由单片机P3.7端口输出信号经过三极管驱动放大后使蜂鸣器发出声音。3) 数码管显示电路,如图3-4所示:图3-4 数码管显示电路该数码管电路使用的是共阳数码管,通过P0.0-P0.7控制数码管的A-G的各个相应段,P2.0-P2.3输出信号通过三极管功率放大后控制哪一个数码管显示。4) 主持人控制电路,如图3-5所示: 图3-5 主持人控制电路当主持人宣布答题开始时,主持人按下迅速S11,如图可使P3.7端口的电压拉低,相当是给单片机一个中断,单片机开始倒计时。3.2 总电路设计 本系统程序设计采用T0的溢出中断来实现倒计时定时,采用T0的溢出中断来使喇叭发出一定频率的声音;用一个两位LED来显示倒计时,另外用一个两位LED显示选手号。其中,倒计时显示的两位LED用的是共阴极接法,选手号显示LED用的是共阴极接法;并且通过动态显示法(即位选控制)来实现四个LED的同时显示。如附录1所示。3.3 PROTEL绘制的PCB图如图,我们将绘制出的PCB图打印出来如图所示,最后就可以经过自己刷板或者工厂刷板后得到我们的印制电路板了。 图3-6 抢答器PCB图 图3-7 印制板底部布线图 图3-8 印制板元器件面摆放图4 程序设计4.1、程序流程由方案分析知,本设计涉及到的功能子程序包括:查询程序、非法抢答处理程序、INT0(调抢答时间)、INT1(调回答时间)、倒计时程序、正常抢答处理程序、犯规抢答程序、显示程序、发声程序、T0溢出中断(响铃程序)、T1溢出中断(计时程序)。由设计的硬件部分看到,本设计采用P3.2、P3.3分别接抢答时间调节和答题时间调节按钮,即通过外部中断0、外部中断1分别控制抢答、答题时间的调整。因此,设计的软件部分可分为工作模块、外部中断0模块、外部中断1模块。对流程图的分析,也分三部分来介绍。1) 工作时(非调节时间时)的流程平时正常工作时,程序的流程图绘制如图4-1: 图4-1 抢答器工作流程图 对工作流程图中的某些部分解释如下:初始化部分:包括对定时计数器的工作方式、初始化数值的设置,还包括对抢答时间与答题时间的预设,另外,还应对外部中断0、外部中断1进行开放。抢答倒计时:当主持人按下抢答键后,系统进入中断程序,开始计时,本次设计为10S。 犯规程序部分:包括对犯规选手号的显示、报警器的间断工作,程序停止运行,并显示犯规的选手号码。另外,由于在设计要求主持人能随时对工作过程终止,因此,要不断查询停止键的状态,一旦按下,便回到初始化后的状态;在倒计时过程中设定5S报警,因此程序在运行中要不断与5S比较,当小于5S时,还需调用发声程序;小于5S后, 又需要不断将与0较,当其等于零时,立即返回。2)外部中断0(抢答时间调整)流程外部中断0(抢答时间调整)的流程图见图4-2: 图4-2 中断程序流程图一旦因P3.2对应键的按下,便进入INT0中断过程。程序开始对答题选手进行时间倒计时,本设计为10S倒计时,当时间还剩5S时,调入报警子程序,驱动蜂鸣器发声。另外,在中断过程中还需要不时对停止按钮进行查询,一旦发现其按下,立即中断返回。由于本中断过程在返回前一直是循环执行的,因此,只需要在每次循环末查询一次即可,如流程图所示。3)答题程序流程 图4-3 答题流程图 与抢答时间调整类似,一旦因P3.2对应的按钮按下,便进入INT0中断过程。通过不断对P3.2(减1s)进行不断的查询,来对答题时间进行调整,同上,在中断过程中,也还需要不时对停止按钮进行查询,一旦发现其按下,立即中断返回。至此,流程图已介绍完毕,下面将对设计的源程序进行介绍:4.2、源程序介绍根据流程图中的介绍,本设计的源程序除主程序外,好包括查询程序、非法抢答处理程序、抢答时间调整程序、答题时间调整程序、倒计时程序、正常抢答处理程序、犯规抢答程序、显示程序、发声程序、T0溢出中断程序、T1溢出中断中断程序。下面将对下面将对其一一介绍。完整的源程序参见附录2a)主程序:包括对两个定时计数器的初始化、开中断、抢答时间和答题时间的预设等相关设置:MAIN: MOV TMOD,#11H ;设定时器计数器为模式1 MOV TH0,#0F0H MOV TL0,#0FFH ;设置喇叭的发声频率 MOV TH1,#3CH MOV TL1,#0B0H ;设置T1的溢出中断周期为50ms SETB ET0 ;开放T0 SETB EX0 ;开放外部中断0 CLR OK ;OK为开始键按下的标志位(为1时表示按下) CLR RING ;RING为响铃的标志位 SETB TR0 ; 一开始就运行定时器,以开始显示10.如果想重新计数,重置TH1/TL1就可以了MOV R1,#10 ;初设抢答时间为10s MOV R2,#20 ;初设答题时间为20s b)查询程序:对开始键、停止键、时间控制键、八路抢答键进行查询,若为按下,则消抖后,转入相应功能子程序(或调用某子程序):START: MOV R5,#00H ;倒计时个位赋初值0 MOV R4,#01H ;倒计时十位赋初值1 MOV R3,#0BH ;选手号赋初值F ACALL DISPLAY ;未开始抢答时,显示10 JB P3.2,NEXT ;开始键未按下(值为1),则跳至NEXT ACALL DELAY ;按下,则调显示子程序,同时也起到延时作用 JB P3.2,NEXT ;去抖动,若开始键未按下,则跳到非法抢答查询 ACALL BARK ;按键发声 MOV A,R1 MOV R6,A ;送R1->R6,因为R1中保存了抢答时间 SETB OK ;抢答标志位,用于COUNT只程序中判断是否查询抢答 MOV R7,#01H ;读抢答键数据信号标志,这里表示只读一次有用信号 MOV R3,#0AH ;抢答只显示计时,灭号数 AJMP COUNT ;进入倒计时程序,"查询有效抢答的程序"在COUNT里面NEXT: JNB P1.0,FALSE1 ;下面为查询是否有选手犯规,是则跳入非法抢 JNB P1.1,FALSE2 ;答处理程序 JNB P1.2,FALSE3 JNB P1.3,FALSE4 JNB P1.4,FALSE5 JNB P1.5,FALSE6 JNB P1.6,FALSE7 JNB P1.7,FALSE8 AJMP START c) 非法抢答处理程序 随着查询程序,若在查询程序中发现有选手提前抢答,则程序转到非法抢答处理程序开始执行。比如,检测到选手1犯规,则执行以下语句:FALSE1: MOV R3,#01H ;送选手号 AJMP ERROR ;转犯规抢答程序按照以上方法,可以得到FALSE2至FALSE8的编写方法,可参见附录源程序中的非法抢答处理程序部分。 d) INT0处理程序(抢答时间程序)当P3.2按下后,程序转入INT0中断处理程序,程序流程参见图四INT0流程图。另外,在调用显示程序前,还需要对当前抢答时间进行十六进制十进制转换,将个位存入R4,十位存入R5,选手号不显示(R3存入0AH),具体编写参见附录源程序。e) 倒计时程序这里的倒计时程序包括抢答倒计时和答题倒计时,为了编写方便,最后五秒的倒计时提示也包含在本部分。程序中,首先要对T0溢出中断次数清零(一次中断为50ms),因为定时计数器0选用的是方式1,没有自动载入计数初值的功能,这里还需要对其赋初(3CB0H),每当T0溢出中断次数达到20次(50ms×20=1s),就对倒计时减一。同样,这里需要调用到显示子程序,因此,也需要将倒计时转换为十进制,分别个位、十位分别存入R4、R5。如果是在抢答倒计时,在倒计时过程中,若查询有人抢答,则要立即跳转到正常处理程序执行。当倒计时小于等于5s时,通过每秒钟响0.5s铃来给与提示。另外,还要不断对停止键查询,一旦发现其按下,则跳转到查询程序。若倒计时及时完毕,也是跳转到查询程序。g)正常抢答处理程序 在进行抢答倒计时的过程中,若有选手抢答,则程序转入抢答倒计时执行。先按键发声,再将答题时间送入R6,进入答题倒计时,并将选手号送R3,以便显示。另外,还需要对开始标志位清零,来封锁其他选手的抢答。这里以选手一的抢答为例:若检测到选手一最先抢答,则执行以下程序:TRUE1: ACALL BARK ;调用发声提示,按键发声 MOV A,R2 MOV R6,A ;答题时间R2送倒数计时R6 MOV R3,#01H ;选手号送R3(以便显示) CLR OK ;封锁其他选手抢答 AJMP COUNT ;跳至倒计时程序同理,可以得到其他选手的处理程序。详细程序请参见附录源程序中正常抢答处理程序部分。h) 犯规抢答程序当选手在开始键按下之前进行了抢答,程序先转到非法处理程序执行,非法处理程序确定是哪位选手犯规后,就转入犯规抢答程序。在进入犯规处理程序后,首先对定时计数器1的溢出中断次数清零,并对其赋初值(3CB0H),再灭显示0.3s,接着显示选手号并响铃0.5s。直至检查到停止按钮按下,才返回到查询程序。ERROR: MOV R0,#00H ;定时计数器1的溢出中断次数清零 MOV TH1,#3CH ;对定时计数器其赋初值 MOV TL1,#0B0H MOV 34H,R3 ;犯规选手号暂存入(34H)HERE: MOV A,R0 CJNE A,#06H,FLASH ;0.3s内,灭显示并停止响铃 CLR RING ;响铃标志清零 MOV R3,#0AH ;灭选手号 MOV R4,#0AH ;灭倒计时 MOV R5,#0AH AJMP CHECK1 ;检查停止键FLASH: CJNE A,#0CH,CHECK1 ;闪烁程序,(后 0.5s), SETB RING ;响铃 MOV R0,#00H ;溢出中断数清零 MOV R3,34H ;取回选手号 MOV R5,#0BH MOV R4,#0BH ;显示犯规选手号数 AJMP CHECK1 ;检查停止键CHECK1: JNB P3.1,QUIT1 ;按下则返回 ACALL DISPLAY ;调用显示程序 AJMP HEREQUIT1: CLR RING ;返回前准备(开始、响铃标志位清零) CLR OK AJMP START ;返回至查询程序i) 显示程序这里的显示包括对时间和选手号的显示。从程序来讲包括对抢答、答题倒计时,调节倒计时,最先抢答选手号,犯规选手号的显示。根据前面的安排,用R3存选手号,R4存倒计时十位,R4存倒计时个位。 本显示程序采用查表法,动态显示各位。 下面就以R3(选手号)的动态显示为例,来介绍程序的编写。 MOV DPTR,#DAT1 ;取表的首地址MOV A,R3 ;取R3值(决定与表首地址的偏移) MOVC A,A+DPTR ;查表 CPL A ;这里用的是共阳极显示,需要将共阴极的段选码取反 MOV P2,#001B ;位选确定。这里与硬件接法密切相关 MOV P0,A ;送段选信号 从程序中可以看到,显示程序的编写,需要严格根据具体接线编写。R4与R5的显示程序与此大同小异,只需要将位选改为对应位即可,具体参见附录中源程序部分。j) 发声程序与T0中断程序 一旦开始键或抢答键按下,或因非法抢答,或者倒计时进入最后5s,都需要调用到发声子程序,它与T0中断程序共同来完成发声的功能。 发生程序的要完成的操作比较简单,即只需将响铃标志位置1一段时间后,再将其清零。时间的长短通过调用延时程序来控制。其形式为:BARK: SETB RING ACALL DELAY CLR RING RET而T0中断程序,是根据为其设定的中断频率(由初值确定),来检测响铃标志位,若其为1,则将P3.7取反,来发出一定频率的声音。由于定时计数器设定的模式为模式一,这里还需要对其重新载入初值。具体编写参见附录源程序。 除了上面介绍的功能子程序,本设计还时时要用到延时程序,包括对按键消抖的延时、显示延时。具体编写参见附录源程序中延时程序部分。 至此,所有子程序的编写已介绍完毕。5 功能仿真在试验检测前,利用Proteus软件对本设计进行了仿真, 对各个要求进行了验证.仿真运行后,界面如图5-1:图5-1 开始运行后界面按下抢答开始键后,进入图5-2界面,进入抢答倒计时: 图5-2 抢答倒计时 当3号选手最先按下抢答键后,进入下面界面。回答倒计时开始工作:图5-3 回答倒计时界面当8号选手最先按下抢答键后,进入下面界面。回答倒计时开始工作:图5-4 回答倒计时界面有人在开始键按下前抢答,即犯规抢答时,界面如下,将显示抢答选手号码。: 图5-5 犯规抢答界面结 论抢答器主要应用在一些娱乐活动中,抢答器又称第一信号鉴频器。抢答器的出现解决了过去举手抢答的方式。这样不但增强了可靠性,而且提高了公平性,值得选手信赖。由于抢答器的出现为娱乐领域中的抢答环节提供了方便。抢答器应用的一个关键问题是对其工作的稳定性,可靠性,快速性的设计要求严格。抢答器主要利用数字电路的编码,译码和定时功能来实现,或者利用单片机控制来完成,即智能化设计。本设计定位于本学科发展方向对单片机的编程及数字电路的应用进行研究,并且得到一些有意义的结论。抢答器的出现已经很多年,并且种类很多。目前抢答器的功能是较为完善的,即智能化,可靠性高,速度快,工作稳定。本设计采用了部分智能化,在抢答时间方面还须改进,而且在准确性方面也有待于改进。本设计的进一步设计应该是无限时的答题时间控制且用单片机来完成。一年多的单片机学习主要是课本上理论知识的学习,这些理论知识远不能满足对单片机的应用的要求,这次设计给我们提供了一次很好的理论联系实际的机会,使得我们对单片机的功能以及应用有了更深刻的了解和认识。另外,程序设计是本次设计的一个难点,由于对指令的运用不够熟练使得在编程时屡屡碰壁。特别对于一些中断程序,因涉及到一些标志位而使得编程难度更高,虽然通过查资料以及同学老师的指导解决了这些问题,但编程方面的欠缺还是很大的,这为我以后的学习业敲响了警钟,在以后我应加强这方面的练习以提高自己。由于时间以及自己的能力有限,这次的设计中难免会有一些遗漏和不足,希望老师批评指正。致 谢四年的大学生活即将结束,为期半个月的课程设计也接近了尾声。此次课程设计的完成,凝聚着许多人的关怀和帮助。首先要感谢我敬爱的指导教师徐祖华老师,他对我的学习和工作严格要求,并耐心地教导激励我们积极进取,培养我们形成良好的科研作风,所有这些,我们将终生受益。在此,我对徐老师的培养和帮助深表感谢,本设计是在徐祖华老师的悉心指导下完成的,在整个实际阶段,徐祖华老师除了给我提出方案外,也留给我主动解决问题的空间,使我在整个过程中很好的锻炼了自主分析和解决问题的能力。课程设计本身就是一个将理论和实际工作结合起来的演习,是徐老师的指导和帮助教会我独立思考,自主分析和解决问题,为我今后走出校门迈向工作岗位奠定了坚实的基础,并激励着我在今后的人生道路上不断开拓进取,勇往直前。我再一次对黄老师的培养和关怀表示诚挚的谢意!同时,还要感谢和我一起同学们,他们在我设计期间给予我很多帮助,没有大家的帮助,我将无法顺利完成设计,再次致以衷心的感谢。再次真诚地感谢所有在我四年读书期间帮助过我的老师、同学和朋友!参考文献1李朝青.单片机原理及接口技术(修订版).北京:北京航空航天大学出版社,19982李广弟.单片机基础.北京:北京航空航天大学出版社,19923何立民.单片机应用技术大全.北京:北京航空航天大学出版社, 19944张毅刚. 单片机原理及接口技术.哈尔滨:哈尔滨工业大学出版社,19905谭浩强.单片机课程设计. 北京:清华大学出版社,1989附录1总程序清单OK EQU 20H ;抢答开始标志位; RING EQU 22H ;响铃标志位 ORG 0000H AJMP MAIN ORG 0003H AJMP INT0SUB ;跳转到抢答时间 ORG 000BH AJMP T0INT ;T0溢出中断 ORG 0013H MAIN: MOV R1,#10H ;初设抢答时间为10s MOV R2,#5FH ;初设答题时间为20s MOV TMOD,#11H ;设置未定时器/模式1 MOV TH0,#0F0H MOV TL0,#0FFH ;越高发声频率越高,越尖 SETB EA SETB ET0 SETB EX0 CLR OK CLR RING SETB TR0 START: MOV R5,#0BH MOV R4,#0BH MOV R3,#0BH ACALL DISPLAY ;未开始抢答时候显示FF JB P1.0,NEXT ;ddddddd ACALL DELAY JB P1.0,NEXT ;去抖动,如果"开始键"按下就向下执行,否者跳到非法抢答查询 ACALL BARK ;按键发声 MOV A,R1 MOV R6,A ;送R1->R6,因为R1中保存了抢答时间 SETB OK ;抢答标志位,用于COUNT只程序中判断是否查询抢答 MOV R3,0AH ;抢答只显示计时,灭号数 AJMP COUNT ;进入倒计时程序,"查询有效抢答的程序"在COUNT里面NEXT: JNB P1.1,FALSE1 JNB P1.2,FALSE2 JNB P1.3,FALSE3 JNB P1.4,FALSE4 JNB P1.5,FALSE5 JNB P1.6,FALSE6 AJMP STARTFALSE1: ACALL BARK ;按键发声 MOV R3,#01H AJMP ERRORFALSE2: ACALL BARK MOV R3,#02H AJMP ERRORFALSE3: ACALL BARK MOV R3,#03H AJMP ERRORFALSE4: ACALL BARK MOV R3,#04H AJMP ERRORFALSE5: ACALL BARK MOV R3,#05H AJMP ERRORFALSE6: ACALL BARK MOV R3,#06H AJMP ERROR INT0SUB:MOV A,R1 MOV B,#0AH DIV AB MOV R5,A MOV R4,B