基于单片机的电梯控制系统的论文知识讲解.doc
Good is good, but better carries it.精益求精,善益求善。基于单片机的电梯控制系统的论文-基于单片机的电梯控制系统的论文.txt喜欢我这是革命需要,知道不?!你不会叠衣服一边呆着去!以后我来叠!我一定要给你幸福,谁也别想拦着。本文由huge13145贡献doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。周口科技职业学院毕业生论文周口科技职业学院毕业论文(设计)题目:单片机控制电梯系统胡京葛200801010199电子工程系电子三班张奎2011年02月28日姓名学号系别班级指导教师1周口科技职业学院毕业生论文目录目录1摘要3第一章绪论31.1课题的背景简介31.2课题的主要研究内容及设计步骤41.3设计功能要求5第二章系统的硬件设计62.1硬件芯片的选择62.2单片机最小系统模块62.3可编程I/O扩展芯片82C55模块72.4可编程按键控制芯片82C79模块92.5MAX232串口下载模块与附加电源模块等12第三章芯片基本读写的实现143.1单片机对芯片82C55的基本读写143.2芯片82C55的初始化153.3对芯片8279的基本读写与初始化163.3.1芯片8279的基本读写163.3.2芯片8279的初始化16第四章系统的高层软件设计244.1引言244.2单片机中断处理函数254.3电梯判决函数254.3.1电梯所处状态的分类与判定254.3.2电梯各情况下所对应的处理方法274.4电梯运行函数294.5主函数30总结31致谢32参考文献33附录332周口科技职业学院毕业生论文单片机控制电梯系统毕业设计应用电子技术指导老师摘要胡京葛张奎设计系统研究了基于AT89C55与8279单片机为核心配以必要的传,感装置,实现对电梯轿厢的自动控制。在各楼层设置了位置检测电路,利用磁控传感器对电梯轿厢的位置进行准确定位,实时控制轿厢的运动状态;通过对各楼层用户按钮信号的检测和处理,按预定的运行规则和程序,发出控制信号对继电器进行调节,运用继电器来驱动直流电动机,从而控制电梯的启停、升降和运行时间。整个设计系统实现了电梯控制的基本功能。关键词AT89C558279电梯控制单片机第一章1.1课题的背景简介绪论电梯进入人们的生活已经150年了。一个半世纪的风风雨雨,翻天覆地的是历史的变迁,永恒不变的是电梯提升人类生活质量的承诺。生活在继续,科技在发展,电梯也在进步。150年来,电梯的材质由黑白到彩色,样式由直式到斜式,在操纵控制方面更是步步出新手柄开关操纵、按钮控制、信号控制、集选控制、人机对话等等,多台电梯还出现了并联控制,智能群控;双层轿厢电梯展示出节省井道空间,提升运输能力的优势;变速式自动人行道扶梯的出现大大节省了行人的时间;不同外形扇形、三角形、半菱形、半圆形、整圆形的观光电梯则使身处其中的乘客的视线不再封闭。如今,以美国奥的斯公司为代表的世界各大著名电梯公司各展风姿,仍在继续进行电梯新品的研发,并不断完善维修和保养服务系统。3周口科技职业学院毕业生论文调频门控、智能远程监控、主机节能、控制柜低噪音耐用,一款款集纳了人类在机械、电子、光学等领域最新科研成果的新型电梯竞相问世,冷冰冰的建筑因此散射出人性的光辉,人们的生活因此变得更加美好。中国最早的一部电梯出现在上海,是由美国奥的斯公司于1901年安装的。1932年由美国奥的斯公司安装在天津利顺德酒店的电梯至今还在安全运转着。1951年,党中央提出要在天安门安装一台由我国自行制造的电梯,天津从庆生电机厂荣接此任,四个月后不辱使命,顺利地完成了任务。十一届三中全会后,沐浴着改革开放的春风,我国电梯业进入了高速发展的时期。在我国任何一个城市,电梯都在被广泛应用着。电梯给人们的生活带来了便利,也为我国现代化建设的加速发展提供了强大的保障。电梯是高层建筑中安全、可靠、垂直上下的运载工具,对改善劳动条件、减轻劳动强度起到很大的作用。电梯的应用范围很广,可用于宾馆、饭店、办公大楼、商场、娱乐场所、仓库以及居民住宅大楼等。在现代社会中,电梯已成为人类必不可少的垂直运输交通工具。1.2课题的主要研究内容及设计步骤本课题的主要任务是完成一个电梯系统的调度模块,即根据每个楼层不同顾客的按键需求,让电梯做出合理的判断,正确高效地知道电梯完成各项载客任务。根据此任务,本课题需要研究的内容有:1、根据系统的技术要求,进行系统硬件的总体方案设计;2、学习单片机的相关知识,并且加以运用;3、选择恰当的芯片,并对其内部协议有所掌握,便于应用。4、研究C语言编程,并且规定电梯的工作规则,用C语言加以实现;5、对软件和硬件进行调试,让其协调工作,完成指定任务。结合以上内容,本课题的设计方案步骤如下:关于硬件部分:首先,对实际的电梯系统进行模拟,一般情况下,一个电梯应该具备相4周口科技职业学院毕业生论文关按键、显示二极管、数码管等,由于这是一个调度模块,故没有设计具体的轿厢等机械部分。然后,结合这些实物,选择恰当的芯片,并分成若干模块,安排好各自之间的关系。由于其有诸多按键和显示环节,而单片机的I/O口管脚资源实在有限,故需要I/O口扩展,用以管理二极管;同时要有专门的按键控制芯片,从而便于按键管理。在此,我分别选择了82C55和8279芯片。接着,要完成电路图的设计,画出PCB板,焊接相关器件后进行硬件调试,看是否好用并加以适当的更正。关于软件部分:处于最底层的是对两个芯片的寄存器读写工作,完成后方可进行更高层的应用程序调试。为了使硬件简单化,我选择了模拟时序的方法读写寄存器,这比总线操作的方法节省了锁存器。然后是关于电梯调度时所遵循的原则作出规定,其必须基于高效与人性化两个原则。最后是使用C语言将规定程序化,以便电梯真正的运作。当然,二者的关系并不是分离的,它们是相辅相成,硬件依据软件来验证,软件依据硬件来调试。经过一个个的发现问题、一个个的解决问题,最终做出完美的电梯调度模块。1.3设计功能要求本设计是为一八层电梯设计一调度系统,即使电梯能够合理高效地运行,完成各楼层顾客的接送任务。形象地说,就是要应对不同楼层顾客的不同需求,作出合理高效的判断,使所有顾客在整体运用时间最短的条件下将其运往各自的目的地。这个设计的成品应该可以作为真实电梯的控制系统一样,遵守以下两个原则:一是高效性,二是人性化。而实际电梯所面临的情况无比复杂,故本设计的难点除了硬件上面外,还有对这些复杂的情况归类化,分为若干个基本情况,另外是用恰当的C语言描述来表达这些复杂的逻辑。5周口科技职业学院毕业生论文第二章2.1硬件芯片的选择系统的硬件设计合理的硬件设计是一个设计成功的基石,所以在设计之初,我便把自己的主要任务集中于筹划硬件的搭建工作,当然其中需要兼顾软件设计的需求。由于本设计所模拟的楼层共有八层,其中所需要控制的器件较多,如每层都需有两个上下的指示灯,电梯轿厢内也需有去几层的指示灯等,而现有单片机的管脚资源无法满足需求,故第一步需要想法扩展单片机的I/O口管脚资源。在此,我选择了扩展I/O口最典型的芯片82C55。其可把一组八位I/O管脚扩展为PA、PB、PC三组管脚,并通过寄存器对各组管脚进行配置,从而满足了本次设计的要求。考虑到电梯会有多个按键,而传统的依据单片机自身的I/O口布局键盘的方法显然也是不可行的,故本设计选择了典型的管理键盘的芯片82C79,其重要意义不仅在于减轻了单片机I/O口的开支负担,而且可以代替单片机完成各个按键的键值编写工作,单片机只要从其FIFO寄存器中直接读取键值即可得知哪个按键被按下,进而进行相应的操作。另外,电路板上还有一些扩展的子电路模块,例如MAX232串口下载模块,U口供电模块等等,当然这些都是方便程序的下载与调试的。并考虑到电路板的面积与价格问题,一些芯片与二极管、电阻等用的是贴片封装。2.2单片机最小系统模块单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片6周口科技职业学院毕业生论文机可以工作的系统。在本设计中,最小系统应该包括:单片机、晶振电路、复位电路等。如图2.1所示,晶振电路由C1与C2和晶振组成,晶振是给单片机提供工作信号脉冲的。它的速率就是单片机的工作速率,简单地说,没有晶振,就没有时钟周期,没有时钟周期,就无法执行程序代码,单片机就无法工作。并在晶振的两引脚处接入两个10pF-50pF的瓷片电容接地用来削减偕波对电路的电阻R11、稳定性的影响。复位电路采取的为手动按键复位电路,由电容C13,R12和开关RESET组成,当单片机的复位引脚RESET出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。每次复位后,单片机的程序都会从第一条开始从新执行。另外,还额外设计了滤波防干扰电路,由C13与R12组成,电源先经过它们再接入单片机的Vcc,可以有效的减少其中的杂波带来的干扰。2.3可编程I/O扩展芯片82C55模块8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。其各口功能可由软件选择,使用灵活,通用性强。8255可作为单片机与多种外设连接时的中间接口电路。其芯片引脚图如图2.2所示。7周口科技职业学院毕业生论文VCC8051P101DOWNP112P123P134UPP145P156P167P178INT113INT012T115T014VCC31C120P1918YRESET911MRD17WR16P10P11P12P13P14P15P16P17INT1INT0T1T0EA/VPX1X2RESETRDWRRXDTXDALE/PPSEN10113029RXDTXDALEP00P01P02P03P04P05P06P07P20P21P22P23P24P25P26P27393837363534333221A022A1232425262728P00P01P02P03P04P05P06P07P3123456789VCCRESET10UFCJ3P2010KP21P22P23P24P25P268255csP278279cs+1kR1110kR12C2GND20PRESET图2.1单片机最小系统图2.282C55引脚分布8周口科技职业学院毕业生论文D7D0(databus):三态、双向数据线,与CPU数据总线连接,用来传送数据。(chipselect):片选信号线,低电平有效时,芯片被选中。A1,A0(portaddress):地址线,用来选择内部端口。(read):读出信号线,低电平有效时,允许数据读出。(write):写入信号线,低电平有效时,允许数据写入。RESET(reset):复位信号线,高电平有效时,将所有内部寄存器(包括控制寄存器)清0。PA7PA0(portA):A口输入/输出信号线。PB7PB0(portB):B口输入/输出信号线。PC7PC0(portC):C口输入/输出信号线。VCC:5V电源。GND:电源地线。8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口A、B、C口。由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。2.4可编程按键控制芯片82C79模块Intel8279芯片是一种通用的可编程序的键盘、显示接口器件,单个芯片就能完成键盘输入和LED显示控制两种功能。其引脚分布如图2.5所示。8279包括键盘输入和显示输出两个部分。键盘部分提供的扫描方式,可以和64个按键或传感器的阵列相连。能自动消除开关抖动以及为N个键同时按下提供保护。9周口科技职业学院毕业生论文图2.5主要管脚的定义为:(片选):输入线,当否则被禁止。8279引脚分布=0时8279被选中,允许CPU对其读、写,A0(数据选择):输入线。当A0=1时CPU写入数据为命令字,读出数据为状态字;A0=0时CPU读、写的字节均为数据。DB0DB7:与单片机通信的数据引脚,用于传送数据。Vcc、GND:电源端与地端,用于给芯片提供电源。、(读、写信号):输入线。低电平有效,来自CPU的控制信号,控制8279的读、写操作。IRQ(中断请求):输出线。高电平有效。在键盘工作方式中,当FIFO/传感器RAM存有数据时,IRQ为高电平。CPU每次从RAM中读出数据时,IRQ变为低电平。若RAM中仍有数据,则IRQ再次恢复高电平。10周口科技职业学院毕业生论文在传感器工作方式中,每当检测到传感器状态变化时,IRQ就出现高电平。SL0SL3(扫描线):输出线。用来扫描键盘和显示器。它们可以编程设定为编码(4中取1)或译码输出(16取1)。RL0RL7(回复线):输入线。它们是键盘矩阵或传感矩阵的列(或行)信号输入线。SHIFT(移位信号):输入线、高电平有效。该输入信号是键盘数据的最高位(D7),通常用来扩充键开关的功能,作为控制功能键用。在选通输入方式时,该信号的上升沿可将来自RL0RL7的数据存入FIFORAM中。在传感器输入下,该信号无效。OUTA0OUTA3(A组显示信号):输出线。OUTB0OUTB3(B组显示信号):输出线。这两组引线都是显示数据输出线,与多位数字显示的扫描线SL0SL3同步,两组可以独立使用,也可以合并使用。BD(显示消隐):输出线。低电平有效。该信号在数字切换显示或使用消隐命令时,将显示消隐。其在本设计中的工作电路图模块如图2.6所示:827927262524P0012P0113P0214P0315P0416P0517P0618P071974LS04INT012U3F1348279csP2722RD10WR11P20A021ALE3RESET9OUTA0OUTA1OUTA2OUTA3DB0DB1DB2DB3DB4DB5DB6DB7IRQCSRDWRA0CLKRESETOUTB0OUTB1OUTB2OUTB3BDSL0SL1SL2SL3RL0RL1RL2RL3RL4RL5RL6RL7SHIFTCNTL/S31302928GND2332333435383912567836373FUpGND7FUp8FDownTo-1FTo-2FTo-7FTo-8F1FUp5FUp6FDown6FUp7FDownTo-3FTo-4FTo-5FTo-6F2FDown2FUp3FDown114FDown4FUp5FDown周口科技职业学院毕业生论文图2.68279键盘控制模块由图可知,其八位并行数据管脚分别与单片机的P0口各管脚相连。读写信号端也分别与单片机的对应。而其片选由P27控制,低电平有效。CLK其管脚与ALE相连,单片机正常工作时,ALE管脚输出方波,频率为单片机工作频率的六分之一。而芯片82C79的扫描键盘的频率正是由此而产生,当然i用这么高的频率,还需要继续对其分频后方可供82C79使用。复位键同样与单片机的复位键相通。而至于有些管脚如BD、SHIFT、CNTL/S等由于在此设计中无甚意义,故均将其接地处理。其工作机理为:82C79的SL0SL2在芯片工作时,不断以固定的频率输出低电平,当然是同一时间只选择其中一根线为低电平,其他还未高电平,同时扫描RL0RL7端,若得到某各端口返回低电平,在经过消抖处理后仍为低电平,则说明SL0SL2当前输出低电平的那根线与RL0RL7当前返回低电平的那根线的交叉处的那个开关被按下了。那么芯片82C79会自动将该按键按照规定的协议翻译为相应的键值(每个按键都有自己唯一的键值标示,这便于在编写程序时读取键值进而进行散转),存储与FIFO寄存器中,同时,由于该寄存器中存有单片机未读取的值,IRQ管脚就会自动输出高电平,再经过非门后对单片机的INT0产生中断,此时只需在编程时在中断程序中对其进行相应处理即可。2.5MAX232串口下载模块与附加电源模块等由于程序绝不可能第一次编写完就可以达到预设的目的,其间要经过很多次的更改修正,故为了便于程序的调试工作,我在此电路板上增设了一个MAX232串口下载模块,这样便可以不用取下单片机去其他的电路板上下载,而直接便可以在此电路板上完成了。同时为便于电源的引入,我选择了电脑USB口输出的5V直流电源,这样无需再用大型的电源设备,随处便可以调12周口科技职业学院毕业生论文试。他们的电路图如图2.7所示:C10104VCCC8104U612345678C1+VCCV+GNDC1-T1OUTC2+R1INC2-R1OUTVT1INT2OUTT2INR2INR2OUTMAX232161514131211109C11104RXDTXDVCCC12104S1总总总+R131KCJ110UFUSB1D1D2+USB接串594837261C9104D27串串交交DB9图2.7串口下载模块MAX232电路时该芯片数据手册中提供的典型应用图。MAX232是一个电荷泵器件,它采用开关电容技术将5V电压升压和获取负电压。至于电源模块,便比较简单了,USB口通常有四条引出线,其中边缘两根便为电源线,一个为+5V直流端,一个为地端。中间两根为差分信号线D+与D-,负责信号的串行通信。但由于此处只用做电源功能,故中间两根无需接入。直流端通过一个按键开关并经过一10微法的电容滤波后接入Vcc,+5V供整个电路板供电。当电源导通后,电源指示二极管会高亮。同时,基于人性化处理,在电梯上下行时,我专门用若干个二极管排列成上下箭头的形状,如图所示。中间的四个发光二极管组成一竖线型,并处于常亮状态,当电梯上行时,与单片机P13管脚连接的UP端将输出低电平,经过一非门后使组成上三角的四个发光二极管点亮,从而形成以向上箭头;同理,当下行时,与单片机P11脚相连的DOWN端将输出低电平,使组成下三角的四个发光二极管导通,形成向下箭头,如图2.8所示。13周口科技职业学院毕业生论文GNDD4GNDD8GNDNET1GNDD5UpD2GNDGNDUpD411U3EUPP13910D1UpD5UpD3D6674LS04U3C5P13UPD74R31KVCC74LS04U3B374LS04R4U3D8NET11KGNDVCC74LS04U4E1110NET274LS04U4D974LS048R51KD2DOWNP11GNDD9GNDD12VCCD1074LS042U4A1DownD4GNDD11GNDDownD2NET2GNDDownD574LS044U4B3P11DOWNDownD3D3R61KVCC图2.8第三章芯片基本读写的实现上下行箭头显示模块3.1单片机对芯片82C55的基本读写与一般其他的芯片类似,对82C55芯片的操作,一般也即对其内部寄存器的操作。其内部寄存器分为两类,一类为命令寄存器,另一类为数据寄存器。很明显,由于82C55的功能为将一组单片机I/O口扩展为三组I/O口,那么肯定要有三组数据寄存器,分别对应着它的三组I/O口,即PA口,PB口与PC口,那么82C55芯片便有四个寄存器,正好可以用两位的地址线进行寻址(即管脚A0与A1)。大概得其读寄存器的流程图3.114周口科技职业学院毕业生论文开始使能片选选择寄存器地址读信号为低准备数据读信号为高片选无效P0置高电平开始使能片选选择寄存器地址写信号为低准备数据写信号为高片选无效P0置高电平图3.1读写寄存器流程图具体的说,其过程为:开始选中该芯片(低电平有效),而后设置好所要读写的寄存器的地址,也即设置好A0与A1的数值组合,若为读寄存器,则让单片机读引脚P37为低电平,反之若为写寄存器,则让单片机写引脚P36为低电平,然后把要读或者写的数据放到数据口P0口上(需要注意的是,当单片机读寄存器时,对于其自身来说,是输入数据,故此时需先让P0口值为高电平0xff为下一步的输入做准备,而此流程图的最后一步即为这种情况做准备的),一段短短的稳定时间后再让读引脚或者写引脚为高电平,则在由低到高的跳变中,数据得到了转移。然后再片选无效,以防以后的数据传输产生相互干扰。最后数据口P0置为0xff,为方便下次可能的输入做准备。3.2芯片82C55的初始化对芯片82C55的初始化,实质上即是规定好它每个扩展口是作为什么方式使用,即是输入还是输出,并且工作于何种方式。15周口科技职业学院毕业生论文图3.38255A工作方式控制字格式根据本设计的需求可知,我们只需用到两组扩展口PA和PB,并且他们均是用于控制二极管的亮灭,可见是作为输出使用的;并且他们不需要其他的控制,即只要求作为最基本的输出即可,也即工作于方式0便可。而这一切,均可以通过芯片的方式控制字来加以限定。由以上要求,再结合图3.3我们可以得到该控制字的数值为0x80(二进制为10000000)。最后,再把这一命令控制字发送到82C55的命令寄存器即可,命令寄存器对应的地址为A0=1,A1=1。3.33.3.1对芯片8279的基本读写与初始化芯片8279的基本读写与82C55类似,由于未用诸如74HC573之类的锁存器,P0口无法实现数据与地址的复用功能,8279的读写控制也是基于模拟时序的基础上进行对的。并且他们的时序操作图大概类似,故在此不再赘述。3.3.2芯片8279的初始化对该芯片的初始化,也即规定好该芯片的工作方式等,当然由于其功能16周口科技职业学院毕业生论文较为强大,故对其操作的语句也相对多些。一般来说,对8279操作的命令分为八种,分别为:1、键盘/显示器方式命令;2、时钟编程命令;3、读键字命令;4、读显示缓冲器命令;5、写显示缓冲器命令;6、显示器禁止写入/熄灭命令;7、清楚命令;8、结束中断/错误方式设置命令。现分别介绍如下:1、键盘/显示方式设置命令字(表3.2)表3.2D70D60D50键盘/键盘/显示方式设置命令格式D4DD3DD2KD1KD0K其中:D7、D6、D5=000方式设置命令特征位。DD(D4、D3):来设定显示方式,其定义如下(表3.3):表3.3D40011D30101显示方式8个字符显示,左入口开始16个字符显示,左入口开始(复位后状态)8个字符显示,右入口开始16个字符显示,右入口开始D3、D4显示方式、所谓左入口,即显示位置从最左一位(最高位)开始,以后逐次输入的显示字符逐个向右顺序排列;所谓右入口,即显示位置从最右一位(最低位)开始,以后逐次输入的显示字符时,已有的显示字符逐个向左顺序移动。KKK(D2、D1、D0):用来设定七种键盘、显示工作方式(表3.4):表3.4D2D1D0操作方式D2、D1、D0操作方式、17周口科技职业学院毕业生论文000011110011001101010101外部编码扫描键盘(16取1),双键互锁内部译码扫描键盘(4取1),双键互锁外部编码扫描键盘N键依次读出内部译码扫描键盘N键依次读出外部译码扫描传感器矩阵方式内部译码扫描传感器矩阵方式选通输入方式,外部编码显示扫描选通输入方式,内部译码显示扫描双键锁定与N键轮回是多键按下时的两种不同的保护方式。双键锁定为两键同时按下提供的保护方法。再消颤周期里,如果有两键同时按下,则只有其中一个键弹起,而另一个键保持在按下位置时,才被认可。N键轮回为N键同时按下的保护方法。当有若干键按下时,键盘扫描能够根据发现他们的顺序,依次将它们的状态送入FIFORAM中。2、程序时钟命令(表3.5)表3.5D70D60D51程序时钟命令格式D4PD3PD2PD1PD0P其中: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命令格式/18周口科技职业学院毕业生论文D70D61D50D4AID3XD2AD1AD0A其中: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.7D70D61D51读显示RAM命令格式D4AID3AD2AD1AD0A其中: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命令格式19周口科技职业学院毕业生论文D71D60D50D4AID3AD2AD1AD0A其中:D7D6D5=100为写显示RAM命令字的特征位。在写显示器RAM之前用该命令用来设定将要写入的显示RAM地址。AAAA(D3、D2、D1、D0)为将要写入的存储单元地址。AI(D4)为自动增量特征位。当AI=1时,每次写入后地址自动加1指向下一次写入地址。6、显示禁止写入/消隐命令特征位(表3.9)表3.9D71D60D51显示禁止写入/消隐命令格式显示禁止写入/消隐命令格式D4XD3IWAD2IWBD1BLAD0BLB其中:D7D6D5=101为显示禁止写入/消隐命令特征位。IW/A、IW/B(D3、D2)为A、B组显示RAM写入屏蔽位。由于显示寄存器分成A、B两组,可以单独送数,故用两位来分别屏蔽。当A组的屏蔽位D3=1时,A组的显示RAM禁止写入。因此,从CPU写入显示器RAM数据时,不会影响A的显示。这种情况通常在采用双4位显示器时使用。因为两个双四位显示器是相互独立的。为了给其中一个双四位显示器输入数据而又不影响另一个四位显示器,因此必须对另一组的输入实行屏蔽。BL/A、BL/B(D1、D0)为消隐显示位。用于对两组显示输出消隐。若BL=1时,对应组的显示输出被消隐。当BL=0时,则恢复显示。7、清除命令(表3.10)表3.10D71D61D50D4CD清除命令格式清除命令格式D3CDD2CDD1CFD0CA其中:D7D6D5=110清除命令特征位。20周口科技职业学院毕业生论文CDCDCD(D4D3D2)用来设定清除显示RAM方式,共有四种消除方式(表3.11)。表3.11D4D3D21110011X01清除方式将显示RAM全部清零将显示RAM清成20H(A组=0010,B组=0000)将显示RAM全部置1不清除(CA=0)D4D3D2消除方式XXCF(D1)用来置空FIFO存储器,当=1时,执行清除命令后,FIFORAM被置空,使中断输出线复位。同时,传感器RAM的读出地址也被置0。CA(D0)为总清的特征位。它兼有CD和CF的联合效能。在CD=1时,对显示的清除方式由D3、D2的编码决定。清除显示RAM约需160S。在此期间FIFO状态时的最高位DU=1,表示显示无效。CPU不能向显示RAM写入数据。8、结束中断/错误方式设置命令(表3.12)表3.12D71D61D51结束中断/结束中断/错误方式设置命令格式D4ED3XD2XD1XD0X其中:D7D6D5=111为该命令的特征位。此命令有两种不同的作用。(1)作为结束中断命令。在传感器工作方式中使用。每当传感器状态出现变化时,扫描检测电路将其状态写入传感器RAM,并启动中断逻辑,使IRQ变高,向CPU请求中断,并且禁止写入传感器RAM。此时,若传感器RAM读出地址的自动递增特征没有置位(AI=0),则中断请求IRQ在CPU第一次从传感器RAM读出数据时就被清除。若自动递增特征已置位(AI=1),则CPU对传感器RAM的读出并不能清除IRQ,而必须通过给8279写入结21周口科技职业学院毕业生论文束中断/错误方式设置命令才能使IRQ变低。因此在传感器工作方式中,此命令用来结束传感器RAM的中断请求。(2)作为特定错误方式设置命令。在8279已被设定为键盘扫描N键轮回方式以后,如果CPU给8279又写入结束中断/错误方式设置命令(E=1),则8279将以一种特定的错误方式工作。这种方式的特点是:在8279的消颤周期内,如果发现多个按键同时按下,则FIFO状态字中的错误特征位S/E将置1,并产生中断请求信号和阻止写入FIFORAM。上述八种用于确定8279操作方式的命令字皆由D7D6D5特征位确定,输入8279后能自动寻址相应的命令寄存器。因此,写入命令字时唯一的要求是使数据选择信号A0=1。8279只有一位地址线A0,那么当然只可以寻址两个寄存器。实际上也是如此的,当A0=0时,寻址的为其内部的数据寄存器;当A0=1时,寻址的为其内部的控制寄存器。那么其控制命令有多种,单一的一个命令寄存器又是何以分辨如此多的命令呢?如上面所示,命令寄存器的八位中,高三位为命令的分辨符。故若想输入不同的命令,只需写入相应的高三位数据即可。开始清零寄存器(命令字0xd1)设置按键方式(命令字0x03)设置分频(命令字0x2a)图3.48279初始化在本毕设中,应该规定哪些命令呢?如流程图3.4所示,对8279的初始化供分为三步,即先后输入三个命令。首先,我们要对芯片内部的各寄存器进行类似于复位的清零操作,方便以后的使用;其次,由于本设计中827922周口科技职业学院毕业生论文主管22各按键,而按键按下时又有多种复杂的情况,诸如同时有若干按键按下等,我们要选择此种情况的处理方式;再者,由于8279对按键实际上是通过扫描的方式确定有无按键按下,故我们还要设置好扫描的频率等,由硬件电路知道,8279有一时钟输入引脚CLK接于单片机的ALE引脚上,在单片机正常工作时,ALE引脚输出的为晶振频率六分之一的脉冲,这正是8279扫描的时钟源,当然,8279的扫描频率不可能达到单片机晶振的输出频率那么高,其实际的最大扫描频率为100KH左右,故我们需要一设置分频命令。那么这三个命令的命令字是如何得到的呢?参考上面命令字的格式可以知道:(1)清除寄存器命令的高三位特征位应该为110,又由于我们是将显示RAM全部清零,D4到D2位应该选择为100,故由于对显示RAM的清除方式选择由D3和D2控制,故要求其D0位为1。故最终得到的命令字为11010001,转换为十六进制即为0xd1。(2)设置按键方式中,其特征位的代码为000。由于未用到显示功能,故其对应控制位D4与D3可以随便设置,在此均设置为00。至于按键工作方式的选择,我们只所以选择内部译码扫描键盘N键依次读出的方式,是结合实际情况的结果。双键互锁的方法是当键盘同时有两个键按下时,任何一个键值均不能进入FIFORAM中,直至仅剩一个键保持闭合时,该键值才能进入到FIFORAM中。而N键依次读出方式,是N个键同时按下的保护方法。当有若干个键同时按下时,在键盘的扫描过程中根据发现它们的先后顺序进行识别,并以此将它们的状态送入FIFORAM中。对比我们可以发现,现实中偶尔会发生不同楼层会有不同人同时按下不同按键的情况发生,这时若选择双键互锁的方式,则谁的键值都不能传达给内部寄存器,这是很不方便的,故在此,我们选择了N键依次读出的方式。对于市内部译码还是外部编码的扫描方式,我们也可以根据其特点进行选择:编码方式,也称为外部译码方式,计数器以二进制方式计数,4位计数状态从扫描线SL0SL3输出,经外部译码器译出16位扫描线,为键盘和显示器提供16取1的扫描线。而译码23周口科技职业学院毕业生论文方式,也称为内部译码方式,扫描计数器的低2位经内部译码后从SL0SL3输出,故此时提供了4取1的扫描译码。由电路图我们可以看出,实际上我们仅仅用到了SL0SL3中的前三根线(因为按键不是太多,三乘八的矩阵键盘已足够使用),故四取一得译码方式便成为了我们的首选,其对应代码为D2D1D0=011。最终我们得到完整的命令符为00000011,也即十六进制中的0x03。(3)设置分频命令字。其对应特征位为001.由于电路板上,单片机的晶振为6MHz,ALE脚输出的脉冲频率为晶振的六分之一,即1MHz,而8279的基本频率为100KHz,故我们设置的分频系数应该为1M/100K=10(十进制),对应的二进制为01010。最后可得完整二进制与十六进制命令码分别为00101010和0x2a。第四章4.1引言从程序功能上来分,本设计的高层软件程序大概可以分为以下几类:一、运行与决策函数;二、中断处理函数;三、置位各状态变量函数;四、清除各状态变量函数。其中,第一类函数起作用于按键按下的时刻,当有按键按下时,8279芯片会采集到键盘的键值,并以中断的方式发送给单片机,此时,单片机即对程序中所用到的各个状态变量进行置位并且通过82C55点亮相关发光二极管,如置位按键所对应的去向变量等,方便决策函数使用。第二类函数的功能恰好与第一类相反,这类函数起作用于电梯到达目标楼层时,这时函数负责把相关发光二极管熄灭,并且及时清除相关状态位,以免影响判别函数作出正确判断。第三类函数是程序的核心。它直接负责管理电梯下一次所要到达的楼层,并且要基于短时间、高效率、人性化等原则。每当电梯经过一楼层时,此函数即会被调用,然后返回一个变量名为aim的值,它即为下一个系统的高层软件设计24周口科技职业学院毕业生论文电梯要停留的目标楼层值。而从程序的层次上来分,又可分为位于最底层的芯片内部寄存器操作的基层程序和位于上层的应用程序,故本章以此为顺序,先介绍基层函数的实现,继而详细介绍各高层的应用函数。4.2单片机中断处理函数本设计主要用到了单片机的中断系统。8279扫描到有按键按下时,当便会将键值存储起来,并在IRQ引脚输出高电平发出中断,通知单片机进行相关处理。在此详细介绍下中断的相关设置以及中断处理中都进行了哪些操作(如图4.1所示)。读取键值分析键值来源点亮相应发光二极管置位相应状