下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录摘要IIAbstractIII第一章系统整体设计 .11.1设计任务与要求.11.2设计方案论证与比较.1第二章系统硬件设计及功能分析 .32.1AT89C51.32.2系统的硬件设计及功能分析.62.2.1抢答器的硬件图 .62.2.2抢答器的电路图.62.2.3抢答电路的设计.72.2.4显示电路的设计.82.2.5复位电路的设计.92.2.6电路的设计.102.2.7系统扬声器的.102.2.8时钟电路的设计.11第三章系统程序分析及仿真 .123.1系统的程序流程图.123.2系统抢答电路部分的程序分析及仿真.133.3系统调整抢答时间部分的程序分析及仿真.163.4系统中选手抢答
2、处理的程序分析及仿真.18第四章总结 .22参考文献 .23附录 .24致谢 .35基于单片机的八路抢答器摘要本文的设计是以 AT89C51 单片机为控制元件,以按钮作为输入设备控制发光二极管、LED 数码管、扬声器等硬件设备,利用汇编语言编程,实现抢答功能。本次设计的系统判断精准、操作简单、成本低廉、实用性强。它的功能实现是由按键来控按下开始键后选手开始抢答,此时显示时间的 LED 数码管开始倒制总开关,当计时(时间可通过按键调节输入 00-99 秒),选手们在此时间内答题有效,若有一名选其他选手的抢答,同时 LED 数码管显示该选手优先按下抢答按钮,则该系统自动手的及答题的剩余时间,扬声器
3、提示抢答成功,若过了抢答时间仍没有选手抢答那么本次抢答无效,扬声器响起提示无人抢答;如果在开始抢答前按下抢答按钮,则视为抢答无效,LED 数码管显示犯规选手和 FF,扬声器响起提示犯规;答题完毕和犯规后系统由复位。:AT89C51;LED 数码管;中断Microcontroller-Based Eight-Way ResponderAbstractThis design is based on AT89C51 microcontroller as the core control elements to the button as an input device control light-e
4、mitting diode, LED digital tubes, speakers and otherhardware devi, the use of assembly language programming, answer in function. The designof the system to determine precise, simple, low cost, practical. Its function implemenion iskey to control by the host master switch, when the host key players b
5、egan to press the answer he beginning, when the time of the LED digital display starts counting down (time can beadjusted playeranswerthrough the key input 00-99 seconds), players answer at this time are valid, if aanswer in the button pressed, the system automatically shield the othlayershe same ti
6、me, LED digital display of the players number and answer the remainingtime, the speakrompt answerhe sucs. If you still do nove the answerime,then this player responder invalid, the speaker sounded tips have no answer; If the answer before the start responder in press the button, responder is conside
7、red invalid, LED digital display foul player number and FF, the speaker sounded foul tips; answer is completed andreset after a foul the system by the moderator.Keywords: AT89C51, LED Digital Tube, Theerrupt第一章系统整体设计1.1设计任务与要求设计的主要任务:设计一个基于 AT89C51 单片机的八路抢答器。设计的主要要求:抢答器同时供 8 名选手或 8 组参赛队比赛使用,分别用1 号-8
8、 号来表示,每个对应一个相应的抢答按钮。系统为设置了复位按钮和控制抢答开始的按钮,用于系统的清零和控制选手的抢答。抢答器具有锁存和显示功能。即选手按下抢答按钮后,锁存相应的选手,并在 LED 数码管上显示,扬声器发出声响提示(时间约为 0.5s)。与此同时输入电路,其他选手抢答。抢答器具有定时抢答的功能,每次抢答的时间可由根据题目的难度设定(初始抢答时间为 30s)。当按下“开始”按钮后,定时器立即减计时,LED数码管显示倒计时时间,同时扬声器发出短暂的声响以提示答题开始;如果定时抢答的时间已到,却没有选手抢答时,本次抢答无效,系统短暂,并输入电路,选手超时抢答,时间显示器上显示 00,最后显
9、示为初始状态。选手在规定的时间内进行抢答为有效状态,定时器停止工作,LED 数码管显示抢答成功的选手和答题的时间,在答题的最后 5 秒时间里,扬声器伴随倒计时发出声响提示选手答题时间即将结束,要求选手掌握答题速度;若选手提前答题完毕的则由按下“结束”按钮,进行下一轮的抢答。如果选手在按下抢答“开始”按钮之前进行抢答,则视为抢答犯规,LED 数码管显示选手按钮将系统清零。和FF,同时扬声器发出声响,由按下“复位”1.2设计方案论证与比较方案一:系统采用 C51 系列单片机 AT89C51 为控制元件,以按钮作为输入设备控制发光二极管、LED 数码管、扬声器等硬件设备,利用汇编语言编程,通过相应的
10、程序使单片机部分引脚输出高低电平,配合驱动电路驱动数码管显示结果,最终达到设计目的,实现抢答功能。其硬件电路的设计不是很繁琐,编程也不是很复杂,系统的功能调试结合电路原理图,通过修改相应的程序即可。方案二:系统各部分采用中小规模集成数字电路,用机械开关按钮作为控制开关,完成抢答输入信号的触发。该方案的特点是中小规模集成电路应用技术成熟,性能可靠,能方便地完成选手抢答的基本功能,但是由于系统功能要求较高,所以电路连接集成电路相对较多,而且过于复杂,并且制作过程工序比较繁琐,使用不太方便。用这种方法来实现,其优点是不用编程,但其的之处是电路复杂,焊接工程量大,一旦焊接错误,就会给检查硬件带来很大的
11、麻烦,而且调试也相对麻烦1。方案一设计的电路原理图简单明了,避免了重复,控制和使用起来都很方便。抢答器对选手的抢答速度有很强的分辨力,即使先后只相差 10 毫秒,抢答器也能很快的分辨出来,从而判断出拥有优先权的选手,抢答成功的选手的会在 LED 数码显示器上显示出来,在显示选手的同时也显示答题倒计时,该结果保持到清零为止,本设计实现的功能较多,答题时间和抢答时间均可随意调整,故采用方案一。第二章系统硬件设计及功能分析2.1 AT89C51AT89C51 是一种内含 4KB 闪速器、低电压、高性能的 8 位 CMOS 微控制器。它采用了 ATMEL 公司的高密度非易失制造技术,与工业标准的 MC
12、S-51 指令集合输出引脚完全兼容。由于将多功能 8 位 CPU 和闪速器组合在一个中,使其具有方便易用、性价比高的显著特点,因此成为 C51 系列兼容单片机中最受欢迎的品种2。2.1.1 AT89C51AT89C51 单片机的引脚说明包括一个 8 位 CPU,片内振荡器和时钟电路,由 4KB 闪存组器,128 字节的数据器,四个 8 位并行I/O 口,一个全双工串行口,成的的程序两个 16 位定时/计数器,5 个中断源,提供两个中断优先级,21 个特殊功能寄存器,可寻址 64KB 的外部程序器和数据器,有位寻址功能及较强的数据处理能力,有两种可选的低功耗运行方式,即空闲和掉电方式2-3。其引
13、脚图如图 2.1 所示:图 2.1 AT89C51 引脚图AT89C51 单片机的引脚说明如下,按其功能可分为以下四类:第一类,主电源引脚 VCC 和 GND。VCC:正常工作电压+5V。GND:电源地。第二类,时钟电路引脚 XTAL1 和 XTAL2。XTAL1:片内振荡器输入端,是外接晶体的一个引脚。当采用外部振荡器时,此引脚接地。时,XTAL2:片内振荡电路的输出端,是外接晶体的另一端。当采用外部振荡器此引脚接外部振荡源。如果采用外部时钟源驱动器件,XTAL2 应不接。输入时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,至但必须保证脉冲的高低电平要求的宽度。系统选用的
14、是 12MHz 的晶振。第三类,输入/输出(I/O)端口引脚。P0 口:8 位漏极开路的双向 I/O 口。每个引脚可吸收 8 个 TTL 门电流。当P0 口的管脚第一次写“1”时,被定义为输入。P0 口能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在 FLASH 编程时,P0 口作原码输当FLASH 进行校验时,P0 输出原码,此时P0 外部必须被拉高。,P1 口:带上拉电阻的 8 位双向I/O 口。P1 口缓冲器能接收输出 4 个TTL门电流。P1 口管脚被写入“1”后,被,可用作输入,P1 口被外上拉为部下拉为低电平时,将输出电流,这是由于上拉电阻的缘故。在 FLASH 编
15、程和校验时,P1 口作为第八位地址接收。P2 口:带上拉电阻的 8 位双向I/O 口。P2 口缓冲器可接收输出 4 个TTL门电流。当P2 被写“1”时,其管脚被上拉电阻拉高,且其作为输入。P2 口当器进行读写时,P2 口输出地址的高八位。用于外部程序器或 16 位地址数据当对外部八位地址数据器进行读写时,P2 口输出其特殊功能寄存器的内容。P2口在FLASH 编程和校验时接收地址信号和控制信号。P3 口:带上拉电阻、引脚有复用功能的 8 位双向 I/O 口。P3 口可接收输出 4 个TTL 门电流。当P3 口写入“1”后,它被上拉电阻拉为,并用作输入。P3 口也可作为 AT89C51 的一些
16、特殊功能口, P3 口的第二功能如表 2.1所示:表 2.1P3 口的第二功能端口引脚第二功能P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6P3.7RXD(串行数据输)TXD(串行数据输出口) 0(外部中断 0 输入线)1(外部中断 1 输入线)T0(外部计数脉冲输入) T1(外部计数脉冲输入)WR(外部数据RD(外部数据器写选通)器读选通)第四类,控制类引脚:RST:复位信号引脚。当振荡器工作时,RST 引脚出现两个机器周期(24个振荡周期)以上的,将使单片机复位。只要这个引脚保持,51便循环复位。复位后 P0P3 口均置 1,引脚表现为,程序计数器和特殊功能寄存器SF
17、R 全部清零。当复位脚由始运行程序变为低电平时,从 ROM 的 00H 处开ALE/PRO外器地址锁存允许/编程脉冲输入端。当外部程序存储器或数据器时,ALE 输出脉冲用于锁存地址的低 8 位字节。即使不外部器,ALE 仍以时钟振荡频率的 1/6 输出固定的正脉冲信号,因此它可对外输出外部数据器时,将跳过一个 ALE 脉时钟或用于定时目的。但要注意:每当冲。ALE 端可以驱动(吸收或输出电流)8 个 TTL 电路。PSEN:片外程序器读选通。产生外部程序器的读选通信号。在器指令期间,PSEN 在每个机器周期内两次有效。但在由外部程序外部数据器时,这两次有效的 PSEN 信号将不出现。PSEN
18、可以驱动 8 个 TTL 电路。EA/VPP:片内、片外程序器选择输出/编程电压输入端。当 EA 为低电平时,执行外部程序器的程序,不管是否有程序器;当 EA 为时,执行程序器的程序。在 FLASH 编程期间,此引脚也可以用于施加 12V编程电源(VPP)。2.2系统的硬件设计及功能分析2.2.1抢答器的硬件图可以看出抢答器主要有 6 个部分组成,每个部分完成相应的功能。复位电路用于清零系统,使系统恢复初始状态;时钟频率部分用于抢答器的定时和倒计时,通过在LED 数码管上显示出相应的时间;显示电路就用于显示抢答的选手、抢答时间、倒计时时间和选手抢答的显示;电路用于选手抢答的、抢答开始的提示和答
19、题时间最后 5 秒的提示;抢答电路是用 8 个抢答按钮组成的,用于供选手抢答。抢答器具有锁存、定时、显示和功能。即当按下抢答“开始”按钮后,抢答开始,当选手按下抢答按钮后,锁存器锁存相应的选手,同时在 LED 数码管上显示出抢答成功的选手和答题时间。在宣布按下抢答“开始”按钮、选手按下抢答按钮以及在抢答和答题的最后 5 秒的时间里都有声以提示和选手。该电路主要完成以下功能:分辨出选手按键的先后顺序,并锁存优先抢答选手的,同时译码显示选手;其他选手按键,即使其他选手按键,该操作也视为无效4。抢答器框图如图 2.2 所示:图 2.2 抢答器的框图2.2.2抢答器的电路图P1 口为八路抢答输,LED
20、 数码管P0 口,位选 P2 口的低 3 位,发光二极管的输出和扬声器接P3 口的P3.6 引脚,抢答开始控制按钮为 P3 口的P3.0 引脚,抢答结束按钮为 P3 口的 P3.2 引脚,系统的加 1 按钮为 P3 口的 P3.2 引脚,减 1 按钮为 P3口的P3.3 引脚。复位电路接 RST 引脚,时钟电路接的是 XTAL1 和 XTAL2 两个引脚5 。抢答器电路图如图 2.3 所示。抢答电路报警电路时钟频率显示电路单片机复位电路图 2.3 抢答器的电路2.2.3抢答电路的设计系统设计的抢答电路部分采用的是 8 个常用开关作为抢答按钮,硬件电路简单,在程序设计上也不复杂,只要将在按钮过程
21、中产生的“毛刺”现象消除就可以了。毛刺是电路设计中的常用词,在数字电路中常将毛刺定义为采样间越过逻辑门限一次以上的任何跳变,主要是指电路输出波形中含有时间很短有规律的或没有规律的脉冲而又对设计没有用处或会产生其他影响的一种现象,一般都要考虑去除毛刺。在这里,采用最常用的去毛刺方法,即延时法。其原理为:“毛刺”脉冲一般持续的时间很短,约为几毫秒6,而按钮的时间一般情况下为 10-200ms7,所以当的单片机检测到按钮有反应后再延时一段时间,这里取延时时间为 10 毫秒,当延时 10 毫秒后判断此时的电平是否保持了原有的状态,如果电平保持的是原有状态则为有效按钮,相反的,电平没有保持原有状态则视为
22、无效按钮。当宣布抢答开始并按下“开始”按钮时,选手可通过按下与自己相应的抢答按键进行抢答。系统抢答电路如图 2.4 所示。图 2.4 系统的抢答电路2.2.4显示电路的设计针对系统的显示部分选用的是七段数码管 7SEG-MPX4-CC(图 2.5),实现七段数码管的显示三位十六进制数来进行倒计时,即来限制抢答的时间。数码管的接法可分为共阴级接法和共阳级接法两种。选用的数码管属于共阴极数码管(图 2.6),所以应该采用共阴极的接法,所谓共阴极接法即把 LED 数码管的阴极全部连接,而它们的阳极是独立的,通常在设计电路时一般把阴极接地。在相应段的阳极加一个时,该段就会发光。LED 数码显示器的优点
23、是工作电压低(1.5V-3V),体积小,长,可靠性高,响应时间短(一般不超过 100ns),亮度也比较高,而且颜色丰富(有红,绿,蓝等)。它的缺点是工作电流比较大,每一段的工作电流在 10mA 左右。为了防止二极管电流的过大而损坏,通常在二极管支路中串联一个限流电阻。如果“a”“b”“c”“d”“e”“f”上正电源,其它引脚悬空,LED 数码管上就将显示“0”,其它字符的显示原理与之相同,可根据实际需要来设定。数码管的显示可分为两种:静态显示和动态显示。静态显示的段选位和位选位均单独连接,因此占用的 I/O 接口相对来说就显得比较多,无法进行扩展多个数码管,采用这种方式必须要给 LED 数码管
24、恒定的电压,并要求电压一直保持, 所以一般在 LED 单片机之间要加锁存器,这种方式亮度高,编程比较简单,结构清晰,管理也比较简单,占用的 CPU 时间少。动态显示是单片机应用中最为广泛的一种显示方式之一,动态显示是将所有数码管的同名端连接在一起,另外为每个数码管的公共端 COM 端增加位选通控制电路,位选通由各自独立的 I/O线来控制,当单片机输出字形码时,所有的数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形,这就要取决于单片机对位选通 COM 端电路的控制,所以只要将需要显示的数码管位选通控制打开,该位就显示字形码,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的 COM
25、 端,就可以使各个数码管轮流受控显示,这就是动态显示8-9。在本设计中所采用的就是动态显示的方法。在未进行抢答时,数码管显示;当按下抢答“开始”按键时,LED 数码管上显示抢答的倒计时间,当有选手抢答成功时,则显示选手的和答题的倒计时间。图 2.5 LED 数码管图 2.6 数码管的符号和共阴式 LED 数码管的原理图2.2.5 复位电路的设计在 RESET(图中表示为 RST)输入端出现时实现复位和初始化。复位是一个重要的工作状态。在单片机工作时,接电之前要复位,断电后也要复位,发生故障后也要复位。在抢答器中复位则是为定时做铺垫的,在抢答之前要复位,抢答结束后也要复位,按下复位键后,LED
26、数码管上显示的是。单片机上电时,在振荡器运行的情况下,要实现复位操作,只要使 RST 引脚保持两个机器周期的10。复位后,每个状态的寄存器和器的值都恢复到初始状态,由于本设计中的功能有倒计时的功能,所以不能对单片机进行硬件复位,只能用复位,即通过用一系列指令来模拟硬件复位功能,最后通过转移指令使程序从 0000H 地址开始执行。对各寄存器的复位操作是容易的,所以也无需完全模拟,可根据实际的需要去主程序的初始化过程中完成。而对中断激活标志的清除经常被遗忘,因为它没有明确的位地址可编程。复位是使用陷阱和看门狗后必须进行的工作,这时程序出错完全有可能发生在中断序断激活标志已被置位,那么它就将会同级的
27、中断响应。在所有的指令中,只有RETI 指令能够清除中断激活标志。本系统采用的是按钮复位的复位电路,如图 2.7所示。图 2.7 复位电路2.2.6电路的设计该部分电路的设计主要用于,当遇到信号时,扬声器发出警报。系统中开始抢答的提示、选手正常抢答成功、抢答以及提示答题只有最后 5 秒时间这 4 个部分扬声器都会发出警报,由于缺少蜂鸣器的驱动,扬声器不能,所以通过用一个红色的发光二极管来替换蜂鸣器使扬声器发出声,系统电路如图 2.8 所示。图 2.8 系统电路2.2.7系统扬声器的本设计利用程序来控制单片机P3 口的P3.6 引脚来反复输出或低电平,即在该引脚上产生一定频率的矩形波,通过连接上
28、扬声器就能发出一定频率,若再利用延时程序来控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调使扬声器可以发出不同。2.2.8时钟电路的设计单片机必须在时钟的驱动下才能工作,在单片机有一个时钟振荡电路,在XTAL1 和 XTAL2 引脚上外接定时元件就能产生一定的时钟信号并送给单片机的各个单元,决定单片机的工作速度。定时元件通常采用的是石英晶体和电容组成的并联谐振回路。此电路大加电延迟 10ms 后振荡器起振,在 XTAL2 引脚产生时钟信号,其起振频率主要由石英晶体的频率来确定。电路中的两个电容 C1 和 C2 主要起到两个功能:一是帮助振荡器起振;二是对振荡器的频率起到微调的作用
29、。其电容值可在30PF-50PF 之间进行选择,通常选用的是 30PF,晶振频率为 12MHz。单片机在工作时,由振荡器产生或由外部直接输入的送至控制逻辑单元的时钟信号的周期称为时钟周期。其大小是时钟信号频率的倒数,常用 fosc 来表示。如时钟频率为 12MHz,即fosc=12MHz,则时钟周期为 1/12us。时钟电路如图 2.9 所示。图 2.9 时钟电路第三章系统程序分析及仿真3.1系统的程序流程图比赛未进入抢答状态时,LED 数码管显示,当宣布抢答开始并按下“开始”按钮时,数码管显示抢答时间,选手通过按下相应的的抢答按钮进行抢答,抢答成功后,数码管显示选手和答题时间并进入答题倒计时
30、;相反,当宣布抢答开始但并未按下“开始”按钮时,如果选手按下抢答按钮,则视为抢答,扬声器发出声并同时在数码管上显示相应的选手和 FF。还可以根据题目的难度来设置抢答的时间,设置抢答时间可通过对加减键的调节来实现11。系统程序流程图如图 3.1 所示:初始化显示NY按下开始按钮抢答状态显示选手和答题倒计时扬声器示选手FF显和N倒计时大于 5sNYY按下复位键NY按下结束键倒计时结束YN图 3.1 系统程序流程图继续答题直到时间停止正常抢答成功3.2系统抢答电路部分的程序分析及仿真系统的抢答主要是通过抢答按实现,当选手在按下“开始”按钮后抢答成功,选手立即被锁存,其他选手进行抢答,即使选手的抢答速
31、度相差 10 毫秒也能识别。系统的延时时间为 10ms,当延时 10ms 后判断按钮此时的电平是否保持了原有的状态,如果电平保持原有状态则为有效按钮,相反的则视为无效抢答。系统抢答电路部分的程序代码及程序流程图如图 3.2 所示:N是否有抢答YY1 号选手NY2 号选手NY3 号选手NY4 号选手NY5 号选手NY6 号选手NY7 号选手NY8 号选手中断返回图 3.2抢答电路流程图数码管显示 1,扬声器响一声数码管显示 2,扬声器响一声数码管显示 3,扬声器响一声数码管显示 4,扬声器响一声数码管显示 5,扬声器响一声数码管显示 6,扬声器响一声数码管显示 7,扬声器响一声数码管显示 8,扬
32、声器响一声外部中断 0 中断正常抢答处理程序源代码如下:TRUE1:ACALL BARK MOV A, R2 MOV R6, A MOV R3, #01H CLR OKAJMP COUNT ACALL BARK MOV A, R2 MOV R6, A MOV R3, #02H CLR OKAJMP COUNT ACALL BARK MOV A, R2 MOV R6, A MOV R3, #03H CLR OKAJMP COUNT ACALL BARK MOV A, R2 MOV R6, A MOV R3, #04H CLR OKAJMP COUNT ACALL BARK MOV A, R2 M
33、OV R6, AMOV R3, #05HTRUE2:TRUE3:TRUE4:TRUE5:CLR OK AJMP COUNTACALL BARK MOV A, R2 MOV R6, A MOV R3, #06H CLR OKAJMP COUNT ACALL BARK MOV A, R2 MOV R6, A MOV R3, #07H CLR OKAJMP COUNT ACALL BARK MOV A, R2 MOV R6, A MOV R3, #08H CLR OKAJMP COUNTTRUE6:TRUE7:TRUE8:6 号选手正常抢答成功仿真图如图 3.3 所示:图 3.3 6 号选手抢答成功
34、3.3系统调整抢答时间部分的程序分析及仿真在系统中,初始设定的抢答时间为 30 秒,但是在进行抢答之前可以通过加减按对抢答时间进行重新设定,根据题目的难度来设定,简单的题目可以通过减 1 秒按对抢答时间进行缩短设置,难一点的题目则可以通过加 1 秒按对抢答时间进行延长设置。通过对抢答时间的设置,从而可以让选手对于简单的题可以快速做出抢答,对于难一点的题目则可以有较长时间的思考,然后再做出抢答。系统该部分的程序分析图如图 3.4 所示:Y加 1 键按下NNR1 加到 99减 1 键按下YN按下确定键YNY图 3.4 抢答器调时流程图系统抢答时间调时程序源代码如下:0SUB:MOV A, R1MO
35、V B, #0AHDIVABMOV R5, A MOV R4, B MOV R3, #0AHACALL DISPLAYJNB P3.2, INC0返回主函数YR1 减到 0NR1 置 99R1 减 1R1 置 0R1 加 1显示初始抢答时间 R1JNB P3.3, DEC0JNB P3.4, BACK0AJMP0SUB对系统初始设置的 30 秒抢答时间进行加 1 或者减 1 操作后的仿真图如图 3.5 所示:图 3.5 抢答初始时间仿真对系统的抢答时间进行加 1 操作的仿真图如图 3.6 所示:图 3.6 抢答时间为 31 秒的仿真图对系统的抢答时间进行减 1 操作的仿真图如图 3.7 所示:
36、图 3.7 抢答时间为 29 秒的仿真图3.4系统中选手抢答处理的程序分析及仿真当的宣布抢答开始并未按下抢答“开始”控制按钮时,此时如果有选手按下抢答按钮进行抢答则视为抢答无效,即抢答。LED 数码管上将会显示抢答犯规和FF 并伴有扬声器发出的选手声响,同时发光二极管会不断地闪烁。对选手抢答处理程序的源代码如下:FALSE1:MOV R3, #01H AJMP ERROR MOV R3, #02H AJMP ERROR MOV R3, #03H AJMP ERROR MOV R3, #04HAJMP ERRORFALSE2:FALSE3:FALSE4:FALSE5:MOV R3, #05H A
37、JMP ERROR MOV R3, #06H AJMP ERROR MOV R3, #07H AJMP ERROR MOV R3, #08HAJMP ERRORFALSE6:FALSE7:FALSE8:选手抢答流程图如图示:开始Y1 号选手抢答NY2 号选手抢答NY3 号选手抢答NY4 号选手抢答NY5 号选手抢答NY6 号选手抢答NY7 号选手抢答NY8 号选手抢答返回图 3.8抢答程序流程图跳转到犯规抢答程序5 号选手抢答的仿真图如图 3.9 所示:图 3.9 5 号选手抢答犯规仿真图第四章总结通过上述仿真实现了预定的设计要求,证明了设计的方案是合理可行的。本设计以AT89C51 单片机为
38、设计了的八路抢答系统。通过对系统进行仿真后可以清楚的看见该抢答器能够及时准确的在 LED 数码管上显示第一有效的抢答信号,具有反应快、区分度高、操作简便和较好的通用性等特点。但是基于单片机的八路抢答器设计,在一定程度上还不是做得很好,它的发展空间还是有的。比如说还可以通过把有线的八路抢答器向无线抢答器的方向进行扩展和研究。无线八路抢答器通过实用上的按代替普通的抢答器的选手按钮,上的数字 1-8 对应选手1-8,距离相对有线抢答器就显得相对远了。也可以通过在电路中添加相应的硬件和在程序中加入相应的程序代码,使抢答器的功能更加完善。通过这次设计,我发现自己学到了不少的知识,对以前没有学好的知识也了
39、更深的了解,使我受益很大。通过这次对基于单片机的八路抢答器设计,我对单片机也有了新的认识,进一步地熟悉了单片机的结构。这次设计,我查阅了大量的资料,也了解到了一些在上没有的涉及到知识点,在这过程中,我通过查阅大量的资料,再进行不断地筛选,找出最好的设计思路,通过用 proteus来对设计的电路来进行仿真,也让我对 proteus也或者是程序的使用更加的熟悉了,仿真不是一次就可以成功的,可能是电路,总之通过在设计过程中的不断修改和改正,我最后成功仿真出了八路抢答器的工作图。参考文献,康迪.基于单片机的 8 路抢答器简单设计D.河北:石家庄信息工程职业学院.123.51 单片机工程应用实例M.:航
40、空航天大学,2009.14.:高等教育,张为民,等.MCS-51 系列单片机系统及其应用M.,2004.910.4,.基于单片机的八路抢答器设计与实现J.佳木斯大学学报,2009,27(3):350351.567. 单片机课程设计D.山东:烟台南山学院,2010.基于单片机的智能抢答器设计D.浙江:宁波,2010.:人民邮电,.AVR 单片机 C 语言开发入门与典型实例M.,2009.194195.891011.新概念 51 单片机 C 语言.数字电子技术基础M.M.:电子工业,2009.5659.2009. 8081.:电子科技大学,2007.196197.,.单片机课程设计指导M.:航空航
41、天大学,.智能抢答器的设计与制作J.长春大学学报,2000,10(6):2425.附录系统源程序代码:OK EQU 20H;抢答开始标志位 RING EQU 22H;响铃标志位0000H AJMP MAIN0003HAJMP0SUB000BH AJMP T00013HAJMP1SUB001BH AJMP T10040HMOV R1, #30;抢答时间 30 秒 MOV R2, #60;答题时间 60 秒 MOV TMOD, #11H;MOV TH0, #0F0H MOV TL0, #0FFH; MOV TH1, #3CHMOV TL1, #0B0H;50 毫秒为一次溢出中断SETB EA SE
42、TB ET0 SETB ET1SETB EX0MAIN:SETB EX1;允许四个中断,T0/T1/CLR OK0/1CLR RINGSETB TR1 SETB TR0;查询程序段START:MOV R5, #0BH MOV R4, #0BH MOV R3, #0BHACALL DISPLAY;抢答器初始显示JB P3.0, NEXT ACALL DELAY JB P3.0, NEXTACALL BARK;按钮MOV A, R1;设置 R1 为抢答时间 MOV R6, A;把 R1 送给 R6 SETB OKMOV R7, #01H;读抢答按钮数据信号标志MOV R3, #0AH;抢答只显示倒
43、计时,不显示号数 AJMP COUNT;跳到倒计时程序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, FALSE8AJMP STARTNEXT:;抢答处理程序段FALSE1:MOV R3, #01H;判断是否是 1 号选手犯规,如果是就跳到 ERROR 程序段AJMP ERROR MOV R3, #02H AJMP ERROR MOV R3, #03H AJMP ERROR MOV R3
44、, #04H AJMP ERROR MOV R3, #05H AJMP ERROR MOV R3, #06H AJMP ERROR MOV R3, #07H AJMP ERROR MOV R3, #08HAJMP ERRORFALSE2:FALSE3:FALSE4:FALSE5:FALSE6:FALSE7:FALSE8:;抢答时间的调整程序段0SUB:MOV A, R1 MOV B, #0AH DIV ABMOV R5, A MOV R4, B MOV R3, #0AHACALL DISPLAYJNB P3.2, INC0;P3.2 引脚接的是加 1 秒按钮,按下之后就跳到 INC0JNB P
45、3.3, DEC0;P3.3 引脚接的是减 1 秒按钮,按下之后就跳到 DEC0JNB P3.4, BACK0;P3.4 引脚接的是确定按钮,按下之后就跳到 BACK0AJMPMOV A, R10SUBINC0:CJNE A, #63H, ADD0;若不是 99 秒,就加 1 秒,否则就置 0MOV R1, #00HACALL DELAY1AJMPINC R10SUBADD0:ACALL DELAY1AJMP0SUBDEC0:MOV A, R1 JZ SETR1 DEC R1ACALL DELAY1AJMP0SUBSETR1:MOV R1, #63HACALL DELAY1AJMPRETI0S
46、UBBACK0:;答题时间的时间调整程序段1SUB:MOV A, R2 MOV B, #0AH DIV ABMOV R5, A MOV R4, B MOV R3, #0AHACALL DISPLAY JNB P3.2, INC1 JNB P3.3, DEC1JNB P3.4, BACK1AJMP1SUBINC1:MOV A, R2CJNE A, #63H, ADD1MOV R2, #00HACALL DELAY1AJMPINC R21SUBADD1:ACALL DELAY1AJMP1SUBDEC1:MOV A, R2 JZ SETR2 DEC R2ACALL DELAY1AJMP1SUBSET
47、R2:MOV R2, #63HACALL DELAY1AJMPRETI1SUBBACK1:REPEAT:MOV A, R2 MOV R6, A CLR RINGMOV R0, #00H;重置定时器中断次数MOV TH1, #3CH MOV TL1, #0B0H MOV A, R6MOV B, #0AH DIV ABMOV 31H, BCOUNT:RECOUNT:MOV MOVMOVR5, 30H R4, 31HA,R6SUBB A,#07HJNCMOV A, CJNE A,LARGER R0#0AH, FULLCLRRING AJMP CHECKCJNE A, #14H, CHECK SETB
48、 RINGMOV A, R6 JZ QUITMOV R0, #00H DEC R6AJMP CHECK MOV A, R0CJNE A, #14H, CHECK DEC R6MOV R0, #00HJNB P3.1, QUIT;按下停止按钮就退出 JNB OK, CHECKKAJMP NEXTT JNB P3.0, REPEAT ACALL DISPLAY JB OK, ACCOUTAJMPRECOUNT MOV A, 36HJNB P1.0, TRUE1;判断 1 号选手抢答是否成功JNB P1.1, TRUE2 JNB P1.2, TRUE3 JNB P1.3, TRUE4JNB P1.4
49、, TRUE5FULL:LARGER:CHECK:CHECKK:NEXTT:ACCOUT:JNB P1.5, TRUE6 JNB P1.6, TQ1 JNB P1.7, TQ2AJMPRECOUNTTQ1:TQ2: QUIT:JMP JMP CLRCLRTRUE7 TRUE8 OKRINGAJMPSTART;正常抢答处理程序段TRUE1:ACALL BARK MOV A, R2 MOV R6, A MOV R3, #01H CLR OKAJMP COUNT ACALL BARK MOV A, R2 MOV R6, A MOV R3, #02H CLR OKAJMP COUNT ACALL BARK MOV A, R2 MOV R6, A MOV R3, #03H CLR OKAJMP COUNTACALL BARKTRUE2:TRUE3:TRUE4:MOV A, R2 MOV R6, A MOV R3, #04H CLR OKAJMP COUNT ACALL BARK MOV A, R2 MOV R6, A MOV R3, #05H CLR OKAJMP COUNT ACALL BARK MOV A, R2 MOV R6, A MOV R3, #06H CLR O
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年福建省漳州市八年级(上)第一次月考历史试卷(含答案)
- 2024统编版七年级语文上册第四单元素养评价测试卷(含答案)
- 宁波市初中数学试卷有理数选择题题分类汇编(附答案)
- 2020-2021年-中考英语书面表达单元测试题(含答案)
- 苏教七年级下册期末解答题压轴数学模拟测试题目A卷及解析
- 小龙坎劳动合同
- 贷款购房中途转让合同
- 贵州省凯里市小学一年级上学期数学期末考试试卷
- 钢厂尾泥购销合同
- 2025年7-9月教学部门三季度总结与Q4教学优化方案
- 合伙开培训班合同(标准版)
- 2025年秋国家开放大学《行政领导学》形考任务1-4参考答案
- 企业品牌营销推广方案范文
- 普货运输安全生产管理制度范本
- 火电厂消防系统知识培训课件
- 2025年江苏省港口集团社会招聘模拟试卷(含答案详解)
- 2025至2030中国牛肉行业项目调研及市场前景预测评估报告
- 钢轨探伤培训课件
- 2025年度教育系统后备干部选拔考试题(含答案)
- 新版中华民族共同体概论课件第十二讲民族危亡与中华民族意识觉醒(1840-1919)-2025年版
- 2025年下半年新疆事业单位联考(6440人)考试参考试题及答案解析
评论
0/150
提交评论