抢答器毕业设计论文

上传人:红** 文档编号:722968 上传时间:2019-09-11 格式:DOC 页数:45 大小:971.04KB
返回 下载 相关 举报
抢答器毕业设计论文_第1页
第1页 / 共45页
抢答器毕业设计论文_第2页
第2页 / 共45页
抢答器毕业设计论文_第3页
第3页 / 共45页
点击查看更多>>
资源描述
毕 业 设 计专 业: 机电一体化 班级学号: 1707342 学生姓名: 马忠 指导教师: 王国宾老师 二一九年 九 月甘肃有色冶金职业技术学院毕业设计抢答器Responder专业班级:机电1703班学生姓名:马忠指导教师:王国宾老师系 别:机电工程系2019 年 9月摘 要近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,作为嵌入式控制系统的主体与核心,代替了传统的控制系统的常规电子线路。但仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。本设计是以六路抢答为基本理念,应用以单片机作为核心部件进行逻辑控制及信号的产生,考虑到依需设定限时回答的功能,利用AT89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。用开关做键盘输出,扬声器发生提示。同时系统能够实现:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;抢答限定时间和回答问题的时间可在1-99s设定;可以显示是哪位选手有效抢答和无效抢答,正确按键后有音乐提示;抢答时间和回答问题时间倒记时显示,满时后系统计时自动复位及主控强制复位;按键锁定,在有效状态下,按键无效非法。由于计算机的普及和电子信息技术的迅猛发展,对智能抢答器有了更高的要求,如何有效的保证许多公开竞争场合裁决的公平,公正。单片机智能抢答器为之提供了条件和发展空间。建立一个价格适宜、智能化、自动化、数字化等特点的智能抢答器具有重要意义。【关键词】单片机;智能;六路;抢答AbstractWith the rapid development of science and technology in recent years, SCM applications are deepening at the same time promote ,the growing of traditional control detection technology updates. In real-time detection and automatics control of the microcomputer application sys- tem, the microcontroller is often used as a core component, as the main embedded control to systems and core, instead of the traditional control system of conventional electronic circuits. But only SCM knowledge is not enough, should be based on specific hardware structure of hardware and software combination to be improved. This design is based on six road to answer in the basic concepts used to MCU as the core co- mponents for logic control and signal generation, taking into account the need to set timebou- nd to answer according to the function, using AT89C51 microcontroller and external interface of the answer in his system, using SCM Timer / Counter Timing and count of the principle, It hardware and software together organically, allowing the system to correctly time, and while the digital control to correctly display the time. Switching to do with the keyboard output The speaker prompts occur. At the same time the system can be achieved: The answer in his place, only to be effective after the commencement of answer in his place, if the answer in his place before the answer in his place at the beginning null and void; to answer in a limited time and answer the question time can be set in 1-99s; can display is an effective answer in which pla- yers and Invalid answer in the correct button prompt after the music; time and answer the qu- estions to answer in time for ups shows, full-time hours after the system automatically reset and master reset forces; keys locked in the effective state, the button is not illegal. Due to the proliferation of computers and electronic information technology, the rapid devel- opment of smart Responder have higher requirements, how to effectively guarantee open the competition in many occasions, the ruling fair and just. SCM Smart Responder furnish the c- onditions and development. The establishment of an affordable, intelligent, automated, digital and other characteristics of the intelligent Responder of great significance. Key words: SCM;intelligence;For 6 Player;To answer first目 录引 言1第1章 方案论证21.1 系统的主要功能21.1.1 系统功能分析31.1.2 抢答器的工作流程31.2 器件选型方案51.2.1 控制器模块的选取51.2.2 显示器模块的选取51.3 AT89C51的简介及使用61.3.1 89系列单片机的概况61.3.2 AT89C51单片机的内部结构图71.3.3 AT89C51特殊功能寄存器81.3.4 AT89C51单片机使用方法9第2章 系统总体方案的设计112.1 硬件电路的设计112.2 时钟频率电路的设计122.3 复位电路的设计122.4 显示电路的设计132.4.1 LED数码管显示原理132.5 键盘扫描电路的设计142.5.1 键盘抖动的软件处理142.6 发声报警152.7 系统复位152.8 电源设计16第3章 软件设计173.1软件任务分析173.2主程序系统结构图183.3主要程序说明19总 结27致 谢28参考文献29附录:硬件系统原理图30甘肃有色冶金职业技术学院2017届毕业设计引 言单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。随着电子技术的发展,单片机的应用已经渗透到国民经济的各个部门和领域,现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机。它已成为工业控制领域、智能仪器仪表、尖端武器、日常生活中最广泛使用的计算机。在本设计中,单片机识别多路抢答信号采用外中断,当外中断信号来临时执行中断处理程序,将抢答标志位置位。即所谓的扫描。同时电子智能抢答器用单片机控制,功能分别为计分和抢答。计分的工作原理是采用最小系统,用4x4键盘来输入是选手需要加减进行分数的加减输入。主板上的6个数码显示,加几分的数,按确定键后分数值从I/O口P2传到计分器显示模块上再通过数码管驱动模块显示。抢答的工作原理是采用单片机最小系统,用查询式键盘进行抢答。采用锁存显示组号。抢答器也可称为第一信号鉴别器,利用了单片机本身的优势使竞赛达到公平,公正,公开。因此具有重要意义。第1章 方案论证1.1 系统的主要功能本系统是借用单片机采用模块化设计的智能抢答器,主控与参赛者设为终端分系统。参赛者分系统设有:抢答按纽、计时计分显示、提示功能等(根据需要可另设或多设相关功能);主控分系统有:开始与结束控制按钮、计分功能、各种相关显示调控功能等(根据需要也可另设或多设相关功能)。参赛者系统,除享有抢答按纽的权利功能外,还有人性化的提示功能和时间提示功能,也可设定由参赛者终端表现的趣味性功能等;主控系统的控制按钮做开始与结束控制,根据活动参赛者的层次,对提前抡答者的行为设定为非法或阻隔,若设有非法抢答控制功能时,在主控处带有公示性显示的非法抡答者的台位号,对抢答限时及回答问题限时设为倒计时式,并有公示性显示。抢答器同时供6名选手或6个代表队比赛,分别用6个按钮S1S6表示。设置一个系统清除和抢答控制按扭,该按扭由主持人控制。抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时扬声器发出报警声响提示。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。计分器的工作原理是采用最小系统,用4x4键盘来输入是选手需要加减进行分数的加减输入。主板上的6个数码显示,加几分的数,按确定键后分数值从I/O口P2传到计分器显示模块上再通过数码管驱动模块显示。本系统采用模块化设计智能抢答器,在抢答比赛中广泛应用,各组分别有一个抢答按钮。主持人有开始和结束复位键。在后台主持人可以修改,抢答时间和选手回答问题的时间设置,抢答时间为连续可调的09秒。可以通过软件编程自行修改时间,主持人按键开始后,选手开始抢答为有效,数码显示屏显示抢答时间倒计时和选手号,在最后五秒扬声器发生提示。如果主持人没有按下开始键而选手就抢答视为犯规,数码显示屏显示犯规者的代号,扬声器持续发生。主持人可按键结束,新一轮抢答开始。系统的主要功能模 主 控 制 器LED显示发声器键盘显示时钟频率复位电路块方框图如1-1所示。 图1-1 系统主要功能模块抢答主板:抢答主板是整个抢答器的核心,其关键是单片机AT89C51。内部电路设计用C语言与汇编语言编写。它完成了时间参数的设定,抢按号码的译码,保存;显示;输出,抢按及计分功能等。显示及指示:本设计中,有六个共阳数码管。可用于显示时间,分数,抢答号码。主持人依次按下开始键后开始抢答。可以抢按:若有选手在规定时间内抢按成功,则可以答题,数码管显示抢答时间的同时也显示选手号码。若在按开始键前抢答表示违规,发出报警声。1.1.1 系统功能分析1、在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效。2、抢答限定时间和回答问题的时间可以通过软件编程自己设定的。3、可以显示是哪位选手有效抢答和无效抢答,正确按键后有声音提示。4、抢答时间和回答问题时间倒记时显示,时间完后系统可以进行复位。5、按键锁定,在有效状态下,按键无效非法。1.1.2 抢答器的工作流程抢答器识别抢答信号可用外部中断的方式,当外中断信号到来时,将强答标志位置位,同时内部寄存器工作,记录有关时间并产生超时信号。在整个抢答器工作过程中,显示电路、语音电路等还要根据现场的实际情况向外电路输出相应信号。它的工作流程如图1-2所示,下面分别予以介绍。抢答器的工作过程:1、如果想调节抢答时间或答题时间,可以在软件编程的时候将相关的变量控制设定好,调整范围为连续可调的09s。扫描第一组第二组第六组显示组号 报警声是是是否开始化化化否2、主持人按抢答开始键,并立刻进入抢答倒计时,如有选手抢答,会有提示音,并会显示其号数并立刻进入回答倒计时,不进行抢答查询,所以只有第一个按抢答的选手有效。同时数码管锁存相应的选手号。直到主持人将号码清零然后开始下一轮的抢答。3、如果主持人未按抢答开始键,而有人按了抢答按键,犯规抢答,则显示报警声,直到按下停止 键为止。总而言之,本课题利用AT89C51单片机及外围接口实现的抢答系统设计了抢答器,该抢答器增加了新功能、提高了系统的可靠性、简化了电路结构、节约了成本,是一个实用的工程设计。图1-2 抢答器工作流程 1.2 器件选型方案1.2.1 控制器模块的选取微控制器是整个系统的核心部件,控制对显示、抢答、音乐、计分等。控制器的选择主要有以下两钟方案。方案一:采用FPGA(现场可编程门列阵)或PLC器件作为系统的控制器。FPGA可以实现各种复杂的逻辑功能,规模大,密度高,它将所有器件集成在一块芯片上,减小了体积,提高了稳定性,并且可以应用EDA软件仿真、调试,易于进行功能扩展。FPGA采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模实时系统的控制核心。PLC是一种新型的通用自动化控制装置,它将传统的继电器控制技术、计算机技术和通讯技术融为一体,具有控制功能强,可靠性高,使用灵活方便,但由于本设计对数据处理的速度要求不高,FPGA与PLC的高速处理的优势得不到充分体现,并且由于其集成度高,使其成本偏高,同时由于芯片的引脚较多,实物硬件电路板布线复杂,加重了电路设计和实际焊接的工作。方案二:利用KeilC开发平台,采用ATMEL公司的AT89C51作为系统控制器的CPU方案。单片机算术运算功能强,软件编程灵活、自由度大,可以用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。基于以上分析拟订方案二。1.2.2 显示器模块的选取显示器主要负责数据的输出显示。我们考虑有以下两种显示方案。方案一:使用液晶屏显示时间。液晶显示屏(LCD)具有轻薄短小、低耗电量、无辐射危险,平面直角显示以及影像稳定不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强的特点。但由于只需要显示时间等这样的数字,信息量比较少,且由于液晶是以点阵的模式显示各种符号,需要利用控制芯片创建字符库,编程工作量大,控制器的资源占用较多,其成本也偏高。在使用时,不能有静电干扰,否则易烧坏液晶显示芯片,不易维护。方案二:在使用传统的数码管显示。数码管具有:低能耗、低损耗、低压、寿命长、耐老化、防晒、防潮、防火、防高(低)温,对外界环境要求低,易于维护,同时其精度高,称量快,精确可靠,操作简单。数码显示是采用七段BCD编码显示数字,程序编译容易,资源占用较少。根据以上的论述,采用方案二。1.3 AT89C51的简介及使用1.3.1 89系列单片机的概况AT89C51单片机是ATMAL公司89系列单片机的一种8位Flash单片机。它最大特点是片内含有Flash存储器,用途十分广泛,特别是在生产便携式商品,手提式仪器等方面,有着十分广泛的应用。(1) 89系列单片机的特点89系列单片机是以8031为内核的产品,它与51系列单片机是兼容的。89系列单片机具有以下特点:a) 内部含有Flash存储器,使用户在开发过程中十分容易修改程序缩短系统的开发周期。可以重复多次编程,可根据需要对内部程序进行更新或升级。b) 89系列单片机的引脚和AT80C51引脚座兼容,用89系列单片机可以代替同档次的AT80C51单片机,不需要对外围电路进行改动。c) 89系列单片机采用静态时钟方式,可以节省电能,降低便携式设备的功耗。(2) 89系列单片机的结构简介89系列单片机的内部结构与AT80C51相近,主要有以下部件:1 8031CPU 2 振荡电路 3 总线控制部件4 中断控制部件 5 片内Flash存储器 6 片内RAM7 并行I/O接口 8 定时器 9 串行I/O接口89系列的各种型号单片机,内部差别很大。例如,AT89C1051片内Flash存储器只有1KB,而AT89C52、AT89LV52和AT89S8252的片内Flash存储器有8KB。AT89S8252的结构最复杂,它的内部含有标准的串行口,还有一个串行的外围接口SPI,Watchdog定时器,双数据指针等部件,以及电源下降的中断恢复功能。89系列的单片机一共有五种型号,分别为AT89C51,AT89LV51,AT89C52,AT89LV52和AT89S8252,其中AT89LV51和AT89LV52分别是AT89C51和AT89C52的低压产品,最低电压可以低2.7V,AT89C1051和AT89C2051则是抵挡的低压产品,只有20根引脚。89系列单片机的型号编码中字母的意义是:AT表示该器件是ATMEL公司的产品,C表示该器件是CMOS产品,LV表示该器件是低电压产品,S表示该器件含可以下载的Flash存储器。AT89C51是89系列单片机的标准型,它是与MSC-51系列单片机兼容的。在内部含有4KB或8KB可重复编程的Flash存储器,可进行1000次擦写操作。全静态工作为0-24MHZ,有3级程序锁存器,内部含有128-256字节的RAM,有32条可编程I/O口线,2-3个16位定时/计数器,6-8个中断源,通用的串行接口,低电压空闲及电源下降方式。AT89C51是基本型,具有4KB的Flash存储器,128字节的片内RAM,32条可编程I/O口,两个16位定时/计数器,6个中断源,3位存储器加密,一个可编程串行接口。AT89C52在AT89C52的基础上,增加了一个定时/计数器,2个中断源,128字节的片内RAM,4KB的Flash存储器。1.3.2 AT89C51单片机的内部结构图AT89C51单片机内部由CPU、4KB的FPEROM ,128B的RAM,两个16位的定时/计数器T0和T1,4个8位的I/O端P0、P1、P2、P3等组成。单片微机内部最核心的部分是CPU。CPU主要功能是产生各种控制信号,控制存储器、输入/输出端口的数据传输、数据的算术运算、逻辑运算以及位操作处理等,CPU按其功能可分为运算器和控制器两部分。控制器由程序计数器PC、指令储存器、指令译码器、实时控制与条件转移逻辑电路等组成。它的功能是对来自存储器中的指令进行译码,通过实时控制电路,在规定的时刻发出各种操作所需的内部和外部的控制信号,使各部分协调工作,完成指令所规定的操作。运算器由算术逻辑器部件ALU、累加器ACC、暂存器、程序状态字寄存器PSW,BCD码运算调整电路等组成。如图1.3所示:通道2驱动器通道2驱动器通道0驱动器程序地址寄存器程序计数器EPROM RAM地址寄存器B寄存器ACCTMP2ALUTMP1PSW堆栈指针中断,串行口定时器逻辑DPTRPC通道3锁存器通道1锁存器通道1驱动器器通道3驱动器器P1.0-P1.7P3.0-P3.7定时和控制逻辑指令寄存器OSCP0.0-P0.7缓冲器RAW通道0驱动器P2.0-P2.7图1-3 MCS-51结构框图1.3.3 AT89C51特殊功能寄存器特殊功能寄存器也称专用寄存器,是具有特殊功能的所有寄存器的集合,简称SFR(Special Function Register)。特殊功能寄存器共含有22个不同寄存器。它们的地址分配在80HFFH中,即在RAM地址中。虽然特殊功能寄存器地址在80HFFH之中,但在80HFFH的地址单元中,不是所有的单元都被特殊功能寄存器占用,未被占用的单元,其内容是不确定的,如果对这些单元进行操作,得到的是一些随机数,而写入则无效。所以,用户编程时不应该将数据写入这些未确定的地址单元,它们是公司留待将来开发新产品时使用的。这些寄存器的名称和地址见表1.1表1.1 AT89C51特殊功能寄存器列表 注:带*号的特殊功能寄存器都是可以位寻址的寄1.3.4 AT89C51单片机使用方法AT89C51是一种低功耗、高性能的含有4KB闪速可编程电擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的8位CMOS微控制器,使用高密度、非易失存储技术制造,并且与80C51指令系统和引脚完成兼容。芯片上的FPEROM允许在线或采用通用的非易失存储编程器对程序存储器重复编程。(1)AT89C51的主要性能包括:AT89C51与MCS51控制器系列产品兼容,片内有4K可在线重复编程闪速电擦除存储器(Flash Memory),存储器可循环写入/擦除1000次;存储器数据保存时间可达10年;工作电压范围宽:Vcc可由2.7V到6V;全静态工作可由0Hz到16MHz;程序存储器具有3级锁存保护;128*8位内部RAM;32条可编程I/O线;两个16位定时器/计数器;中断结构具有5个中断源和2个中断优先级;可编程全双工串行通信;空闲状态维持低功耗和掉电状态保存存储内容。(2)FPEROM的编程:AT89C51的I/O口P0、P1、P2和P3除具有与80C51相同的一些性能和用途外,在FPEROM编程时,P0口接收代码字节,并在程序检验时输出代码字节,但在程序校验时需要外部上拉负载电阻,在FPEROM编程和程序校验期间,P1口接收低位地址字节,P2口接收高位地址字节和一些控制信号,P3口也接收一些FPEROM编程和校验用的信号,此时ALE/PROG引脚是编程脉冲输入(PROG)端,在FPEROM编程期间,如果选择12V编程电压、那么EA/Vpp引脚也允许接受12V编程电压(Vpp)。第2章 系统总体方案的设计2.1 硬件电路的设计一般说来,一个控制系统的设计主要分硬件设计与软件设计。根据它的工作原理与技术性能。硬件设计要画出它的原理图,电路板图,合理选择元器件。然后对硬件进行调试、测试,以达到设计要求。从时间上看,硬件设计的绝大部分工作量是在最初阶段,到后期往往还要做一些修改。只要技术准备充分,硬件设计的大返工是比较少的,软件设计的任务贯彻始终,到中后期基本上都是软件设计任务,随着集成电路技术的飞速发展,各种功能很强的芯片不断出现,使硬件电路的集成度越来越高,硬件设计的工作量在整个项目中的所占的比重逐渐下降。为使硬件电路设计尽可能合理,应注意以下几方面:(1) 尽可能采用功能强的芯片,以简化电路,功能强的芯片可以代替若干普通芯片,随着生产工艺的提高,新型芯片的的价格不断下降,并不一定比若干普通芯片价格的总和高。(2) 留有设计余地。在设计硬件电路时,要考虑到将来修改扩展的方便。因为很少有一锤定音的电路设计,如果现在不留余地,将来可能要为一点小小的修改或扩展而被迫进行全面返工。(3) 程序空间,选用片内程序空间足够大的单片机,本设计采用AT89C51单片机。(4) RAM空间,AT89C51内部RAM不多,当要增强软件数据处理功能时,往往觉得不足。如果系统配置了外部RAM,则建议多留一些空间。如选用8155作I/O接口,就可以增强256字节RAM.如果有大批数据需要处理,则应配置足够的RAM,如6264,62256等。随着软件设计水平的提高,往往只要改变或增加软件中的数据处理算法,就可以使系统功能提高很多,而系统的硬件不必做任何更换就使系统升级换代。只要在硬件电路设计初期考虑到这一点,就应该为系统将来升级留足够的RAM空间,哪怕多设计一个RAM的插座,暂不插芯片也好。(5) I/O端口:在样机研制出来后进行现场试用时,往往会发现一些被忽视的问题,而这些问题不是靠单纯的软件措施来解决的。如有些新的信号需要采集,就必须增加输入检测端;有些物理量需要控制,就必须增加输出端。如果在硬件电路设计就预留出一些I/O端口,虽然当时空着没用,那么用的时候就派上用场了。硬件系统原理图见附录一2.2 时钟频率电路的设计所有的单片机必须在时钟的驱动下才能正常工作。在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。本系统中采用的是内部振荡的方式,外振荡源一般选用石英晶体。在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路中两个电容 C1,C2的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。C1,C2的典型值为20PF。单片机在工作时,由内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。其大小是时钟信号频率的倒数,常用fosc表示。如时钟频率为12MHz,即fosc=12MHz,则时钟周期为1/12s。电路如图2-1所示:图2-1振荡电路2.3 复位电路的设计单片机的第9脚RST为硬件复位端,当8951通电,时钟电路开始工作,在RESET引脚上出现4个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8951的初始态。8951的复位方式可以是自动复位,也可以是手动复位,见下图3.4。此外,RESET/VPD还是一复用脚,VCC掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。其电路图如图2-2所示: 图2-2 8951的复位电路值得注意的是,在设计当中使用到了硬件复位和软件复位两种功能,由上面的硬件复位后的各状态可知寄存器及存储器的值都恢复到了初始值,而前面的功能介绍中提到了倒计时时间的记忆功能,该功能的实现的前提条件就是不能对单片机进行硬件复位,所以设定了软复位功能。软复位实际上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳转到程序执行的起始地址。2.4 显示电路的设计2.4.1 LED数码管显示原理 LED是由条形发光二极管组成“8”字形的LED显示器,也称数码管。它通常有7段与8段之分。8段数码管是在7段发光二极管的基础上再加一个圆点型发光二极管(在图中以dp表示),用于显示小数点。LED数码管分共阳与共阴两种:共阴管使用时把阴极连在一起,接低电平,再在阳极接高电平,这样就能导通点亮。而共阳管则刚好相反,把阳极连在一起,接高电平,阴极需接低电平,这样才能正常导通。如图2-3:由以上原理可知,数码管要显示对应的数字,则要求与之各脚连接的单片机管脚对应为高低电平,这则需要用软件编程的方法实现。具体过程会在后面进一步的讲到。图2-3 数码管电路图2-4 矩阵式键盘电路2.5 键盘扫描电路的设计键盘是人机交流的工具,是信息准确输入的重要保证,是单片机不可缺少的人机交换设备。但这里所指的键盘不是PC机使用的标准键盘。考虑到经济适用等因素,在单片机系统中通常使用的是价格便宜的非编码矩阵式键盘。矩阵式键盘的键排列成矩阵形式,在行与列的每个交点上对应有一个键。显然,在按键数量较多时,矩阵式键盘较之独立式按键键盘要节省很多I/O口。 由于本系统要求能提供6位抢答的信号,因此可采用44矩阵式键盘,它可以构成一个含有16个按键的键盘,这样能满足系统的要求。矩阵式键盘中,行、列线分别连接到按键开关的两端,在进行键盘扫描时,首先把矩阵键盘行线的第一根线置高,然后分别再检测矩阵键盘列线是否有高电平的信号,如果有信号,那么就证明这根行线与第一根列线相交处的按键被按下了,单片机就读入这个键值。如果所有的四根列线都没有信号,那么就把第一根行线置低,把第二根行线置高,再一次检测行线有没有信号,然后依次类推。如图2-4所示:2.5.1 键盘抖动的软件处理 按键的触点在闭合和断开时均会产生抖动,这是触点的逻辑电平是不稳定的,如不妥善处理,将会引起按键命令的错误执行或重复执行。现在一般均用软件延时的方法来避开抖动阶段,这一延时过程一般大于5ms,例如取10-20ms。延时的选择非常重要,太快了,起不到消除抖动的效果,太慢了又让键盘太不灵活,错过较多的按键信号。如果监控程序中的读键操作安排在主程序(后台程序)或键盘中断(外部中断)子程序中,则该延时子程序便可直接插入读键过程中。如果读键过程安排在定时中断子程序中,就可省去专门的延时子程序,利用两次定时中断的时间间隔来完成抖动处理。2.6 发声报警我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单片机某个口线的“高”电平或低电平,则在该口线上就能产生一定频率的矩形波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调,使喇叭发出不同的声音。因此由P3.7输出一个低电平。延时1020毫秒,再输出一个高电平,延时1020秒则可以发出声音。2.7 系统复位使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开始执行。这段程序先关中断,以便后续处理能顺利进行,然后用两个RETI指令代替两个LJMP指令,从而清除了两级中断激活标志。有相应软件陷阱捕捉来的程序可能没有全部激活两个标志,这也无妨。有复位时系统的历史状况,可将复位分为“冷启动”和“热启动”。 “冷启动”时,系统的状态全部无效,进行彻底的初始化操作;而“热启动”时,对系统的当前状态进行修复和有选择的初始化。系统初次上电投入运行时,必须是“冷启动”,以后由抗干扰措施引起的复位操作一般均为“热启动”初次上电投入运行时,必须是“冷启动”,以后由抗干扰措施引起的复位操作一般均为“热启动”。为了使系统能正确决定采用何种启动方式,常用上电标志来区分。图2-5 电源电路2.8 电源设计系统要正常工作,需要多个电源。AT89C51使用5V稳压电源,驱动芯片需要5-50V电压驱动。要获得持续与稳定的直流电压。较常用的稳压方法是采用稳压管。这里采用一种非常普遍的方法。用三端稳压集成7805与7812分别得到5V和12V的稳定电压。将220V市电经过桥式整流,滤波,稳压后便可得到稳定的直流5V与12V电压。经检测发现该方法方便简单,工作稳定可靠。第3章 软件设计3.1软件任务分析软件任务分析环节是为软件设计做一个总体规划。从软件的功能来看可分为两大类:一类是执行软件,它能完成各种实质性的功能,如测量,计算,显示,打印,输出控制和通信等,另一类是监控软件,它是专门用来协调各执行模块和操作者的关系,在系统软件中充当组织调度角色的软件。这两类软件的设计方法各有特色,执行软件的设计偏重算法效率,与硬件关系密切,千变万化。软件任务分析时,应将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义(输入输出定义)。在各执行模块进行定义时,将要牵扯到的数据结构和数据类型问题也一并规划好。各执行模块规划好后,就可以监控程序了。首先根据系统功能和键盘设置选择一种最适合的监控程序结构。相对来讲,执行模块任务明确单纯,比较容易编程,而监控程序较易出问题。这如同当一名操作工人比较容易,而当一个厂长就比较难了。软件任务分析的另一个内容是如何安排监控软件和各执行模块。整个系统软件可分为后台程序(背景程序)和前台程序。后台程序指主程序及其调用的子程序,这类程序对实时性要求不是太高,延误几十ms甚至几百ms也没关系,故通常将监控程序(键盘解释程序),显示程序和打印程序等与操作者打交道的程序放在后台程序中执行;而前台程序安排一些实时性要求较高的内容,如定时系统和外部中断(如掉电中断)。也可以将全部程序均安排在前台,后台程序为“使系统进入睡眠状态”,以利于系统节电和抗干扰。特别值得注意的是,在系统设计方法的选用是系统设计能否成功的关键。硬件电路是采用结构化设计方法,使电路标准化、模块化。本设计中硬件电路的设计最重要的在于选择合适的单片机与外围芯片,使系统既经济又性能。硬件电路设计还包括输入输出接口设计,画出详细电路图,标出芯片的型号、器件参数值,根据电路图在仿真机上进行调试,发现设计不当及时修改,最终达到设计目的。软件设计的方法与开发环境的选取有着非常重要的关系,本系统由于是采用51系列单片机,因此主程序用C语言进行编写,利用Keil C语言进行开发。C51 程序设计语言,编程者只需了解变量和常量的存储类型与80C51 单片机存储空间的对应关系。而不必深入了解单片机的硬件和接口。C51 编译器会自动完成变量的存储单元的分配。编译调试灵活方便,生成的代码编译效率高,完全模块化。可移植性好,便于项目维护管理。3.2主要程序说明计分器显示程序/抢答器加减记分显示程序/DBUFEQU30H;三位显示缓冲区首址ORG0000HAJMPMAINORG0030HMAIN:MOVSP,#60HACALLKEYSCAN;调用键盘扫描子程序判断是加分或减分CJNEA,#0EH,NEXT2;不是加分键,则转移判断是减分键?NEXT1:ACALLKEYSZ;是加分键ACALLDISPLAY;调用显示子程序SJMPMAINNEXT2:CJNEA,#0FH,MAIN;都不是,则转MAINAJMPNEXT1;是减分键,ORG0100HKEYSZ:PUSHPSW;键盘设置子程序PUSHACCSETBRS1MOVR0,#DBUF;R0指向显示缓冲区首地址MOVR7,#3;设置键盘输入位数T1:CLRRS1ACALLKEYSCAN;调用键盘扫描子程序取按下键的键号SETBRS1CJNEA,#0AH,L2;键入数合法性检测(是否大于9)T2:JNCL1;大于9,重新键入MOVR0,A;键号送显示缓冲区INCR0DJNZR7,L1;3位数值输入完否?未完继续,否则返回POPACCPOPPSWCLRRS1RETKEYSCAN:MOVR3, #0F7H;扫描初值MOVR1,#00H;取码指针T3:MOVA,R3;开始扫描MOVP1,A;将扫描值输出MOVA,P1;读入值,判断是否有键按下MOVR4,A;存入R4,以判断按键是否放开SETBC;C=1MOVR5,#04H;扫描T4:RLCA;将按键左移一位JNCKEYIN;判断C=0?有键按下则C=0,跳至KEYININCR1;C=1,则无键按下,将取码指针值加1DJNZR5,L4;4列扫描完毕了吗?MOVA,R3;扫描值载入SETBC;C=1RRCA;扫描下一行MOVR3,A;存回扫描寄存器JCL3;C=1?是则P1.0尚未扫描到SJMPKEYSCAN;C=0,则四行已扫描完毕KEYIN:MOVR7,#60;延时消除抖动D2:MOVR6,#248;DJNZR6,$;DJNZR7,D2;D3:MOVA,P1;延时后再读入值XRLA,R4;与上次读入值作比较JZD3;A=0,表示按键未放,等待按键释放MOVA,R1;按键已放开,取码指针载入累加器MOVDPTR,#TABLE;键盘码表首地址送DPTRMOVCA,A+DPTR;查键码RET;返回TABLE:DB00H,01H,02H,03H;键码安排表与键盘相同DB04H,05H,06H,07HDB08H,09H,0AH,0BHDB0CH,0DH,0EH,0FHORG0200HDISPLAY:MOVR0,#DBUF;显示子程序 MOVR2,#3;显示3位数码 MOVDPTR,#SEGTAB;DISP: MOVA,R0; MOVCA,A+DPTR;取字段码 MOVSCON,#0; MOVSBUF,A;开始 JNBTI,$;等待完毕 CLRTI;完毕,标志位清零 INCR0;缓冲单元地址增1 DJNZR2,DISP;三位数码发送完否? RET;完毕,则返回SEGTAB: DB0FCH,60H,0DAH,0F2H ;0,1,2,3(共阳极字段码表) DB66H,0B6H, 0BEH,0E0H;4,5,6,7 DB0FEH,0F6H,0EEH,3EH;8,9,A,B DB9CH,7AH,9EH,8EH ;C,D,+,- ENDDBUFEQU30H;三位显示缓冲区首址ORG0000HAJMPMAINORG0030HMAIN:MOVSP,#60HACALLKEYSCAN;调用键盘扫描子程序判断是加分或减分CJNEA,#0EH,NEXT2;不是加分键,则转移判断是减分键?NEXT1:ACALLKEYSZ;是加分键,ACALLDISPLAY;显示子程序SJMPMAINNEXT2:CJNEA,#0FH,MAIN;都不是,则转MAINAJMPNEXT1;是减分键,ORG0100HKEYSZ:PUSHPSW;PUSHACCSETBRS1MOVR0,#DBUF;R0指向显示缓冲区首地址MOVR7,#3;设置键盘输入位数T1:CLRRS1ACALLKEYSCAN;调用键盘扫描子程序取按下键的键号SETBRS1CJNEA,#0AH,L2;键入数合法性检测(是否大于9)T2:JNCL1;大于9,重新键入MOVR0,A;键号送显示缓冲区INCR0DJNZR7,L1;3位数值输入完否?未完继续,否则返回POPACCPOPPSWCLRRS1RETKEYSCAN:MOVR3, #0F7H;扫描初值(P0.3=0)MOVR1,#00H;取码指针T3:MOVA,R3;开始扫描MOVP0,A;将扫描值输出至MOVA,P0;读入值,判断是否有键按下MOVR4,A;存入R4,以判断按键是否放开SETBC;C=1MOVR5,#04H;扫描T4:RLCA;将按键左移一位JNCKEYIN;判断C=0?有键按下则C=0,跳至KEYININCR1;C=1,则无键按下,将取码指针值加1DJNZR5,L4;4列扫描完毕了吗?MOVA,R3;扫描值载入SETBC;C=1RRCA;扫描下一行MOVR3,A;存回扫描寄存器JCL3;C=1?是则尚未扫描到SJMPKEYSCAN;C=0,则四行已扫描完毕KEYIN:MOVR7,#60;延时消除抖动D2:MOVR6,#248;DJNZR6,$;DJNZR7,D2;D3:MOVA,P0;延时后再读入值XRLA,R4;与上次读入值作比较JZD3;A=0,表示按键未放,等待按键释放MOVA,R1;按键已放开,取码指针载入累加器MOVDPTR,#TABLE;键盘码表首地址送DPTRMOVCA,A+DPTR;查键码RET;返回TABLE:DB00H,01H,02H,03H;键码安排表与键盘相同DB04H,05H,06H,07HDB08H,09H,0AH,0BHDB0CH,0DH,0EH,0FHORG0200HDISPLAY:MOVR0,#DBUF;显示子程序 MOVR2,#3;显示3位数码 MOVDPTR,#SEGTAB;DISP: MOVA,R0; MOVCA,A+DPTR;取字段码 MOVSCON,#0; MOVSBUF,A;开始 JNBTI,$;等待 CLRTI;完毕 INCR0;缓冲单元地址增1 DJNZR2,DISP;三位数码否? RET;完毕,则返回SEGTAB: DB0FCH,60H,0DAH,0F2H ;0,1,2,3(共阳极字段码表) DB66H,0B6H, 0BEH,0E0H;4,5,6,7 DB0FEH,0F6H,0EEH,3EH;8,9,A,BDB9CH,7AH,9EH,8EH ;C,D,+,- END抢答器软件程序#include #define uchar un
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 方案规范


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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