版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于单片机的抢答器电路设计摘要:随着人才的竞争也越来越激烈,一些企事业单位为了选拔或者奖励员工会采取智力问答、知识竞赛的方式,所以抢答器也就成为必备的设备。本文介绍了一种基于单片机的抢答器的设计方法,以单片机为控制核心,通过检测按键的方式来判断抢答的选手,并将选手的编号以数字的方式在数码管上显示出来。在选手回答问题时,其他选手的抢答按键将被屏蔽。系统还为每路抢答器设置了双色发光二极管,用于指示选手抢答成功或犯规。本文提出的设计方法简单易懂、操作方便。关键字:抢答器、单片机、数码管,74LS164The Design of The Responder Based On Microcontroll
2、erAbstract:With the competition between talents is more and more fierce。 As a result, to select and reward the staff, some of enterprise and public institutions take a way of mind quiz or knowledge competition, and responder becomes one of the necessary equipments。 In this paper, the author introduc
3、es a design procedure of the responder based on Microcontroller, with the cybernetics core of Microcontroller, and through the way of testing the keys pressing to judge which competitor races to be the first to answer and to show the number of the competitor digitally on the digital tube. Also, when
4、 the competitor presses the key, the buzzer will be singing at the same time and the signals of others' answer keys will be shielded。 The system also sets double colour Light emitting diode for differentr responder, which can dedicate the success or foul of competitors. Generally speaking, the d
5、esign procedure introduced is easy to understand and convenient to operate。本文为互联网收集,请勿用作商业用途本文为互联网收集,请勿用作商业用途Keywords: Responder、Microcontroller、Digital tube、74LS164目 录目 录2第一章 序言41。1 选题目的及意义41。2 抢答器简介4第二章 方案设计62。1 课题要求62。2 设计方案选择62.2。1 系统设计方案选择62.2.2 控制器选择72。2。3 显示器件选择7第三章 系统硬件设计83。1 电路设计环境83.2 输入按键
6、电路设计93。3单片机控制电路设计93.3.1 单片机的发展93.3。2 单片机AT89S51芯片简介103.3.3时钟电路设计133。3.4复位电路设计143。3.5控制电路设计143.4 显示电路设计153.4.1 74LS164介绍153。4。2 显示电路设计163。5 LED灯提示电路设计173。6 稳压电源设计183。7 本章小结19第四章 系统软件设计204。1 程序设计应用软件204。2 程序设计流程214.3 读取按键值程序设计234.4 显示程序设计244.5 定时时间程序设计264.6本章小结29第五章 系统调试故障与分析30第六章 总 结33致谢34参考文献35附录1 电
7、路原理图36附录2 中英文翻译37附录3 元件清单43附录4 源程序清单44第一章 序言随着计算机技术的发展和在控制系统中的广泛应用,以及设备向小型化、智能化发展,作为高新技术之一的单片机以其体积小、功能强、价格低廉、使用灵活等优势,显示出了很强的生命力.进入21世纪以来,开发推出单片机的公司很多,各种高性能单片机芯片市场也异常活跃,新技术的不断采用,更加使单片机的种类、性能以及应用领域不断扩大和提高。因其功耗低,超高型,低成本,功能完整,在国内越来越受到用户的重视和广泛使用.1.1 选题目的及意义抢答器是一种应用于企事业单位或者智力竞赛节目中作为抢答使用的一种电子设备。随着社会经济的飞速发展
8、,人才的竞争也越来越激烈,一些企事业单位为了选拔或者奖励员工会采取智力问答、知识竞赛的方式,所以抢答器也就成为必备的设备。由于现在社会上普遍使用的抢答器一般都是老式的模拟、数字混合电路设计的电子抢答器,虽然这种设计技术已经非常成熟,但是功能单一,电路结构非常复杂庞大,成本相当高,不易于修改、升级和功能的扩展。并且抢答器的使用频率较低,做为一个单位若专购一台抢答器虽然在经济上可以承受,但每年使用的次数极少,往往因长期存放使(电子器件的)抢答器损坏,再购置的麻烦和及时性就会影响活动的开展.因此设计了本抢答器即基于51单片机的8路抢答器.本说明书共分为4章,第一章课题分析与方案论证;第二章对硬件进行
9、了详细的说明;第三章对系统的软件进行了分析;第四章有选择地列举了软硬件在调试过程中出现的问题,并对问题作出了分析。设计的最终成果是:能通过抢答显示抢答者组号;限时抢答;答题具有倒计时功能;违规抢答用不同指示信号。1。2 抢答器简介抢答器时在竞赛、文娱节目中可以准确、直观地判断出抢答选手的电子设备,通过抢答选手的指示灯显示、声音提示、数码管显示等方法指示抢答选手。抢答器主要分为电子抢答器和电脑抢答器。电子抢答器:电子抢答器的中心一般是由单片机及其外围电路组成的,多适用于学校和企事业单位的简单的抢答活动.电子抢答器有语音和非语音之分,非语音抢答器只有一个主机和一个抢答器按钮,没有记分牌显示屏;语音
10、抢答器由主机和显示屏组成,可以记录选手的分数。电脑抢答器:电脑抢答器有无线和有线之分.无线电脑抢答器是由主机、抢答器专用软件和无线按钮组成,利用电脑和投影仪等设备可以活跃抢答的气氛,多适用于大型的活动;有线电脑抢答器也是由主机和电脑组成,只是必须通过串口方式连接,配合投影仪和软件等,也可以达到无线电脑抢答器活跃气氛的效果。第二章 方案设计2。1 课题要求系统设计方框图如图2-1所示。以AT89S51单片机为控制器,单片机通过查询的方式判断哪一路按键按下,并将抢答选手的编号送至数码管显示电路进行显示,某一位选手抢答成功时,其他选手的抢答按键将被屏蔽,同时数码管显示回答问题的定时时间。在抢答期间,
11、数码管可以显示抢答定时时间,抢答成功以LED灯亮提示,如果选手抢答犯规,则以另一色LED灯亮提示.图 21 系统设计方框图2。2 设计方案选择2.2.1 系统设计方案选择方案一:利用逻辑电路来搭建系统电路.按下按键后电路中的高电平触发蜂鸣器蜂鸣提示,同时给显示单元数字芯片一个高电平触发信号,进而来驱动显示电路显示数字。利用这种方法设计的抢答器电路结构复杂,所用的芯片比较多,显的比较庞大,也不利于硬件制作,功能单一,修改与扩展比较繁琐。方案二:利用单片机搭建系统电路。单片机通过检测按键来判断抢答选手,并将选手编号送数码管显示。电路简单清晰、操作方便.比较以上两种方案,第一种方案除了电路结构复杂外
12、,对于按键的屏蔽也很难做到,而第二种方案通过软件程序很轻松就可以实现按键屏蔽、编号显示等功能。所以,本设计选用第二种设计方案。2。2。2 控制器选择对于控制芯片常用的可以选择的有CPLD器件和单片机。方案一:CPLD器件。采用CPLD器件设计起来结构清晰,各个模块从硬件上设计起来相对简单,控制与显示模块间的连接也会比较方便,但是考虑到本设计的特点,CPLD在功能扩展上比较受限制,而且CPLD占用的资源也相对多一些,从成本上来讲,用可编程逻辑器件来设计没有什么优势。方案二:单片机。单片机有丰富的中断源,方便本实验的设计,它的准确度相当高,并且C语言和汇编兼容的编程环境也很方便来实现一些调用。I/
13、O口功能也比较强大,方便使用,方便对设计进行扩展,使设计更加完善,成本也相对低一些,虽然在控制与显示的结合上有些复杂,但和前者相比用单片机设计还是比较可行的。综上所述,本设计选用单片机作为系统控制器。2.2.3 显示器件选择方案一:采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字、图形,显示多样,清晰可见,但是价格昂贵,需要的接口线多。方案二:采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,比较适合显示文字或者制作大型屏幕。方案三:采用LED数码管动态扫描,LED数码管价格适中,对于显示数字最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线少.综上所述,抢
14、答器显示上要求显示选手的编号和定时时间,所以,本设计选用数码管作为显示器件. 第三章 系统硬件设计3.1 电路设计环境本设计硬件电路是在Protel电子设计软件环境下进行设计的,系统整体电路原理图见附录2.Protel电子线路设计软件是在TANGO基础上改进的电路CAD软件,由原理图编辑、印制板设计、原理图输出、印制板输出、原理图器件库编辑和其他应用程序组成.电路原理图的设计是印制电路板设计中的第一步,也是非常重要的一步。电路原理图设计得好坏将直接影响到后面的工作.电路原理图的设计过程可分为以下几个步骤:1、设置电路图纸参数及相关信息根据电路图的复杂程度设置图纸的格式、尺寸、方向等参数以及与设
15、计有关的信息,为以后的设计工作建立一个合适的工作平面。2、装入所需要的元件库将所需的元件库装入设计系统中,以便从中查找和选定所需的元器件。3、设置元件将选定的元件放置到已建立好的工作平面上,并对元件在工作平面上的位置进行调整,对元件的序号、封装形式、显示状态等进行定义和设置,以便为下一步的布线工作打好基础.4、电路图布线利用Protel所提供的各种工具、命令进行画图工作,将事先放置好的元器件用具有电气意义的导线、网络标号等连接起来,布线结束后,一张完整的电路原理图基本完成.5、调整、检查和修改利用Protel所提供的各种工具对前面所绘制的原理图做进一步的调整和修改。6、补充完善对原理图做一些相
16、应的说明、标注和修饰,增加可读性和可观性。7、保存和打印输出这部分工作主要是对设计完成的原理图进行保存,包括存盘、打印输出等,以供以后的工作中使用。3.2 输入按键电路设计 按键电路如图31所示。单片机的P1口控制矩阵键盘.本设计采用44矩阵键盘,S1S8按键分别代表8个选手的按键。矩阵键盘的行线接P1.0-P1.3引脚,列线接P1。4-P1。7引脚。将P1。0P1.3引脚置为高电平,P1.4-P1.7引脚依次置为低电平,当按键没有按下时,P1.0P1。3口各引脚状态不变,一旦有按键按下,则P1.0-P1.3就会有引脚变为低电平,这样,通过读入P1.0-P1。3的状态就可得知是哪一个按键按下了
17、,即对应的哪一位选手抢答成功。输入按键电路还需要注意到是两个主要问题是判断是否有按键按下和消除按键抖动的影响。按键的确认反映在电压上,就是和按键相连的引脚呈现出高电平还是低电平。消除按键的抖动通常有硬件、软件两种消除方法。一般在按键较多时,采用软件的方法消除抖动,即在第一次检测到有按键按下时,执行一段延时10ms的子程序后,再确认该键电平是否任保持为闭合状态电平,如果保持为闭合状态电平就可以确认真有按键按下,从而消除抖动的影响。图3-1 按键电路3。3单片机控制电路设计3。3.1 单片机的发展单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器
18、RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统。 单片机也被称为微控制器,它最早是被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。早期的单片机都是8位或4位的.其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。此后在8031上发展出了MCS51系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。随着INTEL i960系列
19、特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍.单片机诞生于20世纪70年代末,经历了SCM、MCU、SoC三大阶段.1、SCM即单片微型计算机阶段:主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。 2、MCU即微控制器阶段:主要的技术发展方向是:不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家。Philips公司以其在嵌入式应用方面的巨大优
20、势,将MCS51从单片微型计算机迅速发展到微控制器。3、嵌入式系统:单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了SoC化趋势。随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统设计会有较大的发展。3。3。2 单片机AT89S51芯片简介单片机是指将CPU、随机存储器RAM、只读存储器ROM、输入/输出I/O接口电路集成在一个芯片上的微处理器,它将定时器/计数器等部分都制作在一块芯片上,从而构成一个完整的计算机系统。单片机的内部结构图如图3-2所示。图32 单片机内部结构图各部分功能介绍:
21、CPU:中央处理器,是单片机最核心的部分,主要功能是完成运算和控制功能。内部存储器:包含内部数据存储器和程序存储器,存储器由大量的寄存器组成,每个寄存器称为一个存储单元。定时/计数器:定时器是由单片机的内部来提供一个计数信号;计数器记录单片机外部发生的事件,由单片机的外部电路来提供计数信号.中断系统:中断系统在单片机中起着非常重要的作用,采用的是一种实时控制技术,能对突发时间进行及时处理,从而提高系统的实时性能。串行I/O口:串行I/O口的数据每个位是按照顺序传输的,其特点就是需要一对传输线,且成本低,但是速度比较慢,效率低,适合于静态显示的应用。并行I/O口:并行I/O接口的数据所有的位同时
22、传输的,其特点是速度快、效率高,但是传输多少位就需要多少根线,因此成本较高,适合于动态显示的应用。AT89S51是美国ATMEL公司生产的低电压、高性能的CMOS 8位单片机,AT89S51的内部结构:MCS51系列单片机都是在8051的基础上增加部分资源,例如程序存储器、数据存储器、I/O口、定时器/计数器及一些其他特殊部件构成的,其一般都含有8051除程序存储器外的其他基本硬件。兼容MCS51内核系列的单片机一般可寻址64KB程序存储器,或64KB数据存储器,其内部程序存储器一般在032KB之间.AT89S51由CPU内核、程序存储器、数据存储器、IO口、复位与时钟、定时器与计数器、中断系
23、统、串行通讯接口、看门狗和ISP在线编程接口组成。AT89S51引脚图如图3-3所示。图33AT89S51单片机引脚图引脚主要功能如下:P0口(P0.0P0。7)为双向8位三态I/O口,当作为I/O口使用时,可直接连接外部I/O设备。它是地址总线低8位及数据总线分时服用口,可驱动8个TTL负载。一般作为扩展时地址/数据总线口使用。lP1口(P1。0P1。7)的每一位都可以分别定义为输入线和输出线(做输入时,锁存器必须置1),可驱动4个TTL负载。P1口常用作通用I/O口,它是一个标准的准双向口.P2口(P2。0P2.7)为8位准双向I/O口,当作为I/O口使用时,可直接连接外部I/O设备。它是
24、地址总线的高8位复用,可驱动4个TTL负载。一般作为扩展地址总线的高8为使用。P3口(P3.0P3.7)为8位准双向I/O口,是双功能复用口,可驱动4个TTL负载,能够实现第一功能,可作为通用I/O口。P3口同时为闪烁编程和编程校验接收一些控制信号。P3口还有第二功能定义,如表31所示:表31 P3口第二功能定义引脚定义功能引脚定义功能P3。0-RXD串行输入口P3。1-TXD串行输出口P3.2-外部中断0P3.3外部中断1P3。4T0计时器0外部输入P3。5-T1计时器1外部输入P3。6外部数据存储器写选通P3。7-外部数据存储器读选通RST:复位输入。当振荡器复位器件时,要保持RST脚两个
25、机器周期的高电平时间。ALE:地址锁存控制信号。在系统扩展时,ALE用于控制把P0口输出的低8位地址锁存起来,以实现低位地址和数据的分时传送。:片外程序存储器选通信号,低电平有效。:片外程序存储器访问允许信号,低电平有效。在与Flash并行编程/校验期间,该引脚施加12V的编程电压VPP。XTAL1和XTAL2:外接晶振引线端。使用芯片内部时钟时,这2个引脚用于外接晶振和微调电容;使用外部时钟时,外接时钟脉冲信号。3.3.3时钟电路设计单片机的各功能部件的运行都是以时钟频率为基准的条件下进行有序工作的,因此,时钟对于单片机来说非常重要。AT89S51片内由一个反相放大器构成振荡器,可以通过它俩
26、产生时钟。常用的单片机产生时钟的方法有两种:内部时钟方式和外部时钟方式。本设计选用内部时钟方式,电路如图3-4所示。单片机内部XTAL1引脚为高增益反向放大器的输入端,XTAL2为输出端,在这2个引脚之间接石英晶振和电容,就可以构成一个稳定的自激振荡器。电路中两个电容 C1,C2的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。晶振的大小主要取决于单片机的工作频率,晶振振荡频率不大于单片机的最大工作频率即可。如果有串行通信,需要选择振荡频率除以串行通信频率可以整除的晶振。本设计选用的12MHz晶振的计数周期如下式所示:图34 时钟电路3.3.4复位电路设计单片机的复位引脚RST为单
27、片机提供了初始化手段。复位是单片机的初始化操作,在本设计中复位电路采用按键电平方式,使RST引脚经过10u电解电容与VCC电源接通,同时经过电阻与地连接而实现,单片机是高电平复位有效,当按键S16按下时候,单片机的9脚RESET管脚处于高电平,此时单片机处于复位状态.当上电后,由于电容的缓慢充电,单片机的9脚电压逐步由高向低转化,经过一段时间后,单片机的9脚处于稳定的低电平状态,此时单片机上电复位完毕,系统程序重新执行。如图3-5所示。图35 复位电路3.3。5控制电路设计 单片机控制电路如图36所示.单片机的P1口控制矩阵键盘,通过扫描的方式确定哪一个按键被按下,当有按键按下时,对应的发光二
28、极管亮灭,提示有选手回答问题;单片机的P2口控制数码管显示电路;P3口控制LED灯,通过控制2个74LS164来控制16路LED灯,以提示选手抢答成功或者犯规.图36 单片机控制电路3.4 显示电路设计3.4。1 74LS164介绍74LS164为8位移位寄存器,管脚图如图37所示。当MR为低电平时,输出端(Q0-Q7)均为低电平。串行数据输入端(A,B)可控制数据。当A、B有一个为高电平,则另一个就允许输入数据,并在CLOCK上升沿作用下决定Q0的状态。真值表如表3-2所示。图37 74LS164引脚图表32 74LS164真值表InputsOutputs/MRClockA BQ0 Q1 .
29、 Q7 L H H H HXL X X X X H H L X X L L L . L QA0 QB0 . QH0 H QAn . QGn L QAn .。. QGn L QAn 。 QGnH-高电平,L低电平,X任意电平,-低到高电平跳变,QA0、QB0、QH0规定的稳态条件建立前的电平,Qan、QGn-时钟最近的前的电平.3.4。2 显示电路设计本设计中选用数码管作为显示器件.LED数码管由八只发光二极管组成,编号是a、b、c、d、e、f、g、h,分别和同名管脚相连,当发光二极管导通时发光。每个二极管就是一个笔划,若干个二极管发光时,就构成一个显示字符。若将单片机的I/O口与数码管的a-g
30、和h相连,高电平(对应共阴极数码管)或低电平(对应共阳极数码管)的位对应的发光二极管就会亮,这样,I/O口输出不同的代码就可以控制数码管显示不同的字符.为减少电路板中的焊接线,本设计选用4位一体数码管,采用串行输入并行输出的8位移位寄存器74LS164进行驱动输出,单片机的P2.4和P2.5口作为74LS164的数据线和CLK信号。74LS164将输入的串行数据锁存在并行输出端,通过这些并行口线驱动数码管的各字段。数码管选用共阳型,当74LS164的某个输出端口为低电位时,数码管对应的字段将被点亮.软件设计中数码管采用循环送显的方式,单片机通过控制9012来选择要送显的数码管。单片机控制74L
31、S164的数据端和时钟端,74LS164的输出Q0Q7分别对应接到数码管的ah端口.当需要某一位数码管显示时,该数码管相对应的三极管基极所连接的单片机引脚输出高电平,三极管导通,进而选通该位数码管,单片机再将数据写入到74LS164内部锁存,再由74LS164将显示译码送入该位数码管个码段显示,从而实现了单片机控制数码管显示的功能。显示电路如图38所示。文档为个人收集整理,来源于网络本文为互联网收集,请勿用作商业用途图3-8 显示电路3。5 LED灯提示电路设计 为了让系统功能更加完善,本设计为每位选手增加了2路双色灯来提示抢答成功或犯规.电路如图39所示。单片机通过控制74LS164的数据端
32、A和B,根据其CLK上升沿的时序来实现对输出Q0-Q7的控制,而输出Q0Q7直接接LED灯,从而实现所要求的共能即抢答成功相对应编号的绿色发光二极管亮,抢答失误以及抢答失败的相对应编号的红色发光二极管亮.图3-9 LED灯提示电路3。6 稳压电源设计为了保护直流电路,起到降压的作用,使电压输出更稳定.本设计还采用了三端稳压电路如图3-10所示,采用LM7805器件与C1,C2以及一节9V电池组成三端稳压电路,通过端口1输入9V电压经过LM7805后,稳定输出5V的电压。输入端电容的作用是滤除输入电源(9V电池)的噪声。这2个电容的一大一小,用以滤除低频和高频噪声并起到稳压作用。图3-10 稳压
33、电源3。7 本章小结本章讲的是以89S51单片机为核心的抢答器电路的硬件电路的设计。硬件电路分为输入按键电路、单片机控制电路(时钟电路、复位电路、控制电路)、数码管显示电路、LED发光二极管显示电路、稳压电源这几个部分。硬件工作的流程是通过输入按键电路输入一个高电平信号,经过单片机处理后输入移位寄存器74LS164中,通过上升沿触发输出对应管脚的高电平信号用来导通三极管,驱动数码管显示以及驱动LED发光二极管显示结果。从而达到所要求的功能。经过硬件的设计,我发现第四章 系统软件设计4.1 程序设计应用软件本设计软件的设计是在Keil C51的环境下编译的.Keil C51是美国Keil Sof
34、tware公司出品的51系列兼容单片机C语言软件开发系统,软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。4.1。1 Keil C51开发系统基本知识1. 系统概述Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。2. Keil C51单片机软件开发系统的整体结构C51工具包的uVision与Ishe
35、ll分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及C51编译器编译生成目标文件(。OBJ).目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。使用独立的Keil仿真器时,注意事项:仿真器标配11。0592
36、MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。仿真器上的复位按钮只复位仿真芯片,不复位目标系统。仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用.Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势.4.1.2 编程语言在开发大型软件时更能体现高级语言的优势。C语言有以下特点:1、语言简洁、紧凑、使用方便、灵活。C语言一共只有
37、32个关键字,9种控制语句,程序书写自由,主要用小写字母表示,压缩了一切不必要的成分。2、运算符丰富。C的运算符包含的范围很广泛,共有34种运算符,使得C的运算类型极其丰富,表达式类型多样化,灵活使用各种运算符可以实现在其他高级语言中难以实现的运算。3、数据结构丰富,具有现代化语言的各种数据结构,能用来实现各种复杂的数据结构的运算。4、具有结构化的控制语句,用函数作为程序的模块单位,便于实现程序的模块化.5、语法限制不太严格,程序设计自由度大。6、C语言能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。因此,C既具有高级语言的功能,又具有低级语言的许多功能,可用来写系统软件。C
38、语言的这种双重性,使它既是成功的系统描述语言,又是通用的程序设计语言。7、生成目标代码质量高,程序执行效率高。8、用C语言写的程序可移植性好。基本上不用修改就能用于各种型号的计算机和各种操作系统。对操作系统和系统实用程序以及需要对硬件进行操作的场合,用C语言明显地优势于其他高级语言,有的大型应用软件也用C语言来编写。4。2 程序设计流程 本设计软件设计流程图如图41所示,完整源程序见附录5。图41 程序设计流程图 整体过程是初始化按键,键盘按下开始键后,程序主函数中开始扫描读取按键,通过读取按键值程序段读取对应的选手编号,如果有数据输入则调用第一排LED发光二极管的程序(绿灯),否则调用调用第
39、二排LED发光二级管的显示程序(红灯),最后将读取按键值将读取后的选手编号保存入数组中.经过送显示程序,在送显示程序中调用写入程序(向164写入数据),通过74LS164控制数码管显示.最终通过LED显示子程序和数码管显示读取的按键值即在数码管上显示选手编号和对应的LED发光二极管发出的红绿光,以此来达到所要求的功能。4。3 读取按键值程序设计单片机读取按键值的方法有两种:查询方式和中断方式。查询方式是利用键盘程序不断查询是否有按键按下,有按下则进入相应按键的子程序进行数据处理,没有则一直循环查询;中断方式是将按键动作与单片机的中断系统联系起来,有按键按下时,就引起单片机中断,使系统进入中断处
40、理程序.本设计采用查询方式来处理读取按键值程序.设计按键程序时,首先应注意的是按键的机械触点效应,原理上,按键按下时,单片机端口为低电平,但是由于按键的机械触点效应,按键在断开和闭合瞬间会有抖动过程,这个过程会出现一系列的负脉冲,这样会让单片机引起误判,因地,必须才需措施去掉按键抖动的影响。去按键抖动常用的有两种方法:硬件方法和软件方法.硬件方法一般是并接电容,或者加RS触发器;软件去抖动一般采用延时的方法,按键抖动的过程一般持续510ms的时间,在判断按键状态时,只要加一个5-10ms的延时程序,再次判断按键是否状态不变,即可实现去抖动的作用.本设计中选用软件延时的方法去按键抖动。按键程序设
41、计流程图如图42所示。图4-2 按键程序流程图本设计中按键的键号转换为10进制如表4-1所示,各个按键所对应的功能如表42所示。表4-1 按键键号表173365129183466130203668132244072136表42 按键功能表1号选手2号选手3号选手4号选手5号选手6号选手7号选手8号选手-抢答限时抢答限时抢答复位4.4 显示程序设计根据数码管的驱动方式不同,数码管送显方式有两种:静态送显和动态送显。静态显示驱动:静态驱动也称直流驱动,在静态显示驱动方式下,数码管的共阴极或共阳极共同接地或接电源,每个数码管的段选线与8位的单片机并口连接.静态显示驱动方式占用的单片机I/O端口比较多
42、,一般在实用中不采用。动态显示驱动:数码管动态显示方式是将所有的段选线并联在一起,由一个8位I/O口来控制,再利用单片机的其他I/O口来作为数码管的位选线。当单片机输出显示数字的译码时,哪个数码管显示由单片机对位选通电路的控制来选择,所以将欲显示的数码管的位选通端选通,该数码管就会显示,其它数码管均不会亮.通过轮流控制各个数码管的选通端使数码管轮流显示。在显示过程中,每个数码管的显示时间为1-2ms,由于人们的视觉暂留现象及发光二极管的余晖效应,只要扫描的速度够快,给人的印象就是同时点亮的,而且不会有闪烁感。本设计中选用动态显示驱动方式,数据通过74LS164的数据端送至数码管显示.先按照74
43、LS164的时钟时序写入8段码,写完后送入数码管,74LS164的时序图如图4-2所示。图42 74LS164时序图显示子程序如下: *void write_164(uchar lx) /向164写入段码 uchar i,j;j=lx;for(i=0;i<8;i+) CLK_164=0; if((j0x01)=0x01) DTAT_164=1; else DTAT_164=0; delay(3); CLK_164=1; j=j>1; delay(2);void disp_all(void) /送数码管显示 uchar i,j; for(i=0;i20;i+) for(j=0;j4;
44、j+) P2=0X0F; write_164(DISP_SAVEj); delay(50); P2=0X0F; write_164(0xff);4.5 定时时间程序设计本设计通过单片机定时器中断来提供定时时间。定时器/计数器是单片机内的重要部件,其作用主要包括产生各种时标间隔、记录外部事件的数量等。AT89S51单片机有2个16位的定时器/计数器:定时器/计数器0(T0)和定时器/计数器1(T1).定时器/计数器的核心是一个16位的加1计数器:做定时器时,其计数脉冲来源于时钟振荡器(经12分频后提供),这个脉冲的周期称为单片机的机器周期,每一个机器周期定时寄存器自动加1,所以定时器也可看做是计
45、算机器周期的计数器,由于每一个机器周期为12个时钟振荡周期,所以定时器的分辨率是时钟振荡频率的1/12,一旦振荡频率选定,则机器周期也确定;作计数器时,其计数脉冲来源于单片机外部引脚T0(或T1)的脉冲。即TX端口有从“1”到“0”的负跳变,计数器就自动加1,计算机是在每个机器周期采样为0时,计数器即加一计数,计算机需用两个机器周期来识别1次计数,因而最大计数速率为振荡频率的1/24。AT89S51单片机的定时器/计数器T0由TH0、TL0构成,T1由TH1、TL1构成。TMOD用于控制和确定各定时器/计数器的功能和工作模式。TCON用于控制定时器/计数器T0、T1的启动和停止计数,同时包含定
46、时/计数器的状态.T0、T1的方式寄存器TMOD:方式寄存器TMOD是一个逐位定义的8位寄存器,是只能字节寻址的寄存器,字节地址为89H,其格式如表4-1所示.表41 TMOD寄存器格式D7D6D5D4D3D2D1D0GATEC/TM1M0GATEC/TM1M0 T1 T0其中低4位定义定时器/计数器T0,高4位定义定时器/计数器T1,各位的意义如下:GATE门控位。GATE=1时,由外部中断/INT0、/INT1和TR0、TR1来启动定时器。当/INT0引脚为高电平时,TR0置位,启动定时器T0;当/INT1引脚为高电平时,TR1置位,启动定时器T1.GATE=0时,仅由TR0和TR1置位来
47、启动定时器T0、T1。C/T功能选择位.C/T=1时,选择计数功能;C/T=0时,选择定时功能.M0、M1方式选择位。由于M1和M0两位,可以有4种工作方式,如表4-2所示。表42 T0、T14种工作方式M1M0工作方式计数器配置00方式013位计数器01方式116位计数器10方式2自动再装入的8位计数器11方式3T0分为两个8位计数器、T1停止计数T0、T1控制寄存器TCON:TCON是一个逐位定义的8位寄存器,既可字节寻址也可位寻址,字节地址为88H,为寻址的地址为88H8FH。与中断源有关的位如表43 所示。表43 TCON寄存器位说明位D7D6D5D4D3D2D1D0TCONTF1TF
48、0IE1IT1IE0IT0位地址8FH8DH8BH8AH89H88H各位的意义如下:TF1:T1溢出中断标志。T1被允许计数后,从初值开始加1计数。当产生溢出时硬件置“1”TF1,向CPU请求中断,一直保持到CPU响应中断时,才由硬件清“0”(也可由查询软件清零).TF0:T0溢出中断标志。T0被允许计数后,从初值开始加1计数。当产生溢出时硬件置“1"TF0,向CPU请求中断,一直保持到CPU响应中断时,才由硬件清“0”(也可由查询软件清零)。IE1:外部中断1请求源标志。IE1=1,外部中断向CPU请求中断,当CPU响应该中断时由硬件清“0"IE1(边沿触发方式)。IT1
49、:由软件置位/复位选择外部中断1(/INT1)的跳变/电平激活中断请求。当置位IT1为1时,则外部中断1端口由“1”-“0”跳变(前一个机器周期为高电平,后一个机器周期为低电平,即发生负跳变)时激活中断请求标志位IE1,向主机请求中断处理;如果复位IT1为0,则在(/INT1)端口出现低电平时,激活中断请求标志IE1,向主机请求中断处理.IE0:外部中断0请求源(/INT0,P3.2)标志。IE0=1外部中断0向CPU请求中断,当CPU响应外部中断时,由硬件清“0"IE0(边沿触发方式)。IT0:外部中断0触发方式控制位,其意义和功能与IT1类似。T0、T1的数据寄存器:T0、T1各
50、有一个16位的数据寄存器,它们都是由高8位寄存器和低8位寄存器组成。这些寄存器不经缓冲,直接显示当前的计数值。T0、T1的数据寄存器都是读/写寄存器,任何时候都可以对它们进行读/写操作.复位后,这些寄存器全部清零。4.6本章小结第五章 系统调试故障与分析系统调试包括硬件调试和软件调试。硬件调试的任务是排除系统的硬件电路故障,包括设计性错误和工艺性故障。软件调试时利用开发工具进行在线仿真调试,除发现和解决程序错误外,也可以发现硬件故障。4.1 硬件调试4.1.1。硬件调试方法 脱机调试.脱机调试是在样机加电之前,先用万用表等工具,根据硬件电气原理图和装配图,子线检查样机线路的正确性,并核对元器件
51、型号,规格和安装是否符合要求.特别注意电源的走线,防止电源之间的短路或极性错误,重点检查系统的总线或其他信号线之间是否存在相互的短路。样机所用的电源,事先必须单独调试后才能加到系统中。在不插芯片的情况下,加电检查各插件上引脚的电位,子线测量个点电位是否正常,尤其应注意单片机插座上的各点电位是否正常。 联机调试.通过脱机调试可排除一些明显的硬件故障,有些硬件故障需要通过联机调试才能发现和排除。通电后,执行读写指令,对用户样机的存储器,I/O端口进行读写和逻辑检查等操作,用示波器等设备观察波形(如输出波形,读/写控制信号,地址数据波形和有关控制电平),通过对哦性的观察分析,发现和排除故障。4。1。
52、2. 故障及解决方法在焊接数码管的过程中,由于焊接问题导致最后调试的过程中数码管一直在闪烁,最后通过万用表检查电路发现了虚焊。最终成功解决了数码管闪烁的问题。在最后测试的时候,验证抢答功能时,按键过后,数码管显示抢答成功的选手的编号,但是对应编号的发光二极管并未亮起。检查后才知识发光二极管损坏导致未亮起,最后更换了发光二极管功能得以实现.4.2 软件调试的方法及注意事项软件调试方法与选用的软件结构和程序设计技术有关,如果采用模块设计技术,则逐个模块调试好以后,再进行系统程序总调试;如果采用实时多任务操作系统,一般是逐个任务进行调试。 对于模块结构程序,要对子程序逐个进行调试。调试子程序时,一定
53、要符合入口条件和出口条件,调试手段可采用单步运行方式和断点运行方式,通过检查用户系统CPU的现场,RAM的内容和I/O口的状态,检测程序执行结果是否符合设计要求。通过检测,可以发现程序中的死循环错误,机器代码错误和转移地址错误,同时也可以发现用户系统中的硬件故障,软件算法和硬件设计错误,在调试过程中不断调整用户系统的软件和硬件,完成每个程序模块的调试. 每个模块通过后,可以联合各功能模块进行整体程序综合调试。在这一阶段如果发生故障,可以分析子程序在运行时是否破坏现场,缓冲单元是否发生冲突,零位的建立和清除在设计上是否失误,堆栈区域是否溢出,或输入设备的状态时否正常等。等用户系统是在开发系统的监
54、控程序选运行,还要考虑用户缓冲单元是否和监控程序的工作单元发生冲突。 单步运行只能验证程序正确与否,而不能确定定时精度,CPU的使用响应等问题,所以单步和断点调试后,还应进行连续调试.除了观察稳定性之外,还要观察用户系统的操作是否符合原始设计要求,以及安排的用户操作是否合理等,必要时还要做适当修正。 实时多任务操作系统的调试方法与上述方法相似,只是实时多任务操作系统的应用程序是有若干个任务程序组成的们一般是逐个任务进行调试.在调试某一个任务时,同时也调试相关的子程序,中断服务程序和一些操作系统的程序。各个任务调试好以后,再使各个任务同时运行。如果操作系统中没有错误,一般情况下系统就能正常运转.4。3 系统联调系统联调是指让用户系统的软件在其硬件上实际运行,进行软、硬件联合调试,从中发现硬件故障或软,硬件设计错误。这是对用户系统检验的重要一关.系统联调方法:采用单步,断电,连续运行方式调试与硬件相关的各程序段既可以检验这些用户程序段的正确性,又可以在各功能独立的情况下,检验软、硬件的配合情况。将软、硬件按系统工作要求进行综合运行,采用全速断点、连续运行方式进行总调试,以解决在系统总体运行的情况下软、硬件的协调与提高
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能仓库设备生产项目申请报告可行性研究报告
- 中国铸字机行业市场调查研究及投资前景预测报告
- 保险业务居间推广提成保障
- 教育培训机构装修安全协议
- 简约家居装修维护协议模板
- 高铁项目投融资居间服务
- 贵重物品物流纠纷案例分析
- 湖北医药学院《浙江农业遗产与生态智慧》2023-2024学年第一学期期末试卷
- 2025年度餐饮企业店长职位竞聘与业绩考核合同3篇
- 淮安2024年江苏淮安盱眙县公安局警务辅助人员招聘45人(第三期)笔试历年参考题库附带答案详解
- 细胞库建设与标准制定-洞察分析
- 2024年国家公务员录用考试公共基础知识复习题库2500题及答案
- DB3309T 98-2023 登步黄金瓜生产技术规程
- DBJ41-T 108-2011 钢丝网架水泥膨胀珍珠岩夹芯板隔墙应用技术规程
- 2025年学长引领的读书会定期活动合同
- 表内乘除法口算l练习题1200道a4打印
- 《EICC培训讲义》课件
- 2025年四川省政府直属事业单位招聘管理单位笔试遴选500模拟题附带答案详解
- 2024年物业公司服务质量保证合同条款
- 文言文阅读之理解实词含义(讲义)-2025年中考语文专项复习
- 豪迈CutRite V9板材优化软件学习教材
评论
0/150
提交评论