单片机课程设计8051系列单片机控制的八路智力抢答器设计

上传人:仙*** 文档编号:31927947 上传时间:2021-10-13 格式:DOC 页数:36 大小:719.02KB
收藏 版权申诉 举报 下载
单片机课程设计8051系列单片机控制的八路智力抢答器设计_第1页
第1页 / 共36页
单片机课程设计8051系列单片机控制的八路智力抢答器设计_第2页
第2页 / 共36页
单片机课程设计8051系列单片机控制的八路智力抢答器设计_第3页
第3页 / 共36页
资源描述:

《单片机课程设计8051系列单片机控制的八路智力抢答器设计》由会员分享,可在线阅读,更多相关《单片机课程设计8051系列单片机控制的八路智力抢答器设计(36页珍藏版)》请在装配图网上搜索。

1、目录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

2、功能仿真.23致 谢.27单片机课程设计2摘 要抢答器是一种应用非常广泛的设备,在各种竞猜、抢答场合中,它能迅速、客观地分辨出最先获得发言权的选手。早期的抢答器只由几个三极管可控硅、发光管等组成,能通过发光管的指示辨认出选手。现在大多数抢答器均使用单片机和数字集成电路,并增加了许多新的功能,如选手号码显示、抢按器或抢按后的计时、选手得分显示等功能。本文介绍了用 8051 系列单片机控制的八路智力抢答器。该抢答器除具有基本的抢答功能外,还具有定时、计时和报警功能。关键字关键字:抢答器 ;单片机;报警单片机课程设计3引引 言言在知识比赛与娱乐竞赛中,特别是做抢答题目的时候,在抢答过程中,为了知道哪

3、一组或哪一位选手先答题,必须要设计一个系统来完成这个任务。如果在抢答中,靠视觉是很难判断出哪组先答题。利用单片机系统来设计抢答器,使以上问题得以解决,即使两组的抢答时间相差几微秒,也可分辨出哪组优先答题。本文主要介绍了单片机抢答器设计及工作原理,以及它的实际用途。系统工作原理本系统采用 8051 单片机作为核心。控制系统的四个模块分别为:存储模块、显示模块、语音模块、抢答开关模块。该抢答器系统通过开关电路八个按键输入抢答信号;利用蜂鸣器完成语音的录放功能;利用存储程序;利用一个数码管来完成显示功能。工作时,用按键通过开关电路输入各路的抢答信号,经单片机的处理,输出控制信号,控制数码管和蜂鸣器工

4、作。在数码管上显示哪一组先答题,并通过数码管显示选手的序号以及开始倒计时,从而实现整个抢答过程。“一种基于单片机的抢答器”与一般抢答器有四点不同:首先,抢答器反应异常灵敏。据了解,此抢答器的反应时间仅为几十微秒,大大缩短了抢答器的反应时间,使抢答器可以迅速高效的工作。其次,抢答质量有保证。在抢答过程中,当有人首先枪答成功的同时,会伴有响亮的声音提示,并且,不同的抢答器会有不同的声音,为比赛更加公正透明化提供了依据。第三,抢答器设置了复位键。抢答的活动常常会有几个环节构成,为了保证在每个环节中枪答器都可以快速高效的运作,使得抢答更加顺利的进行,此类抢答器设置了复位键。最后,抢答器利用单片机技术。

5、利用这一技术,保证了抢答器拥有上述功能的同时,提高了抢答器的寿命与质量,让抢答器可以更加实用的同时,提高了抢答器的技术含量。单片机课程设计41 系统设计系统设计1.11.1 设计任务与要求设计任务与要求设计并制作一个基于单片机 8051 最简连线抢答器1、基本要求具有八路输入,能够识别最先输入的信号,显示选号,并有声音提示。对回答问题所用的时间进行倒计时显示,并提示结束时间报警。具有抢答开关功能,按下该键后系统进入抢答状态。主持人能够及时对电路进行屏幕清零,进行下一题的抢答2、发挥部分在按下抢答开关之前的信号判断为提前抢答,显示选号,声音提示,连续达到定次数后限制其抢答。具有设置上述提及的时间

6、、次数等参数的功能。 1.2 方案比较与论证方案比较与论证方案一:系统各部分采用中小规模集成数字电路,用机械开关按钮作为控制开关,完成抢答输入信号的触发。该方案的特点是中小规模集成电路应用技术成熟,性能可靠,能方便地完成选手抢答的基本功能,但是由于系统功能要求较高,所以电路连接集成电路相对较多,而且过于复杂,并且制作过程工序比较烦琐,使用不太方便。 方案二:该系统采用 8051 系列单片机 80C51 作为控制核心,该系统可以完成运算控制、信号识别以及显示功能的实现。由于用了单片机,使其技术比较成熟,应用起来方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。整个系统具有极其灵活的可编

7、程性,能方便地对系统进行功能的扩张和更改。MCS-51 单片机特点如下: 可靠性好:单片机按照工业控制要求设计,抵抗工业噪声干扰优于一般的CPU,程序指令和数据都可以写在 ROM 里,许多信号通道都在同一芯片,因此可靠性高,易扩充。单片机课程设计5抢答按扭优先编码电路锁存器译码电路译码显示主持人控制开关控制电路报警电路秒脉冲产生电路定时电路译码电路显示电路单片机有一般电脑所必须的器件,如三态双向总线,串并行的输入及输出引脚,可扩充为各种规模的微电脑系统。 控制功能强:单片机指令除了输入输出指令,逻辑判断指令外还有更丰富的条件分支跳跃指令。方案比较及其选用依据,显然方案二比方案一简单的多,不但从

8、性能上优于方案一,而且在使用上及其功能的实现上都较方案一简洁,并且由于单片机具有优越的高集成电路性,使其工作速度更快、效率更高。另外 80C51 单片机采用12MHz 的晶振,提高了信号的测量精度,并且使该系统可以通过软件改进来扩张功能。而方案一采用了中小规模集成电路,有其复杂的电路性能,从而可能会使信号的输入输出产生延时及不必要的误差。依此依据选择方案二比较适合。总原理图见附录 2。其原理框图如下:图 1-1 抢答器的原理框图1.3 8051 单片机系统说明1.3.1 8051 单片机简介单片机简介8051 系列单片机是国际上流行多年的代表机型,是国内高校教学和初学者入门首选的主流机型,也是

9、在各种技术期刊和专业书籍中出现频率最高的经典机型。本文以标准 80C51 为模型,并适当兼顾 8051 系列的共性和常用型号的特性。内单片机课程设计6容主要包括:硬件架构、ROM、RAM、指令系统、汇编程序基础和汇编语言工具链、并行端口、定时器、中断逻辑、复位逻辑、时钟电路、电源电路等功能电路的结构和工作原理,以及片内程序存储器编程原理。1.3.21.3.2 80C5180C51 的时序图的时序图 时序图如图 1-2 所示:图 1-2 80C51 的时序图时序控制电路: :主持人将控制开关拨到“开始”位置时,扬声器发声,抢答电路和定时电路进入正常抢答工作状态。当参赛选手按动抢答键时,扬声器发声

10、,抢答电路和定时电路停止工作。当设定的抢答时间到,无人抢答时,扬声器发声,同时抢答电路和定时电路停止工作。图 1-3 时序控制电路1.4 8051 引角及其功能电源端 Vcc 40 脚 单片机课程设计7接地端 GND 20 脚 图 1-4 80C51 的引脚时钟信号输入端 XTAL2 18 脚时钟电路引脚 XTAL1 19 脚 复位信号输入端 RST 9 脚 ,高电平有效 地址锁存允许信号端 ALE 30 脚 ,6 分频振荡周期, PSEN 29 脚 程序存储器允许输出信号端 用于读取外部的程序存储器,每个机器周期中两次有效。EA 31 脚 外部程序存储器地址允许输入,接高电平时,执行片内程序

11、存储器的内容,当 PC 超过 0fffH 时,自动变 0。接低电平时,访问外部程序存储器。P0 3932 脚 8 位准双向 I/O,在做输入时,要先向口地址 80H 写 1,此时由内部上拉提成高阻态。P1 18 脚 8 位准双向 I/O 口1.5 设计抢答器的目的与意义通过这次课程设计,掌握 80C51 单片机的原理,了解简单多功能抢答器组成原理,初步掌握多功能抢答器的调整及测试方法,提高动手能力和排除故障的能力。同时通过本课题设计与装配、调试,提高自己的动手能力,巩固已学的理论知识,建立单片机理论和实践的结合,了解多功能抢答器各单元电路之间的关系及相互影响,从而能正确设计、计算定时计数的各个

12、单元电路。初步掌握多功能抢答器的调整及测试方法,提高动手能力和排除故障的能力。设计思路:抢答器是一种应用非常广泛的设备,在各种竞赛、抢答场合中,它能迅速、客观地分辨出最先获得发言权的选手。早期的抢答器只由几个三极管、可控硅、发光管等组成,能通过发光管的指示辩认出选手号码。现在大多数抢答器均使用单片机(如 MCS-51 型)和数字集成电路,并增加了许多新功能,如选手号码显示、抢按前或抢按后的计时、选手得分显示等功能。 本课题利用 80C51 单片机及外围接口实现的抢答系统,利用单片机的定时器/单片机课程设计8计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码

13、管能够正确地显示时间和选手号码。用开关做键盘输出,蜂鸣器发生提示。系统达到要求:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;抢答限定时间和回答问题的时间可设在 1-99s 设定;可以显示是哪位选手有效抢答和无效抢答,正确按键后有音乐提示;抢答时间和回答问题时间倒记时显示,时间完后系统自动复位;按键锁定,在有效状态下,按键无效非法。而基于单片机的竞赛抢答器能解决上述的各个问题。2 主要元器件分析2.1 80C51 芯片80C51 内含 8 位 CPU;广泛的布尔处理能力:32 根双向且分别可寻址的 I/O 线;128 字节RAM;2 个 16 位定时器/计数器;全双工异步串行口(

14、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

15、 代码显示出来,在 PC 的操作系统引导工作完成前,数码管显示的代码总处于变化状态。 单片机课程设计9图 2-1 数码管引脚图1、数码管使用条件(1)段及小数点上加限流电阻。(2)使用电压:段:根据发光颜色决定;小数点:根据发光颜色决定。(3)使用电流:静态:总电流 80mA(每段 10mA) ;动态:平均电流 4-5mA,峰值电流 100mA。2、数码管使用注意事项说明(1)数码管表面不要用手触摸,不要用手去弄引角;(2)焊接温度:260 度;焊接时间:5s;(3)表面有保护膜的产品,可以在使用前撕下来。3 硬件设计电路(使用硬件设计电路(使用 PROTEL 软件设计)软件设计) 3.1 单

16、元电路设计单元电路设计3.1.1 单片机最小系统单元设计单片机最小系统单元设计根据上面的方案分析,本设计的硬件部分可缺的震荡、复位电路构成了本设计的接线图, 控制系统主要由单片机应用电路、存储器接口电路、显示接口电路,抢答电路,主持人控制电路等组成。其中单片机 8051 是系统工作的核心,它主要负责控制各个部分协调工作. 所需元件:该系统的核心器件是 8051。在其外围接上复位电路、上拉电阻、数码管、按钮及蜂鸣器。元件为:晶振 X1、电容C1、C2、 电阻 RES、外部中断 0,P3.2 由裁判控制,是抢答开始键。P1.0-P1.7单片机课程设计10是 8 组抢答的输入口, P2.0-P2.3

17、 口为数码管的段选口,位选口用的是 P0.0-P0.7 输出,P3.7 口为蜂鸣器输出口。P0 口和 P1 口要分别接上上拉电阻。设计如图 3-1 所示P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78RST/VPD9P3.0/RxD10P3.1/TxD11P3.2/INT012P3.3/INT113P3.4/T014P3.5/T115P3.6/WR16P3.7/RD17XTAL218XTAL119GND20P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN29ALE/PROG30EA/Vpp31P0.732P

18、0.633P0.534P0.435P0.336P0.237P0.138P0.039VCC4080C5130pFC130pFC212Y1XTALGND10KR110KR210UFC3S9S10SW1SW2SW3SW4SW5SW6SW7SW8VCCGND个个个个个VCC10KR3VCCGNDqingqing个个个个个个P3.7RXTXP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.3P2.2P2.1P2.0GNDVCC10pFC8GND图 3-1 单片机基本电路3.1.2 控制电路设计控制电路设计1)八个开关按钮电路图 3-2:S1S2S3S4S5S6S7S8GNDSW1SW

19、2SW3SW4SW5SW6个个个个个个SW7SW8单片机课程设计11图 3-2 按钮电路 2)蜂鸣器电路图 3-3 所示:CCBBEEPNP200R4VCCGND个个个个个P3.7LABA图 3-3 蜂鸣器电路该电路是由单片机 P3.7 端口输出信号经过三极管驱动放大后使蜂鸣器发出声音。3)数码管显示电路,如图 3-4 所示:个个个个100R5100R6100R7100R8100R9100R10100R11100R12SASESFSGSDPSDSCSBP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7Q1Q2Q3Q41KR131KR141KR151KR16VCCH1H2H3H4P

20、2.0P2.1P2.2P2.3H1H2H3H4SASFSBSESDSDPSCSGE1D2DP3C4G5COM46B7COM38COM29F10A11COM112U14个个个个单片机课程设计12图 3-4 数码管显示电路该数码管电路使用的是共阳数码管,通过 P0.0-P0.7 控制数码管的 A-G 的各个相应段,P2.0-P2.3 输出信号通过三极管功率放大后控制哪一个数码管显示。4)主持人控制电路,如图 3-5 所示:GNDVCC100R17S11P3.7 图 3-5 主持人控制电路当主持人宣布答题开始时,主持人按下迅速 S11,如图可使 P3.7 端口的电压拉低,相当是给单片机一个中断,单片

21、机开始倒计时。3.2 总电路设计总电路设计 本系统程序设计采用 T0 的溢出中断来实现倒计时定时,采用 T0 的溢出中断来使喇叭发出一定频率的声音;用一个两位 LED 来显示倒计时,另外用一个两位LED 显示选手号。其中,倒计时显示的两位 LED 用的是共阴极接法,选手号显示LED 用的是共阴极接法;并且通过动态显示法(即位选控制)来实现四个 LED 的同时显示。如附录 1 所示。单片机课程设计133.3 PROTEL 绘制的绘制的 PCB 图图如图,我们将绘制出的 PCB 图打印出来如图所示,最后就可以经过自己刷板或者工厂刷板后得到我们的印制电路板了。 图 3-6 抢答器 PCB 图 图 3

22、-7 印制板底部布线图 图 3-8 印制板元器件面摆放图单片机课程设计144 程序设计程序设计4.1、程序流程、程序流程由方案分析知,本设计涉及到的功能子程序包括:查询程序、非法抢答处理程序、INT0(调抢答时间) 、INT1(调回答时间) 、倒计时程序、正常抢答处理程序、犯规抢答程序、显示程序、发声程序、T0 溢出中断(响铃程序)、T1 溢出中断(计时程序)。由设计的硬件部分看到,本设计采用 P3.2、P3.3 分别接抢答时间调节和答题时间调节按钮,即通过外部中断 0、外部中断 1 分别控制抢答、答题时间的调整。因此,设计的软件部分可分为工作模块、外部中断 0 模块、外部中断 1 模块。对流

23、程图的分析,也分三部分来介绍。1)工作时(非调节时间时)的流程平时正常工作时,程序的流程图绘制如图 4-1: 图 4-1 抢答器工作流程图 开始初始化读键盘是否有键按下NY中断条件是否满足N进入中断程序调用显示抢答违规并报警子程序Y单片机课程设计15 对工作流程图中的某些部分解释如下:初始化部分:包括对定时计数器的工作方式、初始化数值的设置,还包括对抢答时间与答题时间的预设,另外,还应对外部中断 0、外部中断 1 进行开放。抢答倒计时:当主持人按下抢答键后,系统进入中断程序,开始计时,本次设计为 10S。 犯规程序部分:包括对犯规选手号的显示、报警器的间断工作,程序停止运行,并显示犯规的选手号

24、码。另外,由于在设计要求主持人能随时对工作过程终止,因此,要不断查询停止键的状态,一旦按下,便回到初始化后的状态;在倒计时过程中设定 5S 报警,因此程序在运行中要不断与 5S 比较,当小于 5S 时,还需调用发声程序;小于 5S后, 又需要不断将与 0 较,当其等于零时,立即返回。2)外部中断 0(抢答时间调整)流程外部中断 0(抢答时间调整)的流程图见图 4-2: 图 4-2 中断程序流程图10秒枪答倒计时开始显示开中断并响声提示设定定时器初值并启动定时器10秒到中断返回中断服务程序调用读键子程序作为延时程序是否有键按下NY调用抢答者获的回答问题子程序单片机课程设计16一旦因 P3.2 对

25、应键的按下,便进入 INT0 中断过程。程序开始对答题选手进行时间倒计时,本设计为 10S 倒计时,当时间还剩 5S 时,调入报警子程序,驱动蜂鸣器发声。另外,在中断过程中还需要不时对停止按钮进行查询,一旦发现其按下,立即中断返回。由于本中断过程在返回前一直是循环执行的,因此,只需要在每次循环末查询一次即可,如流程图所示。3)答题程序流程 图 4-3 答题流程图 与抢答时间调整类似,一旦因 P3.2 对应的按钮按下,便进入 INT0 中断过程。通过不断对 P3.2(减 1s)进行不断的查询,来对答题时间进行调整,同上,在中断过程中,也还需要不时对停止按钮进行查询,一旦发现其按下,立即中断返回。

26、响声提示设定定时器初值并启动显示抢答者且3秒后15秒倒计时20秒回答问题时间到并响声提示RET调用抢答者获的回答问题子程序单片机课程设计17至此,流程图已介绍完毕,下面将对设计的源程序进行介绍:4.2、源程序介绍、源程序介绍根据流程图中的介绍,本设计的源程序除主程序外,好包括查询程序、非法抢答处理程序、抢答时间调整程序、答题时间调整程序、倒计时程序、正常抢答处理程序、犯规抢答程序、显示程序、发声程序、T0 溢出中断程序、T1 溢出中断中断程序。下面将对下面将对其一一介绍。完整的源程序参见附录 2a)主程序:包括对两个定时计数器的初始化、开中断、抢答时间和答题时间的预设等相关设置:MAIN: M

27、OV 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 ;初设答题时间

28、为 20s 单片机课程设计18 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

29、;按键发声 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单片机课程设计19 JNB P1

30、.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 中断处理程序,程序流程参见

31、图四 INT0 流程图。另外,在调用显示程序前,还需要对当前抢答时间进行十六进制十进制转换,将个位存入 R4,十位存入 R5,选手号不显示(R3 存入 0AH) ,具体编写参见附录源程序。e) 倒计时程序这里的倒计时程序包括抢答倒计时和答题倒计时,为了编写方便,最后五秒的倒计时提示也包含在本部分。程序中,首先要对 T0 溢出中断次数清零(一次中断为 50ms) ,因为定时计数器 0 选用的是方式 1,没有自动载入计数初值的功能,这里还需要对其赋初(3CB0H) ,每当 T0 溢出中断次数达到 20 次(50ms20=1s) ,就对倒计时减一。同样,这里需要调用到显示子程序,因此,也需要将倒计时

32、转换为十进制,分别个位、十位分别存入 R4、R5。如果是在抢答倒计时,在倒计时过程中,若查询有人抢答,则要立即跳转到正常处理程序执行。当倒计时小于等于 5s 时,通过每秒单片机课程设计20钟响 0.5s 铃来给与提示。另外,还要不断对停止键查询,一旦发现其按下,则跳转到查询程序。若倒计时及时完毕,也是跳转到查询程序。g)正常抢答处理程序 在进行抢答倒计时的过程中,若有选手抢答,则程序转入抢答倒计时执行。先按键发声,再将答题时间送入 R6,进入答题倒计时,并将选手号送 R3,以便显示。另外,还需要对开始标志位清零,来封锁其他选手的抢答。这里以选手一的抢答为例:若检测到选手一最先抢答,则执行以下程

33、序:TRUE1: ACALL BARK ;调用发声提示,按键发声 MOV A,R2 MOV R6,A ;答题时间 R2 送倒数计时 R6 MOV R3,#01H ;选手号送 R3(以便显示) CLR OK ;封锁其他选手抢答 AJMP COUNT ;跳至倒计时程序同理,可以得到其他选手的处理程序。详细程序请参见附录源程序中正常抢答处理程序部分。h) 犯规抢答程序当选手在开始键按下之前进行了抢答,程序先转到非法处理程序执行,非法处理程序确定是哪位选手犯规后,就转入犯规抢答程序。在进入犯规处理程序后,首先对定时计数器 1 的溢出中断次数清零,并对其赋初值(3CB0H),再灭显示 0.3s,接着显示

34、选手号并响铃 0.5s。直至检查到停止按钮按下,才返回到查询程序。ERROR: MOV R0,#00H ;定时计数器 1 的溢出中断次数清零 MOV TH1,#3CH ;对定时计数器其赋初值单片机课程设计21 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,CHEC

35、K1 ;闪烁程序, (后 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 单片机课程设计22 AJMP START ;返回至查询程序i) 显示程序这里的显示包括对时间和选手号的显示。从程序来讲包括对抢答、答题倒计时,调

36、节倒计时,最先抢答选手号,犯规选手号的显示。根据前面的安排,用 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的显示程序与

37、此大同小异,只需要将位选改为对应位即可,具体参见附录中源程序部分。j) 发声程序与 T0 中断程序 一旦开始键或抢答键按下,或因非法抢答,或者倒计时进入最后 5s,都需要调用到发声子程序,它与 T0 中断程序共同来完成发声的功能。 发生程序的要完成的操作比较简单,即只需将响铃标志位置 1 一段时间后,再将其清零。时间的长短通过调用延时程序来控制。其形式为:单片机课程设计23BARK: SETB RING ACALL DELAY CLR RING RET而 T0 中断程序,是根据为其设定的中断频率(由初值确定) ,来检测响铃标志位,若其为 1,则将 P3.7 取反,来发出一定频率的声音。由于定时

38、计数器设定的模式为模式一,这里还需要对其重新载入初值。具体编写参见附录源程序。 除了上面介绍的功能子程序,本设计还时时要用到延时程序,包括对按键消抖的延时、显示延时。具体编写参见附录源程序中延时程序部分。 至此,所有子程序的编写已介绍完毕。5 功能仿真在试验检测前,利用 Proteus 软件对本设计进行了仿真, 对各个要求进行了验证.仿真运行后,界面如图 5-1:图 5-1 开始运行后界面XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P

39、0.7/AD732P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115U180C51C11nFC222pFR2200kR31KA02A14A26A38OE1Y018Y116Y214Y312U2:A74HC244C3100uR1100kR4100kX2CRYST

40、AL234567891RP1RESPACK-8234567891RP2RESPACK-8LS2SPEAKERQ2PNP单片机课程设计24按下抢答开始键后,进入图 5-2 界面,进入抢答倒计时:XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427P1.01P1.12P1.

41、23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115U180C51C11nFC222pFR2200kR31KA02A14A26A38OE1Y018Y116Y214Y312U2:A74HC244C3100uR1100kR4100kX2CRYSTAL234567891RP1RESPACK-8234567891RP2RESPACK-8LS2SPEAKERQ2PNP 图 5-2 抢答倒计时 当 3 号选手最先按下抢答键后,进入下面界面。回答倒计时

42、开始工作:XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6

43、/WR16P3.5/T115U180C51C11nFC222pFR2200kR31KA02A14A26A38OE1Y018Y116Y214Y312U2:A74HC244C3100uR1100kR4100kX2CRYSTAL234567891RP1RESPACK-8234567891RP2RESPACK-8LS2SPEAKERQ2PNP图 5-3 回答倒计时界面单片机课程设计25当 8 号选手最先按下抢答键后,进入下面界面。回答倒计时开始工作:XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4

44、/AD435P0.5/AD534P0.6/AD633P0.7/AD732P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115U180C51C11nFC222pFR2200kR31KA02A14A26A38OE1Y018Y116Y214Y312U2:A74HC2

45、44C3100uR1100kR4100kX2CRYSTAL234567891RP1RESPACK-8234567891RP2RESPACK-8LS2SPEAKERQ2PNP图 5-4 回答倒计时界面有人在开始键按下前抢答,即犯规抢答时,界面如下,将显示抢答选手号码。:XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/

46、A1225P2.5/A1326P2.6/A1427P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115U180C51C11nFC222pFR2200kR31KA02A14A26A38OE1Y018Y116Y214Y312U2:A74HC244C3100uR1100kR4100kX2CRYSTAL234567891RP1RESPACK-8234567891RP2RESPACK-8LS2SPEAKERQ2PNP单片机

47、课程设计26 图 5-5 犯规抢答界面结 论抢答器主要应用在一些娱乐活动中,抢答器又称第一信号鉴频器。抢答器的出现解决了过去举手抢答的方式。这样不但增强了可靠性,而且提高了公平性,值得选手信赖。由于抢答器的出现为娱乐领域中的抢答环节提供了方便。抢答器应用的一个关键问题是对其工作的稳定性,可靠性,快速性的设计要求严格。抢答器主要利用数字电路的编码,译码和定时功能来实现,或者利用单片机控制来完成,即智能化设计。本设计定位于本学科发展方向对单片机的编程及数字电路的应用进行研究,并且得到一些有意义的结论。抢答器的出现已经很多年,并且种类很多。目前抢答器的功能是较为完善的,即智能化,可靠性高,速度快,工

48、作稳定。本设计采用了部分智能化,在抢答时间方面还须改进,而且在准确性方面也有待于改进。本设计的进一步设计应该是无限时的答题时间控制且用单片机来完成。一年多的单片机学习主要是课本上理论知识的学习,这些理论知识远不能满足对单片机的应用的要求,这次设计给我们提供了一次很好的理论联系实际的机会,使得我们对单片机的功能以及应用有了更深刻的了解和认识。另外,程序设计是本次设计的一个难点,由于对指令的运用不够熟练使得在编程时屡屡碰壁。特别对于一些中断程序,因涉及到一些标志位而使得编程难度更高,虽然通过查资料以及同学老师的指导解决了这些问题,但编程方面的欠缺还是很大的,这为我以后的学习业敲响了警钟,在以后我应

49、加强这方面的练习以提高自己。由于时间以及自己的能力有限,这次的设计中难免会有一些遗漏和不足,希望老师批评指正。单片机课程设计27致 谢四年的大学生活即将结束,为期半个月的课程设计也接近了尾声。此次课程设计的完成,凝聚着许多人的关怀和帮助。首先要感谢我敬爱的指导教师徐祖华老师,他对我的学习和工作严格要求,并耐心地教导激励我们积极进取,培养我们形成良好的科研作风,所有这些,我们将终生受益。在此,我对徐老师的培养和帮助深表感谢,本设计是在徐祖华老师的悉心指导下完成的,在整个实际阶段,徐祖华老师除了给我提出方案外,也留给我主动解决问题的空间,使我在整个过程中很好的锻炼了自主分析和解决问题的能力。课程设

50、计本身就是一个将理论和实际工作结合起来的演习,是徐老师的指导和帮助教会我独立思考,自主分析和解决问题,为我今后走出校门迈向工作岗位奠定了坚实的基础,并激励着我在今后的人生道路上不断开拓进取,勇往直前。我再一次对黄老师的培养和关怀表示诚挚的谢意!同时,还要感谢和我一起同学们,他们在我设计期间给予我很多帮助,没有大家的帮助,我将无法顺利完成设计,再次致以衷心的感谢。再次真诚地感谢所有在我四年读书期间帮助过我的老师、同学和朋友!单片机课程设计28参考文献1李朝青.单片机原理及接口技术(修订版).北京:北京航空航天大学出版社,19982李广弟.单片机基础.北京:北京航空航天大学出版社,19923何立民

51、.单片机应用技术大全.北京:北京航空航天大学出版社, 19944张毅刚. 单片机原理及接口技术.哈尔滨:哈尔滨工业大学出版社,19905谭浩强.单片机课程设计. 北京:清华大学出版社,1989单片机课程设计29附录 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 ;初设答题时间为 2

52、0s 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单片机课程设计30 ACALL DELAY JB P1.0,NEXT ;去抖动,如果开始键按下就向下执行,否者跳到非法抢答查询 ACALL BARK ;按键发声 MOV A

53、,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 ERRORFALS

54、E2: 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单片机课程设计31 AJMP ERRORFALSE6: ACALL BARK MOV R3,#06H AJMP ERROR INT0SUB:MOV A,R1 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY ;先在两个时间 LE

55、D 上显示 R1 JNB P3.7,BACK0 ;P3.7 为确定键,如按下跳到 BACKO AJMP INT0SUBBACK0: RETI : COUNT: MOV R0,#00H ;重置定时器中断次数 MOV TH0,#3CH MOV TL0,#0B0H ;重置定时器RECOUNT: MOV A,R6 ;R6 保存了倒计时的时间,之前先将抢答时间或回答时间给 R6 MOV B,#0AH DIV AB ;除十分出个位/十位 MOV 30H,A ;十位存于(30H) MOV 31H,B ;个位存于(31H) MOV R5,30H ;取十位 MOV R4,31H ;取个位 MOV A,R6 SU

56、BB A,#07H JNC LARGER ;大于 5s 跳到 LARGER,小于等于 5s 会提醒 MOV A,R0单片机课程设计32 CJNE A,#0AH,FULL;1s 中 0.5s 向下运行 CLR RING AJMP CHECKFULL: CJNE A,#14H,CHECK;下面系 1s 的情况,响并显示号数并清 R0,重新计 SETB RING MOV A,R6 JZ QUIT ;计时完毕 MOV R0,#00H DEC R6 ;一秒标志减 1 AJMP CHECKLARGER: MOV A,R0 CJNE A,#14H,CHECK;如果 1s 向下运行,否者跳到查停/显示 DEC

57、 R6 ;计时一秒 R6 自动减 1 MOV R0,#00HCHECK: JNB P1.7,QUIT ;如按下停止键退出 ACALL DISPLAY JB OK,ACCOUT ;如果是抢答倒计时,如是则查询抢答,否者跳过查询继续倒数 AJMP RECOUNTACCOUT:JNB P1.0,TRUE0 JNB P1.1,TRUE1 JNB P1.2,TRUE2 JNB P1.3,TRUE3 JNB P1.4,TRUE4 JNB P1.5,TRUE5 JNB P1.6,TRUE6 JNB P1.7,TRUE7 AJMP RECOUNTQUIT: CLR OK ;如果按下了停止键执行的程序单片机课程

58、设计33 CLR RING AJMP STARTTRUE0: ACALL BARK ;按键发声 MOV A,R2 MOV R6,A ;抢答时间 R2 送 R6 MOV R3,#01H CLR OK ;因为答题的计时不再查询抢答,所以就锁了抢答 AJMP COUNTTRUE1: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#02H CLR OK AJMP COUNTTRUE2: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#03H CLR OK AJMP COUNTTRUE3: ACALL BARK; MOV A,R2 MOV R6,A

59、 MOV R3,#04H CLR OK AJMP COUNTTRUE4: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#05H单片机课程设计34 CLR OK AJMP COUNTTRUE5: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#06H CLR OKTRUE6: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#06H CLR OKTRUE7: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#06H CLR OKAJMP COUNTERROR: MOV R0,#00H M

60、OV TH1,#3CH MOV TL1,#0B0H MOV 34H,R3 ;犯规号数暂存与(34H)HERE: MOV A,R0 CJNE A,#0AH,FLASH ;0.5s 向下运行-灭并停响 CLR RING MOV R3,#0AH MOV R4,#0AH MOV R5,#0AH ;四灯全灭 AJMP CHECK1FLASH: CJNE A,#14H,CHECK1 ;下面系 1s 的情况,响并显示号数并清 R0,重新计单片机课程设计35 SETB RING MOV R0,#00H MOV R3,34H ;取回号数 MOV R5,#0BH MOV R4,#0BH ;显示 FF 和号数 AJ

61、MP CHECK1CHECK1:JNB P1.7,QUIT1 ACALL DISPLAY AJMP HEREQUIT1: CLR RING CLR OK AJMP STARTDISPLAY: MOV DPTR,#DAT1;利用 P0 口做段选码口输出/P2 低四位做位选码输出 MOV A,R5 MOVC A,A+DPTR MOV P2,#01H MOV P0,A ACALL DELAY MOV DPTR,#DAT2 MOV A,R4 MOVC A,A+DPTR MOV P2,#02H MOV P0,A ACALL DELAY MOV A,R3 MOVC A,A+DPTR MOV P2,#04H

62、 MOV P0,A ACALL DELAY单片机课程设计36 RETDAT1:DB 00H,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71HDAT2:DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71HDELAY1: MOV 35H,#08HLOOP0: ACALL DISPLAY DJNZ 35H,LOOP0 RETDELAY: MOV 32H,#12HLOOP: MOV 33H,#0AFHLOOP1: DJNZ 33H,LOOP1 DJNZ 32H,LOOP RETBARK: SETB RING ACALL DELAY1 ACALL DELAY1 CLR RING ;按键发声 RETT0INT: MOV TH0,#0ECHMOV TL0,#0FFH JNB RING,OUT; CPL P3.6 ;RING 标志位为 1 时候 P3.6 口不短取反使喇叭发出一定频率的声音OUT: RETI END

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

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

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


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