关闭

关闭

关闭

封号提示

内容

首页 篮球比赛计时器.doc

篮球比赛计时器.doc

篮球比赛计时器.doc

上传者: 陈君诚 2017-10-12 评分 0 0 0 0 0 0 暂无简介 简介 举报

简介:本文档为《篮球比赛计时器doc》,可适用于综合领域,主题内容包含篮球比赛计时器摘要本文主要介绍:篮球比赛计时器。本文首先介绍单片机的相关知识对单片机进行相应的研究并将其与HC串行显示电路配合使用。本电路主要核心是符等。

篮球比赛计时器摘要本文主要介绍:篮球比赛计时器。本文首先介绍单片机的相关知识对单片机进行相应的研究并将其与HC串行显示电路配合使用。本电路主要核心是ATS利用软件和硬件的结合实现开机自动置节计数器为第一节节计时器为分秒秒违例为秒。用数字显示篮球比赛当时节数每节时间及秒的倒计时采用单片机串行显示。最后本文会详细叙述此电路的安装与调试并对调试过程中出现的问题做简要说明。关键词ATS单片机HCXXXIAbstractAbstractthisarticlemainlyintroduced:BasketballgametimerThisarticlefirstintroducedthatmonolithicintegratedcircuit'srelatedknowledge,conductsthecorrespondingresearchtothemonolithicintegratedcircuit,anditsandHCserialdisplaycircuitcoordinationuseThiselectriccircuitmaincoreisATS,realizesusingthesoftwareandhardware'sunionstartingsetsatthefestivalcounterforfirst,thefestivaltimerisminutesecondautomatically,secondcaseofbreachingtherulesissecondsWiththedigitaldemonstrationbasketballgameatthattimethepitchnumber,eachtimeandsecondcountdown,usedthemonolithicintegratedcircuitserialdemonstrationFinally,thisarticlewillnarratethiselectriccircuit'sinstallmentandthedebuggingindetail,andtowilldebugthequestionwhichintheprocesswillappeartogivethebriefing。keywordsSmonolithicintegratedcircuitHCXXXII目录摘要IAB件也可称为数码管其外形如下图所示。图数码管结构图它由个发光二极管构成通过不同的组合可用来显示数字,、字符A,F、H、L、P、R、U、Y、符号“,”及小数点“”。数码管的外形结构如图所示。数码管又分为共阴极和共阳极两种结构。由图可见它有个发光二极管阳极连在一起作为公共端而共阴极是将个发光二极管阴极连在一起作为公共端。本设计采用的是共阳极的。数码管的公共端相当于一个总开关一般称为码位开关当它低电平的时候数码管全灭当它为高电平时根据发光二极管阳极的状态(一般成为段码或字型码)低电平该段亮高电平不亮。输出一个段码就可以控制LED显示器的字型。表给出了段码与字型的关系假定abcdefdp分别对应DDDDDDDD。()LED数码显示器的接口方法LED显示器的接口常分为动态扫描方式和静态显示方式。表段码与字形码的关系字形DDDDDDDD段码dpgfedcbaHFHHDHHHHFHHHAHBHCHDHEHFH静态显示是指数码管显示某一字符时相应的发光二极管恒定导通或恒定截止。这种显示方式的各位数码管相互独立公共端恒定接地(共阴极)或接正电源(共阳极)。每个数码管的个字段分别与一个位IO口地址相连IO口只要有段码输出相应字符即显示出来并保持不变直到IO口输出新的段码。采用静态显示方式较小的电流即可获得较高的亮度且占用CPU时间少编程简单显示便于监测和控制但其占用的口线多硬件电路复杂成本高只适合于显示位数较少的场合。动态扫描显示方式:其工作原理是将多个显示器的段码同名端连在一起位码分别控制利用眼睛的余辉暂留效应分别进行显示。只要保证一定的显示频率看起来的效果和一直显示是一样的但在电路上却简化了很多降低了成本。比如要做四位LED显示静态显示方式则需要块LS作为静态显示接口如用动态扫描显示则只需一块即可。通常也用芯片作为动态扫描显示接口的扩展扩展电路在此就不做叙述了本设计采用的是串行口动态扫描方式。动态显示是一位一位地轮流点亮各位数码管这种逐位点亮显示器的方式称为位扫描。通常各位数码管的段选线相应并联在一起由一个位的IO口控制各位的位选线(公共阴极或阳极)由另外的IO口线控制。动态方式显示时各数码管分时轮流选通要使其稳定显示必须采用扫描方式即在某一时刻只选通一位数码管并送出相应的段码在另一时刻选通另一位数码管并送出相应的段码。依此规律循环即可使各位数码管显示将要显示的字符。虽然这些字符是在不同的时刻分别显示但由于人眼存在视觉暂留效应只要每位显示间隔足够短就可以给人以同时显示的感觉。键盘控制原理介绍键盘的工作原理()键盘的分类按键按结构原理可分为两类一类是触点式开关按键如机械式开关、导电橡胶式开关等另一类是无触点式开关按键如电气式按键磁感应按键等。前者造价低后者寿命长。目前微机系统中最常见的是触点式开关按键。按键按照接口原理可分为编码键盘与非编码键盘两类这两类键盘的主要区别是识别键符及给出相应键码的方法。编码键盘主要是用硬件来实现对键的识别非编码键盘主要是由软件来实现键盘的定义与识别。全编码键盘能够由硬件逻辑自动提供与键对应的编码此外一般还具有去抖动和多键、窜键保护电路。这种键盘使用方便但需要较多的硬件价格较贵一般的单片机应用系统较少采用。非编码键盘只简单地提供行和列的矩阵其它工作均由软件完成。由于其经济实用较多地应用于单片机系统中。本设计采用非编码键盘接口。()按键输入原理在单片机应用系统中除了复位按键有专门的复位电路及专一的复位功能外其它按键都是以开关状态来设置控制功能或输入数据的。当所设置的功能键或数字键按下时计算机应用系统应完成该按键所设定的功能键信息输入是与软件结构密切相关的过程。对于一组键或一个键盘总有一个接口电路与CPU相连。CPU可以采用查询或中断方式了解有无将键输入并检查是哪一个键按下将该键号送入累加器ACC然后通过跳转指令转入执行该键的功能程序执行完后再返回主程序。()按键结构与特点机键盘通常使用机械触点式按键开关其主要功能是把机械上的通断转换成为电气上的逻辑关系。也就是说它能提供标准的TTL逻辑电平以便与通用数字系统的逻辑电平相容。机械式按键再按下或释放时由于机械弹性作用的影响通常伴随有一定时间的触点机械抖动然后其触点才稳定下来。其抖动过程如图抖动时间的长短与开关的机械特性有关一般为,ms。在触点抖动期间检测按键的通与断状态可能导致判断出错即按键一次按下或释放被错误地认为是多次操作这种情况是不允许出现的。为了克服按键触点机械抖动所致的检测误判必须采取去抖动措施。这一点可从硬件、软件两方面予以考虑。在键数较少时可采用硬件去抖而当键数较多时采用软件去抖。在硬件上可采用在键输出端加RS触发器(双稳态触发器)或单稳态触发器构成去抖动电路。图是一种由RS触发器构成的去抖动电路当触发器一旦翻转触点抖动不会对其产生任何影响。图键触点的机械抖动图双稳态去抖电路电路工作过程如下:按键未按下时a=b=输出Q=。按键按下时因按键的机械弹性作用的影响使按键产生抖动。当开关没有稳定到达b端时因与非门输出为反馈到与非门的输入端封锁了与非门双稳态电路的状态不会改变输出保持为输出Q不会产生抖动的波形。当开关稳定到达b端时因a=b=使Q=双稳态电路状态发生翻转。当释放按键时在开关未稳定到达a端时因Q=封锁了与非门双稳态电路的状态不变输出Q保持不变消除了后沿的抖动波形。当开关稳定到达a端时因a=b=使Q=双稳态电路状态发生翻转输出Q重新返回原状态。由此可见键盘输出经双稳态电路之后输出已变为规范的矩形方波。软件上采取的措施是:在检测到有按键按下时执行一个ms左右(具体时间应视所使用的按键进行调整)的延时程序后再确认该键电平是否仍保持闭合状态电平若仍保持闭合状态电平则确认该键处于闭合状态。同理在检测到该键释放后也应采用相同的步骤进行确认从而可消除抖动的影响。()按键编码一组按键或键盘都要通过IO口线查询按键的开关状态。根据键盘结构的不同采用不同的编码。无论有无编码以及采用什么编码最后都要转换成为与累加器中数值相对应的键值以实现按键功能程序的跳转。()编制键盘程序一个完善的键盘控制程序应具备以下功能:检测有无按键按下并采取硬件或软件措施消除键盘按键机械触点抖动的影响。有可靠的逻辑处理办法。每次只处理一个按键其间对任何按键的操作对系统不产生影响且无论一次按键时间有多长系统仅执行一次按键功能程序。准确输出按键值(或键号)以满足跳转指令要求。独立式键盘独立式按键是直接用IO口线构成的单个按键电路其特点是每个按键单独占用一根IO口线每个按键的工作不会影响其它IO口线的状态。独立式按键的典型应用如图所示。独立式按键电路配置灵活软件结构简单但每个按键必须占用一根IO口线因此在按键较多时IO口线浪费较大不宜采用。图独立式按键电路独立式按键的软件常采用查询式结构。先逐位查询每根IO口线的输入状态如某一根IO口线输入为低电平则可确认该IO口线所对应的按键已按下然后再转向该键的功能处理程序。此程序比较简单在此不做编写本设计采用的是矩阵扫描键盘。矩阵式键盘单片机系统中若使用按键较多时通常采用矩阵式(也称行列式)键盘。本设计采用的就是矩阵式键盘。()矩阵式键盘的结构及原理矩阵式键盘由行线和列线组成按键位于行、列线的交叉点上其结构如图所示。由图可知一个的行、列结构可以构成一个含有个按键的键盘显然在按键数量较多时矩阵式键盘较之独立式按键键盘要节省很多IO口。矩阵式键盘中行、列线分别连接到按键开关的两端行线通过上拉电阻接到V上。当无键按下时行线处于高电平状态当有键按下时行、列线将导通此时行线电平将由与此行线相连的列线电平决定。这是识别按键是否按下的关键。然而矩阵键盘中的行线、列线和多个键相连各按键按下与否均影响该键所在行线和列线的电平各按键间将相互影响因此必须将行线、列线信号配合起来作适当处理才能确定闭合键的位置。()矩阵式键盘按键识别按键的方法很多扫描法识别按键的过程图矩阵键盘按键按下时与此键相连的行线与列线导通行线在无键按下时处在高电平显然如果让所有的列线也处在高电平那么按键按下与否不会引起行电平的变化因此必须使所有列线处在低电平。只有这样当有键按下时该键所在的行电平才会由高电平变为键盘的编码()对于独立式按键键盘因按键数量少可根据实际需要灵活编码。对于矩阵式键盘按键的位置由行号和列号惟一确定因此可分别对行号和列号进行二进制编码然后将两值合成一个字节高位是行号低位是列号。如图中的号键它位于第行第列因此其键盘编码应为H。采用上述编码对于不同行的键离散性较大不利于散转指令对按键进行处理。因此可采用依次排列键号的方式对按排进行编码。以图中的键盘为例可将键号编码为:H、H、H、…、EH、FH、H等个键号。编码相互转换可通过计算或查表的方法实现。()键盘的工作方式对键盘的响应取决于键盘的工作方式键盘的工作方式应根据实际应用系统中CPU的工作状况而定其选取的原则是既要保证CPU能及时响应按键操作又不要过多占用CPU的工作时间。通常键盘的工作方式有三种即编程扫描、定时扫描和中断扫描。()编程扫描方式编程扫描方式是利用CPU完成其它工作的空余时间调用键盘扫描子程序来响应键盘输入的要求。在低电平。CPU根据行电平的变化便能判定相应的行有键按下。号键按下时第行一定为低电平。然而第行为低电平时能否肯定是号键按下呢,回答是否定的因为、、号键按下同样会使第行为低电平。为进一步确定具体键不能使所有列线在同一时刻都处在低电平可在某一时刻只让一条列线处于低电平其余列线均处于高电平另一时刻让下一列处在低电平依此循环这种依次轮流每次选通一列的工作方式称为键盘扫描。采用键盘扫描后再来观察号键按下时的工作过程当第列处于低电平时第行处于低电平而第、、列处于低电平时第行却处在高电平由此可判定按下的键应是第行与第列的交叉点即号执行键功能程序时CPU不再响应键输入要求直到CPU重新扫描键盘为止。键盘扫描程序一般应包括以下内容:判别有无键按下键盘扫描取得闭合键的行、列值用计算法或查表法得到键值判断闭合键是否释放如没释放则继续等待将闭合键键号保存同时转去执行该闭合键的功能。()定时扫描方式定时扫描方式就是每隔一段时间对键盘扫描一次它利用单片机内部的定时器产生一定时间(例如ms)的定时当定时时间到就产生定时器溢出中断。CPU响应中断后对键盘进行扫描并在有键按下时识别出该键再执行该键的功能程序。定时扫描方式的硬件电路与编程扫描方式相同。()中断扫描方式种键盘扫描方式时无论是否按键CPU都要定时扫描键盘而单片机应用系统工作时并非经常需要键盘输入因此CPU经常处于空扫描状态。为提高CPU工作效率可采用中断扫描工作方式。其工作过程如下:当无键按下时CPU处理自己的工作当有键按下时产生中断请求CPU转去执行键盘扫描子程序并识别键。图中断扫描键盘电路图是一种简易键盘接口电路该键盘是由P口的高、低字节构成的键盘。键盘的列线与P口的高位相连键盘的行线与P口的低位相连因此P,P是键输出线P,P是扫描输入线。图中的输入与门用于产生按键中断其输入端与各列线相连再通过上拉电阻接至V电源输出端接至的外部中断输入端。具体工作如下:当键盘无键按下时与门各输入端均为高电平保持输出端为高电平当有键按下时端为低电平向CPU申请中断若CPU开放外部中断则会响应中断请求转去执行键盘扫描子程序。本章小结本章对硬件电路的设计和电路所用到的芯片进行了介绍。主要是键盘控制电路与显示电路的原理和功能并对LED显示原理进行了介绍。下面将根据以上说介绍的原理设计键盘控制及显示硬件电路。第章键盘控制及显示硬件电路实现本章将根据上面所介绍的原理及芯片功能设计键盘控制及显示的硬件实现电路键盘控制及显示电路的设计流程是:键盘按键按下输入该键盘键值经CPU处理后输出由LED显示器显示所按的键值。其工作原理:当有键按下时CPU将对整个键盘进行扫描确定按键位置读取键值CPU再将所读取的键值送到显示部分最后通过LED显示器显示键值。其总体框图如图总电路原理图见(附录)。图电路总设计框图LED显示电路设计单片机并行IO口数量总是有限的有时并行口需作其他更重要的用途一般也不会用数量众多的并行IO口专门用来驱动显示电路因此本设计采用了ATS的串行通信口静态显示。ATS的串行通信口是一个功能强大的通信口而且是相当好用的通信口用于显示驱动电路再合适不过了下面我们就根据这种需要设计一个用两个串行通信口线设计一个位LED显示电路。下图即是电路原理图我采用ATS单片机同时用廉价易得的HC作为驱动芯片。HC是一个位串入并出的移位寄存器其此处的功能是将ATS串行通信口输出的串行数据译码并在其并口线上输出从而驱动LED数码管。使用串行口进行LED通信程序编写相当简单只需将需显示的数据直接送串口发送缓冲器等待串行中断即可程序见附录电路原理如图。图串行显示电路采用静态显示技术画面稳定无杂点图像效果清晰视频效果流畅。LED显示器是由发光二极管排列组成的一显示器件它采用低电压扫描驱动同时还具有如下优点:耗电省使用寿命长成本低亮度高视角大规格品种多等因此本设计采用LED数码显示器作为显示部分的重要元件。独立按键键盘的电路设计本设计采用的是键独立式键盘扫描方法采用编程扫描方式其键盘部分电路图如下:图独立按键电路图本设计采用的是一种行扫描法行扫描法又称为逐行(或列)扫描查询法是一种最常用的按键识别方法如上图所示键盘其扫描过程如下:()判断键盘中有无键按下:将全部行线YY置低电平然后检测列线的状态。只要有一列的电平为低则表示键盘中有键被按下而且闭合的键位于低电平线与根行线相交叉的个按键之中。若所有列线均为高电平则键盘中无键按下。()判断闭合键所在的位置:在确认有键按下后即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平即在置某根行线为低电平时其它线为高电平。在确定某根行线位置为低电平后再逐行检测各列线的电平状态。若某列为低则该列线与置为低电平的行线交叉处的按键就是闭合的按键。比如如图C的P口用作键盘IO口键盘的列线接到P口的低位键盘的行线接到P口的高位。行线PP分别接有个上拉电阻到正电源V并把列线PP设置为输入线行线PP设置为输出线。根行线和根列线形成个相交点。检测当前是否有键被按下。检测的方法是PP输出全“”读取PP的状态若PP为全“”则无键闭合否则有键闭合去除键抖动。当检测到有键按下后延时一段时间再做下一步的检测判断若有键被按下应识别出是哪一个键闭合。方法是对键盘的行线进行扫描PP按下述种组合依次输出:PPPP在每组行输出时读取PP若全为“”则表示为“”这一行没有键闭合否则有键闭合。由此得到闭合键的行值和列值然后可采用计算法或查表法将闭合键的行值和列值转换成所定义的键值。为了保证键每闭合一次CPU仅作一次处理必须却除键释放时的抖动。硬件的焊接硬件的焊接硬件的焊接是本次设计的重要环节所用的工具为:W电烙铁焊锡和镊子。因为本次设计电路组成相对简单因此采用实验板焊接电路。实验板上没有连通的导线所有元器件都要用导线连接这就要求一定的焊接技能不过此技能在以前的电装实习中已经学过并熟练掌握。焊接前先要将所需材料准备好把电路所需元器件按合理的布局在实验板上排好这样焊接线路比较明朗不容易出错检查时也比较容易。()低座的焊接本次设计一共有九个底座即个ATS个HC。焊接时先将低座按照原先排好的布局插到电路板上因为每个管脚几间隙都很小因此在焊接是都要很仔细焊锡不要太多焊点不要太大这样可以防止管脚之间的短路同时在焊接时不能形成虚焊虚焊会导致电路的断路底座焊接要稳松动也会容易导致虚焊。()键盘的焊接本次设计键盘由个普通开关按键按行的形式组成。我所选用的普通开关按键有四个脚其中有两个脚是导通的如果在焊接时不小心将导通的两端作为按键则按键将不起作用因此在焊接前应使用万用表检查哪两个脚为导通端这样会避免按键无作用情况的发生。()导线的焊接电路中导线是用来连接元器件的它相当于整个电路的血管。导线是整个电路焊接最麻烦的导线的焊接不仅需要细心还要有耐心每一根线的长短怎么布局都要自己由根据整个电路的布局来确定少一根都不行。因此我在焊接时是先将要连的线在实验板上用铅笔标画好然后焊接这样焊出来的不仅美观而且不容易出错。电路板的检查和故障排除()电路板的检查当整个电路板所有元器件及导线都焊接完成后则开始用万用表检查电路的导通情况。先检查低座将万用表调到电阻最低挡再将两个表笔分别接到每个管脚的两端若有万用表有报警声这说明导通若没反应即为不导通。再检查导线的导通情况办法和检查低座一样。()电路故障的排除当在检查低座的时候发现ATS低座的脚没有导通经检查发现脚松动形成虚焊经重新焊接再用万用表检查脚导通故障排除在检查导线时发现ATS低座的叫与地线和火线同时导通经对整个线路盘查发现火线与地线相连通了经处理后再次用万用表检查电路完好故障排除高低单色光地方官地方官地方官地方官地方官地方官地方官对法国队似懂非懂所冻豆腐大随风倒反对。本章小结本章主要叙述了键盘控制电路和显示电路是怎样实现的。LED显示电路的设计独立按键的电路设计以及硬件的焊接电路板的检查和故障的排除。第章键盘控制及显示电路软件设计软件部分设计是本次设计的另一个重要组成部分它的设计成败将直接影响到整个设计的功能能否正常实现。本次软件设计采用汇编语言编程用keil软件对所编程序进行编译。软件设计的基本工具汇编语言的简介汇编语言是一种用文字助记符来表示机器指令的符号语言是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU其汇编语言可能有所差异因此汇编语言是不易移植的。C语言也是一种结构化的高级语言。其优点是可读性好移植容易是普遍使用的一种计算机语言。缺点是占用资源较多执行效率没有汇编高。对于目前普遍使用的RISC架构的bitMCU来说其内部ROM、RAM、STACK等资源都有限如果使用C语言编写一条C语言指令编译后会变成很多条机器码很容易出现ROM空间不够、堆栈溢出等问题。而且一些单片机厂家也不一定能提供C编译器。而汇编语言一条指令就对应一个机器码每一步执行什么动作都很清楚并且程序大小和堆栈调用情况都容易控制调试起来也比较方便。所以在单片机开发中通常是建议采用汇编语言。汇编语言的指令系统与程序前面已经讲述了本设计的几个主要组成部分这些部分只构成了系统的硬件。所谓硬件(Hardware)就是看得到摸得到的实体。但是光有这样的硬件还只是有了实现和控制功能的可能性。整个电路系统要真正地能进行工作还必须有软件(Software)的配合。软件主要指的是单片机实现各种功能的各种程序。程序是由指令组成的指令的基本组成是操作码和操作数。单片机的品种很多设计时怎样表示操作码和操作数都有各自的规定再有指令代码也各不相同因此必须对所选单片机的全部指令也就是所谓”指令系统”有足够的了解。各个系列的单片机虽然有不同的指令系统但也有其共同性。掌握一种单片机的指令系统对其它系列单片机可以起到触类旁通的作用。MCS,单片机应用广泛派生品种多具有代表性所以这里以MCS,系列的指令系统为例说明”指令”的组成和应用。例:MOVA,H这条指令表示把H这个数送入累加器A中(一个特殊功能寄存器)。再如:ADDAH这条指令表示把累加器A中的内容(在上例中送入的,H)和存贮器中地址为H单元中的内容(也是一个数字)通过算术逻辑单元(英文缩写为ALU)相加并将结果保留在A中。这里MOV、ADD等称为操作码而A、,H、H等均称为操作数。在汇编语言程序中操作码通常由英文单词缩写而成这样有助于记忆所以又称助记符。如MOV就是英文单词MOVE的缩写含有搬移的意思而ADD即为英文单词其意为相加。因此对于略懂英语的用户掌握单片机指令的含意是较为方便的。操作数有多种表示法如以上的,H称为立即数即H就是真正的操作数。而H是存贮器中某个单元的地址在该单元中放着操作数(比如说是AH)ADDAH不是将H和A中的内容相加而是从存贮器H单元中将AH取出和A中的内容相加。由上可知要找到实际操作数有时就要转个弯甚至转几个弯这个过程称为寻址MCS,共有种寻址方式现介绍如下:()立即寻址:操作数就写在指令中和操作码一起放在程序存贮器中。把“,”号放在立即数前面以表示该寻址方式为立即寻址如,H。()寄存器寻址:操作数放在寄存器中在指令中直接以寄存器的名字来表示操作数的地址。例如MOVAR就属于寄存器寻址即将R寄存器的内容送到累加器A中。()直接寻址:操作数放在单片机的内部RAM某单元中在指令中直接写出该单元的地址。如前例的ADDAH中的H。()寄存器间接寻址:操作数放在RAM某个单元中该单元的地址又放在寄存器R或R中。如果RAM的地址大于则该地址存放在位寄存器DPTR(数据指针)中此时在寄存器名前加符号来表示这种间接寻址。如MOVAR。其它还有变址寻址、相对寻址、位寻址等在此不作介绍。可能有人会问在指令中直接给出实际操作数不是简单、明了吗,为什么还要用其它几种寻址方式呢,这是因为在编制程序时很难一下子就给出操减去作数。如用单片机控制温度时时时需要将给定的控制温度(如)环境温度而环境温度时时有变化显然无法在程序指令中给出只有通过一定方式将其送入某个输入输出口再存放在某个寄存器中这就必须用到寄存器寻址。又如要进行算术运算要计算每班学员各科成绩的平均值如果把每个学员的各科都编一个程序在程序中直接给出该学员各科成绩再求平均值显然太麻烦。这里可以编一个求平均成绩的通用程序把每位学员的成绩送入存贮器的各个单元中这时可采取直接寻址一个程序可供每个学员用不是更方便吗,所以寻址方式越多编制程序就越方便、灵活适用范围就越广。keilC开发软件简介KeilC是keil公司开发的一种单片机开发软件公司多年来致力于微控制器领域开发工具的研究工作。它的产品集中在嵌入式系统C编译器上覆盖的单片机类型很广从编译器、调试器、实时操作系统到集成开发环境全面支持、、等目前微控制器领域的主流产品及其众多的派生系列。()keilC有以下特点:支持九种基本数据类型其中包括位长的浮点类型变量可存放在不同类型的存储空间中:bitdatabdataidata和pdata支持用C语言编写的中断函数充分利用单片机寄存器保留源程序中的所有符号、类型信息方便调试能够使用AJMPACALL指令支持位寻址对象支持C等微控制器的双数据指针支持飞利浦XC的指令集持亿恒科技(西门子)C中的算术运算单元和多重数据指针。()keilC的使用:在菜单“工程,目标属性”中选中输出标签在“生成HEX文件”上打勾。然后再选中调试标签在“使用keilmonitordriver”上打勾并在“加载代码到仿真器上”打勾在“运行到main()”上打勾在“断点”上打勾。并且选中“设置”接钮选波特率。选中菜单“工程,重新构造所有目标”当编译出现个错误个警告时就表示编译成功并产生了可以烧录的HEX文件。选中菜单“调试,开始停止调试”加载成功后点击“调试,运行”即可看到程序运行结果。如果加载不成功可尝试按一下仿真器上的复位按键或掉电重新上电后再次加载。要点击“工程,新建工程”新建一个工程文件。选择芯片类型一般是选用“AtemelC”。在目标的源程序组上点击鼠标右键加入已编辑好的源程序文停止全速运行可以按一下仿真器上的复位按键或掉电重新上电即可。独立式键盘软件设计软件设计流程图独立式键盘工作原理在前面已作讲述在此不再叙述。键盘控制及显示电路设计软件实现总流程图图按键设计流程图总流程图图总流程图总程序清单(见附录)本章小结本章主要介绍键盘控制及显示电路的软件设计对软件设计的基本工具汇编语言进行了介绍以及程序的流程图。结论本次所做的毕业设计是基于单片机的键盘控制及显示的电路设计刚拿到题目的时候觉得也没什么就是一个键盘一个LED显示再加上一个单片机其它也就没什么了在通过一段时间的查阅资料后才发现一切并不像想象中的那么简单而且还有一种不知道从何下手的感觉不过后来在指导老师的精心指导下才开始有了思路然后查阅资料制订计划一步一步完成了此次设计任务。在做本次设计过程中可以说是历经坎坷在设计刚开始没多久大约没到一个月我就到就业单位实习了到了单位就没那么多时间来做设计每周只能靠上网或打电话与指导老师和同学了解设计的进度情况在这期间得到了老师和同学的热情帮助因此设计进展也算比较顺利。我是在毕业答辩前两周回到学校继续做设计这段时间主要是对硬件电路的制作和软件的调试同时还有毕业论文的完成在此期间也得到了指导老师和同学的热情帮助从而设计进展很顺利。在本次设计过程中自己通过对所学知识的复习通过图书馆网络的资料查阅使得自己的理论知识丰富了许多。以前在学习单片机的时候都是一些书上的理论知识也是一些比较肤浅的东西在课堂上并没有深入的学习更没有用到实际中去但是在这次设计中对单片机作了更深一步的学习最重要的是把所学到的东西用到实际中实现了理论与实践相结合。同时在本次设计中也锻炼了自己的动脑动手能力整个设计几乎都是要靠自己来完成指导老师只能在比较大的框架上或是一些很细节的东西给予指导其余都要靠自己独立完成。在焊接电路板的时候自己的焊接技术又较以前做电装实习时更进一步了同时在检查电路故障的时候也锻炼了自己发现问题和解决问题的能力。在做软件编程时更要动脑因为我的设计使用的一些芯片与同组同学的不大一样因此软件部分也大有不同整个软件部分的编程任务都是自己完成当然也得到了老师和同学的指导和帮助但是不管怎样在本次设计中自己的动手动脑能力得到了很大提高。本次设计总的来说是成功的当然也存在很多不足之处但是在这个过程中自己学到了东西自己得到了锻炼自己能把大学四年所学的专业知识用到实践中去这才是本次设计的最大目的~致谢在完成本电路的设计当中给我很大帮助的不但有我的导师崔哓红老师还有实验室的各个老师们。在这里我向曾经帮助过我的所有老师们道一声“谢谢您~老师”。首先感谢导师崔哓红老师在毕业综合设计期间所给予的关心和帮助。崔哓红老师对待工作认真负责、忙里抽闲在处理公事和授课之余向我耐心地讲解有关适宜。崔哓红老师这种对待工作认真负责、严以律己的工作态度和宽以待人的崇高品质永远值得我们学习和借鉴。也非常感谢姜晓宇同学在电路的制作及调试过程中给予的技术支持。在完成设计当中我的导师崔哓红老师他总是不断询问我的设计情况包括我的进展情况、在电路当中所遇到的困难情况和应该怎样解决这些困难。在整个论文的撰写及修改过程都是在崔老师的热心指导下完成的在此向在毕业综合设计当中给予我提供帮助的老师说一声“老师您辛苦了~”预祝老师在今后的生活及工作中身体健康、工作顺利在电子领域有更大的飞跃。在此也向在毕业综合设计期间给予我关心和帮助老师及同学表示感谢~参考文献杨素行模拟电子技术基础清华大学电子教研组:李士平北京电子报北京电子报社合订本下赵保经中国集成电路大全国防工业出版社:童诗白现代电子学及应用东南大学出版社:童诗白模拟电子技术基础高等教育出版社:晓喻电子制作中国家用电器维修协会:翟德富家用电路手册机械工业出版社:陈克安集成电路速查大全西安电子科技出版社:于洪沿常用电子元件简明手册中国矿业大学出版社:肖景和数字集成电路应用精粹人民邮电出版社:刘京南、王成华电子电路基础北京电子工业出版社:余孟尝数字电子技术基础清华大学电子教研组:邹寿彬电子技术基础高等教育出版社:闫石主数字电子技术基础高等教育出版社:AdelSSedraandKennethSmithMicroelectronicCircuits,rd,OxfordUniversityPressInc:JacobMillmanandArvinGrabel:Microelectronics,nded,McGrawHillBookCompany,NewYork:PaulMrBrown,Jr:AGuidetoanalogAsics,AcademicPress,Inc,SanDiego:附录外文资料汇编的源文件是一个标准的ASCII码文件任何文本编辑如EDLIN、WORDSTAR等都可以编写FASTMAP对于源文件书写格式有一定要求。文件的第一行要求大写字母给出GAL器件的型号“PLDV”或“PLDV”这一行不能省略第二行给出GAL器件的逻辑名称可根据需要填写也可以省略掉键入回车。第四行应写明设计者的姓名同样也可以省略键入回车。但这四行一定要保留管脚定义从第五行开始否则不能通过汇编扫描。从第五行开始是定义器件的管脚名称管脚名称可以使用不含前面提到符号或字串定义时只需将管脚的序号依次排列即可而不必考虑这些名称是否写在同一行里(如果写在同一行里两个管脚名之间应该用空格分开)。管脚定义完成之后就可以书写布尔表达式布尔表达式中只能FASTMAP所支持的种关系符根据GAL器件型号每一个布尔表达式最多有个“或”项逻辑关系需要用户化简并且FASTMAP不支持“()”。逻辑表过式是否正确GAL内部的逻辑关系及管脚排列是否合理不但与用户的书写格式有关而且与GAL的内部结构有关因此使用者想正确使用FASTMAP还必须通过器件手册了解清楚GAL的内部结构。当所有布尔表达式书写完毕以后应以一个“DESCRIPTION”通知FASTMAP结束汇编过程并适当追加注释以提高汇编程序的可读性。每一行都必须顶头开始书写。TheassemblysourcedocumentisastandardASCIIcodedocument,anytextualeditlikeEDLIN,WORDSTARandsoonmaycompile,FASTMAPhascertainrequestregardingthesourcedocumentwritingformThedocumentfirstlineofrequestcapitallettergivestheGALcomponent'smodel,“PLDV”or“PLDV”,thislinecannotabbreviateThesecondlinegivestheGALcomponent'slogicalname,mayaccordingtoneedtofill,mayalsoabbreviatefalls,entersthecarriagereturnThefourthlineshouldwriteplainlythatdesigner'sname,similarlymayalsoabbreviateentersthecarriagereturnButthesefourlinesmustcertainlyretain,otherwisethebasepindefinitionstartsfromthefifthlinenottobeablethroughtheassemblyscanningStartsfromthefifthlineisdefinescomponent'sbasepinname,thebasepinnamemayuseincludingfrontdidnotmentionmarkorstring,whendefinitiononlyneedarrangeinturnbasepin'sserialnumberthen,butdoesnotneedtoconsiderwhetherthesenamesdowriteintheidenticalline(,ifwritesinidenticalline,betweentwobasepinnamesshoulduseblankspacetoseparate)Afterthebasepindefinitioncompletes,maywritetheBooleanexpression,intheBooleanexpressioncanonlyFASTMAPsupportkindofrelationalsymbols,accordingtotheGALcomponentmodel,eachBooleanexpressionhavemostmuch“or”theitem,thelogicalrelationneedtheusertosimplify,andFASTMAPdoesnotsupport“()”Logichasshownliketobewhethercorrect,theGALinternallogicalrelationandthebasepinarrangewhetherreasonably,notonlywithuser'swrittenformrelated,moreoverwithGALinternalstructurerelated,thereforetheuserwantstouseFASTMAPalsotocorrectlyunderstandclearGALthroughthecomponenthandbooktheinternalstructureAfterallBooleanexpressionwritingfinished,should“DESCRIPTION”informFASTbyoneMAPconclusionassemblyprocess,andthesuitablesupplementannotation,enhancedtheassemblyprogramthereadabilityEachitinerantmuststarttowriteheadMCU的嵌入式开发是与传统的MCU开发方式相对应的开发方式传统的开发方式是采用仿真MCU(例如:我们目前常见的系列开发装置就是利用仿真装置的MCU的插头在插在应用板的MCU插座上用仿真器代替应用板上的MCU)这类仿真器对于DIP和PLCC封装的MCU同时MCU的工作时钟较低时是十分有效的但是对于表贴的MCU就不一定适用(当然可以用表贴的接插件但价格很贵只适应用于开发用)。MCU的嵌入式开发是指MCU自身内嵌仿真调功能如JTAGBDM接口和软件的monitor。在开发这一类MCU时只需要一根JTAG线或者RSSTOTTL线就行了。MCU的嵌入式开发将集应用与开发一体它是一种非常有效的新型开发方式目前许多MCU如:ARMTI的DSPCCFM一部份AVR。等都是具用的JTAG开发方式。JTAG已成为IEEE标准。至于采用UART的monitor方式算不算嵌入式开我想这是一个定义问题。但这种方式也是一种有效的方式如富士通的MBFXXKEIL中的ISD和一些ARM开发都是采用UART与软件接合进得的。TheMCUembeddeddevelopmentisthedevelopmentwaywhichcorrespondswiththetraditionalMCUdevelopmentway,thetraditionaldevelopmentwayisusessimulationMCU(eg:Wethecommonseriesdevelopmentinstallment,isatpresentininsertsusingthesimulationinstallmentMCUplugontheapplicationboardMCUplug,replacesontheapplicationboardwiththesimulatorMCU),thiskindofsimulatorregardingDIPandPLCCsealMCU,whentheMCUworkclockissimultaneouslylow,isveryeffective,butpastesregardingthetableMCUnotnecessarilyissuitable(maycertainlyuseconnectorwhichtablepastes,butpriceisveryexpensive,onlyadaptsusesindevelopinguses)theMCUembeddeddevelopmentisreferstoMCUowntoinlaythesimulationtoadjustthefunction,likeJTAG,BDMconnectionandsoftware'smonitorWhendevelopsthiskindofMCUonlyneededaJTAGlineorRSSTOtheTTLlineisgoodtheMCUembeddeddevelopmentappliesthecollectionanddevelopsabody,itisoneveryeffectivenewdevelopmentway,atpresentmanyMCU,forexample:ARMTIDSP,CCFMpartialAVRAndsoonisJTAGwhichhasusesdevelopsthewayJTAGhasbecometheIEEEstandardasforusesUARTthemonitorwaytocalculateembeddedopens,IthoughtthatthisisadefinitionquestionButthiswayisalsooneeffectiveway,ifFujitsu'sMBFXX,KEILISD,usesUARTandthesoftwarewithsomeARMdevelopmentjoinsRDCCCCCCCCCCRESLEDUVCCPVCCPTVccPPTDDPPPPVinPPPPPPPPPPSPPPPPPPPPPATSXPPRSTP附录电路原理图RSTVPDPRPEAPRXDEAVPPPKPTXDPALEPOWERPINTALEPROGPPSEPINTPSENPPTPPCONPTPPPBELLJPWRPPPPRDPPUbRPCRYSTALPJXTALPPPXTALPINOTPLMCTPPINOTCCPLMVCCJPGndPINOTJPVCCJPBELLVINOTATSXPRSTPGndINOTCCCCPPVCCCVCCINOTPCONPINOTCONPRComRSTSCONCCKRESHEADERXSCOMVCCGNDVCCULNJVCCJSVCCPPPPPPSVCCPPPRPPComPPSPPPPPPPMCUOTRKEYRSTPSPISPRESTPEAPPPALEPPPSESPPPPPDISPLAYJPPPPPPSPRESPPPVCCPPPPSPPPPHEADERXSPINPINPBBQQQQQQQQOOOOOOOORCLKRCLKRCLKRCLKRCLKRCLKRCLKRCLKOOOOOOOOEEEEEEEESRCLRSRCLRSRCLRSRCLRSRCLRSRCLRSRCLRSRCLROOOOOOOOSRCLKSRCLKSRCLKSRCLKSRCLKSRCLKSRCLKSRCLKOOOOOOOOOOOOOOOOUUUUUUUUOOOOOOOOHCHCHCHCHCHCHCHCOOOOOOOOSERSERSERSERSERSERSERSEROOOOOOOORPRPRPRPRPRPRPRPKKKKKKKKdpdpdpdpdpdpdpdpdpadpadpadpadpadpadpadpabbbbbbbbVVVVVVVVccccccccCCCCCCCCCCCCCCCCVCCVCCVCCVCCVCCVCCVCCVCCAAaaaaaaaaddddddddeeeeeeeeVCCVCCVCCVCCVCCVCCVCCVCCfbfbfbfbfbfbfbfbggggggggffffffffggggggggececececececececddddddddSEGLEDSEGLEDSEGLEDSEGLEDSEGLEDSEGLEDSEGLEDSEGLEDTitleSHUMAYANGSHUMAYANGSHUMAYANGSHUMAYANGSHUMAYANGSHUMAYANGSHUMAYANGSHUMAYANGSizeNumberRevision篮球比赛计时器开发板ADate:JanSheetofFile:F:毕业设计文档BACKUP~DDBDrawnBy:b附录汇编源程序按键扫描KEQUP按键引脚定义KEQUP按键引脚定义KEQUP按键引脚定义KEQUP按键引脚定义KEQUP按键引脚定义KEQUP按键引脚定义KEQUP按键引脚定义KEQUP按键引脚定义***********************************************ORGHLJMPMAINORGBHLJMPTIMERORGBHLJMPTIMER***********************************************TESTKEY:LOOP:JBK,M未按下K键则继续扫描JNBK,$有按下则等待放开KKEYED确定按下K键CLRTR调程序JMPLOOP继续扫描循环***********************************************M:JBK,M未按下K键则继续扫描JNBK,$有按下则等待放开KKEYED确定按下K键SETBTR调程序JMPLOOP继续扫描循环***********************************************M:JBK,M未按下K键则继续扫描JNBK,$有按下则等待放开KKEYEDSETBTR调程序MOVH,#MOVH,#JMPLOOP继续扫描循环***********************************************M:JBK,M未按下K键则继续扫描JNBK,$有按下则等待放开KKEYED确定按下K键CLRTR调程序***********************************************M:JBK,M未按下K键则继续扫描JNBK,$有按下则等待放开KKEYED确定按下K键SETBTR调程序SETBTRJMPLOOP继续扫描循环************************************************M:JBK,M未按下K键则继续扫描JNBK,$有按下则等待放开KKEYED确定按下K键CLRTR调程序CLRTRJMPLOOP继续扫描循环***********************************************M:JBK,M未按下K键则继续扫描JNBK,$有按下则等待放开KKEYED确定按下K键调程序JMPLOOP继续扫描循环***********************************************M:JBK,M未按下K键则继续扫描JNBK,$有按下则等待放开KKEYED确定按下K键调程序JMPLOOP继续扫描循环***********************************************M:JMPLOOP无穷循环***********************************************MAIN:主程序SETBFSETBEA开中断允许SETBET开T中断MOVTMOD,#HT计数方式T定时方式MOVTH,#HIGH()MOVTl,#LOW()MOVH,#送H单元,分十位MOVH,#送H单元,分个位MOVH,#送H单元,秒十位MOVH,#送H单元,秒个位MOVR,#AAS:SETBTRSETBET开T中断MOVTMOD,#HT计数方式T定时方式MOVTH,#HIGH()MOVTl,#LOW()MOVH,#送H单元,秒十位MOVH,#送H单元,秒个位MOVR,#SETBTR*********************************************TIMER:PUSHAccPUSHPSWMOVTH,#HIGH()MOVTl,#LOW()DJNZR,RETICLRTR关T中断MOVR,#MOVA,HCJNEA,#,DMOVH,#MOVA,HCJNEA,#,DMOVH,#MOVH,#NOPAJMPRETID:dechNOPAJMPRETID:DECHNOPAJMPRETIRETI:POPPSWPOPACCSETBTRRETITIMER:PUSHAccPUSHPSWMOVTH,#HIGH()MOVTl,#LOW()DJNER,RETICLRTRMOVR,#MOVA,HCJNEA,#,DEMOVH,#MOVA,HCJNEA,#,DEMOVH,#MOVA,HCJNEA,#,DEMOVH,#MOVA,HCJNEA,#,DEMOVH,#MOVH,#MOVH,#MOVH,#NOPAJMPRETIDE:DECHNOPAJMPRETIDE:DECHNOPAJMPRETIDE:DECHNOPAJMPRETIDE:DECHNOPAJMPRETIRETI:POPPSWPOPAccSETBTRRETI***********************************************XIANSHI:显示MOVR,#HMOVDPTR,#TABXO:MOVA,RMOVCA,ADPTRMOVSBUF,AJNBTI,$INCRCLRTICJNER,#H,XOCLRPSETBPRET***********************************************DELAY:MOVR,#L:MOVR,#L:DJNZR,LDJNZR,LRETDELAY:MOVR,#B:MOVR,#B:DJNZR,BDJNZR,BRETDELAY:MOVR,#D:MOVR,#D:MOVR,#D:DJNZR,DDJNZR,DDJNZR,DRETTAB:DBH,FH,H,DH,H,H,H,FH,H,HEND***********************************************附录元件清单序号名称代号规格型号数量(个)单片机UATS驱动器UULN锁存器UUHC稳压块LM数码管LEDLEDSEG电解电容C、,uF电解电容CuF瓷片电容CC瓷片电容CCPSIP电阻R、RK自锁开关S*按键SS*电阻RK电阻RK电阻RK插针JJPIN插针JJPIN插针JPIN晶阵LM蜂鸣器

用户评论(0)

0/200

精彩专题

上传我的资料

每篇奖励 +2积分

资料评价:

/54
0下载券 下载 加入VIP, 送下载券

意见
反馈

立即扫码关注

爱问共享资料微信公众号

返回
顶部