八路多功能智力竞赛抢答器

上传人:1888****888 文档编号:37486501 上传时间:2021-11-03 格式:DOC 页数:52 大小:3.11MB
返回 下载 相关 举报
八路多功能智力竞赛抢答器_第1页
第1页 / 共52页
八路多功能智力竞赛抢答器_第2页
第2页 / 共52页
八路多功能智力竞赛抢答器_第3页
第3页 / 共52页
点击查看更多>>
资源描述
八路多功能智力竞赛抢答器摘要:摘要:现在开展的竞赛抢答活动越来越多,而多数比赛中都采用抢答器进行,本设计正是以单片机AT89C51为核心,来实现八路抢答和时钟显示功能的。抢答器在程序控制下完成以下功能:抢答有效高频铃声并显示组别,进入倒计时状态,抢答无效报警并闪烁显示组别,同时具有计分功能,答对加分,答错减分。关键词:抢答 单片机 倒计时 记分Multi-purpose Intellective Selector for Competition of Eight Groups Abstract:More and more vie to answer first actives are developed. In most of the competitions vie for answer machine will be used. The design uses the single chip to realize the function of multi-purpose intellective selector and the clocks display. The selector has those functions: if the player vies to answer first successfully, there will be high frequency and display the size of the group. At the same time, it will come into the estate of count down. However, if the player vies to answer first unsuccessfully, it will be given an alarm and display the size of the group sparklingly. Simultaneity, this vie for answer machine have the function of registering the point, if the groups answer is right, this group will be awarded marks. Contrarily, he will be reduced marks.Keywords: Vie for Answer Signal Chip Microcomputer Count Down Recording Score八路多功能智力竞赛抢答器1目目 录录1 1 绪论绪论.3 31.1 课题的意义 .31.2 抢答器研究的现状 .31.3 抢答器的功能要求 .41.4 抢答器总体介绍 .42 2 核心元件核心元件 AT89C51AT89C51 介绍介绍.6 62.1 AT89C51 芯片主要性能参数.62.2 功能特性概述 .63 3 系统硬件设计系统硬件设计.7 73.1 总体原理图 .73.2 AT89C51 工作外围电路.83.2.1 供电电源 .83.2.2 时钟频率 .83.2.3 复位 .94 4 基本原理及关键技术基本原理及关键技术.9 94.1 基本原理 .94.2 电路设计总体框图 .104.3 关键技术 .114.3.1 键盘扫描 .114.3.2 显示 .124.3.3 发声 .135 5 程序设计程序设计.15155.1 程序介绍 .155.2 主要程序分析 .15八路多功能智力竞赛抢答器25.2.1 程序总体设计框图 .155.2.2 抢答时间调整与查分模块 .165.2.3 答题时间调整与预加减分设置模块 .175.2.4 倒计时程序与加减分数模块 .186 6 设计总结设计总结.20206.1 设计过程出现问题及解决 .206.2 系统存在不足 .206.3 设计心得 .20致致 谢谢.2222参考文献参考文献.2323附录附录 1 1 主要元器件引脚功能主要元器件引脚功能 .2424附录附录 2 2 元件列表元件列表 .2626附录附录 3 3 程序代码程序代码 .2727八路多功能智力竞赛抢答器31 绪论1.1 课题的意义随着我国经济和文化事业的发展,现在人们消遣休闲时间的方式也越来越多,如参加各种业余活动、社团等等,其中参加各种知识竞赛也是一种很好的消遣方式,既娱乐了自己又对各种知识有了了解,而且如法律,环境等知识竞赛是提高人们认识的一个很好的途径。现在开展的竞赛抢答活动越来越多,而在大多数比赛当中都是采用抢答器进行抢答的,虽然市面上的抢答器功能较为齐全,但价钱也相对较贵,在一些小型的比赛当中难以普及,这就给广大的普通知识竞赛爱好者带来了不便,特别是在像学校这样开展活动比较频繁的场所更是需要一款这样的抢答器,本设计正是一款专为此而设计且非常实用的多功能多路的抢答器。本设计的核心是使用 AT89C51 单片机来对信号进行锁存、显示等功能。抢答器在程序控制下工作,在比赛当中有按键被按下,在程序的控制下就可以判断是那个按键被按下,并对该按键进行锁定,同时输出是那一位选手抢答成功。当完成了一次抢答的时候,主持人可以通过控制键对上一次的抢答结果进行记分,之后使程序回到初始状态并同时开始下一轮的抢答。此抢答器电路设计原理简单、功耗低、稳定性好、反应速度快和安装方便。在条件的允许下还可以进行扩展成 16 路。由于实现此抢答器所需的硬件只是一块 AT89C51 单片机芯片、六个数码管和一些按键等,所以成本比较低,适用于许多场合。1.2 抢答器研究的现状1设计的不专业化; 2成本的高端化; 3功能的单一化; 4操作的复杂化;八路多功能智力竞赛抢答器4 5研究目的不明确性; 6消费者的需求强烈性。1.3 抢答器的功能要求1可实现调整显示当前时间;2能允许 8 路抢答或可以扩展为 16 位;3显示抢答组号及抢答组分数;4报警闪烁显示犯规组号;5限时抢答,限时答题;6后 5S 倒计时每秒声音提示与报警;7查询组号分数、对答题结果进行加减指定分数;8实现时钟和抢答器功能相互切换。1.4 抢答器总体介绍1接通电源后,显示时间,调节时钟调节按键可以设定为当前时间,按功能转换键进入抢答器功能,同时也可以进入时钟显示状态。2如果想调节抢答时间或答题时间,按抢答时间调节“键”或“答题时间调节”键进入调节状态,此时会显示现在设定的抢答时间或回答时间值,如想加一秒按一下加 1s键,如果想减一秒按一下-1s键,时间 LED 上会显示改变后的时间,调整范围为 0s99s, 0s 时再减 1s 会跳到 99,99s 时再加 1s 会变到 0s,调节完成后按确认键。3如果想对下一个题目的答题结果加减一定分数,按“答题分数调节键” ,此时可以分别调节下一个题目答对加的分数,以及答错要扣除的分数,然后按确认键。 4主持人按开始键后,会有一声提示,并立刻进入抢答倒计时(预设15s 抢答时间)状态,如有选手抢答,会有一声提示音,同时显示其组号和当前分数,立刻进入回答倒计时(预设 10s 抢答时间) ,不进行抢答查询,所以只有第一个按抢答的选手有效。倒记时的后 5s 内每秒钟会有一声提示。 5如倒计时期间,主持人想停止倒计时可以随时按停止按键,系统会自动进入记录选手分数状态,等待主持人给选手加减指定的分数,同时显示答题八路多功能智力竞赛抢答器5后选手的分数。然后按“确定”键,等待主持人再次按开始键进入下次抢答计时。 6如果主持人未按抢答开始键,而有人按了抢答按键,属于犯规抢答,LED 会不断闪烁犯规组号数并响个不停,直到按下停止 键为止。 7初设每位选手的分数为 5,在选手答题时会在显示倒计时的同时显示其分数,按“加分”或“减分”键对其答题结果给予指定的分数,按“确定”键后,可进入等待下次抢答状态。8如果想查询选手的分数,先进入查分状态,然后每位选手按自己的抢答键,将显示选手的号数和分数,最后按“确定”键退出。 9P3.0 为开始抢答,P3.1 为停止或确认,p1.0-p1.7 为八路抢答器输入端口,数码管段选 P0 口,位选 P2 口低 6 位,蜂鸣器输出为 P3.6 口。P3.2 抢答时间调整和查分,P3.3 回答时间调整及加、减分数调节,P3.4 为时间加 1 调整,P3.5为时间减 1 调整。P3.7 为时钟功能与抢答器功能相互转换键,P3.1、P3.4、P3.5分别作为时、分、秒的调整键,P3.0 为时间调整确认键。八路多功能智力竞赛抢答器62 核心元件 AT89C51 介绍在本设计中使用的是 AT89C51 单片机,它是一种低电压低功耗的高性能 8位单片机,它采用了 CMOS 工艺和 ATMEL 公司的高密度非易失性存储器(NURAM)技术,而且输出引脚和指令系统完全与 MS-51 单片机兼容。2.1 AT89C51 芯片主要性能参数14k 字节可重擦写 Flash 闪速存储器(可经受 1000 次的写入/擦除周期)2全静态工作,0Hz 24MHz3三级加密程序存储器41288 字节内部 RAM 56 个中断源、4 个中断优先级、4 个 8 位 I/O 口62 个 16 位定时/计数器 T0、 T1 标准 80C51 和增加的 T2 捕获和比较7存储器寻址范围:64K 字节 ROM 和 64K 字节 RAM8电源控制模式:时钟可停止和恢复,空闲模式,掉电模式9 2 个工作频率范围10 时钟模式时为 0 到 20MHz,12 时钟模式时为 0 到 33MHz11双数据指针12可编程串行 UART 通道、编程时钟输出13掉电模式可通过外部中断唤醒2.2 功能特性概述AT89C51 提供以下标准功能:4k 字节 Flash 闪速存储器,128 字节内部RAM,32 个 I/O 口线,两个 16 位定时/计数器,一个 5 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51 可降至 0Hz 的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止 CPU 的工作,但允许 RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式八路多功能智力竞赛抢答器7保存 RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。3 系统硬件设计3.1 总体原理图此设计的主要部分为单片机最小系统,设计的总体原理图如图 3.1 所示,P3.0为开始抢答,P3.1 为停止或确认,p1.0-p1.7 为八路抢答输入,数码管段选 P0口,位选 P2 口低 6 位,蜂鸣器输出为 P3.6 口,P3.2 抢答时间调整,P3.3 回答时间调整,P3.4 为时间加 1 调整,P3.5 为时间减 1 调整。EA /VP31X119X218RE SET9RD17WR16INT 012INT 113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSE N29AL E/P30TX D11RX D10U1AT 89S51P31P31C130p FGN DP30C230p FVC CS11R141KS12S10 2位位位位位位位123456J2D1 02S13P30S14GN D12345678J1S15VC CS16R131KS17S10 1位位位位S18D1 01S21S22S23S24S1位位GN DGN DY112MGN D+C322u FR14.7 KGN DU2BU ZZERVC CVC CGN DR151KVC CR161KQ4PN PR21KR31KR41KR51KR61KR71KR81KR91KVC C图 3.1 设计总体原理图八路多功能智力竞赛抢答器83.2 AT89C51 工作外围电路3.2.1 供电电源AT89C51 单片机为+5v 直流供电,如图 3.2 所示,普通电源通过 7805 稳压管后将 9V 电压转换成+5V,会有 1A 的直流稳定电压输出。Vin1GND2Vo ut3U1780 5 1uF12J1位位+10u FGN DGN DGN DGN D位位VC C图 3.2 5V 直流供电3.2.2 时钟频率单片机必须在时钟的驱动下才能工作。在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度,图 3.3 为外部振荡源电路。C130p FC230p FY112MGN DRfRs PDAT 89C5 2VC C位位位位位位位图 3.3 外部振荡源电路一般选用石英晶体振荡器。此电路在加电大约延迟 10MS 后振荡器起振,在XTAL2 引脚产生幅度为 3V 左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路中两个电容 C1,C2 的作用有两个:一是帮助振荡器起振;八路多功能智力竞赛抢答器9二是对振荡器的频率进行微调。C1,C2 的典型值为 30PF。单片机在工作时,由内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。起大小是时钟信号频率的倒数,常用fosc 表示。如时钟频率为 12MHz,即 fosc=12MHz,则时钟周期为 1/12s。3.2.3 复位单片机的第 9 脚 RST 为硬件复位端,当振荡器起振以后,在 RST 引脚上输入 2 个周期以上的高电平,器件便进入复位状态,此时ALE、PSEN、P0、P1、P2、P3 输出高电平,RST 上输入返回低电平以后,便退出复位状态开始工作。其电路图如图 3.4 所示:RC+5V89C 52VssRST C2OO 位R+5V89C 52RSTVss(a) 上电自动复位 (b)上电复位和人工开关复位图 3.4 89C52 等单片机的复位电路 值得注意的是,在设计当中使用到了硬件复位和软件复位两种功能,由上面的硬件复位后的各状态可知寄存器及存储器的值都恢复到了初始值,而前面的功能介绍中提到了倒计时时间的记忆功能,该功能的实现的前提条件就是不能对单片机进行硬件复位,所以设定了软复位功能。软复位实际上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳转到程序执行的起始地址。4 基本原理及关键技术4.1 基本原理整个流程过程主要四大块:时间显示部分、计时部分、预置部分、控制部分。电源用+5V,AT89C51 为主控制器,当主持人按下复位键后,定时器开始八路多功能智力竞赛抢答器10计时,切换在抢答器功能的状态下,如果在抢答时间内没有人抢答则为弃权,如果有人按键定时器停止计时,自动进入答题倒计时状态,同时显示组别和对应分数并发出高频铃声,如果答对主持人按键加给定分数,答错则减给定分数,然后按复位键开始下一轮抢答。具体分析如下:1 采用内部定时器定时,定时调用动态显示程序,实现时间的显示;2 采用独立式键盘,可实现 8 路抢答,稍微改动也可实现 16 路抢答;3 可实行抢答时间和回答问题时间加 1,减 1 的调整,调整范围为 0S-99S的调整;4 有查分、记分功能,未抢答时且在查分状态下,按每位组的抢答按键,可显示组号及其分数,抢答完毕后,同时显示选手目前的分数,主持人可以对选手本次抢答情况进行加减分数。5 有记时、记分的记忆功能,一次倒计时时间、加减分数设置完,如果不需更改,复位后不需重新进行设定;6 其扫描显示基本原理为:通过键盘扫描输出按键信息,再通过单片机将它转换成能在七段数码管上显示字型码;7 非常规报警为:为主控制端未起动时对其他按键端进行监控;8 按键端的提示为:当抢答完毕时,会在数码管上显示抢答者号码提示以表示抢答成功;9 其中倒计时功能基本原理为:通过键盘设定时间 ,将显示时间数值逐一递减,直到零,完成设定时间的倒计时。4.2 电路设计总体框图八路多功能智力竞赛抢答器设计电路主要包括主持人控制电路、选手抢答电路、报警与显示电路。其总体框图如图 4.1 所示:八路多功能智力竞赛抢答器11图 4.1 抢答器总体框图4.3 关键技术4.3.1 键盘扫描在单片机应用中键盘用得最多的形式是独立键盘(图 4.2)及矩阵键盘(图 4.3):S0S1S2S3S4S5S6S7P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7图 4.2 独立键盘八路多功能智力竞赛抢答器12S1S2S3S4S5S6S7S8S9S10S11S12S13S14S15S16P1.4P1.5P1.6P1.74.7K4.7K4.7K4.7KVC CP1.0P1.1P1.2P13图 4.3 矩阵键盘 它们各有自己的特点,其中独立键盘硬件电路简单,而且在程序设计上也不复杂,一般用在对硬件电路要求不高的简单电路中;矩阵键盘与独立键盘有很大区别,首先在硬件电路上它要比独立键盘复杂得多,而且在程序算法上比它要烦琐,但它在节省端口资源上有优势得多,因此它更适合于多按键电路;其次就是消除在按键过程中产生的“毛刺”现象。本设计中采用最常用的方法,即延时重复扫描法,延时法的原理为:因为“毛刺”脉冲一般持续时间短,约为几 ms,而我们按键的时间一般远远大于这个时间,所以当单片机检测到有按键动静后再延时一段时间(这里我们取 10ms)后再判断此电平是否保持原状态,如果是则为有效按键,否则无效。4.3.2 显示通常情况下显示方法一般包括两种:一种是静态显示,一种是动态显示。其中静态显示的优点是显示稳定,在发光二极管导通电流一定的情况下显示器的亮度大,程序编写简单,但缺点是占用端口资源多;动态显示的特点是显示稳定性没静态好,程序编写复杂,但是相对静态显示而言占用端口资源少。在本设计中根据实际情况采用的了动态显示的方法(电路如图 4.4 所示) ,并通过查表法将其在数码管上显示出来,其中 P0 口为字型码输入端,P2 口低6 位为字选段输入端。在这里我们通过查表将字型码送给 7 段数码管显示的数字,数码管显示原理如下:MOV A,R5 MOVC A,A+DPTR ;查字型码八路多功能智力竞赛抢答器13MOV P2,#01H ;送位选码MOV P0,A ;送字型码ACALL DELAY ;调延时,去闪烁1234567abcdefg8dp9GN DabfcgdedpDS 11234567abcdefg8dp9GN DabfcgdedpDS 21234567abcdefg8dp9GN DabfcgdedpDS 31234567abcdefg8dp9GN DabfcgdedpDS 41234567abcdefg8dp9GN DabfcgdedpDS 51234567abcdefg8dp9GN DabfcgdedpDS 612345678P0Q1PN PQ2PN PQ3PN PQ4PN PQ5PN PQ6PN PR14.7 KR24.7 KR34.7 KR44.7 KR54.7 KR64.7 KGN DGN DGN DGN DGN DGN D123456J2图 4.4 动态显示电路在七段数码管显示中可分为共阳极和共阴极两种类型,本设计中采用共阴数码管,当数码管共阴极接地时,如想数码管的 a 段亮,则向 a 段送“1” ,反之送“0” 。4.3.3 发声我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单处机某个口线的高电平或低电平,则在该口线上就能产生一定频率的矩形波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制“高” 、 “低”电平的持续时间,就能改变输出频率,从而改变音调,使喇叭发出不同的声音。发声电路如图 4.5 所示,该电路由一个作为驱动作用的三极管,一个电阻和一个喇叭组成。八路多功能智力竞赛抢答器14GN DU2BU ZZERVC CR151KR161KQ4PN PP3.6图 4.5 发声电路八路多功能智力竞赛抢答器155 程序设计5.1 程序介绍1时间显示与抢答状态切换由按键 P3.7 控制,P3.7=1 时,执行时间显示,P3.7=0 时进入抢答器状态,不再显示时间,进入此状态标志为:数码管显示字符“FFFFFF” 。2倒计时时间储存:将初始的时间存在寄存器 R1,R2 中,如需对抢答时间和答题时间进行调整,则通过按键进入外中断程序,分别对其进行调整,然后再将数据存于 R1,R2 中。3选手号显示:当有选手按键按下时,程序进行键盘扫描,锁定第一个按键的选手,并将其组号送于 53H,同时调用显示程序显示该组号。4加减分程序:先预置每位选手初始分数为 5 分,分别存于 41H48H,一次成功抢答结束后,调用原来分数,再通过按键对其抢答结果进行加减合适的分数,并存在对应的地址空间内。5报警:对 P3.6 端口不断取反使蜂鸣器发出一定频率的声音。5.2 主要程序分析5.2.1 程序总体设计框图整个程序设计主要在于按键控制,程序扫描判断相关功能按键是否闭合来执行相对应的程序模块,本电路设计的总体程序框图为图 5.1 所示:八路多功能智力竞赛抢答器16图 5.1 总体程序框图5.2.2 抢答时间调整与查分模块初设抢答时间为 15S,根据题目类型可以调整抢答时间,抢答时间的调整是采用外中断 0,当 P3.2=0 时,进入外中断程序,通过加减按键分别进行加 1 或减 1,然后将最后的数据存入 R1 中。时间调整确认后,可以查询每组目前的分数,每组按下自己的抢答键后将会把对应组号和分数分别送入数码管显示,即可查看其分数。该过程的程序框图如图 5.2 所示。八路多功能智力竞赛抢答器17图 5.2 抢答时间调整与查分框图5.2.3 答题时间调整与预加减分设置模块抢答器初设答题时间为 10S,根据题目的难易程度可以调整该时间,抢答时间采用外中断 1,调整程序与抢答时间调整相似。时间调整后,进入欲加减分数设置,初设加减分数都为 1,再次利用按键进行设置,每次按键按下,对应的数据将会加 1。这一设置过程的如图 5.3 所示。八路多功能智力竞赛抢答器18图 5.3 答题时间调整与预加减分设置框图5.2.4 倒计时程序与加减分数模块当抢答开始键 P3.0=0 时,进入抢答倒计时状态,将倒计时时间存入寄存器R6,当 R65 时,每 1S 调用一次报警程序,如果在倒计时的时间内有抢答组别键按下,判断组别后,显示组号及当前分数,锁定其他按键,再次进入倒计时状态。答题结束后,根据答题情况,加减预设分数,然后退出进入下一轮抢答状态。程序分析过程如图 5.4 所示。八路多功能智力竞赛抢答器19图 5.4 倒计时程序与加减分数模块八路多功能智力竞赛抢答器206 设计总结6.1 设计过程出现问题及解决在整体的设计过程中硬件电路的设计比较成熟,花费时间较少,主要的设计在于软件设计上,遇到的问题及解决方法有:1使用条件转移指令,如:JNB bit,rel,编译时不能进行,出现跳出范围错误,该错误是由于该指令的转移范围为 256 字节(-128+127B) ,而无条件转移指令的转移范围相对条件转移指令要大的多,如:AJMP addr11 指令的转移范围在 2K 字节范围内,指令 LJMP addr16 的转移范围为 64KB。这样通过适当的语句转换使用无条件转移指令就避免了转移跳出范围的现象。2单片机的两个定时器分别用于响铃程序和计时程序,所以实时时间显示和倒计时时间只能使用同一个定时方式,设计中却需要成品工作在不同的状态时,实时时间不能中断,即在抢答工作结束后不需要再次调整时间。对于这一问题可以将两者用不同的寄存器存储时间,同时调用不同的显示程序来实现。6.2 系统存在不足1在一次抢答过程中,当出现超前违规抢答时,只能处理违规抢答信号,而对没有违规的有效抢答信号不能进行处理,因而使该次抢答过程变为无效。2当有多个违规抢答时,普通抢答器或采用优先编码电路选择其中一个,或利用抢答电路电子元件的“竞争”选择其中一个。对于后者由于抢答电路制作完毕后电子元件被固定。各路抢答信号的“竞争”能力也被固定,因而本质上也有优先权。只能“抓住”其中一个而出现“漏洞” 。6.3 设计心得经过这几周的努力,设计终于圆满结束。在这次设计中我感受到平时多学习,多看资料的重要性。设计的本身并不太难,只是知识的广度与深度不够。通过查阅资料,学习到了许多知识,同时让我感受到了,书本上的理论知识和实际应用还是有许多的差别,有些知识是要通过实践在能领会到的。对于单片机的设计总体上硬件部分比较简单,主要解决的就是软件部分的设计,如果说有了一个较完整的程序让我画电路是件简单的事,但反过来就不是件容易的事八路多功能智力竞赛抢答器21情了。因而程序的设计是一个设计的主题,它反映了一个人解决问题的思路,这才是最重要的东西。我在设计的过程中查阅了不同书籍中完成同一功能的子程序,通过比较选择最适合的程序。整个设计通过软件与硬件的调试与仿真,使我懂得了学习的重要性,这对我以后的学习和工作将会有很大的帮助。八路多功能智力竞赛抢答器22致 谢 本文从课题的选定到系统设计方案的确立,我的导师都一直地、不断地给予我指导和帮助。在真正的设计过程中不时地问我有哪些困难,引导我顺利地去解决。在我遇到苦难时,他能够用简短的语句让我明白问题的所在。在论文的撰写上也给了我好多的意见。他广博的知识面和丰富的实践经验,使我十分佩服,这也将激励我在今后的工作和学习中不断的进取。在此,向您表示由衷地感谢和真诚的敬意。同时,还感谢在整个过程中曾经帮助过我、支持我的老师、同学。谢谢你们对我的帮助与支持。八路多功能智力竞赛抢答器23参考文献1张友德 主编.MCS-51单片微型机原、应用与实验. 第四版.复旦大学出版社.2003.2薛钧义 武自芳 主编.微机控制系统及其应用. 第一版.西安交通大学出版社.20023陈光东 主编. 单片微型机原理. 第一版.华中科技大学出版社.2003附录 1 主要元器件引脚功能1、AT89C52 引脚图八路多功能智力竞赛抢答器242、AT89C51 主要引脚功能VCC:供电电压。GND:接地。P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P1 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在 FIASH 编程时,P0 口作为原码输入口,当 FIASH 进行校验时,P0 输出原码,此时 P0 外部必须被拉高。P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出 4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH 编程和校验时,P1 口作为第八位地址接收。 P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出 4 个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。 P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的八路多功能智力竞赛抢答器25缘故。P3 口也可作为 AT89C51 的一些特殊功能口,如下所示:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断 0)P3.3 /INT1(外部中断 1)P3.4 T0(记时器 0 外部输入)P3.5 T1(记时器 1 外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3 口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。/EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH) ,不管是否有内部程序存储器。注意加密方式 1 时,/EA 将内部锁定为RESET;当/EA 端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此引脚也用于施加 12V 编程电源(VPP) 。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3、七段数码管引脚图 (a)外观图(b)等效电路附录 2 元件列表AT89C51 1 片八路多功能智力竞赛抢答器2612M 晶振 1 个9V 变压器 1 个L7805 1 个4700F 电解电容 2 个001F 瓷片电容 2 个30PF 瓷片电容 2 个1K 排阻 1 个按键 15 个4.7K 电阻 9 个1K 电阻 5 个 7 段 LED 数码管 6 个电源开关 1 个附录 3 程序代码OK EQU 20H;抢答开始标志位RING EQU 22H;响铃标志位八路多功能智力竞赛抢答器27ORG 0000HAJMP MAINORG 0003HAJMP INT0SUBORG 000BHAJMP T0INTORG 0013HAJMP INT1SUBORG 001BHAJMP T1INTORG 0040;=初始化程序=MAIN: MOV R1,#0FH;初设抢答时间为 15s MOV R2,#0AH;初设答题时间为 10s MOV TMOD,#11H;设置未定时器/模式 1 MOV TH0,#0ECH MOV TL0,#0FFH;越高发声频率越高,越尖 MOV TH1,#3CH MOV TL1,#0B0H;50ms 为一次溢出中断 MOV IE,#88H;允许四个中断,T0/T1/INT0/INT1 CLR OK CLR RING SETB TR1 SETB TR0;一开始就运行定时器,以开始显示 FFF.如果想重新计数,重置TH1/TL1 MOV 4AH,#00H MOV R6,#8 ;初设 8 位选手的分数为 5 分 MOV R0,#41H MOV A,#5CL1: MOV R0,A八路多功能智力竞赛抢答器28 INC R0 DJNZ R6 ,CL1 MOV R3,#1 ;初设每次答题加 1 分 MOV R4,#1 ;初设每次答题减 1 分 MOV R5,#0 MOV 50H,#0 ;50H55H 存放抢答显示内容 MOV 51H,#0 MOV 52H,#0 MOV 53H,#0 MOV 54H,#0 MOV 55H,#0 MOV 60H,#0 ;60H65H 存放实时时间显示内容 MOV 61H,#0 MOV 62H,#0 MOV 63H,#0 MOV 64H,#0 MOV 64H,#0 MOV 66H,#0 ;存储秒 MOV 67H,#0 ;存储分 MOV 68H,#0 ;存储时 ACALL DISPLAY2;=时间显示程序=JS: CLR RING SETB TR1 MOV R5,#0 MOV TH1,#3CHMOV TL1,#0B0H八路多功能智力竞赛抢答器29X1:JB P3.7,PLAY ;P3.7=0,进入抢答状态,P3.7=1 为实时是时间显示 LJMP STARTPLAY: JNB P3.0,JISHI ACALL DISPLAY2AJMP X1;=时间调整程序=JISHI: CLR TR1 ACALL DISPLAY2JNB P3.1,SHIJNB P3.4,FENJNB P3.5,MIAOJNB P3.0,$+6 LJMP JS AJMP JISHISHI: INC 68H MOV A,68H CJNE A,#24,X2 MOV 68H,#0 MOV A,#0X2: MOV B,#0AH DIV AB MOV 60H,A MOV 61H,B ACALL DELAY2 AJMP JISHIFEN: INC 67H MOV A,67H CJNE A,#60,X3 MOV 67H,#0八路多功能智力竞赛抢答器30 MOV A,#0X3: MOV B,#0AH DIV AB MOV 62H,A MOV 63H,B ACALL DELAY2 AJMP JISHIMIAO: INC 66HMOV A,66HCJNE A,#60,X4 MOV 66H,#0 MOV A,#0X4: MOV B,#0AHDIV ABMOV 64H,AMOV 65H,BACALL DELAY2AJMP JISHI;=抢答查询程序=START: MOV IE,#8FH MOV 50H,#0BH MOV 51H,#0BH MOV 52H,#0BH MOV 53H,#0BH MOV 54H,#0BH MOV 55H,#0BH ACALL DISPLAY;未开始抢答时候显示 FFFFFF ACALL DISPLAY2八路多功能智力竞赛抢答器31 JB P3.0,NEXT;ddddddd ACALL DELAY JB P3.0,NEXT ;去抖动,如果开始键按下就向下执行,否者跳到非法抢答查询 ACALL BARK;按键发声 MOV A,R1 MOV R6,A;送 R1-R6,因为 R1 中保存了抢答时间 SETB OK;抢答标志位,用于 COUNT 只程序中判断是否查询抢答 MOV 52H,#0AH;抢答只显示计时,灭号数 MOV 53H,#0AH MOV 54H,#0AH MOV 55H,#0AH AJMP COUNT;进入倒计时程序,查询有效抢答的程序在 COUNT 里面NEXT: JNB P1.0,FALSE0 JNB P1.1,FALSE1 JNB P1.2,FALSE2 JNB P1.3,FALSE3 JNB P1.4,FALSE4 JNB P1.5,FALSE5 JNB P1.6,FALSE6 JNB P1.7,FALSE7 JB P3.7,NO AJMP STARTNO: LJMP JS;=非法抢答处理程序=FALSE0: ACALL BARK;按键发声 MOV 53H,#01H AJMP ERRORFALSE1: ACALL BARK;按键发声 MOV 53H,#02H八路多功能智力竞赛抢答器32 AJMP ERRORFALSE2: ACALL BARK MOV 53H,#03H AJMP ERRORFALSE3: ACALL BARK MOV 53H,#04H AJMP ERRORFALSE4: ACALL BARK MOV 53H,#05H AJMP ERRORFALSE5: ACALL BARK MOV 53H,#06H AJMP ERRORFALSE6: ACALL BARK MOV 53H,#07H AJMP ERRORFALSE7: ACALL BARK MOV 53H,#08H AJMP ERROR;=INT0(抢答时间 R1 调整程序,选手分数查询)=INT0SUB:MOV A,R1 MOV B,#0AH DIV AB MOV 50H,A MOV 51H,B MOV 52H,#0AH MOV 53H,#0AH MOV 54H,#0AH MOV 55H,#0AH八路多功能智力竞赛抢答器33 ACALL DISPLAY;先在两个时间 LED 上显示 R1 JNB P3.4,INC0;P3.4 为+1s 键,如按下跳到 INCO JNB P3.5,DEC0;P3.5 为-1s 键,如按下跳到 DECO JNB P3.1 , INTB0 AJMP INT0SUBINTB0: JNB P3.1, $INTBB0: ACALL DISPLAY ;JB 占 3 个字节,LJMP 占 3 个字节 JB P1.0, $+6 lJMP J0 ;查 1 号选手分数 JB P1.1, $+6 lJMP J1 ;查 2 号选手分数 JB P1.2, $+6 lJMP J2 ;查 3 号选手分数 JB P1.3, $+6 lJMP J3 ;查 4 号选手分数 JB P1.4,$+6 lJMP J4 ;查 5 号选手分数 JB P1.5, $+6 lJMP J5 ;查 6 号选手分数 JB P1.6, $+6 lJMP J6 ;查 7 号选手分数 JB P1.7, $+6 lJMP J7 ;查 8 号选手分数 JB P3.1,$+6 LJMP BACK0;P3.1 为确定键,如按下跳到 BACKO AJMP INTBB0INC0: MOV A,R1 CJNE A,#63H,ADD0 ;如果不是 99,R2 加 1,如果加到 99,R1 就置 0, 重新加起。 MOV R1,#00H八路多功能智力竞赛抢答器34 ACALL DELAY1 AJMP INT0SUBADD0: INC R1 ACALL DELAY1 AJMP INT0SUBDEC0: MOV A,R1 JZ SETR1;如果 R1 为 0, R1 就置 99, DEC R1 ACALL DELAY1 AJMP INT0SUBSETR1: MOV R1,#63H ACALL DELAY1 AJMP INT0SUBJ0: MOV 53H,#01H MOV A,41H MOV B,#10 DIV AB MOV 54H,A MOV 55H,B AJMP INTBB0J1: MOV 53H,#02H MOV A,42H MOV B,#10 DIV AB MOV 54H,A MOV 55H,B AJMP INTBB0J2: MOV 53H,#03H MOV A,43H MOV B,#10八路多功能智力竞赛抢答器35 DIV AB MOV 54H,A MOV 55H,B AJMP INTBB0J3: MOV 53H,#04H MOV A,44H MOV B,#10 DIV AB MOV 54H,A MOV 55H,B AJMP INTBB0J4: MOV 53H,#05H MOV A,45H MOV B,#10 DIV AB MOV 54H,A MOV 55H,B AJMP INTBB0J5: MOV 53H,#06H MOV A,46H MOV B,#10 DIV AB MOV 54H,A MOV 55H,B LJMP INTBB0J6: MOV 53H,#07H MOV A,47H MOV B,#10 DIV AB MOV 54H,A八路多功能智力竞赛抢答器36 MOV 55H,B LJMP INTBB0J7: MOV 53H,#08H MOV A,48H MOV B,#10 DIV AB MOV 54H,A MOV 55H,B LJMP INTBB0BACK0: RETI;-=INT1(回答时间 R2 调整程序)=INT1SUB:MOV A,R2 MOV B,#0AH DIV AB MOV 50H,A MOV 51H,B MOV 52H,#0AH MOV 53H,#0AH MOV 54H,#0AH MOV 55H,#0AH ACALL DISPLAY JNB P3.4,INC1 JNB P3.5,DEC1 JNB p3.1 ,INTB1 AJMP INT1SUBINTB1: JNB P3.1, $ MOV R3,#1 MOV R4,#1 MOV 50H,#0 MOV 51H,#1八路多功能智力竞赛抢答器37 MOV 52H,#0 MOV 53H,#1INTBB1: ACALL DISPLAY JNB P3.4,JIA1 ;指定每次答题加减的分数 JNB P3.5,JIAN1 JNB P3.1,BACK1 AJMP INTBB1INC1: MOV A,R2 CJNE A,#63H,ADD1 MOV R2,#00H ACALL DELAY1 AJMP INT1SUBADD1: INC R2 ACALL DELAY1 AJMP INT1SUBDEC1: MOV A,R2 JZ SETR2 DEC R2 ACALL DELAY1 AJMP INT1SUBSETR2: MOV R2,#63H ACALL DELAY1 AJMP INT1SUBJIA1: INC R3 MOV A,R3 MOV B,#0AH DIV AB MOV 50H,A MOV 51H,B ACALL DELAY1八路多功能智力竞赛抢答器38 AJMP INTBB1JIAN1: INC R4 MOV A,R4 MOV B,#0AH DIV AB MOV 52H,A MOV 53H,B ACALL DELAY1 AJMP INTBB1BACK1: RETI;=.倒计时程序(抢答倒计时和回答倒计时都跳到此程序)=COUNT: MOV R7,#00H;重置定时器中断次数 MOV TH1,#3CH MOV TL1,#0B0H;重置定时器 MOV 52H,#0RECOUNT:MOV A,R6 ;R6 保存了倒计时的时间,之前先将抢答;时间或回答时间给 R6 MOV B,#0AH DIV AB;除十分出个位/十位 MOV 50H,A;取十位 MOV 51H,B;取个位 MOV A,R6 CJNE A,#07H,$+3 JNC LARGER;大于 5s 跳到 LARGER,小于等于 5s 会提醒 MOV A,R7 CJNE A,#0AH,FULL;1s 中 0.5s 向下运行 CLR RING AJMP CHECKFULL: CJNE A,#14H,CHECK;下面系 1s 的情况,响并显示号数并清 R0,重新计 SETB RING八路多功能智力竞赛抢答器39 MOV A,R6 JZ QUIT;计时完毕 MOV R7,#00H DEC R6;一秒标志减 1 AJMP CHECKLARGER: MOV A,R7 CJNE A,#14H,CHECK;如果 1s 向下运行,否者跳到查停/显示 DEC R6;计时一秒 R6 自动减 1 MOV R7,#00HCHECK: JNB P3.1,QUIT1;如按下停止键退出 ACALL DISPLAYJB OK,ACCOUT; 是否为抢答倒计时,如是则查询抢答,否则跳过查询继续倒数(这里起到锁抢答作用) AJMP RECOUNTACCOUT: JB P1.0,$+6 LJMP TRUE0 JB P1.1,$+6 LJMP TRUE1 JB P1.2,$+6 LJMP TRUE2 JB P1.3,$+6 LJMP TRUE3 JB P1.4,$+6 LJMP TRUE4 JB P1.5,$+6 LJMP TRUE5 JB P1.6,$+6 LJMP TRUE6 JB P1.7,$+6 LJMP TRUE7八路多功能智力竞赛抢答器40 AJMP RECOUNTQUIT: CLR OK ;如果按下了停止键执行的程序 CLR RING SETB P3.6 MOV A, #40HADD A,53H ;选择刚才抢答的选手MOV R0,A QU: MOV A, R0 MOV B,#0AH DIV AB MOV 54H,A MOV 55H,B ACALL DISPLAY JNB P3.4,JIAFEN JNB P3.5,JIANFEN JNB P3.1,QUIT1 AJMP QUJIAFEN: MOV A,R0 ADD A,R3 MOV R0,A MOV A,R3 MOV B,#0AH DIV AB MOV 50H,A MOV 51H,B ACALL DELAY1 AJMP QUJIANFEN: MOV A,R0 CLR CY八路多功能智力竞赛抢答器41 SUBB A,R4 MOV R0,A MOV A,R4 MOV B,#0AH DIV AB MOV 50H,A MOV 51H,B ACALL DELAY1 AJMP QUQUIT1: AJMP START;=正常抢答处理程序=TRUE0: CALL BARK;按键发声 MOV A,R2 MOV R6,A;答题时间 R2 送 R6 MOV 53H,#01H MOV A,41H MOV B,#0AH DIV AB MOV 54H,A MOV 55H,B CLR OK;因为答题的计时不再查询抢答,所以就锁了抢答 AJMP COUNTTRUE1: CALL BARK;按键发声 MOV A,R2 MOV R6,A;答题时间 R2 送 R6 MOV 53H,#02H MOV A,42H MOV B,#0AH DIV AB MOV 54H,A八路多功能智力竞赛抢答器42 MOV 55H,B CLR OK;因为答题的计时不再查询抢答,所以就锁了抢答 AJMP COUNTTRUE2: CALL BARK MOV A,R2 MOV R6,A MOV 53H,#03H MOV A,43H MOV B,#0AH DIV AB MOV 54H,A MOV 55H,B CLR OK AJMP COUNTTRUE3:CALL BARK MOV A,R2 MOV R6,A MOV 53H,#04H MOV A,44H MOV B,#0AH DIV AB MOV 54H,A MOV 55H,B CLR OK AJMP COUNTTRUE4:CALL BARK MOV A,R2 MOV R6,A MOV 53H,#05H MOV A,45H八路多功能智力竞赛抢答器43 MOV B,#0AH DIV AB MOV 54H,A MOV 55H,B CLR OK AJMP COUNTTRUE5: LCALL BARK MOV A,R2 MOV R6,A MOV 53H,#06H MOV A,46H MOV B,#0AH DIV AB MOV 54H,A MOV 55H,B CLR OK LJMP COUNTTRUE6: LCALL BARK MOV A,R2 MOV R6,A MOV 53H,#07H MOV A,47H MOV B,#0AH DIV AB MOV 54H,A MOV 55H,B CLR OK LJMP COUNTTRUE7: LCALL BARK MOV A,R2八路多功能智力竞赛抢答器44 MOV R6,A MOV 53H,#08H MOV A,48H MOV B,#0AH DIV AB MOV 54H,A MOV 55H,B CLR OK LJMP COUNT;=犯规抢答程序=ERROR: MOV R7,#00H MOV TH1,#3CH MOV TL1,#0B0H MOV 34H,53H;犯规号数暂存与(34H) CLR P3.6HERE: MOV A,R7 CJNE A,#0AH,FLASH;0.5s 向下运行-灭并停响 CLR RING MOV 50H,#0AH MOV 51H,#0AH MOV 52H,#0AH;三灯全灭MOV 53H,#0AHMOV 54H,#0AHMOV 55H,#0AH AJMP CHECK1FLASH: CJNE A,#14H,CHECK1;下面系 1s 的情况,响并显示号数并清 R7,重新计 SETB RING MOV R7,#00H MOV 53H,34H;取回号数 MOV 50H,53H八路多功能智力竞赛抢答器45 MOV 51H,53H MOV 52H,53H MOV 54H,53H MOV 55H,53H ;MOV 50H,#0BH ;MOV 51H,#0BH;显示 FF 和号数、分数 AJMP CHECK1CHECK1: JNB P3.1,QUIT0 ACALL DISPLAY AJMP HEREQUIT0: CLR RING CLR OK SETB P3.6 AJMP START;=显示程序 1(抢答显示调用)=DISPLAY: JB P3.7,DISNO MOV DPTR,#DAT1;利用 P0 口做段选码口输出/P2 低六位做位选码输出 MOV A,50H MOVC A,A+DPTR MOV P2,#0FEH MOV P0,A ACA
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸下载 > CAD图纸下载


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!