《基于单片机的电梯控制系统的论文75678.docx》由会员分享,可在线阅读,更多相关《基于单片机的电梯控制系统的论文75678.docx(46页珍藏版)》请在课桌文档上搜索。
1、第一章绪论1.1 课题的背景简介1.1.1 电梯的历史与发展电梯进入人们的生活已经150年了。一个半世纪的风风雨雨,天翻地覆的是历史的变迁,永恒不变的是电梯提升人类生活质量的承诺。生活在接着,科技在发展,电梯也在进步。150年来,电梯的材质由黑白到彩色,样式由直式到斜式,在操纵限制方面更是步步出新手柄开关操纵、按钮限制、信号限制、集选限制、人机对话等等,多台电梯还出现了并联限制,智能群控;双层轿厢电梯展示出节约井道空间,提升运输实力的优势;变速式自动人行道扶梯的出现大大节约了行人的时间;不同外形扇形、三角形、半菱形、半圆形、整圆形的观光电梯则使身处其中的乘客的视线不再封闭。如今,以美国奥的斯公
2、司为代表的世界各大闻名电梯公司各展风姿,仍在接着进行电梯新品的研发,并不断完善修理和保养服务系统。调频门控、智能远程监控、主机节能、限制柜低噪音耐用,一款款集纳了人类在机械、电子、光学等领域最新科研成果的新型电梯竞相问世,冷冰冰的建筑因此散射出人性的光辉,人们的生活因此变得更加美妙。中国最早的一部电梯出现在上海,是由美国奥的斯公司于1901年安装的。1932年由美国奥的斯公司安装在天津利顺德酒店的电梯至今还在平安运转着。1951年,党中心提出要在天安门安装一台由我国自行制造的电梯,天津从庆生电机厂荣接此任,四个月后不辱使命,顺当地完成了任务。十一届三中全会后,沐浴着改革开放的春风,我国电梯业进
3、入了高速发展的时期。在我国任何一个城市,电梯都在被广泛应用着。电梯给人们的生活带来了便利,也为我国现代化建设的加速发展供应了强大的保障。电梯是高层建筑中平安、牢靠、垂直上下的运载工具,对改善劳动条件、减轻劳动强度起到很大的作用。电梯的应用范围很广,可用于宾馆、饭店、办公大楼、商场、消遣场所、仓库以及居民住宅大楼等。在现代社会中,电梯已成为人类必不行少的垂直运输交通工具。1.2 课题的主要探讨内容及设计步骤本课题的主要任务是完成一个电梯系统的调度模块,即依据每个楼层不同顾客的按键需求,让电梯做出合理的推断,正确高效地知道电梯完成各项载客任务。依据此任务,本课题须要探讨的内容有:1、依据系统的技术
4、要求,进行系统硬件的总体方案设计;2、学习单片机的相关学问,并且加以运用;3、选择恰当的芯片,并对其内部协议有所驾驭,便于应用。4、探讨C语言编程,并且规定电梯的工作规则,用C语言加以实现;5、对软件和硬件进行调试,让其协调工作,完成指定任务。结合以上内容,本课题的设计方案步骤如下:关于硬件部分:首先,对实际的电梯系统进行模拟,一般状况下,一个电梯应当具备相关按键、显示二极管、数码管等,由于这是一个调度模块,故没有设计具体的轿厢等机械部分。然后,结合这些实物,选择恰当的芯片,并分成若干模块,支配好各自之间的关系。由于其有诸多按键和显示环节,而单片机的I/O口管脚资源实在有限,故须要I/O口扩展
5、,用以管理二极管;同时要有特地的按键限制芯片,从而便于按键管理。在此,我分别选择了82C55和8279芯片。接着,要完成电路图的设计,画出PCB板,焊接相关器件后进行硬件调试,看是否好用并加以适当的更正。关于软件部分:处于最底层的是对两个芯片的寄存器读写工作,完成后方可进行更高层的应用程序调试。为了使硬件简洁化,我选择了模拟时序的方法读写寄存器,这比总线操作的方法节约了锁存器。然后是关于电梯调度时所遵循的原则作出规定,其必需基于高效与人性化两个原则。最终是运用C语言将规定程序化,以便电梯真正的运作。当然,二者的关系并不是分别的,它们是相辅相成,硬件依据软件来验证,软件依据硬件来调试。经过一个个
6、的发觉问题、一个个的解决问题,最终做出完备的电梯调度模块。1.3 课题的开发环境简介1.3.1 电路图制作软件Altiumdesigner7.0AltiumDesigner7.0不断通过为高速设计供应各种功能来提高用户生产力,这些功能包括交互式长度调整和PCB层片增加等功能。新增的库工具和各种新功能将AltiumDesigner提升成为统一的电子产品开发解决方案。这款最新的更新程序将进一步增加您的实力,让您能够在更短的“设计到制造“周期内生产更为尖端、更具创新性的电子产品。(AltiumDeSigner完全取代了Protel)AltiumDesignerSummer08新增汇入AllegroP
7、CB(*.brd)的转文件功能。AltiumDesigner供应了唯款统一的应用方案,其综合电子产品一体化开发所需的全部必需技术和功能。AltiumDesigner在单一设计环境中集成板级和FPGA系统设计、基于FPGA和分立处理器的嵌入式软件开发以及PCB版图设计、编辑和制造。并集成了现代设计数据管理功能,使得AltiumDesigner成为电子产品开发的完整解决方案一一个既满意当前,也满意将来开发需求的解决方案。1.3.2 C51的程序开发软件Keil单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,
8、目前已极少运用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍运用汇编语言到渐渐运用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil供应了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(UVision)将这些部份组合在一起。运行Keil软件须要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN
9、98、NT、WlN2000、WINXP等操作系统。驾驭这一软件的运用对于运用51系列单片机的爱好者来说是非常必要的,假如你运用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不运用C语言而仅用汇编语言编程,其便利易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。KeilC51软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM语言和C语言的程序设计,界面友好,易学易用。1.4 设计功能要求本设计是为一八层电梯设计调度系统,即使电梯能够合理高效地运行,完成各楼层顾客的接送任务。形象地说,就是
10、要应对不同楼层顾客的不同需求,作出合理高效的推断,使全部顾客在整体运用时间最短的条件下将其运往各自的目的地。这个设计的成品应当可以作为真实电梯的限制系统一样,遵守以下两个原则:一是高效性,二是人性化。而实际电梯所面临的状况无比困难,故本设计的难点除了硬件上面外,还有对这些困难的状况归类化,分为若干个基本状况,另外是用恰当的C语言描述来表达这些困难的逻辑。1.5 本文内容支配在本设计制作的过程中,我查阅阅了大量的相关资料、期刊,并在导师的指导帮助下细致地进行了斟酌。现将论文的章节支配再次做些简要的说明:第一章,即绪论部分,先对电梯的背景学问等做些介绍,并且对与本设计的设计步骤与重点加以说明,简洁
11、介绍了两个与毕设有关的开发软件。其次章,具体地阐述了设计中所用到的各个模块的硬件电路及其工作原理。其中包括单片机最小系统、82C55发光二极管限制模块、8279键盘限制模块和串口下载模块等。第三章,以硬件的物理连接作为基石,以读写芯片内部数据与吩咐寄存器作为基础,以电梯判决函数作为核心,本章具体地讲解并描述了软件系统的工作原理,并对各个重要函数都有相关的说明。其次章系统的硬件设计2.1 引言由于电梯要运输不同楼层的客人,所以要有许多按键才可以让满意不同楼层顾客的需求。而且,电梯还要有人性化的显示,如哪个按钮按下了,就把它对应楼层按钮的二极管点亮,还要有一个数码管实时显示电梯所在层数,用发光二极
12、管组成的上下箭头来表示电梯当前的运行方向等等。而这些零碎的原件,又须要高效的芯片来限制,它们相互之间的物理连接问题这些就是本章所要叙述的硬件设计部分。硬件芯片的选择合理的硬件设计是一个设计胜利的基石,所以在设计之初,我便把自己的主要任务集中于筹划硬件的搭建工作,当然其中须要兼顾软件设计的需求。由于本设计所模拟的楼层共有八层,其中所须要限制的器件较多,如每层都需有两个上下的指示灯,电梯轿厢内也需有去几层的指示灯等,而现有单片机的管脚资源无法满意需求,故第一步须要想法扩展单片机的I/O管脚资源。在此,我选择了扩展I/O口最典型的芯片82C55o其可把一组八位I/O管脚扩展为PA、PB、PC三组管脚
13、,并通过寄存器对各组管脚进行配置,从而满意了本次设计的要求。考虑到电梯会有多个按键,而传统的依据单片机自身的1/0布局键盘的方法明显也是不行行的,故本设计选择了典型的管理键盘的芯片82C79,其重要意义不仅在于减轻了单片机I/O的开支负担,而且可以代替单片机完成各个按键的键值编写工作,单片机只要从其FIFO寄存器中干脆读取键值即可得知哪个按键被按下,进而进行相应的操作。另外,电路板上还有一些扩展的子电路模块,例如MAX232串口下载模块,U口供电模块等等,当然这些都是便利程序的下载与调试的。并考虑到电路板的面积与价格问题,一些芯片与二极管、电阻等用的是贴片封装。2.2 硬件电路单片机最小系统模
14、块单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所须要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时冷,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、困难的输入输出系统集成在一块芯片上。单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。在本设计中,最小系统应当包括:单片机、晶振电路、复位电路等。如图2.1所示,晶振电路由Cl与C2和晶振组成,晶振是给单片机供应工作信号脉冲的。它的速率就是单片机的工作速率,简洁地说,没有晶振
15、,就没有时钟周期,没有时钟周期,就无法执行程序代码,单片机就无法工作。并在晶振的两引脚处接入两个10pF-50pF的瓷片电容接地用来削减偕波对电路的稳定性的影响。复位电路实行的为手动按键复位电路,由电容C13,电阻Rll、R12和开关RESET组成,当单片机的复位引脚RESET出现2个机器周期以上的高电平常,单片机就执行复位操作。假如RST持续为高电平,单片机就处于循环复位状态。每次复位后,单片机的程序都会从第一条起先从新执行。另外,还额外设计了滤波防干扰电路,由C13与R12组成,电源先经过它们再接入单片机的Vcc,可以有效的削减其中的杂波带来的干扰。可编程I/O扩展芯片82C55模块825
16、5是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行VO口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。其各口功能可由软件选择,运用敏捷,通用性强。8255可作为单片机与多种外设连接时的中间接口电路。其芯片引脚图如图2.2所示。O ul 了 Kru.图2.1单片机最小系统1OTQi$DTTQCTU力KxoElGHD73420O,932in29,SA2111和10OQ71202U2o14271526IK%1724182310992021图2.282C55引脚分布D7D0(databus):三态、双向数据线,与CPU数据总线连接,用来传送数据。CS(chipselect)
17、:片选信号线,低电平有效时,芯片被选中。Ai,Ao(ortaddress):地址线,用来选择内部端口。RD(read):读出信号线,低电平有效时,允许数据读出。WR(write):写入信号线,低电平有效时,允许数据写入。RESET(reset):复位信号线,高电平有效时,将全部内部寄存器(包括限制寄存器)清0。PA7PA0(portA):A输入/输出信号线。PB7-PBo(PortB):B口输入/输出信号线。PC7-PCo(portC):C输入/输出信号线。VCC:+5V电源。GND:电源地线。8255作为主机与外设的连接芯片,必需供应与主机相连的3个总线接口,即数据线、地址线、限制线接口。同
18、时必需具有与外设连接的接口AB、C口。由于8255可编程,所以必需具有逻辑限制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、限制部分。1、与CPU连接部分依据定义,8255能并行传送8位数据,所以其数据线为8根DoD70由于8255具有3个通道A、B、C,所以只要两根地址线就能寻址A、B、C口及限制寄存器,故地址线为两根AoA.此外CPU要对8255进行读、写与片选操作,所以限制线为片选、复位、读、写信号。各信号的引脚编号如下:数据总线DB:编号为DoD7,用于8255与CPU传送8位数据。(2)地址总线AB:编号为AoA,用于选择A、B、C口与限制寄存器。限制总线
19、CB:片选信号诙、复位信号RST、写信号诉、读信号记。当CPU要对8255进行读、写操作时,必需先向8255发片选信号氏选中8255芯片,然后发读信号面或写信号而对8255进行读或写数据的操作。2、与外设接口部分依据定义,8255有3个通道A、B、C与外设连接,每个通道又有8根线与外设连接,所以8255可以用24根线与外设连接,若进行开关量限制,则8255可同时限制24路开关。各通道的引脚编号如下:(I)A:编号为PAoPA7,用于8255向外设输入输出8位并行数据。(2)B口:编号为PBo-PB7,用于8255向外设输入输出8位并行数据。(3)C口:编号为PCo-PC7,用于8255向外设输
20、入输出8位并行数据,当8255工作于应答I/O方式时,C口用于应答信号的通信。3、限制器8255将3个通道分为两组,即PAOPA7与PC4PC7组成A组,PBo-PB7与PCoPC3组成B组。如图7.5所示,相应的限制器也分为A组限制器与B组限制器,各组限制器的作用如下:(I)A组限制器:限制A口与上C口的输入与输出。(2)B组限制器:限制B口与下C口的输入与输出。在本设计中,8255与单片机间的通信实行的时模拟时序的方法。单片机的PO口只是用作了数据线,这样与以往的采纳PO口数据地址线分时复用的方法相比,简化了电路构造(因为这样可以少用一个芯片74HC573)o具体的电路子模块如图2.3所示
21、,三组扩展管脚均得到了充分的利用。PA口与PB口负责每层楼的上下按键显示灯的亮灭,而PC口负责电梯所到达当前楼层的楼层显示工作。同时,由于干扰等缘由,82C55所输出的电压值间或偏低,这样干脆驱动二极管时,可能会出现显示昏暗甚至不亮的问题,故而在此加上了一个非门,可以起到提高电平值的作用。Pl与P2为两个220欧的排阻,用于限流作用,以防二极管由于电压过高所导致的可能被烧坏。芯片82C55的数据口Do6分别与单片机的PO口各管脚相连,进行数据的传输。而和WR也当然与单片机的还和WR相连,便利数据或者吩咐的读与写。其寻址管脚AO与Al分别与单片机的P20与P2N相连,操作时只需对P2口的对应两管
22、脚输出合理的凹凸电平组合,即可选中芯片82C55的相应寄存器,进而进行相应操作。芯片的片选由单片机的P2M限制,且低电平有效。其复位管脚RESET与单片机的复位管脚可干脆相连。当然,有时芯片82C55的反应没有单片机快速,此时可以进行“软复位”,即让其复位管脚RESET与单片机的某个闲置的I/O管脚相连,通过人为的限制此管脚图2.382C55数码管限制模块的凹凸电平及其时间来对芯片82C55进行复位。即让此I/O管脚输出高电平,且保持一段时间,保证在此时间段内,芯片82C55有足够的时间复位后,再让此管脚复原低电平即可。另外,本设计中所用的数码管为共阳型。其引脚分布如图2.4所示。有图可知,当
23、要显示特定字符时,只需向其相应段的管脚输入低电平,此段即亮;反之同理,若要其某段不亮,只需输入高电平即可。了解此原理便可便利对其的编程工作。可编程按键限制芯片82C79模块ImeI8279芯片是一种通用的可编程序的键盘、显示接口器件,单个芯片就能完成键盘输入和LED显示限制两种功能。其引脚分布如图2.5所示。8279包括键盘输入和显示输出两个部分。键盘部分供应的扫描方式,可以和64个按键或传感器的阵列相连。能自动消退开关抖动以及为N个键同时按下供应爱护。RL2一140VccRLj2827939RLiCLK-338RLoIRQ一437SH1F17STBRL4-536-CNTLRL5一635SLR
24、L6一734SL2RL7-833SLRESET一932一SLoRD一IO31OUTBoWR-Il30-OUTBiDB0-1229OUTB2DB1-1328OUTB3DB2一1427OUTB0DBl1526-OUTBiDB4-1625一OUTB2DB5一1724OUTB3DBl1823-BDDB71922-CSVss2021A0(CD)主要管脚的定义为:CS(片选):输入线,当免二O时8279被选中,允许CPU对其读、写,否则被禁止。Ao(数据选择):输入线。当Ao=I时CPU写入数据为吩咐字,读出数据为状态字;AO=O时CPU读、写的字节均为数据。DBo-DB7:与单片机通信的数据引脚,用于传
25、送数据。Vcc.GND:电源端与地端,用于给芯片供应电源。近、WR(读、写信号):输入线。低电平有效,来自CPU的限制信号,限制8279的读、写操作。IRQ(中断恳求):输出线。高电平有效。在键盘工作方式中,当FlF0/传感器RAM存有数据时,IRQ为高电平。CPU每次从RAM中读出数据时,IRQ变为低电平。若RAM中仍有数据,则IRQ再次复原高电平。在传感器工作方式中,每当检测到传感器状态变更时,IRQ就出现高电平。SLo-SL3(扫描线):输出线。用来扫描键盘和显示器。它们可以编程设定为编码(4中取1)或译码输出(16取1)。RLo-RL7(回复线):输入线。它们是键盘矩阵或传感矩阵的列(
26、或行)信号输入线。SHIFT(移位信号):输入线、高电平有效。该输入信号是键盘数据的最高位(D7),通常用来扩充键开关的功能,作为限制功能键用。在选通输入方式时,该信号的上升沿可将来自RLo-RL7的数据存入FIFORAM中。在传感器输入下,该信号无效。C)UTAOOUTA3(A组显示信号):输出线。OUTBo-OUTB3(B组显示信号):输出线。这两组引线都是显示数据输出线,与多位数字显示的扫描线SLoSL3同步,两组可以独立运用,也可以合并运用。BD(显示消隐):输出线。低电平有效。该信号在数字切换显示或运用消隐吩咐时,将显示消隐。其在本设计中的工作电路图模块如图2.6所示:由图可知,其八
27、位并行数据管脚分别与单片机的PO口各管脚相连。读写信号端也分别与单片机的对应。而其片选由P27限制,低电平有效。其CLK管脚与ALE相连,单片机正常工作时,ALE管脚输出方波,频率为单片机工作频率的六分之一。而芯片82C79的扫描键盘的频率正是由此而产生,当然i用这么高的频率,还须要接着对其分频后方可供82C79运用。复位键同样与单片机的复位键相通。而至于有些管脚如BD、SHIFT、CNTL/S等由于在此设计中无甚意义,故均将其接地处理。其工作机理为:82C79的SLoSL2在芯片工作时,不断以固定的频率输出低电平,当然是同一时间只选择其中一根线为低电平,其他还未高电平,同时扫描RLORL7端
28、,若得到某各端口返回低电平,在经过消抖处理后仍为低电平,则说明SL0SL2当前输出低电平的那根线与RLoRL7当前返回低电平的那根线的交叉处的那个开关被按下了。那么芯片82C79会自动将该按键依据规定的协议翻译为相应的键值(每个按键都有自己唯一的键值标示,这便于在编写程序时读取键值进而进行散转),存储与FIFO寄存器中,同时,由于该寄存器中存有单片机未读取的值,IRQ管脚就会自动输出高电平,再经过非门后对单片机的INTO产生中断,此时只需在编程时在中断程序中对其进行相应处理即可。MAX232串口下载模块与附加电源模块等由于程序绝不行能第一次编写完就可以达到预设的目的,其间要经过许多次的更改修正
29、,故为了便于程序的调试工作,我在此电路板上增设了一个MAX232串口下载模块,这样便可以不用取下单片机去其他的电路板上下载,而干脆便可以在此电路板上完成了。同时为便于电源的引入,我选择了电脑USB口输出的5V直流电源,这样无需再用大型的电源设备,随处便可以调试。他们的电路图如图2.7所示:MAX232电路时该芯片数据手册中供应的典型应用图。MAX232是一个电荷泵器件,它采纳开关电容技术将5V电压升压和获得负电压。至于电源模块,便比较简洁了,USB口通常有四条引出线,其中边缘两根便为电源线,一个为+5V直流端,一个为地端。中间两根为差分信号线D+与D-,负责信号的串行通信。但由于此处只用做电源
30、功能,故中间两根无需接入。+5V直流端通过一个按键开关并经过一10微法的电容滤波后接入Vcc,供整个电路板供电。当电源导通后,电源指示二极管会高亮。同时,基于人性化处理,在电梯上下行时,我特地用若干个二极管排列成上下箭头的形态,如图所示。中间的四个发光二极管组成一竖线型,并处于常亮状态,当电梯上行时,与单片机Pl3管脚连接的UP端将输出低电平,经过一非门后使组成上三角的四个发光二极管点亮,从而形成以向上箭头;同理,当下行时,与单片机PIAl脚相连的Dc)WN端将输出低电平,使组成下三角的四个发光二极管导通,形成向下箭头,如图2.8所示。图2.8上下行箭头显示模块2.3 本章小结本章对设计中的硬
31、件环节作了具体的介绍,并将其分为若干模块,分别为单片机最小系统模块、82C55发光二极管显示模块、8279键盘限制与数码管显示模块、串口下载模块、电源模块等。它们均具有不行或缺的功能及特点。整个硬件系统的工作机理为:单片机最小系统为整个系统供应最基本的运行环境,8279通过扫描按键是否按下,向单片机发出中断,单片机进行相应处理,并通过82C55限制发光二极管的两灭、通过8279限制当前楼层的显不O第三章芯片基本读写的实现3.1 引言本设计主要用到三个芯片,即单片机82C82、I/O扩展芯片82C55、按键限制芯片8279。它们之间只有完备无误地进行通信,才可以保证更高程序思想的实现。本章就以此
32、为目的,具体探讨两芯片的内部协议,包括引脚排列,内部寄存器的数据结构,操作特点等等。最终是两芯片的初始化函数。3.2 单片机对芯片82C55的基本读写与一般其他的芯片类似,对82C55芯片的操作,一般也即对其内部寄存器的操作。其内部寄存器分为两类,一类为吩咐寄存器,另一类为数据寄存器。很明显,由于82C55的功能为将一组单片机I/O口扩展为三组I/O口,那么确定要有三组数据寄存器,分别对应着它的三组I/O口,即PA口,PB与PC,那么82C55芯片便有四个寄存器,正好可以用两位的地址线进行寻址(即管脚Ao与A)0也许得其读寄存器的流程图3.1具体的说,其过程为:起先选中该芯片(低电平有效),而
33、后设置好所要读写的寄存器的地址,也即设置好Ao与Al的数值组合,若为读寄存器,则让单片机读引脚P37为低电平,反之若为写寄存器,则让单片机写引脚P3M为低电平,然后把要读或者写的数据放到数据口PO口上(须要留意的是,当单片机读寄存器时,对于其自身来说,是输入数据,故此时需先让PO口值为高电平OXff为下一步的输入做打算,而此流程图的最终一步即为这种状况做打算的),一段短短的稳定时间后再让读引脚或者写引脚为高电平,则在由低到高的跳变中,数据得到了转移。然后再片选无效,以防以后的数据传输产生相互干扰。最终数据口PO置为OXff,为便利下次可能的输入做打算。3.3 芯片82C55的初始化芯片82C5
34、5的逻辑构造该芯片的逻辑构造如图3.2所示,A-ARDWRAlCSRESETpa7-pa0 PC7-PC4川P PB7-PB0图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)反片选信号,低电平有
35、效允许8255A与CPU交换信息。(2) RE读信号,低电平有效允许CPU从8255A端口中读取数据或状态信息。(3) WR,写信号,低电平有效允许CPU将数据、限制字写入到8255A中。(4) RESET,复位信号,高电平有效。清除8255A全部限制寄存器内容,并将各端口置成输入方式。(5) AlAO,8255A片内端口寻址地址。3、A组和B组限制电路A组和B组限制电路接受读/写限制逻辑的信号和CPU送入的限制字,然后确定各端口的功能。A组限制电路限制A口和C口的高4位(PC7PC。;B组限制电路限制B口和C口的低4位(PC3PCo)。还可依据限制字的要求对C口的某位实现置0或置1的操作。4
36、、数据总线缓冲器数据总线缓冲器是一个双向三态的8位缓冲器,可与系统的数据总线干脆相连,实现CPU和8255A之间的信息传送。82C55芯片内部有四个寄存器,即吩咐寄存器、PA口寄存器、PB口寄存器、PC口寄存器。其中,向吩咐中写入数据可以限制芯片各扩展口的工作方式。向后三者寄存器中写入数据,芯片会自动将其取出,并以凹凸电平的形式分布于各相应管脚。并且,三组扩展口在作为输出时.,均具有锁存功能。由于有四组口,故相应的应当有两位地址来对其寻址。芯片上的A0、Al即为此而设计,当AO=O,Al=O时,寻址的为PA口寄存器;当AO=I,AI=O时,寻址的为PB口寄存器;当AO=0,Al=I时,寻址的为
37、Pe口寄存器;当AO=1,Al=I时,寻址的为吩咐(限制)寄存器。具体的端口选择与操作功能如表3.1所示表3.18255A端口选择及操作功能表AlAOFWRCS端口及操作功能00010端口AT数据总线输入操作(读)01010端口BT数据总线10010端口CT数据总线00I00数据总线T端口A输出操作(写)01100数据总线T端口B10100数据总线T端口C11100数据总线T限制寄存器XXXX1未选中8255A,数据总线一三态11010非法状态(不能读限制寄存器)XX110数据总线T三态芯片82C55的工作方式该芯片具有三种可选的工作方式,分别便于不同状况时供运用者以更为便利的选择。现对其工作
38、方式做一简要介绍如下:1、方式0基本输入输出方式(1)方式。的工作特点方式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种不同的输出入状态。
39、(2)方式0的运用场合方式0运用在无条件传送和查询式传送两种场合。2、方式1选通输入输出方式(1)方式1的工作特点方式1是一种选通输入输出方式。在这种工作方式下,端口A、端口B和端口C被分为两个组。端口A和端口B用作数据的输入/输出,端口C的一些引脚信号被规定为端口A、B的联络信号,这些联络信号和C的各引脚保持固定的对应关系,不能用程序变更。1. A/B输入的联络信号STB:输入选通信号,低电平有效,外设输入;当该信号有效时,使8255的A/B口接收外设的8位数据。信号通过PC4A口、PC2B口引入。1BF:输入满信号,高电平有效,8255输出;当该信号有效时,表示8255已接收数据。信号通过
40、PC5/A口、PCl/B口引出。INTR:中断恳求信号,高电平有效,8255输出;当该信号有效时,8255向CPU申请中断(读取数据),信号通过PC3A口、PCO/B口引出。INTE:中断允许标记,是否允许发出中断申请(INTR);当设置PC4=1(A口的标记),PC2=1(B口的标记)时,中断允许。2. A/B口输出的联络信号OBF:输出满信号,低电平有效,8255输出;当该信号有效时,通知外设,A/B口的数据打算好。信号通过PC7/A口、PCl/B口引出。ACK:外设回答信号,低电平有效;当该信号有效时,表示外设已空闲。信号通过PC6/A口、PC2/B口引入。INTR:中断恳求信号,高电平
41、有效,8255输出;当该信号有效时,8255向CPU申请中断(输入数据),信号通过PC3/A口、PCO/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的输入输出方式。方式1有两种用法:(1)中断方式。将
42、两个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的初始化,实质上即是规定好它每个扩展口是作为什么方式运用,即是输入还是输出,并且工作于何种方式。1:工作方式 控
43、制字标志位00:方式0、01:方式1端口 A工作方式选择1X:方式211:输入端口 A端口 B0:输出1:输入】端口 C(Ppc,端口 C(PCrPC0)1:输入0:输出1:输入0:输出端口 B工作方式选择0:方式01:方式10:输出J图3.38255A工作方式限制字格式依据本设计的需求可知,我们只需用到两组扩展口PA和PB,并且他们均是用于限制二极管的亮灭,可见是作为输出访用的;并且他们不须要其他的限制,即只要求作为最基本的输出即可,也即工作于方式O便可。而这一切,均可以通过芯片的方式限制字来加以限定。由以上要求,再结合图3.3我们可以得到该限制字的数值为0x80(二进制为10000000)
44、。最终,再把这一吩咐限制字发送到82C55的吩咐寄存器即可,吩咐寄存器对应的地址为Ao=I,Ai=IO3.4对芯片8279的基本读写与初始化芯片8279的基本读写与82C55类似,由于未用诸如74HC573之类的锁存器,PO口无法实现数据与地址的复用功能,对8279的读写限制也是基于模拟时序的基础上进行的。并且他们的时序操作图也许类似,故在此不再赘述。芯片8279的初始化对该芯片的初始化,也即规定好该芯片的工作方式等,当然由于其功能较为强大,故对其操作的语句也相对多些。一般来说,对8279操作的吩咐分为八种,分别为:1、键盘/显示器方式吩咐;2、时钟编程吩咐;3、读键字吩咐;4、读显示缓冲器吩
45、咐;5、写显示缓冲器吩咐;6、显示器禁止写入/熄灭吩咐;7、清晰吩咐;8、结束中断/错误方式设置吩咐。现分别介绍如下:1、键盘/显示方式设置吩咐字(表3.2)表3.2键盘/显示方式设置吩咐格式D7D6D5D4D3D2DIDO000DDKKK其中:D7、D6、D5=000方式设置吩咐特征位。DD(D4D3):来设定显示方式,其定义如下(表3.3):表3.3D3、D4显示方式D4D3显示方式008个字符显示,左入口起先0116个字符显示,左入口起先(复位后状态)108个字符显示,右入口起先1i16个字符显示,右入口起先所谓左入口,即显示位置从最左一位(最高位)起先,以后逐次输入的显示字符逐个向右依次排列;所谓右入口,即显示位置从最右一位(最低位)起先,以后逐次输入的显示字符时,已有的显示字符逐个向左依次移动。KKK(D2、Dl、DO):用来设定七种键盘、显示工作方式(表3.4):表34D2、DKDo操作方式D2D1DO操作方式000外部编码扫描键盘(16取1),双键互锁001内部译码扫描键盘(4取1),双键互锁010外部编码扫描键盘N键依次读出011内部译码扫描键盘N键依次读出100外部译码扫描传感器矩阵方式101内部译码扫描传感器矩阵方式110选通输入方式,外部编码显示扫描111选通