抢答器单片机课程方案设计书.pdf

上传人:w*** 文档编号:73146316 上传时间:2023-02-15 格式:PDF 页数:25 大小:758.76KB
返回 下载 相关 举报
抢答器单片机课程方案设计书.pdf_第1页
第1页 / 共25页
抢答器单片机课程方案设计书.pdf_第2页
第2页 / 共25页
点击查看更多>>
资源描述

《抢答器单片机课程方案设计书.pdf》由会员分享,可在线阅读,更多相关《抢答器单片机课程方案设计书.pdf(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1 绪论1.1 课题研究背景及意义本次课程设计制作的是智能抢答器。对于抢答器我们大家都很熟悉:是用于选手做抢答题目时用的,选手进行抢答,最先抢到题的选手回答问题。本实验设计的智能抢答器由主体电路与扩展电路组成。优先编码电路、锁存器、译码电路将参赛队的输入信号在显示器上输出;用控制电路和主持人开关启动报警电路,以上两部分组成主体电路。通过定时电路和译码电路将秒脉冲产生的信号在显示器上输出实现计时功能,构成扩展电路。经过布线、焊接、调试等工作后智能抢答器成形。1.2 相关背景介绍抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在数码管上显示,同时扬声器发出报警声响提示。选手抢答实行优先

2、锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。用单片机来实现,他的制作比较简单,与我们学的单片机原理联系紧密,能将我们所学知识用于实际,对巩固所学知识有重要意义,使总体方案易于实现。所以本方案用单片机来实现。在有些实际竞赛的场合,只要满足显示抢答有效和有效组别即可,所以我们打算用一片 74HC373(8 位数据锁存器)来实现本课程设计的简易抢答器的功能,这是一个显示方式简单,价格低廉,经济实用的抢答器设计方案。在要求不高的场合,能完全符合要求。2总体设计方案2.1智能抢答器主要功能抢答器原理:每个选手的座位前安装一只抢答按钮开关和一只信号灯。主持人的座位前安装一只复原按钮开关、一只蜂

3、鸣器和一只抢答器工作状态指示灯。每当主持人口头发出允许抢答的号令之后,哪个队先按下座位上的按钮开关,该座位的信号灯就先被点亮,同时封锁其他按钮开关的活动。并且熄灭主持人座位上的状态指示灯和发出 3 声类似于电话振铃的提示声,以“声明”此次抢答动作已经完成。在主持人确认后,按下复原按钮,状态指示灯重新点亮,并且同时发出“笛笛”声,为下一次的抢答作好准备。电路中的蜂鸣器 FM 是一只带有助音腔的压电陶瓷蜂鸣器,用于模拟发出报警声的功率放大器和喇叭。发声的原理是,作用在两个电极极板的电位在发生变化时,陶瓷材料就发生弯曲,从而振动空气发出声音。FM 和 4 只按钮开关 SWaSWd 都是在演示板的基础

4、上额外添加的。由于 RB 端口内部具有上拉电阻,只要用软件设置其有效,即可省略在 4 只端口引脚上外接上拉电阻。参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示 0。利用单片机可以用很少元件实现功能。单片机性能稳定,可操作性强。可以只用 P0 口连接排阻(用作上拉电阻),完成驱动 LED 的功能,串接按键可以由选手自己控制抢答机会。利用单片机程序判断选手按键是否有效,但当选手违规抢答时,利用简单程序显示选手序号,启动蜂鸣器并不间断,告诉主持人

5、有人违规操作,抢答无效。给出相应的延时,选手按正常的操作抢答,软件倒记时。如果有选手在规定的时间以前完成问题,主持人通过按键开始按钮来复位,开始新的问题作答,因为程序不是很大不需要扩展存储空间,选手按键跳入相应的子程序,回答倒记时与普通抢答器相比,我们还加入了一些不一样的想法:1、具有清零装置和抢答控制,可由主持人操纵避免有人在主持人说“开始”前提前抢答违反规则。2、具有定时功能,在 10 秒内无人抢答表示所有参赛选手获参赛队对本题弃权。3、10 秒时仍无人抢答其报警电路工作表示抢答时间耗尽并禁止抢答。2.2电路设计本抢答器的电路主要有四部分组成:数字抢答电路、时序控制电路、报警电路以及可预置

6、时间的定时电路。其中数字抢答部分有一个 74HC373 锁存器和数码管显示器组成,可以将八位抢答者的按钮通过数码管显示器显示出他们最先抢答者的序号。而时序控制电路的功能是当参赛选手按动抢答器时,使扬声器发声,这时抢答电路和定时电路停止工作。而且设定的时间(本课题设置为10 秒)到达后若无人抢答,则报警电路工作。报警电路工作的条件是当设定时间到达后或者有人抢答时,报警电路被输入一个高电平,这时此电路工作。2.3八位抢答器设计要求本次设计的智能抢答器(八位抢答器)将具有以下功能:(1)抢答器同时供 8 名选手比赛抢答用,有 8 个按钮 S0 S7表示。(2)设置一个系统清除和抢答控制开关“开始”,

7、“结束”,该开关由主持人控制。(3)抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,扬声器发出声响提示,并在数码管上显示选手号码。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。此外还有一些扩展功能:(1)抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如 10秒)。当主持人启动“开始”键后,定时器进行减计时。(2)参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。(3)如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示 0。2.4 硬件介绍2.4.1

8、AT89C52 单片机简介AT89C52 是 8 位通用微处理器。采用标准的 C51 内核,在内部功能及管脚排布上PDIP 封装的 AT89C52引脚图与通用的 8xc52相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC内部寄存器、数据 RAM 及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号 IR的接收解码及与主板 CPU 通信等。主要管脚有:XTAL1(19 脚)和 XTAL2(18 脚)为振荡器输入输出端口,外接 12MHz 晶振。RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和 VSS(20 脚)为供电端口,分别

9、接+5V 电源的正负端。P0P3 为可编程通用 I/O脚,其功能用途由软件定义,在本设计中,P0 端口(3239 脚)被定义为 N1 功能控制端口,分别与 N1 的相应功能管脚相连接,13 脚定义为 IR输入端,10 脚和 11 脚定义为 I2C总线控制端口,分别连接 N1 的 SDAS(18脚)和 SCLS(19 脚)端口,12 脚、27 脚及 28 脚定义为握手信号功能端口,连接主板 CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。P0 口:P0 口是一组 8 位漏极开路型双向 I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动 8 个 TT

10、L逻辑门电路,对端口 P0写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低 8位)和数据总线复用,在访问期间激活内部上拉电阻。P1 口:P1 是一个带内部上拉电阻的 8 位双向 I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4 个 TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。引脚号功能特性T2,P1.0时钟输出T2EXP1.1(定时/计与 AT89C51 不同之处是,P1.0和 P1.1还可分别作为定时/计数器 2

11、的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),参见表 1。Flash编程和程序校验期间,P1 接收低 8 位地址。数器2)P2 口:P2 是一个带有内部上拉电阻的 8 位双向 I/O口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL逻辑 门电路。对端口 P2 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或 16 位地址的外部数据存储器(例如执行 MOVX DPTR指令)时,P2 口送出高 8 位地址数据。在访问 8 位地址的外部数据存储器(如执

12、行 MOVX RI 指令)时,P2 口输出 P2锁存器的内容。P3 口:P3 口是一组带有内部上拉电阻的 8 位双向 I/O口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个 TTL逻辑门电路。对 P3 口写入“1”时,它电阻输出电流(IIL)。P3 口除了作为一般的 I/O口线外,更重要的用途是它的第二功能P3 口还接收一些用于 Flash闪速存储器编程和程序校验的控制信号。RST:复位输入。当振荡器工作时,RST 引脚出现两个机器周期以上高电平将使单片机复位。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低 8 位字节。一般情况下,AL

13、E 仍以时钟振荡频率的 1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个 ALE 脉冲。PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52 由外部程序存储器取指令(或数据)时,每个机器周期两次 PSEN 有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次 PSEN信号。EA/VPP:外部访问允许。欲使 CPU 仅访问外部程序存储器(地址为 0000HFFFFH),EA 端必须保持低电平(接地)。需注意的是:如果加密位 LB1被编程,复位时内部会锁存 EA 端状态。如 EA 端为高电平(接

14、 Vcc端),CPU 则执行内部程序存储器中的指令。XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。表 1 P1.0 和 P1.1的功能们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的 P3 口将用上拉2.4.2锁存器锁存器是一种对脉冲电平敏感的存储单元电路,它们可以在特定输入脉冲电平作用下改变状态。由若干个钟控D 触发器构成的一次能存储多位二进制代码的时序逻辑电路,叫锁存器件。逻辑结构与功能表见图 2-4:图 2-4 锁存器逻辑结构与功能表8 位锁存器 74HC373的逻辑图如下图所示。其中使能端G 加入 CP信号,D 为数据信号。输出控

15、制信号为0 时,锁存器的数据通过三态门进行输出。图 2-5 74HC373 引脚(管脚)图:图 2-6 74LS373 内部逻辑图图 2-7 74LS373 真值表所谓锁存器,就是输出端的状态不会随输入端的状态变化而变化,仅在有锁存信号时输入的状态被保存到输出,直到下一个锁存信号到来时才改变。在某些运算器电路中有时采用锁存器作为数据暂存器数据有效延迟后于时钟信号有效。这意味着时钟信号先到,数据信号后到。典型的锁存器逻辑电路是 D触发器电路。锁存,就是把信号暂存以维持某种电平状态。锁存器的最主要作用是缓存,其次完成高速的控制其与慢速的外设的不同步问题,再其次是解决驱动的问题,最后是解决一个 I/

16、O口既能输出也能输入的问题。3 系统硬件设计3.1硬件电路的总体框图本数字抢答器的硬件电路总体框图见图3-1:复位等辅助电路按键与按钮电路数码管显示电路总体开关电源系统图 3-1 数字抢答器电路框图3.2电路器件选择本次设计的数字抢答器采用 AT89C52 单片机作为系统的控制单元。就抢答器而言,通常可采用液晶显示或数码管显示。由于数码管作为一种主动显示器件,具有亮度高、价格便宜等优点,而且市场上也有专门的时钟显示组合数码管。本实验用数码管来显示。3.3 最小系统设计3.3.1 时钟频率电路图单片机必须在时钟的驱动下才能工作.由之前所学的单片机原理最小系统内容,在单片机内部有一个时钟振荡电路,

17、只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。晶振电路见图 3-2:图 3-2 晶振电路3.3.2 复位电路图设计单片机的第 9 脚 RST 为硬件复位端,只要将该端持续 4 个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态。复位电路图见图 3-3 所示:图 3-3 复位电路3.3.3键盘扫描电路的设计在单片机应用中键盘用得最多的形式是独立键盘及矩阵键盘。本实验用的是独立式键盘。键盘扫描电路图见图 3-4:图 3-4 独立键盘3.3.4 功能键及发声系统设计声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单片机某个口线的“高

18、”电平或低电平,则在该口线上就能产生一定频率的矩形波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调,使喇叭发出不同的声音。通过添加一些具体的功能键可以使系统的功能更加完善。功能键及发声系统结构图见图 3-5:图 3-5 功能键及发声系统结构图3.4总体设计结构图数字抢答器的总体设计结构见图 3-6:图 3-6 总体结构图4 个人小结这次的课程设计的在学期开始时进行的,经过一个暑假的“沉淀”,对做课程所要求的严谨科学态度还不适应了,所以一开始选题的时候是很不知所措,再加上考研时间的需要,这次就选了个比较简答的抢答器。当天选了题目之

19、后,就开始找资料,先是就之前所学的单片机原理及应用技术进行有关芯片的研究,后来又去图书馆找了单片机的实训教程,最终确定了用芯片 AT89C52。这次的课程设计我们希望能加入一些新的想法:比如说不准有人抢答,设定抢答时间。主要是考虑到以前看节目的时候经常会看到主持人还没说开始的时候有些人已经抢答了,而且也算是为以后的课程设计奠定基础。找了相关资料,在 P3 口添加了 6 个按键,设定了主持人的复位键(开始,结束),设定抢答时间。确定了电路图。然后是在 proteus 中画电路,由搭档在 keil 中编写程序,经过反复检查,修改。总算是调试出来了。接着就是去采集器件了,一开始也没想到要用插针,按照

20、电路图在版子上描画电路图,就开始焊,后来发现可能是排版的不够严谨吧,板子背面的排线焊出来会很杂乱。于是就想到了插针,又去电子市场买了些。终于是焊好了,一调试结果也是正确,应该说主要是之前的工作做的比较充分。设计电子智能抢答器,采用了单片机技术、数字电子、模拟电子等相关技术。把在学校三年所学知识连成一串。理论联系实践是我懂得了在系统设计中设计方法的选用是系统设计能否成功的关键。在以后的道路中,我会严格要求自己,追求完美。5 致谢这次的课程设计是对过去所学知识的系统提高和扩充的过程,为今后的发展打下了良好的基础。经过反复的查资料以及向同学请教,我学会了很多做课题的思想,套路。老师给我们安排的课程设

21、计就是在之前理论学习的基础上增加自己的动手能力,是我们的思维更活跃,不至于做只会理论知识的“书呆子”。这对以后我们的出路奠定了很好的基础。在此,我要感谢指导老师庄志红和还有其他帮助过我们的同学。6 参考文献1.单片机原理及应用技术范力旻电子工业出版社2.单片机应用技术实训教程胡文金 钟秉翔 杨健重庆大学出版社3.8051 单片机彻底研究实习篇林申茂编著人民邮电出版社4.单片机原理及接口技术实践教程胡建编著机械工业出版社5.新型单片机接口器件与技术林凌,李刚,丁茹,李小霞.西安:西安电子科技大学出版社,2005 年6.单片机原理与应用及 C51 程序设计谢维城,杨加国.清华大学出版社,2006

22、年附录附录 1:程序清单OK EQU 20H。抢答开始标志位RING EQU 22H。响铃标志位ORG0000HMAIN0003H AJMP ORGORGORGORGORGMOVAJMPINT0SUB000BH0013H001BH0040HR1,#10;初设抢答时间为10sR2,#10;初设答题时间为10sAJMPT0INTAJMPINT1SUBAJMPT1INTMAIN:MOVMOVTMOD,#11H;设置未定时器/模式 1MOVMOVMOVTH0,#0F0HTH1,#3CHTL1,#0B0H。50ms为一次溢出中断MOVTL0,#0FFH;越高发声频率越高,越尖SETBEASETBET0S

23、ETBET1SETBEX0 SETBCLROKCLRRING SETB SETB。=查询程序=START:MOV MOV R4,#0BHMOVR3,#0BHACALLJBJB询ACALLMOVA,R1MOVR6,A。送 R1-R6,因为 R1 中保存了抢答时间SETB OK。抢答标志位,用于 COUNT 只程序中判断是否查询抢答MOVR7,#01H。读抢答键数据信号标志,这里表示只读一次有用信号MOVR3,#0AH。抢答只显示计时,灭号数AJMP COUNT。进入倒计时程序,查询有效抢答的程序在 COUNT 里面NEXT:JNBJNBP1.1,FALSE2P1.0,FALSE1BARK。按键发

24、声ACALLDISPLAY。未开始抢答时候显示 FFFDELAYP3.0,NEXT。dddddddP3.0,NEXT。去抖动,如果开始键按下就向下执行,否者跳到非法抢答查R5,#0BHTR1TR0。一开始就运行定时器,以开始显示 FFF.如果想重新计EX1。允许四个中断,T0/T1/INT0/INT1数,重置 TH1/TL1 就可以了JNBP1.2,FALSE3 JNB P1.3,FALSE4JNBP1.4,FALSE5 JNB P1.5,FALSE6 JNB P1.6,FALSE7 JNBAJMP START。=非法抢答处理程序=FALSE1:MOV AJMP AJMP AJMPAJMP E

25、RRORFALSE5:MOVAJMP ERRORFALSE6:MOVAJMP ERRORFALSE7:MOVAJMP ERRORFALSE8:MOVAJMP ERROR。=INT0(抢答时间 R1 调整程序)=INT0SUB:MOV MOV B,#0AHDIVABMOVR5,A MOV R4,BA,R1R3,#08HR3,#07HR3,#06HR3,#05HERRORR3,#02HR3,#03HR3,#04HERRORERRORFALSE2:MOVFALSE3:MOVFALSE4:MOVR3,#01HP1.7,FALSE8 MOV R3,#0AHACALLDISPLAY。先在两个时间 LED

26、上显示 R1JNBP3.4,INC0。P3.4 为+1s 键,如按下跳到 INCOJNBP3.5,DEC0。P3.5 为-1s 键,如按下跳到 DECOJNBP3.1,BACK0。P3.1 为确定键,如按下跳到 BACKOAJMP INT0SUBINC0:MOV CJNE加起。MOVR1,#00H ACALL AJMPACALL AJMPJZDELAY1INT0SUBR1DELAY1INT0SUBA,R1A,R1A,#63H,ADD0。如果不是 99,R2 加 1,如果加到 99,R1 就置 0,重新ADD0:INCDEC0:MOVDECR1ACALL AJMPSETR1。如果 R1 为 0,

27、R1 就置 99,DELAY1INT0SUBR1,#63HSETR1:MOV ACALL DELAY1AJMP INT0SUBBACK0:RETI。=INT1(回答时间 R2 调整程序)=INT1SUB:MOVMOVB,#0AHDIVABMOVR5,A MOVACALLR4,BDISPLAY MOV R3,#0AHA,R2JNBP3.4,INC1JNBP3.5,DEC1 JNB P3.1,BACK1AJMP INT1SUBINC1:MOV CJNE ACALL MOV R2,#00HDELAY1R2AJMP INT1SUBADD1:INCACALLAJMP INT1SUBDEC1:MOVJZS

28、ETR2DELAY1R2,#63HDECR2ACALLAJMP INT1SUBSETR2:MOV ACALL DELAY1AJMP INT1SUBBACK1:RETI。=倒计时程序(抢答倒计时和回答倒计时都跳到改程序)=REPEAT:MOVR6,ACLRRINGCOUNT:MOVMOVTH1,#3CH MOV TL1,#0B0H。重置定时器RECOUNT:MOV A,R6。R6 保存了倒计时的时间,之前先将抢答时间或回答时间给 R6MOV B,#0AHDIVAB。除十分出个位/十位R0,#00H。重置定时器中断次数MOVA,R2。使用锦囊时重新计时A,R2DELAY1A,R2A,#63H,AD

29、D1MOV30H,A。十位存于(30H)MOV31H,B。个位存于(31H)MOVR5,30H。取十位MOVR4,31H。取个位MOVA,R6SUBB A,#07H JNC LARGER。大于 5s 跳到 LARGER,小于等于 5s 会提醒MOVA,R0 CJNECLRRINGAJMP CHECKFULL:CJNE重新计SETB RINGMOVA,R6JZQUIT。计时完毕MOVR0,#00H DEC R6。一秒标志减 1AJMP CHECKLARGER:MOV CJNEA,R0A,#14H,CHECK。如果 1s 向下运行,否者跳到查停/显示A,#14H,CHECK。下面是 1s 的情况,

30、响并显示号数并清 R0,A,#0AH,FULL。1s 中 0.5s 向下运行DECR6。计时一秒 R6 自动减 1MOVR0,#00HCHECK:JNBAJMP NEXTTCHECKK:JNBNEXTT:ACALLJBP3.0,REPEAT。判断是否使用锦囊DISPLAYP3.1,QUIT。如按下停止键退出JNBOK,CHECKK。只在回答倒计时才有效OK,ACCOUT。如果是抢答倒计时,如是则查询抢答,否者跳过查询继续倒数(这里起到锁抢答作用)AJMP RECOUNTACCOUT:MOVA,36H JNBACC.0,TRUE1 JNB JNB JNB JNB JNBACC.1,TRUE2AC

31、C.2,TRUE3ACC.3,TRUE4ACC.4,TRUE5ACC.6,TZ1JNBACC.5,TRUE6JNBACC.7,TZ2AJMP RECOUNTTZ1:JMPTZ2:JMPQUIT:CLRRING AJMPTRUE1:MOV A,R2MOV R6,A。抢答时间 R2 送 R6MOV R3,#01HCLR OK。因为答题的计时不再查询抢答,所以就锁了抢答AJMP COUNTTRUE2:MOV A,R2MOV R6,A MOV R3,#02HCLR OKAJMP COUNTTRUE3:MOV R6,AMOVCLR OKAJMP COUNTTRUE4:ACALLBARKR3,#03HAC

32、ALLBARKMOV A,R2ACALLBARKACALLBARKSTART。=正常抢答处理程序=TRUE7TRUE8OK。如果按下了停止键执行的程序 CLRMOV A,R2MOVCLR OKAJMP COUNTTRUE5:MOVA,R2MOVR6,AMOVR3,#05HCLROK AJMPTRUE6:MOV A,R2MOVR6,A MOV R3,#06HCLROK AJMPTRUE7:MOVCLRAJMP COUNTTRUE8:MOVA,R2 MOV R6,AMOVR3,#08HCLROK AJMPERROR:MOVMOV TH1,#3CH MOV TL1,#0B0HR0,#00HCOUNT

33、。=犯规抢答程序=ACALLBARKCOUNTACALLR6,AOKBARKCOUNTACALLBARKACALLBARKR6,AMOV R3,#04H MOV A,R2 MOV R3,#07HMOV34H,R3。犯规号数暂存与(34H)HERE:MOV CJNECLRRING MOVR3,#0AHMOVR4,#0AHMOVR5,#0AH。三灯全灭AJMP CHECK1FLASH:CJNE A,#0CH,CHECK1。下面是 0.8s 的情况,响并显示号数并清 R0,重新计SETB RINGMOVR0,#00HMOVR3,34H。取回号数MOVR5,#0BHMOVR4,#0BH。显示 FF 和

34、号数AJMPCHECK1CHECK1:JNBACALL AJMPCLROK AJMP。=显示程序=DISPLAY:MOVMOV A,R3MOVC A,A+DPTR MOV P2,#0feHMOVP0,AACALLMOVMOVDELAY2 DPTR,#DAT2A,R5 DPTR,#DAT1。查表显示程序,利用 P0 口做段选码口输出/P2 低三位做位选码输出,STARTHERERINGP3.1,QUIT1DISPLAYA,R0A,#06H,FLASH。0.3s 向下运行-灭并停响QUIT1:CLRMOVCA,A+DPTRMOV P2,#0fdHMOV P0,A ACALL MOV MOVACAL

35、L RETDAT1:DB 00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H。灭,1,2,3,4,5,6,7,8,9,灭,FDAT2:DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H。第一个为零,其他与上相同,因为十位如果为零显示熄灭。=加减时间延时(起到不会按下就加 N 个数)=DELAY1:MOVLOOP0:ACALLDJNZ 35H,LOOP0 RET。=延时 4236 个机器周期(去抖动用到)=DELAY:MOVLOOP:MOVLOOP1:DJNZDJNZ 32H,LOOPRET。=延时 4

36、236 个机器周期(显示用到)=DELAY2:MOVLOOP3:MOV32H,#43H33H,#1EH32H,#12H 33H,#0AFH33H,LOOP135H,#08HDISPLAYDELAY2A,R4P2,#0fbHDELAY2MOVC A,A+DPTRMOV P0,AMOVA,R7。每隔 6070 个机器周期读一次 P1 口,全为 1 时为无效数据,继续读,有一个不为 1 时,转到正常抢答处理JNZ AAAA1。没读到有效数据时继续转到 AAAA1LOOP2:DJNZ DJNZ RET。=读抢答按键数据口程序=。由于在读抢答数据口的时候,单片机首先进入倒计时程序,再调用显示程序,最后才

37、检测按键口。然而在检测按键口时动态扫描要调用三次(4ms)延时程序.这样就会导致读数据口出现滞后,造成 1 号优先最高.8 号最低.。故采用在延时子程序中加了读数据口程序.保证了灵敏度和可靠性AAAA1:MOVCJNEAA0:MOVAJMP LOOP2AA1:DECAJMP AA0。=发声程序=BARK:SETB ACALL ACALLRET。=TO 溢出中断(响铃程序)=T0INT:MOV MOVTH0,#0ECHTL0,#0FFHRINGDELAY1DELAY1R7A,P1A,#0FFH,AA1。当不全为 1 时的数据为有效数据36H,A。将有效数据送到 36H 暂存33H,LOOP232

38、H,LOOP3 CLR RING。按键发声 JNB音RING,OUT。CPL P3.6。RING 标志位为 1 时候 P3.6 口不短取反使喇叭发出一定频率的声OUT:RETI。=T1 溢出中断(计时程序)=T1INT:MOVMOVTL1,#0B0H INC R0RETIEND。程序结束TH1,#3CH附录附录 2 2:元器件清单元器件清单序号12345名称排阻电阻电解电容电容电阻代号R1-R7R8C1C2,C3R9,R10,R11,R12,R13678开关USB 接口共阴数码管 4位9101112晶振89C52 芯片蜂鸣器三极管BUZ1ARK SR420361K101111.0592STC 89C52RCS855011111111型号A 103J1K10uF33PF5.1K数量11125附录附录 3 3:部分功能仿真图1、主持人按下开始抢答键后,进入抢答10S倒计时,显示仿真电路见图6-1:附录 4:实物图

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁