




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学号 密级 哈尔滨工程大学本科生毕业论文基于单片机的电梯调度系统的设计与实现院(系)名称:信息与通信工程学院专业名称:电子信息工程学生姓名:XXX指导教师:XXX2010年6月哈尔滨工程大学本科生毕业论文基于单片机的电梯调度系统的设计与实现院 (系):信息与通信工程学院 专 业:电子信息工程 学 号:xxxxxxxx 学生姓名:XXX 指导教师:XXX2010年6月摘要本设计就是要制作出一可作为实际应用的电梯调度系统,合理高效地调度电梯的运行与停止,满足不同楼层顾客的呼叫需求。本设计以电梯所具备基本功能为指引,以单片机系统为硬件平台,以单片机中断作为基础,主要利用单片机的I/O口扩展、单片机中
2、断、芯片读写等技术,并且利用化繁为简、归纳归类的思维方式,通过C语言编程,完成了对电梯的合理调度。本文详细介绍了设计的硬件设计与软件流程,硬件由单片机最小系统模块、82C55显示模块、82C79按键输入模块、串口下载程序等其他附加模块组成。软件编程的核心思想是每到一层即判断是否到达目标楼层,并且分析下一目标楼层的层数。判断的标准也包含四种情况并在程序中一一列出和分析。经过调试,已成功达到所要求标准,可以完成复杂情况下的电梯调度任务。关键词:电梯;单片机;82C55并口扩展;82C79按键控制ABSTRACTThe aim of making this design is to make a a
3、pplied control system of the elevator that can be used in practice, which can direct the elevator to run or stop to meet the requirement of the passengers depending on the complicated situation. for the purpose of this, this study is high up in the pictures, fulfilling the mission of elevator arrang
4、ement wisely and in reason by making the basic function of the elevator as a direction, the minimum system of MCU as the hardware platform, the interruption of MCU as foundation. The technology of the interruption of MCU and the expansion of I/O is mainly used in this design.This thesis introduce th
5、e programming of software and the hardware interface circuit between the MCU system and the chips used in this design such as 82C55 and 8279.The hardware can be divided into many modules which are the minimum system of MCU, the displaying module controlled by 82C55, the switch input module controlle
6、d by 8279 and the MAX232 serial download module.The core of programming is making a decision when the elevator is passing by each floor and judging if it has arrived or not. After the decision, the elevator will lock its next objective floor. The standard of judgment contains four situations. The de
7、sign has achieved the standard and the elevator can deliver the passengers wisely and in reason.Key words: MCU; Elevator; 82C55; 8279 目 录第一章绪论11.1课题的背景简介1电梯的历史与发展11.2课题的主要研究内容及设计步骤21.3课题的开发环境简介3电路图制作软件Altium designer 7.03C51的程序开发软件Keil31.4 设计功能要求41.5 本文内容安排5第二章系统的硬件设计62.1引言6硬件芯片的选择62.2硬件电路7单片机最小系统模块
8、7可编程I/O扩展芯片82C55模块7可编程按键控制芯片82C79模块12MAX232串口下载模块与附加电源模块等152.3本章小结17第三章芯片基本读写的实现183.1引言183.2单片机对芯片82C55的基本读写183.3芯片82C55的初始化19芯片82C55的逻辑构造19芯片82C55的工作方式21芯片82C55的初始化243.4对芯片8279的基本读写与初始化24芯片8279的基本读写24芯片8279的初始化253.5 本章小结32第四章 系统的高层软件设计334.1引言334.2单片机中断处理函数33单片机有关中断的相关设置34读取8279数据寄存器35分析键值,判断哪个按键按下3
9、5点亮相应发光二极管36置位相关状态变量364.3电梯判决函数37电梯所处状态的分类与判定37电梯各情况下所对应的处理方法384.4电梯运行函数404.5 主函数414.6本章小结42结论43附录44参考文献46致谢47第一章绪论1.1课题的背景简介电梯的历史与发展。1.2课题的主要研究内容及设计步骤本课题的主要任务是完成一个电梯系统的调度模块,即根据每个楼层不同顾客的按键需求,让电梯做出合理的判断,正确高效地知道电梯完成各项载客任务。根据此任务,本课题需要研究的内容有:1、根据系统的技术要求,进行系统硬件的总体方案设计;2、学习单片机的相关知识,并且加以运用;3、选择恰当的芯片,并对其内部协
10、议有所掌握,便于应用。4、研究C语言编程,并且规定电梯的工作规则,用C语言加以实现;5、对软件和硬件进行调试,让其协调工作,完成指定任务。结合以上内容,本课题的设计方案步骤如下:关于硬件部分:首先,对实际的电梯系统进行模拟,一般情况下,一个电梯应该具备相关按键、显示二极管、数码管等,由于这是一个调度模块,故没有设计具体的轿厢等机械部分。然后,结合这些实物,选择恰当的芯片,并分成若干模块,安排好各自之间的关系。由于其有诸多按键和显示环节,而单片机的I/O口管脚资源实在有限,故需要I/O口扩展,用以管理二极管;同时要有专门的按键控制芯片,从而便于按键管理。在此,我分别选择了82C55和8279芯片
11、。接着,要完成电路图的设计,画出PCB板,焊接相关器件后进行硬件调试,看是否好用并加以适当的更正。关于软件部分:处于最底层的是对两个芯片的寄存器读写工作,完成后方可进行更高层的应用程序调试。为了使硬件简单化,我选择了模拟时序的方法读写寄存器,这比总线操作的方法节省了锁存器。然后是关于电梯调度时所遵循的原则作出规定,其必须基于高效与人性化两个原则。最后是使用C语言将规定程序化,以便电梯真正的运作。当然,二者的关系并不是分离的,它们是相辅相成,硬件依据软件来验证,软件依据硬件来调试。经过一个个的发现问题、一个个的解决问题,最终做出完美的电梯调度模块。1.3课题的开发环境简介 电路图制作软件Alti
12、um designer 7.0Altium Designer 7.0 不断通过为高速设计提供各种功能来提高用户生产力,这些功能包括交互式长度调整和 PCB 层片增强等功能。新增的库工具和各种新功能将 Altium Designer 提升成为统一的电子产品开发解决方案。这款最新的更新程序将进一步增强您的能力,让您能够在更短的“设计到制造”周期内生产更为尖端、更具创新性的电子产品。(Altium Designer完全取代了Protel) Altium Designer Summer 08新增汇入Allegro PCB(*.brd)的转文件功能。 Altium Designer 提供了唯一一款统一的
13、应用方案,其综合电子产品一体化开发所需的所有必须技术和功能。Altium Designer 在单一设计环境中集成板级和FPGA系统设计、基于FPGA和分立处理器的嵌入式软件开发以及PCB版图设计、编辑和制造。并集成了现代设计数据管理功能,使得Altium Designer成为电子产品开发的完整解决方案一个既满足当前,也满足未来开发需求的解决方案。1.3.2C51的程序开发软件Keil单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,
14、用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使
15、用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和 C 语言的程序设计,界面友好,易学易用。1.4 设计功能要求本设计是为一八层电梯设计一调度系统,即使电梯能够合理高效地运行,完成各楼层顾客的接送任务。形象地说,就是要应对不同楼层顾客的不同需求,作出合理高效的判断,使所有顾客在
16、整体运用时间最短的条件下将其运往各自的目的地。这个设计的成品应该可以作为真实电梯的控制系统一样,遵守以下两个原则:一是高效性,二是人性化。而实际电梯所面临的情况无比复杂,故本设计的难点除了硬件上面外,还有对这些复杂的情况归类化,分为若干个基本情况,另外是用恰当的C语言描述来表达这些复杂的逻辑。1.5 本文内容安排在本设计制作的过程中,我查阅阅了大量的相关资料、期刊,并在导师的指导帮助下仔细地进行了斟酌。现将论文的章节安排再次做些简要的说明:第一章,即绪论部分,先对电梯的背景知识等做些介绍,并且对与本设计的设计步骤与重点加以说明,简单介绍了两个与毕设有关的开发软件。第二章,详细地阐述了设计中所用
17、到的各个模块的硬件电路及其工作原理。其中包括单片机最小系统、82C55发光二极管控制模块、8279键盘控制模块和串口下载模块等。第三章,以硬件的物理连接作为基石,以读写芯片内部数据与命令寄存器作为基础,以电梯判决函数作为核心,本章详细地讲述了软件系统的工作原理,并对各个重要函数都有相关的说明。第二章系统的硬件设计2.1引言由于电梯要运送不同楼层的客人,所以要有很多按键才可以让满足不同楼层顾客的需求。而且,电梯还要有人性化的显示,如哪个按钮按下了,就把它对应楼层按钮的二极管点亮,还要有一个数码管实时显示电梯所在层数,用发光二极管组成的上下箭头来表示电梯当前的运行方向等等。而这些零碎的原件,又需要
18、高效的芯片来控制,它们相互之间的物理连接问题这些就是本章所要叙述的硬件设计部分。硬件芯片的选择合理的硬件设计是一个设计成功的基石,所以在设计之初,我便把自己的主要任务集中于筹划硬件的搭建工作,当然其中需要兼顾软件设计的需求。由于本设计所模拟的楼层共有八层,其中所需要控制的器件较多,如每层都需有两个上下的指示灯,电梯轿厢内也需有去几层的指示灯等,而现有单片机的管脚资源无法满足需求,故第一步需要想法扩展单片机的I/O口管脚资源。在此,我选择了扩展I/O口最典型的芯片82C55。其可把一组八位I/O管脚扩展为PA、PB、PC三组管脚,并通过寄存器对各组管脚进行配置,从而满足了本次设计的要求。考虑到电
19、梯会有多个按键,而传统的依据单片机自身的I/O口布局键盘的方法显然也是不可行的,故本设计选择了典型的管理键盘的芯片82C79,其重要意义不仅在于减轻了单片机I/O口的开支负担,而且可以代替单片机完成各个按键的键值编写工作,单片机只要从其FIFO寄存器中直接读取键值即可得知哪个按键被按下,进而进行相应的操作。另外,电路板上还有一些扩展的子电路模块,例如MAX232串口下载模块,U口供电模块等等,当然这些都是方便程序的下载与调试的。并考虑到电路板的面积与价格问题,一些芯片与二极管、电阻等用的是贴片封装。2.2硬件电路单片机最小系统模块单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功
20、能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。在本设计中,最小系统应该包括:单片机、晶振电路、复位电路等。如图2.1所示,晶振电路由C1与C2和晶振组成,晶振是给单片机提供工作信号脉冲的。它的速率就是单片机的工作速率,简单地说,没有晶振,就没有时钟周期,没有时钟周期,就无法执行程序代码,单片机就无法工
21、作。并在晶振的两引脚处接入两个10pF-50pF的瓷片电容接地用来削减偕波对电路的稳定性的影响。复位电路采取的为手动按键复位电路,由电容C13,电阻R11、R12和开关RESET组成,当单片机的复位引脚RESET出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。每次复位后,单片机的程序都会从第一条开始从新执行。另外,还额外设计了滤波防干扰电路,由C13与R12组成,电源先经过它们再接入单片机的Vcc,可以有效的减少其中的杂波带来的干扰。可编程I/O扩展芯片82C55模块8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I
22、/O口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。 其各口功能可由软件选择,使用灵活,通用性强。8255可作为单片机与多种外设连接时的中间接口电路。其芯片引脚图如图2.2所示。图2. 1单片机最小系统图2.282C55引脚分布D7D0(data bus):三态、双向数据线,与CPU数据总线连接,用来传送数据。(chip select):片选信号线,低电平有效时,芯片被选中。A1, A0(port address):地址线,用来选择内部端口。(read):读出信号线,低电平有效时,允许数据读出。(write):写入信号线,低电平有效时,允许数据写入。RESET(reset):复位
23、信号线,高电平有效时,将所有内部寄存器(包括控制寄存器)清0。PA7PA0(port A):A口输入/输出信号线。PB7PB0(port B):B口输入/输出信号线。PC7PC0(port C):C口输入/输出信号线。VCC:5V电源。 GND:电源地线。 8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口A、B、C口。由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。1、与CPU连接部分根据定义,8255能并行传送8位数据,所以其数据线为8根D
24、0D7。由于8255具有3个通道A、B、C,所以只要两根地址线就能寻址A、B、C口及控制寄存器,故地址线为两根A0A1。此外CPU要对8255进行读、写与片选操作,所以控制线为片选、复位、读、写信号。各信号的引脚编号如下:(1)数据总线DB:编号为D0D7,用于8255与CPU传送8位数据。(2)地址总线AB:编号为A0A1,用于选择A、B、C口与控制寄存器。(3)控制总线CB:片选信号、复位信号RST、写信号、读信号。当CPU要对8255进行读、写操作时,必须先向8255发片选信号选中8255芯片,然后发读信号或写信号对8255进行读或写数据的操作。2、与外设接口部分根据定义,8255有3个
25、通道A、B、C与外设连接,每个通道又有8根线与外设连接,所以8255可以用24根线与外设连接,若进行开关量控制,则8255可同时控制24路开关。各通道的引脚编号如下:(1)A口:编号为PA0PA7,用于8255向外设输入输出8位并行数据。(2)B口:编号为PB0PB7,用于8255向外设输入输出8位并行数据。(3)C口:编号为PC0PC7,用于8255向外设输入输出8位并行数据,当8255工作于应答I/O方式时,C口用于应答信号的通信。3、控制器8255将3个通道分为两组,即PA0PA7与PC4PC7组成A组,PB0PB7与PC0PC3组成B组。如图7.5所示,相应的控制器也分为A组控制器与B
26、组控制器,各组控制器的作用如下:(1)A组控制器:控制A口与上C口的输入与输出。(2)B组控制器:控制B口与下C口的输入与输出。在本设计中,8255与单片机间的通信采取的时模拟时序的方法。单片机的P0口只是用作了数据线,这样与以往的采用P0口数据地址线分时复用的方法相比,简化了电路构造(因为这样可以少用一个芯片74HC573)。具体的电路子模块如图2.3所示,三组扩展管脚均得到了充分的利用。PA口与PB口负责每层楼的上下按键显示灯的亮灭,而PC口负责电梯所到达当前楼层的楼层显示工作。同时,由于干扰等原因,82C55所输出的电压值偶尔偏低,这样直接驱动二极管时,可能会出现显示昏暗甚至不亮的问题,
27、故而在此加上了一个非门,可以起到提高电平值的作用。P1与P2为两个220欧的排阻,用于限流作用,以防二极管由于电压过高所导致的可能被烧坏。芯片82C55的数据口D0D7分别与单片机的P0口各管脚相连,进行数据的传输。而和也当然与单片机的和相连,方便数据或者命令的读与写。其寻址管脚A0与A1分别与单片机的P20与P21相连,操作时只需对P2口的对应两管脚输出合理的高低电平组合,即可选中芯片82C55的相应寄存器,进而进行相应操作。芯片的片选由单片机的P26控制,且低电平有效。其复位管脚RESET与单片机的复位管脚可直接相连。当然,有时芯片82C55的反应没有单片机快速,此时可以进行“软复位”,即
28、让其复位管脚RESET与单片机的某个闲置的I/0管脚相连,通过人为的控制此管脚图2.382C55数码管控制模块的高低电平及其时间来对芯片82C55进行复位。即让此I/O管脚输出高电平,且保持一段时间,保证在此时间段内,芯片82C55有足够的时间复位后,再让此管脚恢复低电平即可。另外,本设计中所用的数码管为共阳型。其引脚分布如图2.4所示。有图可知,当要显示特定字符时,只需向其相应段的管脚输入低电平,此段即亮;反之同理,若要其某段不亮,只需输入高电平即可。了解此原理便可方便对其的编程工作。 图2.4共阳极数码管内部结构可编程按键控制芯片82C79模块Intel8279芯片是一种通用的可编程序的键
29、盘、显示接口器件,单个芯片就能完成键盘输入和LED显示控制两种功能。其引脚分布如图2.5所示。8279包括键盘输入和显示输出两个部分。键盘部分提供的扫描方式,可以和64个按键或传感器的阵列相连。能自动消除开关抖动以及为N个键同时按下提供保护。图2.5 8279引脚分布主要管脚的定义为:(片选):输入线,当=0时8279被选中,允许CPU对其读、写,否则被禁止。A0(数据选择):输入线。当A0=1时CPU写入数据为命令字,读出数据为状态字;A0=0时CPU读、写的字节均为数据。DB0DB7:与单片机通信的数据引脚,用于传送数据。Vcc、GND:电源端与地端,用于给芯片提供电源。、(读、写信号):
30、输入线。低电平有效,来自CPU的控制信号,控制8279的读、写操作。IRQ(中断请求):输出线。高电平有效。在键盘工作方式中,当FIFO/传感器RAM存有数据时,IRQ为高电平。CPU每次从RAM中读出数据时,IRQ变为低电平。若RAM中仍有数据,则IRQ再次恢复高电平。在传感器工作方式中,每当检测到传感器状态变化时,IRQ就出现高电平。SL0SL3(扫描线):输出线。用来扫描键盘和显示器。它们可以编程设定为编码(4中取1)或译码输出(16取1)。RL0RL7(回复线):输入线。它们是键盘矩阵或传感矩阵的列(或行)信号输入线。SHIFT(移位信号):输入线、高电平有效。该输入信号是键盘数据的最
31、高位(D7),通常用来扩充键开关的功能,作为控制功能键用。在选通输入方式时,该信号的上升沿可将来自RL0RL7的数据存入FIFO RAM中。在传感器输入下,该信号无效。OUTA0OUTA3(A组显示信号):输出线。OUTB0OUTB3(B组显示信号):输出线。这两组引线都是显示数据输出线,与多位数字显示的扫描线SL0SL3同步,两组可以独立使用,也可以合并使用。BD(显示消隐):输出线。低电平有效。该信号在数字切换显示或使用消隐命令时,将显示消隐。其在本设计中的工作电路图模块如图2.6所示:图2.6 8279键盘控制模块由图可知,其八位并行数据管脚分别与单片机的P0口各管脚相连。读写信号端也分
32、别与单片机的对应。而其片选由P27控制,低电平有效。其CLK管脚与ALE相连,单片机正常工作时,ALE管脚输出方波,频率为单片机工作频率的六分之一。而芯片82C79的扫描键盘的频率正是由此而产生,当然i用这么高的频率,还需要继续对其分频后方可供82C79使用。复位键同样与单片机的复位键相通。而至于有些管脚如BD、SHIFT、CNTL/S等由于在此设计中无甚意义,故均将其接地处理。其工作机理为:82C79的SL0SL2在芯片工作时,不断以固定的频率输出低电平,当然是同一时间只选择其中一根线为低电平,其他还未高电平,同时扫描RL0RL7端,若得到某各端口返回低电平,在经过消抖处理后仍为低电平,则说
33、明SL0SL2当前输出低电平的那根线与RL0RL7当前返回低电平的那根线的交叉处的那个开关被按下了。那么芯片82C79会自动将该按键按照规定的协议翻译为相应的键值(每个按键都有自己唯一的键值标示,这便于在编写程序时读取键值进而进行散转),存储与FIFO寄存器中,同时,由于该寄存器中存有单片机未读取的值,IRQ管脚就会自动输出高电平,再经过非门后对单片机的INT0产生中断,此时只需在编程时在中断程序中对其进行相应处理即可。MAX232串口下载模块与附加电源模块等由于程序绝不可能第一次编写完就可以达到预设的目的,其间要经过很多次的更改修正,故为了便于程序的调试工作,我在此电路板上增设了一个MAX2
34、32串口下载模块,这样便可以不用取下单片机去其他的电路板上下载,而直接便可以在此电路板上完成了。同时为便于电源的引入,我选择了电脑USB口输出的5V直流电源,这样无需再用大型的电源设备,随处便可以调试。他们的电路图如图2.7所示:图2.7 串口下载模块MAX232电路时该芯片数据手册中提供的典型应用图。MAX232是一个电荷泵器件,它采用开关电容技术将5V电压升压和获取负电压。至于电源模块,便比较简单了,USB口通常有四条引出线,其中边缘两根便为电源线,一个为+5V直流端,一个为地端。中间两根为差分信号线D+与D-,负责信号的串行通信。但由于此处只用做电源功能,故中间两根无需接入。+5V直流端
35、通过一个按键开关并经过一10微法的电容滤波后接入Vcc,供整个电路板供电。当电源导通后,电源指示二极管会高亮。同时,基于人性化处理,在电梯上下行时,我专门用若干个二极管排列成上下箭头的形状,如图所示。中间的四个发光二极管组成一竖线型,并处于常亮状态,当电梯上行时,与单片机P13管脚连接的UP端将输出低电平,经过一非门后使组成上三角的四个发光二极管点亮,从而形成以向上箭头;同理,当下行时,与单片机P11脚相连的DOWN端将输出低电平,使组成下三角的四个发光二极管导通,形成向下箭头,如图2.8所示。图2.8 上下行箭头显示模块2.3 本章小结本章对设计中的硬件环节作了详细的介绍,并将其分为若干模块
36、,分别为单片机最小系统模块、82C55发光二极管显示模块、8279键盘控制与数码管显示模块、串口下载模块、电源模块等。它们均具有不可或缺的功能及特点。整个硬件系统的工作机理为:单片机最小系统为整个系统提供最基本的运行环境,8279通过扫描按键是否按下,向单片机发出中断,单片机进行相应处理,并通过82C55控制发光二极管的两灭、通过8279控制当前楼层的显示。第三章芯片基本读写的实现3.1引言本设计主要用到三个芯片,即单片机82C82、I/O口扩展芯片82C55、按键控制芯片8279。它们之间只有完美无误地进行通信,才可以保证更高程序思想的实现。本章就以此为目的,详细探讨两芯片的内部协议,包括引
37、脚排列,内部寄存器的数据结构,操作特点等等。最后是两芯片的初始化函数。3.2单片机对芯片82C55的基本读写与一般其他的芯片类似,对82C55芯片的操作,一般也即对其内部寄存器的操作。其内部寄存器分为两类,一类为命令寄存器,另一类为数据寄存器。很明显,由于82C55的功能为将一组单片机I/O口扩展为三组I/O口,那么肯定要有三组数据寄存器,分别对应着它的三组I/O口,即PA口,PB口与PC口,那么82C55芯片便有四个寄存器,正好可以用两位的地址线进行寻址(即管脚A0与A1)。大概得其读寄存器的流程图3.1图3.1 读写寄存器流程图具体的说,其过程为:开始选中该芯片(低电平有效),而后设置好所
38、要读写的寄存器的地址,也即设置好A0与A1的数值组合,若为读寄存器,则让单片机读引脚P37为低电平,反之若为写寄存器,则让单片机写引脚P36为低电平,然后把要读或者写的数据放到数据口P0口上(需要注意的是,当单片机读寄存器时,对于其自身来说,是输入数据,故此时需先让P0口值为高电平0xff为下一步的输入做准备,而此流程图的最后一步即为这种情况做准备的),一段短短的稳定时间后再让读引脚或者写引脚为高电平,则在由低到高的跳变中,数据得到了转移。然后再片选无效,以防以后的数据传输产生相互干扰。最后数据口P0置为0xff,为方便下次可能的输入做准备。3.3芯片82C55的初始化芯片82C55的逻辑构造
39、该芯片的逻辑构造如图3.2所示, 图3.2 82C55逻辑构造图1、三个并行输入输出端口(端口A、端口B、端口C) 8255A有A、B、C三个并行输入输出端口(简称为A口、B口、C口),其功能全部由程序设定,每个端口都有自己的特点。A口、B口通常作为独立的I/O端口使用,C口也可以作为一般的I/O端口使用,但当A口、B口作为应答式的I/O口使用时,C口分别用来为A口、B口提供应答控制信号。2、读/写控制逻辑读/写控制逻辑用于管理数据、控制字或状态字的传送,其控制信号有以下几种:(1) 片选信号,低电平有效允许8255A与CPU交换信息。(2) 读信号,低电平有效允许CPU从8255A端口中读取
40、数据或状态信息。(3) ,写信号,低电平有效允许CPU将数据、控制字写入到8255A中。(4) RESET,复位信号,高电平有效。清除8255A所有控制寄存器内容,并将各端口置成输入方式。(5) A1、A0,8255A片内端口寻址地址。3、A组和B组控制电路A组和B组控制电路接受读/写控制逻辑的信号和CPU送入的控制字,然后决定各端口的功能。A组控制电路控制A口和C口的高4位(PC7PC4);B组控制电路控制B口和C口的低4位(PC3PC0)。还可根据控制字的要求对C口的某位实现置0或置1的操作。4、数据总线缓冲器数据总线缓冲器是一个双向三态的8位缓冲器,可与系统的数据总线直接相连,实现CPU
41、和8255A之间的信息传送。82C55芯片内部有四个寄存器,即命令寄存器、PA口寄存器、PB口寄存器、PC口寄存器。其中,向命令中写入数据可以控制芯片各扩展口的工作方式。向后三者寄存器中写入数据,芯片会自动将其取出,并以高低电平的形式分布于各相应管脚。并且,三组扩展口在作为输出时,均具有锁存功能。由于有四组口,故相应的应该有两位地址来对其寻址。芯片上的A0、A1即为此而设计,当A0=0,A1=0时,寻址的为PA口寄存器;当A0=1,A1=0时,寻址的为PB口寄存器;当A0=0,A1=1时,寻址的为PC口寄存器;当A0=1,A1=1时,寻址的为命令(控制)寄存器。具体的端口选择与操作功能如表3.
42、1所示表3.18255A端口选择及操作功能表A1A0端口及操作功能00010端口A数据总线输入操作(读)01010端口B数据总线10010端口C数据总线00100数据总线端口A输出操作(写)01100数据总线端口B10100数据总线端口C11100数据总线控制寄存器××××1未选中8255A,数据总线三态11010非法状态(不能读控制寄存器)××110数据总线三态芯片82C55的工作方式该芯片具有三种可选的工作方式,分别便于不同情况时供使用者以更为方便的选择。现对其工作方式做一简要介绍如下:1、方式0基本输入输出方式(1) 方式0的工
43、作特点方式0称为基本输入输出方式,该方式下可将3个数据端口划分为4个独立的部分:A口和B口作为两个8位端口,C口的高4位和低4位可以用作两个4位端口(当然也可以作为一个8位端口),各个端口都可以独立用作输入或输出。其特性如下:1. 任何端口都具有输出及输入功能。2. 输出时,各Port 均有锁定功能,能将信号锁定在最后一次的输出状态上。3. 输入无锁定功能,数据收到后,端口上的信号将不会保留最后一次输入的状态。4. 有2 个8 位端口(PA 和PB)及2 个4 位端口(PC0PC3 和PC4PC7)可供利 用。5. 共可组成16 种不同的输出入状态。(2) 方式0的使用场合方式0使用
44、在无条件传送和查询式传送两种场合。2、方式1选通输入输出方式(1) 方式1的工作特点方式1是一种选通输入输出方式。在这种工作方式下,端口A、端口B和端口C被分为两个组。端口A和端口B用作数据的输入/输出,端口C的一些引脚信号被规定为端口A、B的联络信号,这些联络信号和C口的各引脚保持固定的对应关系,不能用程序改变。1. A/B口输入的联络信号STB :输入选通信号,低电平有效,外设输入;当该信号有效时,使8255的A/B口接收外设的8位数据。信号通过PC4/ A口、 PC2/ B口引入。IBF:输入满信号,高电平有效,8255输出;当该信号有效时,表示8255已接收数据。信号通过PC5/ A口
45、、 PC1/ B口引出。INTR:中断请求信号,高电平有效,8255输出;当该信号有效时, 8255向CPU申请中断(读取数据),信号通过PC3/ A口、 PC0/ B口引出。INTE:中断允许标志,是否允许发出中断申请( INTR );当设置PC4=1( A口的标志), PC2=1 ( B口的标志)时,中断允许。2. A/B口输出的联络信号OBF :输出满信号,低电平有效, 8255输出; 当该信号有效时,通知外设,A/B口的数据准备好。信号通过PC7/ A口、 PC1/ B口引出。ACK:外设回答信号,低电平有效;当该信号有效时,表示外设已空闲。信号通过PC6/ A口、 PC2/ B口引入
46、。INTR:中断请求信号,高电平有效,8255输出;当该信号有效时, 8255向CPU申请中断(输入数据),信号通过PC3/ A口、 PC0/ B口引出。INTE:中断允许标志,是否允许发出中断申请( INTR );当设置PC6=1( A口的标志), PC2=1 ( B口的标志)时,中断允许。方式1的工作特点可归纳如下:端口A和端口B均可工作在方式1输入或输出方式。若端口A和端口B中只有一个工作在方式1,而另一个工作在方式0,则端口C中有3位作为方式1的联络信号,端口C其余5位均可工作在方式0的输入或输出方式。若端口A和端口B都工作在方式1,则C口中6位作其联络信号,剩下的2位还可工作在方式0
47、的输入输出方式。方式1有两种用法:(1) 中断方式。将两个INTE置为1,A组和B组可以使用各自的INTR信号申请中断。(2) 查询方式。微处理器通过读端口C,可以查询IBF、OBF#信号的当前状态,决定是否立即进行数据传输。3、方式2双向输入输出方式方式2只适用于端口A,是双向的输入输出传输方式。在方式2,外设可以在A口的8位数据线上分时向8255A发送数据或从8255A接收数据,但不能同时进行。该方式需占用端口C的5位作为联络信号。端口A工作于方式2时,端口B可选方式0或方式1。芯片82C55的初始化由以上的分析可知,对芯片82C55的初始化,实质上即是规定好它每个扩展口是作为什么方式使用
48、,即是输入还是输出,并且工作于何种方式。图3.3 8255A工作方式控制字格式根据本设计的需求可知,我们只需用到两组扩展口PA和PB,并且他们均是用于控制二极管的亮灭,可见是作为输出使用的;并且他们不需要其他的控制,即只要求作为最基本的输出即可,也即工作于方式0便可。而这一切,均可以通过芯片的方式控制字来加以限定。由以上要求,再结合图3.3我们可以得到该控制字的数值为0x80(二进制为1000 0000)。最后,再把这一命令控制字发送到82C55的命令寄存器即可,命令寄存器对应的地址为A0=1,A1=1。3.4对芯片8279的基本读写与初始化芯片8279的基本读写与82C55类似,由于未用诸如
49、74HC573之类的锁存器,P0口无法实现数据与地址的复用功能,对8279的读写控制也是基于模拟时序的基础上进行的。并且他们的时序操作图大概类似,故在此不再赘述。芯片8279的初始化对该芯片的初始化,也即规定好该芯片的工作方式等,当然由于其功能较为强大,故对其操作的语句也相对多些。一般来说,对8279操作的命令分为八种,分别为:1、键盘/显示器方式命令;2、时钟编程命令;3、读键字命令;4、读显示缓冲器命令;5、写显示缓冲器命令;6、显示器禁止写入/熄灭命令;7、清楚命令;8、结束中断/错误方式设置命令。现分别介绍如下:1、键盘/显示方式设置命令字(表3.2)表3.2 键盘/显示方式设置命令格
50、式D7D6D5D4D3D2D1D0000DDKKK其中:D7、D6、D5=000方式设置命令特征位。DD(D4、D3):来设定显示方式,其定义如下(表3.3):表3.3 D3、D4显示方式 D4 D3显示方式0 08个字符显示,左入口开始0 116个字符显示,左入口开始(复位后状态)1 08个字符显示,右入口开始1 116个字符显示,右入口开始所谓左入口,即显示位置从最左一位(最高位)开始,以后逐次输入的显示字符逐个向右顺序排列; 所谓右入口,即显示位置从最右一位(最低位)开始,以后逐次输入的显示字符时,已有的显示字符逐个向左顺序移动。KKK(D2、 D1、 D0):用来设定七种键盘、显示工作
51、方式(表3. 4):表3.4 D2、D1、D0操作方式D2 D1 D0操作方式0 0 0外部编码扫描键盘(16取1),双键互锁0 0 1内部译码扫描键盘(4取1),双键互锁0 1 0外部编码扫描键盘N键依次读出0 1 1内部译码扫描键盘N键依次读出1 0 0外部译码扫描传感器矩阵方式1 0 1内部译码扫描传感器矩阵方式1 1 0选通输入方式,外部编码显示扫描1 1 1选通输入方式,内部译码显示扫描双键锁定与N键轮回是多键按下时的两种不同的保护方式。双键锁定为两键同时按下提供的保护方法。再消颤周期里,如果有两键同时按下,则只有其中一个键弹起,而另一个键保持在按下位置时,才被认可。N键轮回为N键同
52、时按下的保护方法。当有若干键按下时,键盘扫描能够根据发现他们的顺序,依次将它们的状态送入FIFO RAM中。2、程序时钟命令(表3.5)表3.5程序时钟命令格式D7D6D5D4D3D2D1D0001PPPPP其中:D7、D6、D5=001为时钟命令特征位。PPPPP( D4、D3、D2、D1、D0)用来设定外部输入CLK端的时钟进行分频的分频数N。N取值为231。例如外部时钟频率为2MHZ,PPPPP被置为10100(N=20),则对输入的外部时钟20分频,以获得8279内部要求的100KMZ的基本频率。3、读FIFO/传感器RAM命令(表3.6)表3.6 读FIFO/传感器RAM命令格式D7
53、D6D5D4D3D2D1D0010AIXAAA其中:D7D6D5 =010为读FIFO/传感器RAM命令特征位。该命令字只在传感器方式时使用。在CPU读传感器RAM之前,必须使用这条命令来设定传感器RAM中的8个地址(每个地址一个字节)。AAA(D2、D1、D0)为传感器RAM中的八个字节地址。AI(D4)为自动增量特征位。当AI=1时,每次读出传感器RAM后地址自动加1使地址指针指向下一个存储单元。这样,下一个数据便从下一个地址读出,而不必重新设置读FIFO/传感器RAM命令。在键盘工作方式中,由于读出操做严格按照先入先出顺序,因此,不需使用此命令。4、读显示RAM命令(表3.7)表3.7
54、读显示RAM命令格式D7D6D5D4D3D2D1D0011AIAAAA其中:D7D6D5 =011为读显示RAM命令字的特征位。该命令用来设定将要读出的显示RAM地址。AAAA(D3、D2、D1、D0)用来寻址显示RAM命令字的特征位。由位显示RAM中有16个字节单元故需要4位寻址。AI(D4)为自动增量特征位。当AI=1时,每次读出后地址自动加1指向下一地址。5、写显示RAM命令(表3.8)表3.8 写显示RAM命令格式D7D6D5D4D3D2D1D0100AIAAAA其中:D7D6D5 =100为写显示RAM命令字的特征位。在写显示器RAM之前用该命令用来设定将要写入的显示RAM地址。AA
55、AA(D3、D2、D1、D0)为将要写入的存储单元地址。AI(D4)为自动增量特征位。当AI=1时,每次写入后地址自动加1指向下一次写入地址。6、显示禁止写入/消隐命令特征位(表3.9)表3.9 显示禁止写入/消隐命令格式D7D6D5D4D3D2D1D0101XIWAIWBBLABLB其中:D7D6D5 =101为显示禁止写入/消隐命令特征位。IW/A、IW/B(D3、D2)为A、B组显示RAM写入屏蔽位。由于显示寄存器分成A、B两组,可以单独送数,故用两位来分别屏蔽。当A组的屏蔽位D3=1时,A组的显示RAM禁止写入。因此,从CPU写入显示器RAM数据时,不会影响A的显示。这种情况通常在采用双4位显示器时使用。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汗巾在古代儿童服饰中的应用考核试卷
- 应急预案动态更新与管理考核试卷
- 应急演练培训教材与课程开发优化考核试卷
- 环保型染料与助剂的应用研究考核试卷
- 生物相容性评估方法在改性中的应用考核试卷
- 细胞内微丝动态研究考核试卷
- 危险品仓储有害气体检测技术考核试卷
- 农田土壤微生物肥料效果评价方法考核试卷
- 2024年新疆伊吾县急诊医学(副高)考试题含答案
- 2024年新疆特克斯县普通外科学(副高)考试题含答案
- 2025至2030中国晶圆激光隐形切割机市场发展现状及前景趋势研究报告
- 2025-2030民办职业教育行业竞争格局分析及投资前景与战略规划研究报告
- 油管供货合同协议
- 冶金企业安全月培训课件
- 急性肾小球肾炎诊疗指南
- 2025届贵州省毕节市高三二模语文试题(原卷版+解析版)
- 消毒供应室半年工作总结
- 2025新北师大版七年级数学下册教案(带反思)☆ 问题解决策略:特殊化
- 产品实现过程策划与控制程序研究
- 2025新疆三支一扶真题
- 中国功能食品行业市场运行动态及投资发展潜力分析报告
评论
0/150
提交评论