




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录 1 系统设计.4 1.1 设计任务与要求4 1.2 方案比较与论证.4 1.3 8051 单片机系统说明.5 1.3.1 8051单片机简介5 1.3.2 80c51 的时序图.6 1.4 8051 引角及其功能.6 1.5 设计抢答器的目的与意义7 2 主要元器件分析.8 2.1 80c51 芯片.8 2.2 数码管8 3 硬件设计电路(使用 protel 软件设计).9 3.1 单元电路设计.9 3.1.1 单片机最小系统单元设计.9 3.1.2 控制电路设计.10 3.2 总电路设计.12 3.3 protel 绘制的 pcb 图13 4 程序设计.14 4.1、程序流程 14 4.2、源程序介绍 17 5 功能仿真.23 致 谢.27 单片机课程设计 2 摘 要 抢答器是一种应用非常广泛的设备,在各种竞猜、抢答场合中,它能迅 速、客观地分辨出最先获得发言权的选手。早期的抢答器只由几个三极管可 控硅、发光管等组成,能通过发光管的指示辨认出选手。现在大多数抢答器 均使用单片机和数字集成电路,并增加了许多新的功能,如选手号码显示、 抢按器或抢按后的计时、选手得分显示等功能。本文介绍了用 8051 系列单片 机控制的八路智力抢答器。该抢答器除具有基本的抢答功能外,还具有定时、 计时和报警功能。 关键字关键字:抢答器 ;单片机;报警 单片机课程设计 3 引引 言言 在知识比赛与娱乐竞赛中,特别是做抢答题目的时候,在抢答过程中,为了 知道哪一组或哪一位选手先答题,必须要设计一个系统来完成这个任务。如果在 抢答中,靠视觉是很难判断出哪组先答题。利用单片机系统来设计抢答器,使以 上问题得以解决,即使两组的抢答时间相差几微秒,也可分辨出哪组优先答题。 本文主要介绍了单片机抢答器设计及工作原理,以及它的实际用途。系统工作原 理本系统采用 8051 单片机作为核心。控制系统的四个模块分别为:存储模块、显 示模块、语音模块、抢答开关模块。该抢答器系统通过开关电路八个按键输入抢 答信号;利用蜂鸣器完成语音的录放功能;利用存储程序;利用一个数码管来完 成显示功能。工作时,用按键通过开关电路输入各路的抢答信号,经单片机的处 理,输出控制信号,控制数码管和蜂鸣器工作。在数码管上显示哪一组先答题, 并通过数码管显示选手的序号以及开始倒计时,从而实现整个抢答过程。 “一种基于单片机的抢答器”与一般抢答器有四点不同:首先,抢答器反应 异常灵敏。据了解,此抢答器的反应时间仅为几十微秒,大大缩短了抢答器的反 应时间,使抢答器可以迅速高效的工作。其次,抢答质量有保证。在抢答过程中, 当有人首先枪答成功的同时,会伴有响亮的声音提示,并且,不同的抢答器会有 不同的声音,为比赛更加公正透明化提供了依据。第三,抢答器设置了复位键。 抢答的活动常常会有几个环节构成,为了保证在每个环节中枪答器都可以快速高 效的运作,使得抢答更加顺利的进行,此类抢答器设置了复位键。最后,抢答器 利用单片机技术。利用这一技术,保证了抢答器拥有上述功能的同时,提高了抢 答器的寿命与质量,让抢答器可以更加实用的同时,提高了抢答器的技术含量。 单片机课程设计 4 1 系统设计系统设计 1.11.1 设计任务与要求设计任务与要求 设计并制作一个基于单片机 8051 最简连线抢答器 1、基本要求 具有八路输入,能够识别最先输入的信号,显示选号,并有声音提示。 对回答问题所用的时间进行倒计时显示,并提示结束时间报警。 具有抢答开关功能,按下该键后系统进入抢答状态。 主持人能够及时对电路进行屏幕清零,进行下一题的抢答 2、发挥部分 在按下抢答开关之前的信号判断为提前抢答,显示选号,声音提示,连续达到 定次数后限制其抢答。 具有设置上述提及的时间、次数等参数的功能。 1.2 方案比较与论证方案比较与论证 方案一:系统各部分采用中小规模集成数字电路,用机械开关按钮作为控制开 关,完成抢答输入信号的触发。该方案的特点是中小规模集成电路应用技术成熟, 性能可靠,能方便地完成选手抢答的基本功能,但是由于系统功能要求较高,所 以电路连接集成电路相对较多,而且过于复杂,并且制作过程工序比较烦琐,使 用不太方便。 方案二:该系统采用 8051 系列单片机 80c51 作为控制核心,该系统可以完成 运算控制、信号识别以及显示功能的实现。由于用了单片机,使其技术比较成熟, 应用起来方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。整 个系统具有极其灵活的可编程性,能方便地对系统进行功能的扩张和更改。mcs- 51 单片机特点如下: 可靠性好:单片机按照工业控制要求设计,抵抗工业噪声干扰优于一般的 cpu,程序指令和数据都可以写在 rom 里,许多信号通道都在同一芯片,因此可靠 性高,易扩充。 单片机课程设计 5 抢答按扭 优先编 码电路 锁存器译码电路译码显示 主持人控 制开关 控制电路报警电路 秒脉冲产生电路定时电路译码电路显示电路 单片机有一般电脑所必须的器件,如三态双向总线,串并行的输入及输出 引脚,可扩充为各种规模的微电脑系统。 控制功能强:单片机指令除了输入输出指令,逻辑判断指令外还有更丰 富的条件分支跳跃指令。 方案比较及其选用依据,显然方案二比方案一简单的多,不但从性能上优于 方案一,而且在使用上及其功能的实现上都较方案一简洁,并且由于单片机具有 优越的高集成电路性,使其工作速度更快、效率更高。另外 80c51 单片机采用 12mhz 的晶振,提高了信号的测量精度,并且使该系统可以通过软件改进来扩张 功能。而方案一采用了中小规模集成电路,有其复杂的电路性能,从而可能会使 信号的输入输出产生延时及不必要的误差。依此依据选择方案二比较适合。总原 理图见附录 2。 其原理框图如下: 图 1-1 抢答器的原理框图 1.3 8051 单片机系统说明 1.3.1 8051 单片机简介单片机简介 8051 系列单片机是国际上流行多年的代表机型,是国内高校教学和初学者入 门首选的主流机型,也是在各种技术期刊和专业书籍中出现频率最高的经典机型。 本文以标准 80c51 为模型,并适当兼顾 8051 系列的共性和常用型号的特性。内 单片机课程设计 6 容主要包括:硬件架构、rom、ram、指令系统、汇编程序基础和汇编语言工具 链、并行端口、定时器、中断逻辑、复位逻辑、时钟电路、电源电路等功能电路 的结构和工作原理,以及片内程序存储器编程原理。 1.3.21.3.2 80c5180c51 的时序图的时序图 时序图如图 1-2 所示: 图 1-2 80c51 的时序图 时序控制电路: : 主持人将控制开关拨到“开始”位置时,扬声器发声,抢答电路和定时电 路进入正常抢答工作状态。 当参赛选手按动抢答键时,扬声器发声,抢答电路和定时电路停止工作。 当设定的抢答时间到,无人抢答时,扬声器发声,同时抢答电路和定时电 路停止工作。 图 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 脚 外部程序存储器地址允许输入,接高电平时,执行片内程序存储器 的内容,当 pc 超过 0fffh 时,自动变 0。接低电平时,访问外部程序存储器。 p0 3932 脚 8 位准双向 i/o,在做输入时,要先向口地址 80h 写 1,此时由内 部上拉提成高阻态。 p1 18 脚 8 位准双向 i/o 口 1.5 设计抢答器的目的与意义 通过这次课程设计,掌握 80c51 单片机的原理,了解简单多功能抢答器组成原 理,初步掌握多功能抢答器的调整及测试方法,提高动手能力和排除故障的能力。 同时通过本课题设计与装配、调试,提高自己的动手能力,巩固已学的理论知识, 建立单片机理论和实践的结合,了解多功能抢答器各单元电路之间的关系及相互 影响,从而能正确设计、计算定时计数的各个单元电路。初步掌握多功能抢答器 的调整及测试方法,提高动手能力和排除故障的能力。 设计思路: 抢答器是一种应用非常广泛的设备,在各种竞赛、抢答场合中,它能迅速、 客观地分辨出最先获得发言权的选手。早期的抢答器只由几个三极管、可控硅、 发光管等组成,能通过发光管的指示辩认出选手号码。现在大多数抢答器均使用 单片机(如 mcs-51 型)和数字集成电路,并增加了许多新功能,如选手号码显示、 抢按前或抢按后的计时、选手得分显示等功能。 本课题利用 80c51 单片机及外围接口实现的抢答系统,利用单片机的定时器/ 单片机课程设计 8 计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进 行计时,同时使数码管能够正确地显示时间和选手号码。用开关做键盘输出,蜂 鸣器发生提示。系统达到要求:在抢答中,只有开始后抢答才有效,如果在开始抢 答前 抢答为无效;抢答限定时间和回答问题的时间可设在 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 的操作系统引导工作完成前,数码 管显示的代码总处于变化状态。 单片机课程设计 9 图 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 单片机课程设计 10 是 8 组抢答的输入口, p2.0-p2.3 口为数码管的段选口,位选口用的是 p0.0- p0.7 输出,p3.7 口为蜂鸣器输出口。p0 口和 p1 口要分别接上上拉电阻。 设计如图 3-1 所示 p1.0 1 p1.1 2 p1.2 3 p1.3 4 p1.4 5 p1.5 6 p1.6 7 p1.7 8 rst/vpd 9 p3.0/rxd 10 p3.1/txd 11 p3.2/int0 12 p3.3/int1 13 p3.4/t0 14 p3.5/t1 15 p3.6/wr 16 p3.7/rd 17 xtal2 18 xtal1 19 gnd 20 p2.0 21 p2.1 22 p2.2 23 p2.3 24 p2.4 25 p2.5 26 p2.6 27 p2.7 28 psen 29 ale/prog 30 ea/vpp 31 p0.7 32 p0.6 33 p0.5 34 p0.4 35 p0.3 36 p0.2 37 p0.1 38 p0.0 39 vcc 40 80c51 30pf c1 30pf c2 12 y1 xtal gnd 10k r1 10k r2 10uf c3 s9 s10 sw1 sw2 sw3 sw4 sw5 sw6 sw7 sw8vcc gnd 个个个个个 vcc 10k r3 vcc gnd qing qing 个个 个个 个个 p3.7 rx tx p0.0 p0.1 p0.2 p0.3 p0.4 p0.5 p0.6 p0.7 p2.3 p2.2 p2.1 p2.0 gnd vcc 10pf c8 gnd 图 3-1 单片机基本电路 3.1.2 控制电路设计控制电路设计 1)八个开关按钮电路图 3-2: s1 s2 s3 s4 s5 s6 s7 s8 gnd sw1 sw2 sw3 sw4 sw5 sw6 个个个个个个 sw7 sw8 单片机课程设计 11 图 3-2 按钮电路 2)蜂鸣器电路图 3-3 所示: c c b b e e pnp 200 r4 vcc gnd 个个个个个 p3.7 laba 图 3-3 蜂鸣器电路 该电路是由单片机 p3.7 端口输出信号经过三极管驱动放大后使蜂鸣器发出 声音。 3)数码管显示电路,如图 3-4 所示: 个个个个 100r5 100r6 100r7 100r8 100r9 100r10 100 r11100 r12 sase sf sg sdpsd sc sb p0.0 p0.1 p0.2 p0.3 p0.4 p0.5 p0.6 p0.7 q1q2q3q4 1k r13 1k r14 1k r15 1k r16 vcc h1h2h3h4 p2.0p2.1p2.2p2.3 h1 h2 h3 h4 sa sf sb se sd sdp sc sg e 1 d 2 dp 3 c 4 g 5 com4 6 b 7 com3 8 com2 9 f 10 a 11com1 12 u1 4个个个个 单片机课程设计 12 图 3-4 数码管显示电路 该数码管电路使用的是共阳数码管,通过 p0.0-p0.7 控制数码管的 a-g 的各 个相应段,p2.0-p2.3 输出信号通过三极管功率放大后控制哪一个数码管显示。 4)主持人控制电路,如图 3-5 所示: gnd vcc 100 r17 s11 p3.7 图 3-5 主持人控制电路 当主持人宣布答题开始时,主持人按下迅速 s11,如图可使 p3.7 端口的电压 拉低,相当是给单片机一个中断,单片机开始倒计时。 3.2 总电路设计总电路设计 本系统程序设计采用 t0 的溢出中断来实现倒计时定时,采用 t0 的溢出中断 来使喇叭发出一定频率的声音;用一个两位 led 来显示倒计时,另外用一个两位 led 显示选手号。其中,倒计时显示的两位 led 用的是共阴极接法,选手号显示 led 用的是共阴极接法;并且通过动态显示法(即位选控制)来实现四个 led 的 同时显示。如附录 1 所示。 单片机课程设计 13 3.3 protel 绘制的绘制的 pcb 图图 如图,我们将绘制出的 pcb 图打印出来如图所示,最后就可以经过自己刷板 或者工厂刷板后得到我们的印制电路板了。 图 3-6 抢答器 pcb 图 图 3-7 印制板底部布线图 图 3-8 印制板元器件面摆放图 单片机课程设计 14 4 程序设计程序设计 4.1、程序流程、程序流程 由方案分析知,本设计涉及到的功能子程序包括:查询程序、非法抢答处理程 序、int0(调抢答时间) 、int1(调回答时间) 、倒计时程序、正常抢答处理程序、 犯规抢答程序、显示程序、发声程序、t0 溢出中断(响铃程序)、t1 溢出中断(计 时程序)。 由设计的硬件部分看到,本设计采用 p3.2、p3.3 分别接抢答时间调节和答题时 间调节按钮,即通过外部中断 0、外部中断 1 分别控制抢答、答题时间的调整。 因此,设计的软件部分可分为工作模块、外部中断 0 模块、外部中断 1 模块。对 流程图的分析,也分三部分来介绍。 1)工作时(非调节时间时)的流程 平时正常工作时,程序的流程图绘制如图 4-1: 图 4-1 抢答器工作流程图 开始 初始化 读键盘是否有键按下 n y 中断条件是否满足 n 进入中断程序 调用显示抢答违规并报警 子程序 y 单片机课程设计 15 对工作流程图中的某些部分解释如下: 初始化部分:包括对定时计数器的工作方式、初始化数值的设置,还包括对 抢答时间与答题时间的预设,另外,还应对外部中断 0、外部中断 1 进行开放。 抢答倒计时:当主持人按下抢答键后,系统进入中断程序,开始计时,本次 设计为 10s。 犯规程序部分:包括对犯规选手号的显示、报警器的间断工作,程序停止运 行,并显示犯规的选手号码。 另外,由于在设计要求主持人能随时对工作过程终止,因此,要不断查询停 止键的状态,一旦按下,便回到初始化后的状态;在倒计时过程中设定 5s 报警, 因此程序在运行中要不断与 5s 比较,当小于 5s 时,还需调用发声程序;小于 5s 后, 又需要不断将与 0 较,当其等于零时,立即返回。 2)外部中断 0(抢答时间调整)流程 外部中断 0(抢答时间调整)的流程图见图 4-2: 图 4-2 中断程序流程图 10秒枪答倒计时开始显示 开中断并响声提示 设定定时器初值并启动定时 器 10秒到中断返回 中断服务程序 调用读键子程序作为延时 程序 是否有键按下 n y 调用抢答者获的 回答问题子程序 单片机课程设计 16 一旦因 p3.2 对应键的按下,便进入 int0 中断过程。程序开始对答题选手进行 时间倒计时,本设计为 10s 倒计时,当时间还剩 5s 时,调入报警子程序,驱动蜂 鸣器发声。 另外,在中断过程中还需要不时对停止按钮进行查询,一旦发现其按下,立 即中断返回。由于本中断过程在返回前一直是循环执行的,因此,只需要在每次 循环末查询一次即可,如流程图所示。 3)答题程序流程 图 4-3 答题流程图 与抢答时间调整类似,一旦因 p3.2 对应的按钮按下,便进入 int0 中断过程。 通过不断对 p3.2(减 1s)进行不断的查询,来对答题时间进行调整,同上,在中 断过程中,也还需要不时对停止按钮进行查询,一旦发现其按下,立即中断返回。 响声提示 设定定时器初值并启动 显示抢答者且3秒后15 秒倒计时 20秒回答问题时间到并 响声提示 ret 调用抢答者获的 回答问题子程序 单片机课程设计 17 至此,流程图已介绍完毕,下面将对设计的源程序进行介绍: 4.2、源程序介绍、源程序介绍 根据流程图中的介绍,本设计的源程序除主程序外,好包括查询程序、非法 抢答处理程序、抢答时间调整程序、答题时间调整程序、倒计时程序、正常抢答 处理程序、犯规抢答程序、显示程序、发声程序、t0 溢出中断程序、t1 溢出中 断中断程序。下面将对下面将对其一一介绍。完整的源程序参见附录 2 a)主程序:包括对两个定时计数器的初始化、开中断、抢答时间和答题时间的预 设等相关设置: 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 单片机课程设计 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 ;按键发声 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.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 次(50ms20=1s) ,就对倒计时减一。 同样,这里需要调用到显示子程序,因此,也需要将倒计时转换为十进制,分别 个位、十位分别存入 r4、r5。如果是在抢答倒计时,在倒计时过程中,若查询有 人抢答,则要立即跳转到正常处理程序执行。当倒计时小于等于 5s 时,通过每秒 单片机课程设计 20 钟响 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 ;对定时计数器其赋初值 单片机课程设计 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,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 here quit1: clr ring ;返回前准备(开始、响铃标志位清零) clr ok 单片机课程设计 22 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 一段时间后,再 将其清零。时间的长短通过调用延时程序来控制。其形式为: 单片机课程设计 23 bark: setb ring acall delay clr ring ret 而 t0 中断程序,是根据为其设定的中断频率(由初值确定) ,来检测响铃标 志位,若其为 1,则将 p3.7 取反,来发出一定频率的声音。由于定时计数器设定 的模式为模式一,这里还需要对其重新载入初值。具体编写参见附录源程序。 除了上面介绍的功能子程序,本设计还时时要用到延时程序,包括对按键消 抖的延时、显示延时。具体编写参见附录源程序中延时程序部分。 至此,所有子程序的编写已介绍完毕。 5 功能仿真 在试验检测前,利用 proteus 软件对本设计进行了仿真, 对各个要求进行了验证. 仿真运行后,界面如图 5-1: 图 5-1 开始运行后界面 xtal2 18 xtal1 19 ale 30 ea 31 psen 29 rst 9 p0.0/ad0 39 p0.1/ad1 38 p0.2/ad2 37 p0.3/ad3 36 p0.4/ad4 35 p0.5/ad5 34 p0.6/ad6 33 p0.7/ad7 32 p2.7/a15 28 p2.0/a8 21 p2.1/a9 22 p2.2/a10 23 p2.3/a11 24 p2.4/a12 25 p2.5/a13 26 p2.6/a14 27 p1.0 1 p1.1 2 p1.2 3 p1.3 4 p1.4 5 p1.5 6 p1.6 7 p1.7 8 p3.0/rxd 10 p3.1/txd 11 p3.2/int0 12 p3.3/int1 13 p3.4/t0 14 p3.7/rd 17 p3.6/wr 16 p3.5/t1 15 u1 80c51 c1 1nf c2 22pf r2 200k r3 1k a0 2 a1 4 a2 6 a3 8 oe 1 y0 18 y1 16 y2 14 y3 12 u2:a 74hc244 c3 100u r1 100kr4 100k x2 crystal 2 3 4 5 6 7 8 9 1 rp1 respack-8 2 3 4 5 6 7 8 9 1 rp2 respack-8 ls2 speaker q2 pnp 单片机课程设计 24 按下抢答开始键后,进入图 5-2 界面,进入抢答倒计时: xtal2 18 xtal1 19 ale 30 ea 31 psen 29 rst 9 p0.0/ad0 39 p0.1/ad1 38 p0.2/ad2 37 p0.3/ad3 36 p0.4/ad4 35 p0.5/ad5 34 p0.6/ad6 33 p0.7/ad7 32 p2.7/a15 28 p2.0/a8 21 p2.1/a9 22 p2.2/a10 23 p2.3/a11 24 p2.4/a12 25 p2.5/a13 26 p2.6/a14 27 p1.0 1 p1.1 2 p1.2 3 p1.3 4 p1.4 5 p1.5 6 p1.6 7 p1.7 8 p3.0/rxd 10 p3.1/txd 11 p3.2/int0 12 p3.3/int1 13 p3.4/t0 14 p3.7/rd 17 p3.6/wr 16 p3.5/t1 15 u1 80c51 c1 1nf c2 22pf r2 200k r3 1k a0 2 a1 4 a2 6 a3 8 oe 1 y0 18 y1 16 y2 14 y3 12 u2:a 74hc244 c3 100u r1 100kr4 100k x2 crystal 2 3 4 5 6 7 8 9 1 rp1 respack-8 2 3 4 5 6 7 8 9 1 rp2 respack-8 ls2 speaker q2 pnp 图 5-2 抢答倒计时 当 3 号选手最先按下抢答键后,进入下面界面。回答倒计时开始工作: xtal2 18 xtal1 19 ale 30 ea 31 psen 29 rst 9 p0.0/ad0 39 p0.1/ad1 38 p0.2/ad2 37 p0.3/ad3 36 p0.4/ad4 35 p0.5/ad5 34 p0.6/ad6 33 p0.7/ad7 32 p2.7/a15 28 p2.0/a8 21 p2.1/a9 22 p2.2/a10 23 p2.3/a11 24 p2.4/a12 25 p2.5/a13 26 p2.6/a14 27 p1.0 1 p1.1 2 p1.2 3 p1.3 4 p1.4 5 p1.5 6 p1.6 7 p1.7 8 p3.0/rxd 10 p3.1/txd 11 p3.2/int0 12 p3.3/int1 13 p3.4/t0 14 p3.7/rd 17 p3.6/wr 16 p3.5/t1 15 u1 80c51 c1 1nf c2 22pf r2 200k r3 1k a0 2 a1 4 a2 6 a3 8 oe 1 y0 18 y1 16 y2 14 y3 12 u2:a 74hc244 c3 100u r1 100kr4 100k x2 crystal 2 3 4 5 6 7 8 9 1 rp1 respack-8 2 3 4 5 6 7 8 9 1 rp2 respack-8 ls2 speaker q2 pnp 图 5-3 回答倒计时界面 单片机课程设计 25 当 8 号选手最先按下抢答键后,进入下面界面。回答倒计时开始工作: xtal2 18 xtal1 19 ale 30 ea 31 psen 29 rst 9 p0.0/ad0 39 p0.1/ad1 38 p0.2/ad2 37 p0.3/ad3 36 p0.4/ad4 35 p0.5/ad5 34 p0.6/ad6 33 p0.7/ad7 32 p2.7/a15 28 p2.0/a8 21 p2.1/a9 22 p2.2/a10 23 p2.3/a11 24 p2.4/a12 25 p2.5/a13 26 p2.6/a14 27 p1.0 1 p1.1 2 p1.2 3 p1.3 4 p1.4 5 p1.5 6 p1.6 7 p1.7 8 p3.0/rxd 10 p3.1/txd 11 p3.2/int0 12 p3.3/int1 13 p3.4/t0 14 p3.7/rd 17 p3.6/wr 16 p3.5/t1 15 u1 80c51 c1 1nf c2 22pf r2 200k r3 1k a0 2 a1 4 a2 6 a3 8 oe 1 y0 18 y1 16 y2 14 y3 12 u2:a 74hc244 c3 100u r1 100kr4 100k x2 crystal 2 3 4 5 6 7 8 9 1 rp1 respack-8 2 3 4 5 6 7 8 9 1 rp2 respack-8 ls2 speaker q2 pnp 图 5-4 回答倒计时界面 有人在开始键按下前抢答,即犯规抢答时,界面如下,将显示抢答选手号码。: xtal2 18 xtal1 19 ale 30 ea 31 psen 29 rst 9 p0.0/ad0 39 p0.1/ad1 38 p0.2/ad2 37 p0.3/ad3 36 p0.4/ad4 35 p0.5/ad5 34 p0.6/ad6 33 p0.7/ad7 32 p2.7/a15 28 p2.0/a8 21 p2.1/a9 22 p2.2/a10 23 p2.3/a11 24 p2.4/a12 25 p2.5/a13 26 p2.6/a14 27 p1.0 1 p1.1 2 p1.2 3 p1.3 4 p1.4 5 p1.5 6 p1.6 7 p1.7 8 p3.0/rxd 10 p3.1/txd 11 p3.2/int0 12 p3.3/int1 13 p3.4/t0 14 p3.7/rd 17 p3.6/wr 16 p3.5/t1 15 u1 80c51 c1 1nf c2 22pf r2 200k r3 1k a0 2 a1 4 a2 6 a3 8 oe 1 y0 18 y1 16 y2 14 y3 12 u2:a 74hc244 c3 100u r1 100kr4 100k x2 crystal 2 3 4 5 6 7 8 9 1 rp1 respack-8 2 3 4 5 6 7 8 9 1 rp2 respack-8 ls2 speaker q2 pnp 单片机课程设计 26 图 5-5 犯规抢答界面 结 论 抢答器主要应用在一些娱乐活动中,抢答器又称第一信号鉴频器。抢答器的 出现解决了过去举手抢答的方式。这样不但增强了可靠性,而且提高了公平性, 值得选手信赖。由于抢答器的出现为娱乐领域中的抢答环节提供了方便。 抢答器应用的一个关键问题是对其工作的稳定性,可靠性,快速性的设计要 求严格。抢答器主要利用数字电路的编码,译码和定时功能来实现,或者利用单 片机控制来完成,即智能化设计。 本设计定位于本学科发展方向对单片机的编程及数字电路的应用进行研究, 并且得到一些有意义的结论。抢答器的出现已经很多年,并且种类很多。目前抢 答器的功能是较为完善的,即智能化,可靠性高,速度快,工作稳定。本设计采 用了部分智能化,在抢答时间方面还须改进,而且在准确性方面也有待于改进。 本设计的进一步设计应该是无限时的答题时间控制且用单片机来完成。 一年多的单片机学习主要是课本上理论知识的学习,这些理论知识远不能满 足对单片机的应用的要求,这次设计给我们提供了一次很好的理论联系实际的机 会,使得我们对单片机的功能以及应用有了更深刻的了解和认识。 另外,程序设计是本次设计的一个难点,由于对指令的运用不够熟练使得在 编程时屡屡碰壁。特别对于一些中断程序,因涉及到一些标志位而使得编程难度 更高,虽然通过查资料以及同学老师的指导解决了这些问题,但编程方面的欠缺 还是很大的,这为我以后的学习业敲响了警钟,在以后我应加强这方面的练习以 提高自己。 由于时间以及自己的能力有限,这次的设计中难免会有一些遗漏和不足,希 望老师批评指正。 单片机课程设计 27 致 谢 四年的大学生活即将结束,为期半个月的课程设计也接近了尾声。此次课程 设计的完成,凝聚着许多人的关怀和帮助。首先要感谢我敬爱的指导教师徐祖华 老师,他对我的学习和工作严格要求,并耐心地教导激励我们积极进取,培养我 们形成良好的科研作风,所有这些,我们将终生受益。在此,我对徐老师的培养 和帮助深表感谢,本设计是在徐祖华老师的悉心指导下完成的,在整个实际阶段, 徐祖华老师除了给我提出方案外,也留给我主动解决问题的空间,使我在整个过 程中很好的锻炼了自主分析和解决问题的能力。 课程设计本身就是一个将理论和实际工作结合起来的演习,是徐老师的指导 和帮助教会我独立思考,自主分析和解决问题,为我今后走出校门迈向工作岗位 奠定了坚实的基础,并激励着我在今后的人生道路上不断开拓进取,勇往直前。 我再一次对黄老师的培养和关怀表示诚挚的谢意!同时,还要感谢和我一起同学 们,他们在我设计期间给予我很多帮助,没有大家的帮助,我将无法顺利完成设 计,再次致以衷心的感谢。 再次真诚地感谢所有在我四年读书期间帮助过我的老师、同学和朋友! 单片机课程设计 28 参考文献 1李朝青.单片机原理及接口技术(修订版).北京:北京航空航天大学出版社, 1998 2李广弟.单片机基础.北京:北京航空航天大学出版社,1992 3何立民.单片机应用技术大全.北京:北京航空航天大学出版社, 1994 4张毅刚. 单片机原理及接口技术.哈尔滨:哈尔滨工业大学出版社,1990 5谭浩强.单片机课程设计. 北京:清华大学出版社,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 ;初设答题时间为 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 单片机课程设计 30 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 start false1: acall bark ;按键发声 mov r3,#01h ajmp error false2: acall bark mov r3,#02h ajmp error false3: acall bark mov r3,#03h ajmp error false4: acall bark mov r3,#04h ajmp error false5: acall bark mov r3,#05h 单片机课程设计 31 ajmp error false6: 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 ;先在两个时间 led 上显示 r1 jnb p3.7,back0 ;p3.7 为确定键,如按下跳到 backo ajmp int0sub bac
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版施工环境保护工程设计合作协议范本
- 2025版自驾租赁汽车合同附加车辆清洗保养服务
- 2025版时尚简约内墙抹灰工程合同
- 2025版淘宝电商运营人才招聘与管理合同
- 2025版砂石料采购合同范本及供应商履约能力评估与考核
- 2025版离婚协议书专业起草与子女抚养费用约定合同
- 2025年墙纸产品售后服务与客户满意度调查合同
- 贵州省开阳县2025年上半年公开招聘村务工作者试题含答案分析
- 贵州省惠水县2025年上半年事业单位公开遴选试题含答案分析
- 2025版农业机械设备配件供应合同
- 《复合材料力学行为》课件
- 课题开题报告:专精特新企业新质生产力的动态演化、形成机理与实践路径研究
- 2022环境健康监测及风险评估技术规范
- 临床护理实践指南2025版
- DB42-T 2073-2023 机载激光雷达森林蓄积量建模技术规程
- 2025新人教版语文七年级上册(全册)教案教学设计(有教学反思)
- 项目部主要管理职责责任矩阵
- 2025年新人教版八年级下册物理全册教案
- 焊接作业有限空间安全防护方案
- 《汉字造字法》课件
- 《福建省城镇道路清扫保洁作业指导价》
评论
0/150
提交评论