基于AT89S52单片机的抢答器毕业设计(c语言)毕业论文.doc_第1页
基于AT89S52单片机的抢答器毕业设计(c语言)毕业论文.doc_第2页
基于AT89S52单片机的抢答器毕业设计(c语言)毕业论文.doc_第3页
基于AT89S52单片机的抢答器毕业设计(c语言)毕业论文.doc_第4页
基于AT89S52单片机的抢答器毕业设计(c语言)毕业论文.doc_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学位论文(设计)论文题目基于单片机的多路智能抢答器的设计作者姓名指导教师所在院系专业名称完成时间2009年5月15日XXXX学院本科毕业论文(设计)诚信承诺书中文题目:基于单片机的多路智能抢答器的设计外文题目:Design of Multipath Calling Implement Based on MCS学生姓名学 号院系专业班 级学 生 承 诺我承诺在毕业论文(设计)活动中遵守学校有关规定,恪守学术规范,本人毕业论文(设计)内容除特别注明和引用外,均为本人观点,不存在剽窃、抄袭他人学术成果,伪造、篡改实验数据的情况。如有违规行为,我愿承担一切责任,接受学校的处理。 学生(签名): 2009年5月15日指导教师承诺我承诺在指导学生毕业论文(设计)活动中遵守学校有关规定,恪守学术规范,经过本人核查,该生毕业论文(设计)内容除特别注明和引用外,均为该生本人观点,不存在剽窃、抄袭他人学术成果,伪造、篡改实验数据的现象。 指导教师(签名): 2009年5月15日 目 录摘 要11概述21.1 研究目标与任务21.2 方案设计与论证21.3 研究步骤32电路原理图的设计32.1 电路组成框图42.2 电路原理图43电路硬件设计53.1单片机最小系统53.2按键电路103.3显示电路113.4报警电路124系统软件的设计124.1编译软件Keil C134.2仿真软件Proteus144.3制板软件Protel DXP155调试及故障分析165.1程序调试165.2硬件焊接及故障分析176总结187致谢19参考文献20附录一21附录二32XXXX学院学士学位论文评审表基于单片机的多路智能抢答器的设计摘 要:抢答器是一种通过数码显示和警示等手段,准确、公正、直观地判断出第一抢答者的设备。本文介绍了一种以STC89C52为核心的多路智能抢答器系统,并分别从硬件和软件两方面对设计思想进行了阐述。硬件设计包括:单片机最小系统,按键电路、显示电路、报警电路;软件设计包括Keil编译程序、Proteus电路仿真、Protel DXP电路制板。经过调试和运行,该系统达到了预期目标,具有反应灵敏、功能齐全、实用性强的特点。关键词:单片机 键盘 显示 报警中文分类号:TP368.1DESIGN OF MULITIPATH CALLING IMPLEMENT BASED ON MCSAbstract: Calling Implement could accurate, impartial, penetrating to decide who is the No.1 to press the button, and shows the results through nixietube. A kind of multipath calling implement is introduced in the thesis, and the STC89C52 is its hard core. Hardware design include: the smallest MCS system, keyboard circuit, display circuit, alarm circuit; Software design include: Keil compiler, Proteus simulation, Protel DXP system circuit board. Also, the design method of the control system was expounded from aspects of the software and the hardware. And after debugging and running, the system reached the expected target, which have many advantages such as fast reaction, all ready function and good practicability. Keywords: MCS, keyboard, display, alarm 基于单片机的多路智能抢答器的设计1概述随着计算机技术的发展,单片机技术已经成为计算机技术中的一个独特的分支,单片机的应用领域也越来越广泛,特别是在工业控制和仪表仪器智能化中扮演着举足轻重的角色。在单片机家族的众多成员中,52系列单片机以其优越的性能、成熟的技术、高可靠性和高性价比,成为国内单片机应用领域内的主流。各种知识竞赛、文娱活动的广泛开展,使抢答器成了必不可少的电子设备,它为参赛选手提供了公正、客观、快速的裁决,已逐渐发展成为一种成型的电子产品,但市面上所售抢答器价格一般较贵且多为小规模集成电路构成,其性能单一,工作起来不够理想。本文介绍了一种以STC89C52单片机为核心的智能抢答器,它充分利用了单片机系统的优点,具有结构简单、功能强大、可靠性好、成本较低,实用性强的特点。1.1 研究目标与任务抢答器在电视台、商业机构、学校及企事业单位都有广泛应用,它为各种竞赛增添了刺激性、娱乐性,在一定程度上丰富了人们的业余生活。它的基本功能是:有几个小组参赛,当主持人允许抢答的情况下,优先抢答者发出抢答信号,此时其他参赛组的抢答电路即失去控制作用;在主持人解除抢答信号后,电路才自动恢复到各组又均可抢答的状态中。本课题目标是开发并且制作一种结构简单、实用性强、基于单片机的智能抢答器,从而公正、快速、准确的裁决出第一抢答者。1.2 方案设计与论证方案一:系统各部分采用中小规模集成数字电路,用机械开关按钮作为控制开关,完成抢答输入信号的触发1, 2。该方案的特点是中小规模集成电路应用技术成熟,性能可靠,能方便地完成选手抢答的基本功能,但是由于系统功能要求较高,所以电路连接集成电路相对较多,而且过于复杂,并且制作过程工序比较烦琐,使用不太方便。方案二:采用52系列单片机STC89C52作为控制核心,该系统可以完成运算控制、信号识别以及显示功能的实现3,4。由于使用单片机作为控制核心,其技术比较成熟,应用起来方便、简单,并且周围的辅助电路也比较少,便于控制和实现。整个系统具有极其灵活的可编程性,能方便地对系统进行功能的扩展和更改。经过比较,显然方案二比方案一简单的多,不但从性能上优于方案一,而且在使用上及其功能的实现上都较方案一简洁,并且由于单片机具有优越的高集成电路性,使其工作速度更快、效率更高。另外STC89C52单片机可以采用12MHz的晶振,提高了信号的测量精度,并且使该系统可以通过软件改进来扩展功能。而方案一采用了中小规模集成电路,由于其复杂的电路性能,可能会使信号的输入输出产生延时及不必要的误差。因此选择方案二比较适合。1.3 研究步骤(1)根据要求,设计出比较合理的方案,选取合适的硬件器件,熟悉各个器件的性能;(2)编写程序,根据设计的要求,编制主程序以及各子程序模块;(3)通过Keil、Proteus等软件进行仿真;(4)仿真成功后开始搭建实物电路,并且进行调试;(5)进行PCB设计;(6)实验总结;(7)撰写研究报告。2电路原理图的设计根据设计功能的要求,电路应该包括控制电路,按键电路,以及用来显示裁决结果的显示电路。除了用数码管显示目前的动作情形,同时也需要用声音提醒或者警告操作人员,因此也在电路设计时加入了报警电路。2.1 电路组成框图抢答器电路总体设计方框图如图1所示: 按键电路控制电路显示电路报警电路图1 抢答器总体设计方框图2.2 电路原理图抢答器电路原理图如图2所示,控制电路以单片机STC89C52为核心,按键电路采用矩阵式键盘的接法,显示电路采共阴极数码管动态显示,报警采用蜂鸣器报警电路。图2 抢答器电路设计原理图3电路硬件设计电路硬件包括:单片机最小系统(即控制电路)、按键电路、显示电路、报警电路。3.1单片机最小系统(1)系统结构总线型单片机非总线应用的最小系统示意图如图3所示,只有单片机和时钟电路、复位电路构成的最简单电路,并行总线不用于外围扩展,可作为应用系统的I/O口使用。图3 总线型单片机非总线应用的最小系统(2)系统特点有大量可使用的I/O口;没有并行扩展,应用系统结构简单;外围器件只能通过UART口的串行移位方式或虚拟串行扩展总线进行扩展。(3)STC89C52单片机STC89C52单片机具有片内E2PROM,是真正的单片机,由于不需要外接EPROM,所以应用非常普遍。STC89C52的主要工作特性如下:片内程序存储器内含8KB的Flash程序存储器,可擦写寿命为10000次;片内数据存储器内含256字节的RAM;具有32根可编程I/O口线;具有3个可编程定时器;中断系统是具有8个中断源、6个中断矢量、2个级优先权的中断结构;串行口是具有一个全双工的可编程串行通信口;具有一个数据指针DPTR;低功耗工作模式有空闲模式和掉电模式;具有可编程的3级程序锁定位;单片机STC89C52工作电源电压为5(1+0.2)V,且典型值为5V;单片机STC89C52最高工作频率为24MHz,单片机正常工作时,都需要有一个时钟电路和一个复位电路。STC89C52的内部结构图如图4所示:ROM并行接口RAM串行接口定时器/计数器中断系统内部总线SFR特殊功能寄存器P0TXD RXDINTO INT1CPU微处理器P1P2P3内部总线T0 T1图4 STC89C52内部结构图52单片机有4个8位并行输入/输出接口:P0、P1、P2和P3口这四个口既可以并行输入或输出8位数据,又可按位使用,即每一位均能独立做输入或输出用。图5为各接口的电气结构示意图5,6:图5 P0、P1、P2、P3口的电气结构图I/O端口的结构锁存器加引脚的典型结构52的I/O端口都由内部总线实现操作控制。P0-P3四个I/O端口都可以用作普通I/O口,因此,要求有输出锁存功能。内部总线又是分时操作,故每个I/O端口都有相应的锁存器。然而,I/O端口又是外部的输入/输出通道,必须有相应的引脚,故形成了I/O端口的锁存器加引脚的典型结构。I/O的复用结构I/O端口的总线复用。在使用并行扩展总线时,P0口可做数据总线口和低8位地址总线口,P0口为三态双向口。P0口输出并行总线的地址/数据信号;P2口输出高8位地址信号。I/O端口的功能复用。P3口为复用的I/O端口,口内有复用输出功能的控制端;引脚也有复用输入功能的控制端。P3口的第二功能输入引脚功能表如表1所示:表1 P3口的第二功能输入引脚端口引脚第二功能说 明P3.0RXD串行数据接受P3.1TXD串行数据发送P3.2外部中断0申请P3.3外部中断1申请P3.4T0定时/计数器0输入P3.5T1定时/计数器1输入P3.6外部数据存储器写选通P3.7外部数据存储器读选通准双向口结构P0、P1、P2、P3口作为普通I/O口使用时,都是准双向口结构,准双向口的典型结构如图(5)-b所示,准双向口的输入操作和输出操作本质不同,输入操作是读引脚状态;输出操作是对口锁存器的写入操作。由口锁存器和引脚电路可知:当由内部总线给口锁存器置0或1时,锁存器中的“1”或“0”状态立即反映到引脚上。但是在输入操作(读引脚)时,如果口锁存器状态为“0”,引脚被钳位在“0”状态,导致无法读出引脚的高电平输入。I/O端口的应用特性端口的自动识别。无论是P0、P2口的总线复用,还是P3口的功能复用,内部资源会自动选择,不需要通过指令的状态选择。口锁存器的读、改、写操作。许多涉及到I/O端口的操作,实际上只是设计口锁存器的读出、修改、写入的操作。这些指令都是一些逻辑运算指令、置位/清除指令、条件转移指令以及将I/O口作为目的地址的操作指令。P0口作为普通I/O口使用。当不使用并行扩展总线时,P0、P2口都可以做普通I/O口。但是P0口为开漏结构,作I/O口时必须外加上拉电阻。I/O口的驱动特性。P0口每一个I/O口可输出驱动8个TTL负载。而P1-P3口只能驱动4个。(4)时钟电路时钟电路用于产生单片机工作所需要的时钟信号。设计中采用了比较典型的内部时钟方式,如图6所示:其工作原理是:片内高增益反向放大器XTAL1、XTAL2外接作为反馈元件的晶体(呈感性)与电容组成的并联谐振回路构成一个自激振荡器向内部时钟电路提供振荡时钟。振荡器的频率主要取决于晶体的振荡频率,一般晶体可以在1.2-12MHz之间任选。电容的大小影响振荡器电路的稳定性和快速性,其值有微调作用,通常取30pF左右。在设计电路板时,晶振和电容应尽可能的靠近芯片,以减小分布电容,保证振荡器振荡的稳定性7。XTAL2XTAL1晶振C2C1单 片 机图6 单片机外接晶体的接法(5)复位电路复位是单片机的初始化操作,其主要功能是将程序计数器PC初始化为0000H,使单片机从0000H单元开始执行程序。复位操作不影响片内RAM的内容,但是对SFR中的一些寄存器有影响。图7 各种复位电路单片机的复位是靠外部电路复位的。其复位方式有上电复位和按键手动复位两种。复位电路中的电阻、电容数值的设置,是为了保证在RST管脚处至少保持两个机器周期(24个振荡周期)的高电平而完成复位过程的,也就是在斯密特触发器的输入端维持在最低阀值电压以上足够长时间,使斯密特触发器产生一个正脉冲。电阻值通常为1K,电容值通常为22uF。图7为几种常见的复位电路接法8。 3.2按键电路(1)键盘接口和键输入软件中应解决的几个问题消除抖动按键的合断过程存在一个抖动的暂态过程,这种抖动的暂态过程大约经过5-10ms的时间,人的肉眼是察觉不到的,但对于高速的CPU是有反应的,可能产生误处理。为了保证键动作一次,仅作一次处理,必须采取措施以消除抖动。本设计中采用了软件消抖的方法。软件消抖是用延时来躲过暂态抖动过程,执行一段大于10ms的延时程序后,再读取稳定的键状态。键盘的监测方法对于计算机应用系统,键盘扫描只是CPU工作的一部分,键盘处理只是在有键按下时才有意义。对于是否有键按下的信息输入方式有中断方式和查询方式两种。(2)行列式键盘工作原理行列式键盘又叫矩阵式键盘。用I/O线组成行、列结构,按键设置在行与列的交点上,这样可以节约I/O口线。44矩阵式键盘的示意图如图8所示:图8 44矩阵式键盘的示意图检测键盘上有无键按下可采用查询工作方式。首先由P1口的高四位输出0电平,从P1口的低四位读取键盘的状态;再从P1口的低四位输出0电平,从P1口的高四位读取键盘状态。将两次读取的结果组合起来就可以得到一组特征编码9,如表2所示:表2 44矩阵式键盘键码表按键名称K0K1K2K3K4K5K6K7K8特征键码77H7BH0BBH0DBH7DH0BDH0DDH7EH0BEH按键名称K9KAKBKCKDKEKF未按特征键码0DEH0B7H0D7H0EEHOEDH0EBH0E7H0FFH3.3显示电路显示电路为六位共阴极LED动态显示接口电路。单个共阴极7段数码的段选码如表3所示:表3 7段共阴数码管段选码表显示字符0123456789共阴极段选码3FH06H5BH4FH66H6DH7DH07H7FH6FH共阴极LED数码管将发光二极管的阴极(负极)短接后作为公共阴极,当驱动信号为高电平、“-”端接低电平时才能发光。这样的多位显示,将所有位的选线并联在一起,由一个8位I/O口控制,实现各部分的分时选通。由于所有位选皆由一个I/O口控制,在每一瞬间6位LED会显示相同的字符。想要每一位显示不同的字符,就必须采用扫描方法轮流点亮各位LED,即在每一瞬间只使某一位显示字符。在此瞬间,段选控制I/O口输出相应字型码,而位选则控制I/O口在该显示位送出低电平,以保证该位显示相应字符。如此轮流,使每一位分时显示该位应显示字符。其管脚配置及动态显示接口电路如图9所示: 图9 共阴极数码管管脚配置及动态显示接口电路3.4报警电路考虑到实验室现有的元器件,设计中采用了蜂鸣器报警电路,如果有条件还可以采用更高级的语音报警电路,那样更加直观方便。电路的接法如图10所示10:图10 蜂鸣器报警电路工作工程:蜂鸣器经过74LS04接在P3.7口,当P3.7输出为低电平“0”时,74LS04端输出为“1”,晶体管导通,蜂鸣器两端获得约+5V的电压而鸣叫;当P3.7输出为高电平“1”时,三极管截止,蜂鸣器停止鸣叫。电路中74LS04不仅起到了反向作用,还有增大负载能力的作用。4系统软件的设计众多软件的联合使用对应用系统的设计起到了很重要的作用,在实物制作之前对设计进行仿真,可以检验程序的执行结果是否与设计的功能相同,这样可以对程序进行改进。在这里用到了Keil C和Proteus,同时在电路制板时用到了Protel DXP绘制PCB板。4.1编译软件Keil C(1)Keil C的使用Keil C是众多单片机应用开发软件中优秀的软件之一,它集编辑,编译,仿真等于一体,同时支持汇编和C语言的程序设计,本设计使用它作为C编译器,使用方法如下:首先建立一个工程,然后将C程序文件添加到工程下链接编译,接着设置生成并输出HEX文件,如果程序编译后有错误就进行调试11。(2)程序设计完整的程序参见附录。主流程主流程图如图11所示: 图11 主流程图 图12 按键扫描流程按键扫描流程每一个按键都对应一个处理子程序,通过对按键扫描进行按键识别。按键识别的方法包含了行扫描法和反转法。按键扫描流程图如图12所示,包括了对矩阵键盘和调整时间按键的扫描。中断流程图设计采用了外部中断,中断程序流程图如图13所示:图13 中断流程图4.2仿真软件ProteusProteus是一款常用的仿真软件,和Keil联合使用,对设计的完善起到很大的作用,也对硬件的搭建提供了连线依据。Proteus的使用相对比较简单,在元件库中找到相应电路所要用到的元件后放置在原理图纸上,然后用导线连接起来就可以了。在选用元件后,可以在原理图纸上双击某元件,更改它的属性,如电阻的名称、阻值等。本设计中使用了单片机,需要加载程序文件。之前已经使用Keil C生成了所需要的HEX文件,直接加载进来就可以了。这时就可以运行仿真了。在仿真之前最好再检查一下电路的连接,确认正确之后再运行,以免粗心造成运行结果与设计的不相符合。设计的仿真原理图如图14所示:图14 电路仿真原理图4.3制板软件Protel DXP PCB电路板的设计流程12:(1)设计原理图 创建一个新项目;创建一张新的原理图图纸;查找元件;在原理图中放置元件;设置元件属性;放置电源和接地符号;绘制原理图。(2)定义元件封装 原理图设计完成后,元件的封装有可能被遗漏或有错误。对于用户自己设计的元件或者是某些特殊元件,必须由用户自己定义或修改元件的封装。 (3)设置PCB图纸可以设定PCB电路板的结构及尺寸,板层数目,通孔的类型,网格的大小等,既可以用系统提供的PCB设计模板进行设计,也可以手动设计PCB板。 (4)生成网表和加载网表 网表是电路原理图和印刷电路板设计的接口,只有将网表引入PCB系统后,才能进行电路板的自动布线。 (5)布线 设置布线规则后,先自动布线,然后手工调整。在元件很少且布线简单的情况下,也可以直接进行手动布线。制成的电路板如图15所示:图15 抢答器的PCB电路图5调试及故障分析5.1程序调试程序调试:分步骤进行调试,对每一个子程序进行编译链接后,将整个程序全部编译,生成HEX文件加载到单片机上,进行仿真。出现错误和警告时要进行分析,解决问题。仿真分析:启动(上电)后,显示0000。当主持人按键,显示30秒的抢答时间,如有选手抢答,会显示选手号码以及60秒的回答时间,回答时间剩余5秒时,会响提示音。如果第一位选手不能回答,那么主持人再次按下START键允许其他选手继续抢答,允许其他选手抢答的时间为上一次抢答的剩余时间,答题时间仍是60秒。如果没有人抢答,抢答倒计时还有5秒的时候会响提示音,抢答时间过后抢答器会自动进入复位状态,可以进行下一轮的抢答。 如果主持人未按START键,有选手按了抢答按键,犯规抢答,显示犯规选手号并闪烁FF,直到主持人复位。这与预期的效果是一致的。5.2硬件焊接及故障分析电子电路是由许多元器件和导线连接而成,每一个元件和导线的好坏,连接的正确可靠与否,都可能产生故障,情况很复杂。有的是一种原因引起的简单故障,也有的是多种原因引起的复杂故障。以下是一些常见的故障:(1)电路组装有错误或连接不牢,致使电路与原理电路不一致。(2)电路元器件本身特性不良或损坏,特别是芯片的损坏最为常见,其次是电容的击穿、短路以及电阻的阻值与标称值不符。因此在组装电路前应进行检查和筛选,以防组装完电路后,再查找原因所带来的种种麻烦。(3)各仪器连线是否正确,是否与电路共地;仪表使用是否得当。(4)以上检查无错误时,应考虑电路设计,这也是实验中尤其是在数字电路中常遇到的13。硬件搭建:按照设计的原理图一步一步完成电路的搭建。这过程中一定要耐心、细心,否则很容易跳错线。实物电路搭好以后,仔细对照原理图检查一遍,然后就可以上电检测了。制作硬件过程中,出现了以下问题经过检查得到了解决:(1)接上电源后发觉数码管无显示。经检查后现单片机的29脚悬空未接,应该接在高电平上,这是单片机正常工作的前提。(2)单片机不工作。检查后判定是振荡电路不起振,原因是用跳线将振荡电路连在了远离单片机的位置,影响了振荡电路的稳定。(3)矩阵键盘的其中一行不正常工作。经检查后发现是虚焊。制作的实物如图16所示:图16 抢答器实物图电路运行的各个状态图见附录二。6总结与普通抢答器相比,本设计有以下几方面优势:(1)具有清零装置和抢答控制,可由主持人操纵避免有人提前抢答违反规则。(2)具有定时功能,在规定时间内无人抢答表示所有参赛选手或参赛队对本题弃权。实物的制作仅仅是在实验室完成的,在实际应用中还有许多问题需要考虑,比如选手是分散在主席台下的,那么选手的按键就要通过总线进行连接,而不是实验板上简单的矩阵键盘式的连接。另外,抢答器的功能有待进一步增强,比如增加计分功能。而功能的扩展恰恰体现了本设计中选用单片机作为核心控制器的优势简单的接线、灵活的可编程性。 7致谢在本次毕业设计过程中,我的指导老师司佑全老师对本论文从选题、构思、资料收集到最后定稿的各个环节都给予了细心指引与教导,使我得以最终完成毕业设计,在此对司老师表示衷心感谢!司老师严谨的治学态度、丰富渊博的知识、敏锐的学术思维以及诲人不倦的师者风范是我终生学习的楷模。同时也要感谢祝洪峰、董巍、张能文、陈兮等同学,他们在设计的各个阶段给了我很多帮助和建议。最后,我要向在百忙之中抽时间对本文进行审阅、评议的各位老师表示感谢!参考文献1 王青萍. 八路智力竞赛抢答器的设计J. 湖北教育学院学报, 2007, (08): 65-67.2 宁志刚, 黄智伟, 唐慧, 胡芬芬, 八位数显抢答器课程设计方法研讨J,实验室研究与探索, 2009, 28(1): 65-67.3 程相波, 卫安军. 基于MCS51单片机的八路抢答器设计方法研究J. 北京工业职业技术学院学报, 2007, (02): 31-34. 4 宋春华, 刘江涛, 王贵恩, 裴小英. 基于单片机控制的数字抢答器J. 河南机电高等专科学校学报, 2005, (05): 28-29.5 张毅刚, 彭喜元, 姜守达, 乔立岩. 新编MCS-51单片机应用设计M. 哈尔滨: 哈尔滨工业大学出版社, 2003: 223-231.6 何立民. 单片机高级教程-应用与设计M. 北京: 北京航空航天大学出版社, 2000. 8: 103-109.7 李建忠. 单片机原理与应用M. 西安: 西安电子科技大学出版社, 2002,2: 121-123.8 王幸之, 钟爱琴, 王雷, 王闪. AT89系列单片机原理与接口技术M. 北京: 北京航空航天大学出版社, 2004: 62-67.9 张洪润, 易涛. 单片机应用技术教程M. 北京: 清华大学出版社, 2003,10: 119-122.10 蔡朝洋. 单片机控制实习与专题制作M. 北京: 北京航空航天大学出版社, 2006,11: 317-323.11 戴佳, 苗龙, 陈斌. 51单片机应用系统开发典型实例M, 北京: 中国电力出版社, 2005,7: 121-137.12 杨欣, 王玉凤, 刘湘黔. 电路设计与仿真-基于Multisim 8与 Protel 2004M. 北京: 清华大学出版社, 2006: 32-106.13 王振宇, 李惠敏. 实验电子技术M. 天津: 天津大学出版社, 1998: 63-83.附录一#includeunsigned char key;unsigned char key1;unsigned char sec;unsigned char sec2;unsigned char flag;unsigned char flag1=0;unsigned char flag2=0;unsigned char flag3=0;unsigned char i; sbit LOUDER=P37;sbit RED=P34;sbit PAUSE=P35;sbit RESTART=P36;sbit ADD=P30;sbit SUB=P31;unsigned char led17=0x3F,0x06,0x5B,0x4F,0x66,0x6D, 0x7D,0x07, 0x7F,0x6F,0X71;/*delay()延时函数*/void delay(int t)unsigned char i,j;for(i=0;it;i+)for(j=0;j100;j+);void delay1()unsigned char i,j;for(i=0;i8;i+)for(j=0;j4) TR0=1; key=0; flag2=0; flag=0; PAUSE=1; RESTART=0; TR1=1; flag=0; flag1=1; EX1=1; LOUDER=0; delay(250); LOUDER=1;/*定时器T0,计时30秒*/void Timer1() interrupt 1 static unsigned char count; TL0=0XB0; TH0=0X3C; count+; if(count=35) count=0; sec-; if(sec=5) LOUDER=0; delay(250); LOUDER=1; if(sec=0) sec=0; ET0=0; TR0=0; /*定时器T1,计时60秒*/void Timer3() interrupt 3 static unsigned char count; TL1=0XB0; TH1=0X3C; count+; if(count=35) count=0; sec-; if(sec=5) LOUDER=0; delay(250); LOUDER=1; if(sec=0) sec=0; ET1=0; TR1=0; key=0; /*功能:键盘扫描*/key_scan() unsigned char k=0,p1_h=0,p1_l=0; P1=0XF0; k=P1; flag=0; if(k!=0XF0) delay(60);k=P1; /读入行键值flag=1;if(k!=0XF0)p1_h=P1; /行键值给高位P1=0X0f; /翻转后读入列的值给P1(读键值时按键还未释放)p1_l=P1; /列键值给低位k=p1_h | p1_l; /高低位相或确定具体按键值 flag2+; /第二个人抢答无效,即锁存第一个人的号 if(flag2=1) sec2=sec; if(flag2=2) k=0; switch(k) case 0: return(0) ;break;case 238: return(key=1,sec=60);break;case 237: return(key=2,sec=60);break;case 235: return(key=3,sec=60);break;case 231: return(key=4,sec=60);break;case 222: return(key=5,sec=60);break;case 221: return(key=6,sec=60);break;case 219: return(key=7,sec=60);break;case 215: return(key=8,sec=60);break;case 190: return(key=9,sec=60);break;case 189: return(key=10,sec=60);break;case 187: return(key=11,sec=60);break;case 183: return(key=12,sec=60);break;case 126: return(key=13,sec=60);break;case 125: return(key=14,sec=60);break;case 123: return(key=15,sec=60);break;case 119: return(key=16,sec=60);break;default: return(0) ;break; else return(0);else return(0);/*main() 函数*/void main() init();while(1) key_scan();if(flag3=2)|(flag3=4) delay(250);if(flag3=2)|(flag3=4) if(ADD=0) sec+; if(SUB=0) sec-; i=35;for(i=35;i0;i-) if(flag!=0)&(flag1=1) /在外部中断T1触发后flag1=1,flag4的初值为0,开始抢答,并且有人抢答,启动定时器T1倒计时60S/ LOUDER=0; delay(250); LOUDER=1; ET1=0; TR0=0; TL1=0XB0; TH1=0X3C; ET1=1; TR1=1; if(flag=0) /没有选手按下按键时,此模块是在没有按键按下时flag=0;只用于显示倒计时的时间,包括30秒 和60秒两个倒计时/ P2=0xfe; P0=ledkey%10;delay1();P2=0xff;P2=0xfd; P0=ledkey/10;delay1(); P2=0xff; P0=ledsec%10; P2=0xbf; delay(8); P2=0xff; P0=ledsec/10; P2=0x7f; delay(8); P2=0xff; else if(flag!=0)&(flag1=0)/外部中断T1 没触发一次则flag1=0;但是在又有按键按下即是有选手违规抢答时,此模块用作显示违规者的号码,同时有提示声音/ sec=sec2; P2=0xfe; P0=ledkey%10;delay1();P2=0xff;P2=0xfd; P0=ledkey/10;delay1(); P2=0xff; P2=0xfB; P0=led10;delay1();P2=0xff;P2=0xf7; P0=led10;delay1(); P2=0xff; LOUDER=0; delay(250); LOUDER=1;flag=0;flag1=0; 附录二附图1 上电后显示状态图附图2 开始抢答的显示状态图附图3 有选手抢答的显示状态图附图4 允许再次抢答的显示状态图附图5 暂停时的显示状态图XXXX学院学士学位论文评审表院 系名 称学生姓名班 级名 称评阅人姓 名专业方 向学生学号提 交时 间评阅人职 称论文题目基于单片机的多路智能抢答器的设计论文或设计的主要内容本设计的任务是开发并且制作一种结构简单、实用性强、基于单片机的多路智能抢答器,用于竞赛的抢答环节,公正、快速、准确的裁决出第一抢答者。文章从两大方面对抢答器的设计进行了阐述:硬件组成和软件仿真设计。硬件包括控制电路、键盘电路、显示电路和报警电路。控制电路以单片机STC89C52为核心,按键电路采用矩阵式键盘的接法,显示电路采共阴极数码管动态显示,报警采用蜂鸣器报警电路。在仿真的基础上经过实物验证:设计的功能和要求的一致,因此设计是成功的。至此,本人提出答辩申请,请予批准。评阅人评语该论文用单片机实现了一种多路智能抢答器,具有多次抢答与报警提示功能,软件仿真和硬件调试均达到预期效果。论文结构合理,条理清晰,达到了本科学士学位论文的水平,同意参加论文答辩。评阅人(签名): 2009年 5 月 15 日院系评审意见院系学术委员会主席(签章): 2009 年 6 月 5 日备注能人士的50个习惯 在行动前设定目标 有目标未必能够成功,但没有目标的肯定不能成功。著名的效率提升大师博思.崔西説:“成功就是目标的达成,其他都是这句话的注释。”现实中那些顶尖的成功人士不是成功了才设定目标,而是设定了目标才成功。 一次做好一件事 著名的效率提升大师博思.崔西有一个著名的论断:“一次做好一件事的人比同时涉猎多个领域的人要好得多。”富兰克林将自己一生的成就归

温馨提示

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

评论

0/150

提交评论