基于at89c51的数字抢答器设计本科学位论文.doc
图书分类号:密 级:毕业设计(论文)基于AT89C51的数字抢答器设计 THE DESIGN OF DIGITAL ANSWERING DEVICE BASED ON AT89C51学生姓名学院名称信电工程学院专业名称电子信息工程技术指导教师2010年5月20日 徐州工程学院毕业设计(论文)徐州工程学院学位论文原创性声明本人郑重声明: 所呈交的学位论文,是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已经注明引用或参考的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品或成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标注。本人完全意识到本声明的法律结果由本人承担。论文作者签名: 日期: 年 月 日徐州工程学院学位论文版权协议书本人完全了解徐州工程学院关于收集、保存、使用学位论文的规定,即:本校学生在学习期间所完成的学位论文的知识产权归徐州工程学院所拥有。徐州工程学院有权保留并向国家有关部门或机构送交学位论文的纸本复印件和电子文档拷贝,允许论文被查阅和借阅。徐州工程学院可以公布学位论文的全部或部分内容,可以将本学位论文的全部或部分内容提交至各类数据库进行发布和检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。论文作者签名: 导师签名: 日期: 年 月 日 日期: 年 月 日摘 要随着电子技术的飞速发展,基于单片机的控制系统已广泛应用于工业、农业、电力、电子、智能楼宇等行业,微型计算机作为嵌入式控制系统的主体与核心,代替了传统的控制系统的常规电子线路。同时楼宇智能化的发展与成熟,也为基于单片机的照明控制系统的普及与应用奠定了坚实的基础。电子智能抢答计分器在抢答过程中,为了知道哪一组或哪一位选手先答题,必须要设计一个系统来完成这个任务。如果在抢答中,靠视觉是很难判断出哪组先答题。利用单片机系统来设计抢答器,使以上问题得以解决,即使两组的抢答时间相差几微秒,也可分辨出哪组优先答题。抢答组数可以在八组以内任意使用,本系统设计为模块形式采用九针插头进行连接,系统工作原理本系统采用AT89C51单片机作为核心。控制系统的五个模块分别为:单片机最小系统(四位并行数码显示、独立键盘)、显示模块、显示驱动模块、抢答开关模块、音乐音频输出模块。关键词:单片机;独立键盘;显示器;驱动;抢答AbstractWith the rapid development of electronic technology, the control system based on SCM has been widely used in industry, agriculture, electricity, electronics, intelligent buildings, industry, micro-computers embedded control system as the main and core, instead of the traditional control System of conventional electronic circuits. At the same time the development of intelligent buildings and maturity, but also based on the lighting control system MCU and popularity of application laid a solid foundation. Points for electronic smart Qiangda Qiangda in the process, in order to know which group or which one player to answer, we must design a system to complete this task. If the Qiangda, rely on the visual is very difficult to determine which group to answer. SCM system used to design Qiangda, bringing the above problems are resolved, even if the two groups Qiangda the difference in time a few microseconds, which can also be distinguished group of priority answer. Qiangda group of eight can within the arbitrary use of the system designed to be modular form of a nine-pin plugs to connect the system working principle of the system used AT89S51 SCM as a core. Control system of the five modules are: MCU minimum system (six parallel digital display, 4 x 4 matrix keyboard), modules, display driver module, Qiangda switch modules, music, audio output module. Key words: SCM,modules, display driver module, Qiangda switch modulesIII徐州工程学院毕业设计(论文)目 录1 绪论11.1课题研究背景及意义11.2需求分析11.3相关原理论证12系统设计方案32.1本数字抢答器的组成32.2八位抢答器的设计要求32.3数字抢答器的主要功能32.4部分硬件介绍52.4.1 AT89C51单片机简介52.4.2 LED数码管82.4.3 LCD的特点92.4.4锁存器93系统硬件设计123.1硬件电路的总体框图123.2电路器件选择123.3最小系统设计123.3.1时钟频率电路123.3.2复位电路设计123.3.3键盘扫描电路的设计133.3.4功能键及发生系统设计143.3.5系统复位设计143.4总体设计结构图154系统软件设计164.1部分软件设计164.1.1主程序系统结构图164.1.2程序流程图164.1.3初始化程序164.1.4键盘扫描程序流程图184.1.5抢答器数码管显示软件设计184.1.6音乐音频输出程系流程图194.2软件调试204.2.1编译、连接项目,形成目标文件204.2.2运行调试观察结果215 Proteus简介与系统仿真测试225.1 Proteus ISIS编辑环境简介225.2 电路图设计快速入门255.3系统仿真测试27结论28致谢29参考文献30附录31附录131附录242441绪论1.1课题研究背景及意义对于抢答器我们大家都知道那是用于选手做抢答题时用的,选手进行抢答,抢到题的选手来回答问题。抢答器不仅考验选手的反应速度同时也要求选手具备足够的知识面和一定的勇气。选手们都站在同一个起跑线上,体现了公平公正的原则。 本实验设计的数字抢答器由主体电路与扩展电路组成。优先编码电路、锁存器、译码电路将参赛队的输入信号在显示器上输出;用控制电路和主持人开关启动报警电路,以上两部分组成主体电路。通过定时电路和译码电路将秒脉冲产生的信号在显示器上输出实现计时功能,构成扩展电路。经过布线、焊接、调试等工作后数字抢答器成形。更具有实用性。1.2需求分析系统设计主要包括硬件和软件两大部分,依据控制系统的工作原理和技术性能,将硬件和软件分开设计。硬件设计部分包括电路原理图、合理选择元器件、绘制线路图,然后对硬件进行调试、测试,以达到设计要求。软件设计部分,首先在总体设计中完成系统总框图和各模块的功能设计,拟定详细的工作计划;然后进行具体设计,包括各模块的流程图,选择合适的编程语言和工具,进行代码设计等;最后是对软件进行调试、测试,达到所需功能要求。如果有选手在规定的时间以前完成问题,主持人通过按键结束键复位,开始新的问题作答,因为程序不是很大不需要扩展存储空间,选手按键跳入相应的子程序,回答倒记时,通过单片机实现功能可以更人性化,只需单电源供电更方便,容易实现。电路结构简单,外围扩展的电路不是很多,锻炼我们所学的知识应用到现实生活当中。为我们提供实践的机会。单片机是电子专业发展的方向,更好的使用单片机可以是我们的产品小型化,使用更方便,性能更稳定,功能更齐全,所以我选用单片机加一定的外围设备实现本次课程设计的要求。抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时扬声器发出报警声响提示。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。通过单片机实现功能可以更人性化,只需单电源供电更方便,容易实现。电路结构简单,外围扩展的电路不是很多,锻炼我们所学的知识应用到现实生活当中。为我们提供实践的机会。单片机是电子专业发展的方向,更好的使用单片机可以是我们的产品小型化,智能化,人性化。使用更方便,性能更稳定,功能更齐全,所以我们选用单片机加一定的外围设备实现本次设计的要求。1.3相关原理论证制作抢答器可以用好多的方法,可以用PLC来实现,它的功能强大制作简单,并且外围的元件也很少;也可以用单片机来实现,他的制作也是比较简单;还可以用我们学过的EDA技术来制作;最后也可以用数字电路来实现,它的原理比较简单,集成块的价格也比较便宜且很容易购买,与我们学完的单片机原理联系紧密,能将我们所学知识用于实际,对巩固所学知识有重要意义,使总体方案易于实现。但由于专用电路芯片通常是厂家特殊设计开发的,一般不易买到或价格较高,用其它方式设计的需要设计者具有相应的理论知识,并要通过仿真器,应用软件,计算机等辅助设备才能验证完成,不利于设计者的设计和制作,综上所述所以本方案用单片机来实现。而有些实际竞赛的场合,只要满足显示抢答有效和有效组别即可,故我打算用一片74HC373(8位数据锁存器)来实现此简易抢答器的功能,这是一个显示方式简单,价格低廉,经济实用的抢答器设计方案。在要求不高的场合,能完全符合要求。2系统设计方案2.1本数字抢答器的组成本抢答器的电路主要有四部分组成:数字抢答电路、时序控制电路、报警电路以及可预置时间的定时电路。其中数字抢答部分有一个74DC373锁存器和LED数码管显示器组成,可以将八位抢答者的按钮通过LED数码管显示器显示出他们最先抢答者的序号。而时序控制电路的功能是当参赛选手按动抢答器时,使扬声器发声,这时抢答电路和定时电路停止工作。而且设定的时间到达后若无人抢答,则报警电路工作。报警电路工作的条件是当设定时间到达后或者有人抢答时,报警电路被输入一个高电平,这时此电路工作。2.2 八位抢答器设计要求本次设计的数字抢答器将具有以下功能:(1)抢答器同时供8名选手或8个代表队比赛,分别用8个按钮S0 S7表示。(2)设置一个系统清除和抢答控制开关“开始”,“结束”,该开关由主持人控制。(3)抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,扬声器发出声响提示,并在LED数码管上显示选手号码。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。此外还有一些扩展功能:(1)抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如10秒)。当主持人启动“开始”键后,定时器进行减计时。(2) 参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。(3) 如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示0。2.3数字抢答器主要功能抢答器原理:每个选手的座位前安装一只抢答按钮开关和一只信号灯。主持人的座位前安装一只复原按钮开关、一只蜂鸣器和一只抢答器工作状态指示灯。每当主持人口头发出允许抢答的号令之后,哪个队先按下座位上的按钮开关,该座位的信号灯就先被点亮,同时封锁其他按钮开关的活动。并且熄灭主持人座位上的状态指示灯和发出 3 声类似于电话振铃的提示声,以“声明”此次抢答动作已经完成。在主持人确认后,按下复原按钮,状态指示灯重新点亮,并且同时发出“笛笛”声,为下一次的抢答作好准备。电路中的蜂鸣器 FM 是一只带有助音腔的压电陶瓷蜂鸣器,用于模拟发出报警声的功率放大器和喇叭。在 FM 发声的同时,灯 D6 也在发光。FM 可以看作是一个电容性负载,本身不能流过直流电流。发声的原理是,作用在两个电极极板的电位在发生变化时,陶瓷材料就发生弯曲,从而振动空气发出声音。FM和 4 只按钮开关 SWaSWd 以及 4 只电阻 RaRd 都是在演示板的基础上额外添加的。由于RB端口内部具有上拉电阻,只要用软件设置其有效,即可省略在4 只端口引脚上外接上拉电阻。参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示0。8路抢答器可以利用硬件电子元器件实现,但电路结构复杂,调试困难,涉及到的外围元件多,不便于安装,实验给实际操作带来很大的麻烦。我们利用单片机可以用很少元件实现相同功能,而且单片机性能稳定,可操作性强。可以只用P0口连接排阻(用作上拉电阻),完成驱动LED的功能,串接按键可以由选手自己控制抢答机会。利用单片机程序判断选手按键是否有效,但当选手违规抢答时,利用简单程序显示选手序号,启动蜂鸣器并不间断,告诉主持人有人违规操作,抢答无效。给出相应的延时,选手按正常的操作抢答,软件倒记时。如果有选手在规定的时间以前完成问题,主持人通过按键开始按钮来复位,开始新的问题作答,因为程序不是很大不需要扩展存储空间,选手按键跳入相应的子程序,回答倒记时与普通抢答器相比,本作品有以下几方面优势: 1、具有清零装置和抢答控制,可由主持人操纵避免有人在主持人说“开始”前提前抢答违反规则。 2、具有定时功能,在10秒内无人抢答表示所有参赛选手获参赛队对本题弃权。 3、10秒时仍无人抢答其报警电路工作表示抢答时间耗尽并禁止抢答。为使硬件电路设计尽可能合理,应注意以下几方面:(1) 尽可能采用功能强的芯片,以简化电路,功能强的芯片可以代替若干普通芯片,随着生产工艺的提高,新型芯片的的价格不断下降,并不一定比若干普通芯片价格的总和高。(2) 留有设计余地。在设计硬件电路时,要考虑到将来修改扩展的方便。因为很少有一锤定音的电路设计,如果现在不留余地,将来可能要为一点小小的修改或扩展而被迫进行全面返工。(3) 程序空间,选用片内程序空间足够大的单片机,本设计采用AT89C51单片机。(4) I/O端口,在样机研制出来后进行现场试用时,往往会发现一些被忽视的问题,而这些问题不是靠单纯的软件措施来解决的。如有些新的信号需要采集,就必须增加输入检测端;有些物理量需要控制,就必须增加输出端。如果在硬件电路设计就预留出一些I/O端口,虽然当时空着没用,那么用的时候就派上用场了。2.4部分硬件介绍2.4.1 AT89C51单片机简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。其管脚图见图2-1:图2-1 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)这是由于上拉的缘故。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脚两个机器周期的高电平时间。 表2-1 AT89C51寄存器表寄存器内容寄存器内容PC0000HTMOD00HACC00HTCON00HB00HTL000HPSW00HTH000HSP07HTL100HDPTR0000HTH100HP0P30FFHSCON00HIPxxx00000SBUF不定IE0xxx00000PCON0xxx00000ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。AT89C51方框图如图2-2所示:图2-2 AT89C51内部结构图2.4.2 LED数码管LED 发光二极管,是一种固态的半导体器件,它可以直接把电转化为光。LED的心脏是一个半导体的晶片,晶片的一端附在一个支架上,一端是负极,另一端连接电源的正极,使整个晶片被环氧树脂封装起来。半导体晶片由两部分组成,一部分是P型1半导体,在它里面空穴占主导地位,另一端是N型半导体,在这边主要是电子。但这两种半导体连接起来的时候,它们之间就形成一个“P-N结”。当电流通过导线作用于这个晶片的时候,电子就会被推向P区,在P区里电子跟空穴复合,然后就会以光子的形式发出能量,这就是LED发光的原理。而光的波长决定光的颜色,是由形成P-N结材料的禁带宽度决定的。2.5米宽耐力板已由正成业安装调试成功!大大改善采光效果。结构图见图2-3:图2-3数码管结构图LED优点:LED的内在特征决定了它是最理想的光源去代替传统的光源,它有着广泛的用途。一、体积小LED基本上是一块很小的晶片被封装在环氧树脂里面,所以它非常的小,非常的轻。二、耗电量低LED耗电相当低,一般来说LED的工作电压是2-3.6V。工作电流是0.02-0.03A。这就是说:它消耗的电能不超过0.1W。三、使用寿命长在恰当的电流和电压下,LED的使用寿命可达10万小时。四、高亮度、低热量LED使用冷发光技术,发热量比普通照明灯具低很多。五、环保LED是由无毒的材料作成,不像荧光灯含水银会造成污染,同时LED也可以回收再利用。六、坚固耐用LED是被完全的封装在环氧树脂里面,它比灯泡和荧光灯管都坚固。灯体内也没有松动的部分,这些特点使得LED可以说是不易损坏的。 高节能:节能能源无污染即为环保。直流驱动,超低功耗(单管0.03-0.06瓦)电光功率转换接近100%,相同照明效果比传统光源节能80%以上。 寿命长:LED光源有人称它为长寿灯,意为永不熄灭的灯。固体冷光源,环氧树脂封装,灯体内也没有松动的部分,不存在灯丝发光易烧、热沉积、光衰等缺点,使用寿命可达6万到10万小时,比传统光源寿命长10倍以上。 多变幻:LED光源可利用红、绿、蓝三基色原理,在计算机技术控制下使三种颜色具有256级灰度并任意混合,即可产生256×256×25616777216种颜色,形成不同光色的组合变化多端,实现丰富多彩的动态变化效果及各种图像。 利环保:环保效益更佳,光谱中没有紫外线和红外线,既没有热量,也没有辐射,眩光小,而且废弃物可回收,没有污染不含汞元素,冷光源,可以安全触摸,属于典型的绿色照明光源。 高新尖:与传统光源单调的发光效果相比,LED光源是低压微电子产品,成功融合了计算机技术、网络通信技术、图像处理技术、嵌入式控制技术等,所以亦是数字信息化产品,是半导体光电器件“高新尖”技术,具有在线编程,无限升级,灵活多变的特点。2.4.3 LCD的特点(1)低压微功耗 (2)平板型结构 (3)被动显示型(无眩光,不刺激人眼,不会引起眼睛疲劳) (4)显示信息量大(因为像素可以做得很小) (5)易于彩色化(在色谱上可以非常准确的复现) (6)无电磁辐射(对人体安全,利于信息保密) (7)长寿命(这种器件几乎没有什么劣化问题,因此寿命极长,但是液晶背光寿命有限,不过背光部分可以更换.2.4.4锁存器锁存器是一种对脉冲电平敏感的存储单元电路,它们可以在特定输入脉冲电平作用下改变状态。简单锁存器描述:只有在有锁存信号时输入的状态被保存到输出,直到下一个锁存信号。通常只有0和1两个值。典型的逻辑电路是D触发器。 由若干个钟控D触发器构成的一次能存储多位二进制代码的时序逻辑电路,叫锁存器件。 逻辑结构与功能表见图2-4:图2-4 锁存器逻辑结构与功能表8位锁存器74HC373的逻辑图如下图所示。其中使能端G加入CP信号,D为数据信号。输出控制信号为0时,锁存器的数据通过三态门进行输出。图2-5 74HC373引脚(管脚)图:图2-6 74LS373内部逻辑图 图2-7 74LS373真值表所谓锁存器,就是输出端的状态不会随输入端的状态变化而变化,仅在有锁存信号时输入的状态被保存到输出,直到下一个锁存信号到来时才改变。在某些运算器电路中有时采用锁存器作为数据暂存器数据有效延迟后于时钟信号有效。这意味着时钟信号先到,数据信号后到。 典型的锁存器逻辑电路是 D 触发器电路。 锁存,就是把信号暂存以维持某种电平状态。锁存器的最主要作用是缓存,其次完成高速的控制其与慢速的外设的不同步问题,再其次是解决驱动的问题,最后是解决一个 I/O 口既能输出也能输入的问题。 在某些应用中,单片机的 I/O 口上需要外接锁存器。例如,当单片机连接片外存储器时,要接上锁存器,这是为了实现地址的复用。假设,MCU 端口其中的 8 路的 I/O 管脚既要用于地址信号又要用于数据信号,这时就可以用锁存器先将地址锁存起来。 访问外部存储器时口和口共做地址总线,口常接锁存器再接存储器。以防止总线间的冲突。而口直接接存储器。因为单片机内部时序只能锁住口的地址,如果用口传输数据时不用锁存器的话,地址就改变了。 看看单片机总线操作的时序图对我们很有帮助。由于数据总线、地址总线共用口,所以要分时复用。先送地址信息,由使能锁存器将地址信息锁存在外设的地址端,然后送数据信息和读写使能信号,在指定的地址进行读写操作。 使用锁存器来区分开单片机的地址和数据,系列的单片机用的比较多,也有一些单片机内部有地址锁存功能,如就不用锁存器了3系统硬件设计3.1 硬件电路的总体框图本数字抢答器的硬件电路总体框图见图3-1:按键与按钮电路复位等辅助电路数码管显示电路总体开关电源系统 图3-1 数字抢答器电路框图3.2 电路器件选择本次设计的数字抢答器采用AT89C51单片机作为系统的控制单元。就抢答器而言,通常可采用液晶显示或数码管显示。由于一般的段式液晶屏,需要专门的驱动电路,而且液晶显示作为一种被动显示,可视性相对较差;对于具有驱动电路和微处理器接口的液晶显示模块(字符或点阵),一般多采用并行接口,对微处理器的接口要求较高,占用资源多。另外,AT89C51本身无专门的液晶驱动接口,因此,本时钟采用数码管显示方式。数码管作为一种主动显示器件,具有亮度高、价格便宜等优点,而且市场上也有专门的时钟显示组合数码管。3.3最小系统设计3.3.1时钟频率电路图单片机必须在时钟的驱动下才能工作.在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。晶振电路见图3-2:·图3-2晶振电路3.3.2复位电路图设计单片机的第9脚RST为硬件复位端,只要将该端持续4个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态。复位电路图见图3-3所示:图3-3复位电路值得注意的是,在设计当中使用到了硬件复位和软件复位两种功能,由上面的硬件复位后的各状态可知寄存器及存储器的值都恢复到了初始值,而前面的功能介绍中提到了倒计时时间的记忆功能,该功能的实现的前提条件就是不能对单片机进行硬件复位,所以设定了软复位功能。软复位实际上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳转到程序执行的起始地址。3.3.3 键盘扫描电路的设计键盘是人与微机系统打交道的主要设备。关于键盘硬件电路的设计方法也可以在文献和书籍中找到,配合各种不同的硬件电路,这些书籍中一般也提供了相应的键盘扫描程序。站在系统监控软件设计的立场上来看,仅仅完成键盘扫描,读取当前时刻的键盘状态是不够的,还有不少问题需要妥善解决,否则,人们在操作键盘就容易引起误操作和操作失控现象。在单片机应用中键盘用得最多的形式是独立键盘及矩阵键盘。键盘扫描电路图见图3-4:图3-4独立键盘3.3.4功能键及发声系统设计声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单片机某个口线的“高”电平或低电平,则在该口线上就能产生一定频率的矩形波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调,使喇叭发出不同的声音。通过添加一些具体的功能键可以使系统的功能更加完善。功能键及发声系统结构图见图3-5:图3-5功能键及发声系统结构图3.3.5 系统复位设计使CPU进入初始状态,从0000H地址开始执行程序的过程叫系统复位。从实现系统复位的方法来看,系统复位可分为硬件复位和软件复位。硬件复位必须通过CPU外部的硬件电路给CPU的RESET端加上足够时间的高电位才能实现。上电复位,人工按钮复位和硬件看门狗复位均为硬件复位。硬件复位后,各专用寄存器的状态均被初始化,且对片内通用寄存器的内容没有影响。但是,硬件复位还能自动清除中断激活标志,使中断系统能够正常工作,这样一个事实却容易为不少编码人员所忽视。软件复位就是用一系列指令来模拟硬件复位功能最后通过转移指令使程序从0000H地址开始执行对各专用寄存器的复位操作是容易的,也没有必要完全模拟,可根据实际需要去主程序初始化过程中完成。而对中断激活标志的清除工作常被遗忘,因为它没有明确的位地址可供编程。有的编程人员用020000(LJMP 0000H)作为软件陷阱,认为直接转向0000H地址就完成了软件复位,就是这类错误的典型代表。软件复位是使用软件陷阱和软件看门狗后必须进行的工作,这时程序出错完全有可能发生在中断子程序中,中断激活标志已置位,它将阻止同级中断响应。由于软件看门是高级中断,它将阻止说要中断响应,由此可见清除中断激活标志的重要性。在所有的指令中,只有RETI指令能够清除中断激活标志。前文各处提案到的出错处理程序ERR主要完成这一功能,其他的善后工作交由复位后的系统去完成。这部分程序如下:POWER DATA 67H ;上电标志存放单元 ERR: CLR EA ;关中断 MOV DPTR,#ERR1 ;准备返回地址PUSH DPLPUSH DPHRETI ;清除高级中断激活标志ERR1: MOV POWER,#0AAH;重建上电标志 CLR A ;准备复位地址 PUSH ACC ;压入复位地址0000HPUSH ACCRETI ;清除低级中断激活标志,从程序0000H开始执行3.6总体设计结构图数字抢答器的总体设计结构见图3-6:图3-6总体结构图4系统软件设计4.1部分软件设计4.1.1 主程序系统结构图软件系统结构图见图4-1:图4-1软件系统结构图4.1.2 程序流程图在本设计中包括了以下八个主要的程序:主程序;非法抢答序;抢答时间调整程序;回答时间调整程序;倒计时程序;正常抢答处理程序;犯规处理程序;显示及发声程序。主程序流如图4-2所示:图4-2程序流程图回答时间调整程序;倒计时程序;正常抢答处理程序;犯规处理程序;显示及发声程序。4.1.3初始化程序MAIN: MOV R1,#10;初设抢答时间为10s MOV R2,#10;初设答题时间为10s MOV TMOD,#11H;设置未定时器/模式1 MOV TH0,#0F0H MOV TL0,#0FFH;越高发声频率越高,越尖 MOV TH1,#3CH MOV TL1,#0B0H;50ms为一次溢出中断 SETB EA SETB ET0 SETB ET1 SETB EX0 SETB EX1;允许四个中断,T0/T1/INT0/INT1 CLR OK CLR RING SETB TR1 SETB TR0;4.1.4键盘扫描程序流程图本系统的键盘采用独立式按键键盘程序流图见图4-3:图4-3键盘扫描程序流程图4.1.5抢答数码显示软件程序设计LED数码管采用静态显示,显示器由9个共阳极数码管组成。输入只有两个信号,它们是串行数据线DIN和移位信号CLK。9个串/并移位寄存器芯片74LS164首尾相连了九位共阳极七段数码管,共阳极数码管的8个发光二极管的阳极(二极管正端)连接在一起,通常,公共阳极接高电平(一般接电源),其他管脚接段驱动电路输出端。数码管显示程序流程图见图4-4:图4-4数码显示程序流程4.1.6音乐音频输出程系流程图音乐音频输出由P3.7输出,见图4-5:图4-5音乐音频输出程系流程图4.2软件调试4.2.1编译、连接项目,形成目标文件把程序文件添加到项目文件中,并且程序文件已经建立好存盘后,就可以进行编译、连接,形成目标文件。编译、连接用Project菜单下的Built Target命令(或快捷键F7),见图4-6和图4-7所示: 图4-6 程序编译图4-7连接创建目标文件编译、连接时,如果程序有错,则编译不成功,并在下面的信息窗口给出相应的出错提示信息,以便用户进行修改,修改后再编译、连接,这个过程可能会重复多次。如果没有错误,则编译、连接成功,并且信息窗口给出提示信息。4.2.2运行调试观察结果当项目编译、连接成功后,就可以运行它来观察结果。运行调试过程:先用Debug菜单下的Start/Stop Debug Session