毕业论文:基于单片机的球类比赛工作器的设计.doc_第1页
毕业论文:基于单片机的球类比赛工作器的设计.doc_第2页
毕业论文:基于单片机的球类比赛工作器的设计.doc_第3页
毕业论文:基于单片机的球类比赛工作器的设计.doc_第4页
毕业论文:基于单片机的球类比赛工作器的设计.doc_第5页
免费预览已结束,剩余43页可下载查看

下载本文档

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

文档简介

(2011届)专科毕业设计(论文)资料题 目 名 称:基于单片机的球类比赛工作器的设计学 院(部):电气与信息工程学院专 业:电气自动化 学 生 姓 名:李重媖 班 级:电气0632 学号00532025 指导教师姓名:周玉 职称 副教授 最终评定成绩: 湖南工业大学教务处 2011届专科毕业设计(论文)资料第一部分 设计说明书(或毕业论文)(2011届)专科毕业设计(论文)基于单片机的球类比赛工作器的设计学 院(部):电气与信息工程 学院 专 业:电气自动化 学 生 姓 名:李重媖 班 级:电气0632 学号00532025 指导教师姓名:周玉 职称 讲师 最终评定成绩 2011 年 5 月 摘 要本系统采用AT89S51控制LCD实现球赛计时计分。其中输入模块采用44键盘,采用程序控制和中断扫描相结合的方法,提升CPU的使用效率和键盘输入的精准性。在键盘的控制和识别上,由于采用程序控制和中断扫描相结合的方法,键盘的软件控制模块只需要做初始化和识别按键两个函数即可。输出模块采用HD44780作为控制器控制输出的LM1602液晶显示器(整体作为一个模块,称为液晶显示模块LCM)。对于LCM的控制即对HD44780进行编程即可,因为HD44780作为这个LCM的控制器,可以将控制转换成对应的LCD控制驱动信号并且输出给LCD。由于HD44780的使用说明书上对HD44780的驱动采用命令字的方式,在程序使用中为了简化过程,使程序可读性和可识别性提高。故将HD44780封装成包含初始化、光标位置移位、光标闪烁、单字符输出、字符串输出、指定位置输出等函数,在程序使用C语言编程实现控制的时候,可以简化主程序。在AT89S51控制实现计时计分的过程中,采用精准延时控制,经过调试测试修改,使其满足球赛计时计分的需求。本球类比赛工作器可以实现赛程定时设置、比赛结束鸣铃提示、赛程时间暂停、球赛种类的切换、及时刷新双方的成绩以及赛后成绩暂存等功能。关键词:单片机,LCM,HD44780,计时,44键盘IVABSTRACTThe LCD control system use AT89S51 to achieve the game time points. The input module of which use 4 4 keyboard, the use of control and disruption of a combination of scanning methods to enhance the efficient use of CPU and keyboard accuracy. At the keyboard on the control and identification, control and disruption due to a combination of methods of scanning, keyboard software control modules only need to be initialized and identify the two function keys can. Output module used HD44780 as a controller when LM1602 output liquid crystal display (overall, as a module, known as liquid crystal display module LCM). That is, the LCM control program on the HD44780 can be. Because as the controller of LCM, HD44780 can convert into the corresponding control of the LCD driver control signal and output to the LCD. HD44780 manual as a result of the HD44780 driver approach the use of the word order in the procedures used in order to simplify the process, the process to improve the readability and increased recognition. It will be packaged as HD44780 includes initialization, position the cursor movement, cursor blinking, single-character output, string output, specify the location of the output, such as function, in the use of C language to program process controlling, they can simplify the main program. In the control process, AT89S51 in the realization of time-off points, use of accurate delay control, after debugging the test changes to the game to meet the needs of time-points. The work of a team game can be set from time to time to achieve schedule, the end of the race ring the bell, schedule time to pause, the game kind of switch, both refreshing and timely results as well as temporary features such as game results.Keywords: Single-chip, LCM, HD44780, time, 4 4 keyboard目 录第1章 系统分析与实现11.1 球类比赛应用需求11.2 系统实现简介1第2章 基本功能简介32.1 赛程时间设置42.2 赛程时间启动/停止设置42.3 比分交换控制42.4 比分刷新控制42.5 甲、乙局数比分显示52.6 赛程结束报警5第3章 系统设计方案63.1 系统硬件结构框图63.2 系统总体流程图7第4章 系统硬件电路的组成9 4.1 单片机的选择9 4.1.1 单片机的概况和选择9 4.1.2 AT59S51的性能特点9 4.1.3 AT59S51的引脚功能104.2 震荡器电路的设计124.3 复位电路的设计134.4 电源电路的设计134.5 输入模块电路的设计144.6 输出模块电路的设计16 4.6.1 液晶显示模块简介16 4.6.2 液晶显示工作原理17第5章 系统的软件实现205.1 AT89S51的中断系统205.2 输入控制程序流程设计235.3 输出控制程序流程设计24 5.3.1 HD44780指令集24 5.3.2 液晶显示输出流程285.4 程序分析29 5.4.1 程序项目的建立29 5.4.2 程序模块的分析介绍32第6章 系统的整体实现35结论37参考文献38致谢39附录40湖南工业大学本科毕业设计(论文)第1章 系统分析与实现1.1 球类比赛应用需求球类比赛包含的项目比较广泛,但是由于球类比赛具有一定的共同特性,所以我们可以采用一种通用的计时、计分的工作器,实现特有的功能。现在以较为普及的羽毛球,篮球和网球等分析其工作需求。综合几种球类比赛的规则可以看出球类比赛工作器需要计时,但是由于是通用计时器,所以计时要求单场次计时需要自己输入;球赛需要计分,而计分为了区分需要输入队伍或个人名称并且计分由于比赛不同有的需要输入两位数的分数;球类比赛通常是采取多场次比赛,并且采取胜场多的为胜,故需要实现多场次比分显示;球类比赛进行中,有的时候为了公平会采取换场的措施,因此工作器也需要实现双方名称显示和分数显示的互换的工作;球赛进行过程中可能需要一个短时间段的时间提醒,所以需要有个短时倒计时的提示;最后当比赛结束后,需要工作器作出提醒。球类比赛通常需要做的工作主要有计时、显示分数、球队名称显示等。所以球类比赛工作器要实现的功能要求如下:1. 计时。包含球赛赛程时间的倒计时,短时间倒计时(例如篮球比赛中的24秒),比赛结束鸣铃提醒以及比赛中中断的时候计时中断等。2. 计分。需要计算显示的分数有总赛程分数对比以及各个赛段的各自比分的显示。而且在比赛中如果存在换场地等情况,则需要把分数对调再输出显示。3. 显示球队名称。球队名称的显示是用来区分两队或多队之间比分,统计计算比赛结果的一个关键环节。 综合上面球类比赛要求可以看出本系统需要实现的功能有赛程定时设置、比赛结束鸣铃提示、赛程时间暂停、球赛种类的切换、及时刷新双方的成绩以及赛后成绩暂存等功能。1.2 系统实现简介本系统是以AT89S51单片机作控制器,通过44小键盘设定计时数值以及改变显示方式,并且选用液晶显示器(LCD)作为输出器件。本系统使用44小键盘进行功能控制,所以它的功能实现的过程中需要使用按键组合才能实现所有功能(由于其中数字键0-9占用了10个键位)。小键盘的设定图形如下: 图 1-1 由于液晶显示器具有显示信息多、体积小、重量轻、功耗低、寿命长、价格低、接口控制方便等优点所以本系统的显示实现选择液晶显示器。又由于本系统中显示的需要选用液晶显示模块(LCM,LCD Module)为内置HD44780控制器的LM1602字符液晶显示模块。由该模块实现字符以及数字的控制和输出。其图形大致如下: 图 1-2以上是本系统在硬件实现中的三大模块。一个完整的系统的实现除了需要硬件实现外还需要软件实现。本系统通过使用Keil软件,以C语言编写实现软件中程序模块的设计。当驱动程序编写并编译生成最后的程序后,可以放入Proteus软件中生成的对应的硬件电路原理图中实现仿真。第2章 基本功能简介本系统需要实现的功能有赛程定时设置、比赛结束鸣铃提示、赛程时间暂停、球赛种类的切换、及时刷新双方的成绩以及赛后成绩暂存等功能。作为系统需要实现的主要要求,系统功能实现是设计需要处理的一个很关键的问题。本章以系统功能在工作器中的实现过程做简单介绍。本系统中硬件实现部分,主要分为输入模块、输出模块和控制模块。系统功能的实现与对硬件的操作是不可分割的。故本章对系统的功能的介绍以硬件相关操作为主。控制模块即以AT89S51为核心的控制电路,在系统对功能实现的过程中,起到总体控制的作用。对于各类功能的实现主要体现在控制程序中,所以本章不作详细介绍。作为输出模块,LCM在工作器工作的过程中是与用户进行交互操作的主要部件之一。具体功能实现与其对应关系如图2-1所示。第一行前9个字符是两个队名或者是两个球员4位大写字母的简称,后面紧跟着的是比分的情况。第二行T以后六个0即分别从左到右代表倒计时中的小时:分钟:秒,后面24T:表示以篮球中的24秒作为一个短计时的特殊实现。 图 2-1本系统中各个功能的实现由输入模块中的键盘控制,故这里只重点介绍其需要实现的功能以及对应键盘实现方法。对于键盘在这个系统中选用的是44小键盘,它的图形如图2-2所示。 图 2-22.1 赛程时间的设定各类比赛中所需要用到的时间长短不同,所以在比赛开始前要设定好本场次比赛时间的长短。又由于在比赛过程中与时间相关的操作需要应用到键盘设定时间键入次数较多,为区分实现,特设定其操作流程如下:时间(D1)暂停(B1)具体时间输入(数字组合输入)开始(A4) 输入的过程是从左到右,即从最高位起开始输入,分钟和秒都不能超过60,否则输入失效,需要重新输入。需要说明的是,本系统默认设置显示是分钟和秒,所以在设定中所有超过1个小时的比赛时间需要转换成分钟数来设定。由于比赛中各场次的时间可能不一样,故设定时间设置为每场设一次(如时间设置同上次比赛的时间可直接按开始开始计时)。2.2 赛程开始/暂停设置比赛时间设定完毕后按开始即进入比赛倒计时状态,途如需要暂停,则可以直接按暂停(B1)实现计时的暂停,并且倒计时时间闪烁以提醒暂停状态,结束暂停则可以直接按开始(A4)恢复倒计时。当比赛结束时,倒计时变成00:00不动,并且鸣响铃以做提示。此时比赛比分被暂时存储起来,作为本场次比分。需要说明的是:在开始比赛前不仅需要输入比赛时间,在需要的情况下可以输入不超过5位的英文队伍名称。在开始比赛前,按分数即可以开始输入队伍名称。队伍名称的字母由0-9数字表示,即从0开始对应字母A,25对应Z。每两位输出一个字母,若超过25则需要重新输入。2.3 比分交换控制在两队换场的时候,分数需要互换。这种情况可以在当场次比赛开始计时后,按分数(D3)键,则两队队名显示互换位置。当场场次比分在暂存时也为互换位置后的方式显示。2.4 刷新比分控制比赛中由于分数需要有加分操作而且有的比赛中加分会超过9故设定加分操作操作数为两位数。由于队伍通常为两只且分数有先后顺序,所以设定加分操作为按+(D4)/-(C4)选择给前面的队伍加分或给后面的队伍加分,而后按两位数字即需要加的分数的多少。2.5 球赛各场次比赛比分显示由于两只队伍存在多场比赛,故比分设定了暂存的功能。一场比赛结束后(即比赛计时为00:00并且不再变动时),比赛比分显示在屏幕上不变。按分数(D3)而后按数字1-9或0,显示出来的分数即对应场次的比分。如按分数后按1,即显示出第一场的比分。如按分数后按0,则显示第十场的比分。2.6 赛程结束报警当比赛结束后(即T时间为0,倒计时间全为0,并且闪烁的时候),开始鸣铃一段时间。当按0键或者按分数键,鸣铃结束。 39第三章 系统设计方案基于单片机的球类比赛工作器的系统设计分为硬件设计和软件设计以及总体实现三个主要任务。对本系统来说,首先应当由应用需求入手分析系统需求和选择系统实现需要所对应硬件,而后根据硬件的选择实现系统硬件结构的总体设计。然后,由硬件组成以及功能实现需求确定系统软件部分的大体实现过程。在硬件软件具体实现和软件具体实现后,即可进行总体的模拟仿真以完成系统的设计。本系统总体实现设计是用Proteus对系统电路原理图中51芯片加入软件实现的文件后进行软件仿真实现。3.1 系统硬件结构框图 基于单片机的球类比赛工作器是以AT89S51单片机作控制器,通过44小键盘设定计时数值以及改变显示方式,并且选用液晶显示器(LCD)作为输出器件。由以上介绍可以看出这个系统的硬件组成主要有输入模块-键盘,处理模块-单片机,以及输出模块-LCD显示器共同组成。又由于在模块的输入输出上要提高效率,提升实际使用效果。我们并不直接连接这三个模块。我们可以通过使用专用的芯片来提升使用效率。其整体结构图如下:44键盘电 源复 位 电 路51单片机数据总线控制总线电源R O MHD44780H显示器 图 3-13.2 系统总体流程图对于本系统来说,从通电初始化硬件开始,该系统就开始运行。它的工作过程大概为:初始化后,液晶显示器进入初始化显示状态同时开始检测键盘输入。直到检测到键盘输入为时间或者为0时,才进行下一步操作。若为时间时,开始进入倒计时输入状态,开始检测键盘输入作为倒计时。输入完毕,自动等待开始键按下开始比赛;若为0时,清理屏幕到初始状态,等待输入时间设置,或者直接使用默认设置(即上次比赛时间设置)开始比赛。比赛过程中,检测到暂停、时间、分数、+/-五键中任一键按下即进入响应状态去处理,处理结束恢复比赛状态继续比赛。比赛结束时,即倒计时为零后,时间为0并且闪烁同时鸣铃提示。结束后,开始检测键盘输入是否为分数、0,并且等待下一场比赛的进行。其简略流程图如图 3-2 所示。在比赛过程中,若检测到暂停,则倒计时停止变动并且闪烁等待,比分不可以修改。直到检测到开始按键后,计时恢复,比分可以修改。再次等待按键处理;若检测到时间则开始显示短时间的小倒计时,即24秒。24秒结束后,自动恢复到大倒计时状态;若检测到+或者是-,则对应队伍的分数开始闪烁,输入两位数作为所需要加的分数,则分数自动加到该队伍分数上,闪烁状态解除;若检测到分数,则将队伍名字互换位置,分数同时对应换过。开始检测键盘输入输入初始化硬件检测键值时间?输入开始键盘输入读取输入的键值并且做出处理时间到读取倒计时并显示出来显示球队名称并显示比分和时间保存比分0时间闪烁并且鸣铃检测键盘 对应处理按0NNNNNN图 3-2第四章 系统硬件电路的组成该系统硬件由输入电路、输出电路、存储系统、复位电路和运算控制器组成。其中运算控制器51单片机内含有存储器。因此,这个系统的硬件组成的选择设计重点在复位电路、输入电路和输出电路的设计上。4.1 单片机的选择4.1.1 单片机的概况和选择随着电子技术、微电子技术的飞速发展,微型计算机发展很快,单片机作为计算机的一个独特的分支,它是在一块芯片上集成了多种功能部件所构成的一台完整的、具有一定功能的单片微型计算机。它打破了典型微型计算机按逻辑功能划分芯片结构的传统概念,以其体积小,功能强,性能价格比高等优点广泛应用于诸多领域,如工业控制系统、智能化仪表、数据采集系统等,单片机技术的开发和应用水平己逐渐成为一个国家工业发展水平的标志之一。目前世界上有很多单片机制造公司,如美国的INTEL,ATMEL,MOTOROLA 和ZILOG公司;德国的SIEMES公司;荷兰的PHILIP公司等。他们相继推出了各种类型的单片机,其中Intel公司推出的一种高性能8位单片机MCS-51系列单片以其优越的性能,成熟的技术和高性价比迅速占了工业测控和自动化工程领域的主要市场,成为单片机领域中的主流产品。除了INTEL公司外,PHILIP, ATMEL, ADM, SIEMES等公司纷纷推出了与MCS-51系列兼容的单片机,其中ATMEL公司的89系列单片机也称Flash单片机,在内部功能的引脚上与MCS-51单片机是兼容的,它不仅继承了MCS-51原有的功能,而且又扩展了它的功能。ATMEL89系列单片机是以8031核构成的,所以它和8051系列单片机是兼容的系列,89系列单片机有很多优点。89系列单片机可分为标准型号,低档型号和高档型号,经过比较分析,根据本课题的特点,我们选用ATMEL公司89系列的标准型单片机AT89S51。4.1.2 AT89S51的性能特点AT89S51是一种低功耗、高性能的8位单片机,片内带有一个4K字节的Flash可编程可擦除只读存储器(PEROM),它采用了CMOS工艺和ATMEL公司的高密度非易失性存储器(NURAM)技术,而且其输出引脚和指令系统都与MCS-51兼容。片内的Flash存储器允许在系统内改编程序或用常规的易失性存储器编程器来编程。因此AT89S51是一种功能强、灵活性高且价格合理的单片机,它可方便地应用在各种控制领域。AT89S51的主要性能有: 与MCS-51微控制器产品兼容; 4KB可改编程序Flash存储器; (可经受1, 000次的写入/擦除周期) 全静态工作:OHZ-24MHZ;三级存储器保密;128X8字节内部RAM ;32条可编程I/O线:2个16位定时器/计数器;6个中断源;可编程串行通道;片内时钟振荡器;空闲状态维持低功耗和掉电状态保存片内RAM中的内容。4.1.3 AT89S51的引脚功能图4-1是AT89S5I的引脚结构图,这个是40线双列直插封装(DIP)方式,下面分别叙述这些引脚的功能。 图 4-1 主电源引脚VCC电源端,GND接地端; 外接晶体引脚XTAL1和XTAL2 XTAL1连接外部晶体的一个引脚,在单片机内部,它是构成片内振荡器的反相放大器的输入。当用外部振荡器时该引脚接收振荡器的信号,即把此信号直接接到内部时钟发生器的输入端。 XTAL2接外部晶体的另一个引脚,在单片机内部它是振荡器的反相放大器的输出,采用外部振荡器时,引脚悬挂不连接。控制或与其它电源复用引脚RESET, ALE/ , 和/VPP复位输入端,当振荡器运行时,在该引脚上出现两个机器周期的高电平将使单片机复位。ALE/访问外部存储器时,ALE(地址锁存允许)的输出用于锁存地址的低位字节,正常工作时ALE外部电路提供时序与时钟信号,以振荡频率1/6的固定速率输出,并可为但在每次访问外部数据存储器时,将跳过一个 ALE脉冲。在对Flash存储器编程期间,该引脚还用于输入编程脉冲()。程序存贮允许()输出是外部程序存储器的读选通信号,当AT89C51由外部程序存贮器取指令时,每个机器周期两次PSEN有效(即输出2个脉冲),但在此期间内,每当访问外部数据存储器时,两次有效信号都不输出。/VPP外部访问允许端,要使CPU访问外部程序存储器(地址为 OOOOH-FFFFH),则高端必须保持低电平(接GND端)。当EA端保持高电平时(接VCC端)时CPU则执行内部程序存储器中的程序,在Flash存储器编程期间,此引脚用于施加12V的编程允许电源VPP。输入/输出引脚P0.0P0.7, P1.0Pl.7, P2.0P2.7, P3.0P3.7P0端口(P0. OPO. 7)是一个8位漏极开路型双向I/0端口,它的地址是80H至87H。作为输出口用时,每位能以吸收电流的方式驱动8个TTL输入,对端口写1时,可作为高阻抗输入端用,在编程时PO端口接收指令字。验证程序时则输出指令字节,此时要求外接上拉电阻。Pl端口(Pl. 0Pl. 7是一个带有内部上拉电阻的8位双向I/0端口,它的位地址是90H与97H。 P1的输出缓冲器可驱动4个TTL输入,对端口写1时可用作输入口,此时那些被外部信号拉低的引脚会输出一个电流。在对Flash编程和程序验证时,P1接收低8位地址。P2端口(P2. 0P2.7),是一个带有内部上拉电阻的8位双向I/0端口。它的位地址是A0H至A7H, P2口的输出缓冲器可驱动4个TTL输入,对端口写1时可用作输入口,此时那些被外部信号拉低的引脚会输出一个电流。在访问外部程序存储器和16位地址的外部数据存储器时P2送出高8位地址,在访问8位地址的外部数据存储器时,P2引脚上的内容是专用寄存器(SPR)区中P2寄存器的内容,整个访问期间不会改变。在对Flash编程和程序验证期间,P2也接收高位地址和一些控制信号。P3端口(P3. OP3. 7)是一个带内部上拉电阻的8位双向I/0端口,除了一些与Pl, P2部分相同的功能外,还有一些专门功能。如表4-1所示: 表 4-1 P3各端口引脚与兼用功能端口引脚兼用功能P3.0RXD(串行输入口)P3.1 TXD (串行输出口)P3.2 (外部中断0)P3.3 (外部中断1)P3.4TO(定时器0的外部输入)P3.5T1(定时器1的外部输入)P3.6 (外部数据存储器写选通)P3.7 (外部数据存储器读选通)4.2 震荡器电路的设计AT89S51内部有一个用于构成片内荡振器的高增益反相放大器,引脚 XTAL1和XTAL2分别是此放大器的输入端和输出端,这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器,振荡电路的连接方法如图4-2所示: 图 4-2 图中外接石英晶体(或陶瓷谐振器)以及电容C1或C2构成并联谐振电路,接在放大器的反馈回路中。虽然对电容的大小没有严格的要求,但多少会影响振荡器频率的高低、振荡器的稳定性、起振的快速性和温度稳定性。外接石英晶体时,C1和C2一般取(30pF士1OpF),外接陶瓷谐振器时,C1和C2一般取(40pF士10pF),在此选用的是石英晶体,C1, C2均为30pF。4.3 复位电路的设计AT89系列与其它微处理器一样,在启动时都需要复位,使CPU及系统各部件处于确定的初始状态,并从初态开始工作。AT89S5I的上电复位电路如图4-3所示。 图 4-3在复位输入引脚上接一电容至VCC端,下接一个电阻到地。上电复位的过程是在加电时,复位电路通过电容加给RESET端一个短暂的高电平信号,此高电平信号随着VCC,对电容的充电过程而逐渐回落。为保证能可靠地复位,RESET端的高电平信号必须维持足够长的时间。在复位期间端口引脚处于随机状态,复位后系统将端口置为全“1态,除了端口寄存器的复位值为FFH,堆栈指针SP为07H, SBUF器全部清0。内部RAM的状态不受复位的影响,在系统上电时RAM的内容是不定的。若系统在上电时得不到有效的复位,则在程序计数器PC中将得不到一个合适的初值,CPU可能会从一个未被定义的位置开始执行程序。4.4 电源电路的设计本系统中使用的是线形集成稳压器,确切的说是一种简易稳压电源。三端式稳压器是电源模块的核心部件,它只有3个引出端子,具有外接元件少、使用方便、性能稳定、价格低廉等特点。由于系统工作在5V左右的环境,因此选用78L05作为电源的稳压器。电路如图4-4所示。 图 4-4图 4-4中是本系统所用的电路原理图,它需要12V供电,使用78L05芯片稳压。78L05稳压器的1脚接12V电源,2脚接地,3脚接5V电压的输出端。次电路能为系统提供稳定的电源电压。D1是二极管,用做电源整流。C5C8为电路中的滤波电容,大电容滤的是低频干扰,小电容滤的是高频干扰。C5、C6作为输入端的滤波电容接入78L05的输入端,C7、C8作为输出端的滤波电容接入78L05的输出端。4.5 输入模块电路的设计本系统中所用到的输入器件即44小键盘。常用的键盘按照接口可分为独立式键盘和矩阵式键盘。独立式键盘是最简单的键盘,每个键独立的接入一根数据线。这种键盘的优点是结构简单,使用方便。缺点是随着键数的增多,占用的I/O口也增加。矩阵式键盘由行线和列线组成,按键位于行线和列线的交叉点上,行、列分别连接到按键开关的两端,行线通过上拉电阻接高电平。无按键动作时,行线处于高电平状态;有键按下时,交叉点的行线和列线接通,行线电平由此行线连接的列线的电平决定。这一点是识别矩阵键盘按键是否被按下的关键所在。矩阵键盘节省了很多的I/O口,适用于按键较多的场合。本系统所使用的44小键盘正是这种类型的键盘,其原理图如图 4-5 所示。 图 4-5矩阵式键盘的工作原理如下:按键设置在行、列线交叉点上,行、列分别连接到按键开关的两端。列线上通过上拉电阻接到5V上。平时无按键时,列线处于高电平状态,而当有键按下时,列线电平状态将由与此列线相连的行线电平决定。行线电平如果为高,则列线电平为高;行线电平为低,则列线电平为低。这是识别矩阵式键盘是否有键按下的关键所在。由于矩阵式键盘中行、列线为多键公用,各按键均影响该键所在行和列的点平。因此各按键将相互影响,所以必须将行线和列线信号配合起来平进行适当的处理,才能确定闭合键的位置。根据上面的原理分析,可以看出矩阵键盘按键的识别方法,此方法分两步进行:第一,识别键盘有无按键被按下;第二步,如果有键被按下,则识别出具体的按键。识别键盘有无键被按下的方法是:让所以的行线均置0电平,检查各个列线电平是否有变化,如果有变化,则说明有键被按下,如果没有变化,则说明无键被按下。识别具体按键的方法是:逐行置低电平,其余各列为高电平,检查列电平的变化,如果某列线电平为低电平,则可确定此列交叉点处的按键被按下。如图 4-4所示为44键盘电路,键盘与单片机的接口用了一个74LS21芯片连接。Key1key4 在没有键被按下时,由于接了上拉电阻的缘故,电平一直为高。当K1K4为0000时,当任何一个键被按下,key1key4中便有一个被拉低。经过74LS21芯片,产生一个从高变低的下跳电平。74LS21接的是中断口,该信号从中断口进入单片机,给单片机一个触发。单片机则调至键盘程序,以此来查找哪个键被按下。从中断进入可以节省系统的时间。不用实时的检测键盘,提高了系统的工作效率。4.6 输出模块电路的设计本系统的输出模块使用的是LCM(液晶显示模块),它由液晶显示器本身和液晶显示驱动电路组成。4.6.1 液晶显示模块简介随着液晶显示技术的不断进步,液晶显示器已成为日常工作和生活中耕种显示仪器、仪表和袖珍电子产品的重要组成部分,并且越来越多地应用到各种显示设备中,因此对于点阵图形液晶显示模块的开发、设计、应用和研究具有重要的意义。世界上第一台液晶显示设备出现在20实际70年代初,被称为TN-LCD(扭曲向列)液晶显示器,尽管是单色显示且只能显示数字,它仍被推广到了电子表、计算器等领域。下一代LCD属于点阵式显示,不但能显示数字,还能显示字符和图形。此外,随着科技的不断进步,各种液晶显示相继出现,可显示彩色。在单片机系统中,使用液晶显示模块作为输出器件有如下优点。 显示质量高。由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不象阴极射线管(CRT)显示器那样需要不断刷新点亮。因此,液晶显示器画质高而且不会闪烁。 数字式接口。液晶显示器是数字的。与单片机系统的接口更简单,操作也更加方便。 体积小、重量轻。液晶显示器通过显示屏上的电极控制液晶分子状态达到显示的目的,在重量上,比相同显示面积的传统显示器件要轻许多。 功率消耗小。相比而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其他显示器件小很多。由以上诸多优点决定液晶显示器在单片机电子设计中作为输出器件更为实用。本系统选用的是内置HD44100控制器的字符型液晶显示模块。该字符型液晶显示模块的特性为: 为162字符型液晶显示模块 +5V电压,反视度(明暗对比度)可调整。 提供各种控制命令,如清除显示屏、字符闪烁、显示移位等多种功能。 显示用数据DDRAM共有80字节。 字符发生器CGROM有160个57点阵字符。 字符发生器CGRAM有可由使用者自行定义8个57的点阵字符。内含震荡电路,系统内含重置电路。4.6.2 液晶显示工作原理LCM的内部结构可分为3个部分:LCD控制器、LCD驱动器、LCD显示装置,如图4-6所示。LCD控制器LCD驱动器LCD显示装置RSR/EVOVSSVDDDB0DB7 图 4-6 DDRAM数据显示用RAM DDRAM数据显示用RAM(Data Display RAM,简称为DDRAM),用来存放LCD显示的数据只要将标准的ASCII码送入DDRAM,内部控制电路会自动将数据传送到显示器上。例如要LCD显示字符A,则只需要将ASCII码41H存入DDRAM即可。DDRAM有80字节空间,共可显示80个字符(每个字为1个字节)。其存储器地址与实际显示位置的排列顺序与LCM的型号有关。本系统采用的是16字2行的LCM,其对应关系如表4-2所示。 表 4-2 16字2行显示地址显示位置12345678910111213141516第一行000102030405060708090A0B0C0D0E0F第一列404142434445464748494A4B4C4D4E4F CGROM字符产生器ROMCGROM字符产生器ROM(Character Generator ROM,简称为CGROM),存储了192个57的点矩阵字型。CGROM的字型要经过内部电路的转换才会传到显示器上,仅能读出不可写入。字型或字符的排列方式与标准的ASCII码相同,例如字符码31H为1字符,字符码41H为A字符。如果想要在LCD中显示A,就可将A的ASCII代码41H写入DDRAM中,同时电路到CGROM中将A的字型点阵数据找出来显示在LCD上。字符与字符码对照表如表4-3所示。 表 4-3 字符与字符码对照表 CGRAM字型、字符产生器RAMCGRAM字型、字符产生器RAM(Character Generator RAM,简称CGRAM),是供使用者存储自行设计的特殊造型的造型码RAM。CGRAM共有512个(64字节)。一个57点矩阵字型占用88位,所以CGRAM最多存储8个造型。 IR指令寄存器IR指令寄存器(Instruction Register,简称IR),负责存储MCU要写给LCM的指令码。当MCU要发送一个命令到IR寄存器时,必须控制LCM的RS、R/及E这三个引脚。当RS及R/引脚信号为0,E引脚信号由1变为0时,就会把在DB0DB7引脚上的数据送入IR寄存器。 DR数据寄存器DR数据寄存器(Data Register,简称DR),负责存储MCU要写到CGRAM或DDRAM的数据,或存储MCU要从CGRAM或DDRAM读出来的数据。因此DR寄存器可视为一个数据缓冲区,它也是由LCM的RS、R/及E这三个引脚来控制的。当RS及R/引脚信号为1,E引脚信号由1变为0时LCM会将DR寄存器内的数据由DB0DB7输出,以供MCU读取;当RS引脚信号为1,R/引脚信号为0,E引脚信号由1变成0时,就会把在DB0DB7引脚上的数据存入DR寄存器。 BF忙碌标志信号BF忙碌标志信号(Busy Flag,简称BF),负责告诉MCU,LCM内部是否正忙着处理数据。当BF=1时,表示LCM内部正在处理数据,不能接受MCU送来的指令或数据。LCM设置BF的原因是,MCU处理一个指令的时间很短,只需几微秒,而LCM须花上40s1.64ms的时间,所以MCU要写数据或指令到LCM之前,必须要先查看BF是否为0。 AC地址计数器AC地址计数器(Address Counter,简称AC),负责计数写到CGRAM、DDRAM数据的地址,或从DDRAM、CGRAM读出数据的地址。使用地址设定指令写到IR寄存器后,则地址数据会经过指令解码器(Instruction Decoder),再存入AC。当MCU从DDRAM或CGRAM存取资料时,AC依照MCU对LCM的操作而自动的修改它的地址计数值。第五章 系统软件设计本系统软件实现的过程中需要多次使用到AT89S51中的中断系统和定时/计数器,所以在进行具体软件设计前先对AT89S51的中断系统和定时/计数器进行简单介绍。5.1 AT89S51的中断系统基本的8051支持5个中断源包括两个外部中断、两个定时/计数器中断、一个串行口输入/输出中断。中断发生后,处理器转到将五个中断入口处之一执行中断处理程序。8051 支持两个中断优先级。有标准的中断机制,低优先级的中断只能被高优先级的中断所中断,而高优先级的中断不能被中断。中断优先级寄存器:每个中断源都可通过设置中断优先级寄存器IP来单独设置中断优先级。如果每个中断源的相应位被置位,则该中断源的优先级为高。如果相应的位被复位,则该中断源的优先级为低。IP寄存器(可位寻址)-PT2PSPT1PX1PTOPX0- 保留- 保留PT2 定时器 2中断优先级PS 串行通信中断优先级PT1 定时器 1中断优先级PX1 外部中断1 优先级PT0 定时器0中断优先级PX0 外部中断0 优先级中断使能寄存器:通过设置中断使能寄存器IE的EA位,使能所有中断。每个中断源都有单独的使能位,可通过软件设置IE中相应的使能位在任何时候使能或禁能中断。中断使能寄存器 IE 的各位如下所示。中断使能寄存器(可位寻址)EA-ET2ESET1EX1ETOEX0EA 使能标志位 置位则所有中断使能 复位则禁止所有中断- 保留ET2 定时器2 中断使能ES 串行通信中断使能ET1 定时器 1 中断使能EX1 外部中断 1 使能ET0 定时器0 中断使能EX0 外部中断 0使能外部中断信号:8051支持两个外部中断信号,这使外部器件能请求中断,从而得到相应的服务。外部中断由外部中断引脚(外部中断0为 P3.2,外部中断1为 P3.3)电平为低或电平由高到低跳变引起,由电平触发还是跳变触发取决于寄存器TCON的ITX 位。电平触发时,当检测到中断引脚电平为低时,将产生中断,低电平应至少保持一个指令周期或12个时钟周期。因为,处理器每个指令周期检测一次引脚,跳变触发时 当在连续的两个周期中检测到由高到低的电平跳变时,将产生中断。而电平的0状态应至少保持一个周期。内置定时/计数器:8051有两个定时/计数器,每个定时器有16位。定时/计数器既可用来作为定时器(对机器周期计数),也可用来对相应I/0口(T0,T1)上从高到低的跳变脉冲计数。当用作计数器时,脉冲频率不应高于指令的执行频率的1/2,因为每周期检测一次引脚电平,而判断一次脉冲跳变需要两个指令周期。如果需要的话, 当脉冲计数溢出时,可以产生一个中断。TCON特殊功能寄存器 timer controller 用来控制定时器的工作起停和溢出标志位。通过改变定时器运行位 TR0和TR1来启动和停止定时器的工作。TCON中还包括了定时器T0和T1的溢出中断标志位。当定时器溢出时,相应的标志位被置位。当程序检测到标志位从0到1的跳变时,如果中断是使能的,将产生一个中断。注意,中断标志位可在任何时候置位和清除。因此,可通过软件产生和阻止定时器中断。特殊功能寄存器(TCON可位寻址)TF1TR1TF0TR0IE1IT1IE0IT0TF1 定时器1溢出中断标志,响应中断后由处理器清零TR1 定时器1控制位,置位时定时器

温馨提示

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

评论

0/150

提交评论