文档视界 最新最全的文档下载
当前位置:文档视界 › (完整版)基于单片机的电梯控制系统的毕业论文定稿

(完整版)基于单片机的电梯控制系统的毕业论文定稿

基于单片机的电梯控制系统的论文.txt喜欢我这是革命需要,知道不?!你不会叠衣服一边呆着去!以后我来叠!我一定要给你幸福,谁也别想拦着。本文由huge13145贡献

doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。

周口科技职业学院毕业生论文

周口科技职业学院毕业论文(设计)

题目:单片机控制电梯系统胡京葛电子工程系电子三班张奎

2011 年 02 月 28 日

姓名学号系别班级指导教师

1

周口科技职业学院毕业生论文

目录目录...... 1 摘要...... 3 第一章绪论...... 3 1.1 课题的背景简介...... 3 1.2 课题的主要研究内容及设计步骤...... 4 1.3 设计功能要求 (5)

第二章系统的硬件设计...... 6 2.1 硬件芯片的选择...... 6 2.2 单片机最小系统模块...... 6 2.3 可编程 IO 扩展芯片 82C55 模块...... 7 2.4 可编程按键控制芯片 82C79 模块...... 9 2.5 MAX232 串口下载模块与附加电源模块等...... 12 第三章芯片基本读写的实现...... 14 3.1 单片机对芯片 82C55 的基本读写 (14)

3.2 芯片 82C55 的初始化…… 15 3.3 对芯片 8279 的基本读写与初始化……

16

3.3.1 芯片 8279 的基本读写......16 3.3.2 芯片 8279 的初始化 (16)

第四章系统的高层软件设计...... 24 4.1 引言...... 24 4.2 单片机中断处理函数...... 25 4.3 电梯判决函数 (25)

4.3.1 电梯所处状态的分类与判定......25 4.3.2 电梯各情况下所对应的处理方法 (27)

4.4 电梯运行函数...... 29 4.5 主函数...... 30 总结...... 31 致谢 (32)

参考文献...... 33 附录 (33)

2

周口科技职业学院毕业生论文

单片机控制电梯系统毕业设计应用电子技术

指导老师摘要胡京葛

张奎

设计系统研究了基于 AT89C55 与 8279 单片机为核心配以必要的传,

感装置,实现对电梯轿厢的自动控制。在各楼层设置了位置检测电路,利用磁控传感器对电梯轿厢的位置进行准确定位,实时控制轿厢的运动状态;通过对各楼层用户按钮信号的检测和处理,按预定的运行规则和程序,发出控制信号对继电器进行调节,运用继电器来驱动直流电动机,从而控制电梯的启停、升降和运行时间。整个设计系统实现了电梯控制的基本功能。关键词 AT89C55 8279 电梯控制单片机第一章 1.1 课题的背景简介

绪论

电梯进入人们的生活已经 150 年了。一个半世纪的风风雨雨,翻天覆地的是历史的变迁,永恒不变的是电梯提升人类生活质量的承诺。生活在继续,科技在发展,电梯也在进步。150 年来,电梯的材质由黑白到彩色,样式由直式到斜式,在操纵控制方面更是步步出新——手柄开关操纵、按钮控制、信号控制、集选控制、人机对话等等,多台电梯还出现了并联控制,智能群控;双层轿厢电梯展示出节省井道空间,提升运输能力的优势;变速式自动人行道扶梯的出现大大节省了行人的时间;不同外形——扇形、三角形、半菱形、半圆形、整圆形的观光电梯则使身处其中的乘客的视线不再封闭。如今,以美国奥的斯公司为代表的世界各大著名电梯公司各展风姿,仍在继续进行电梯新品的研发,并不断完善维修和保养服务系统。

3

周口科技职业学院毕业生论文

调频门控、智能远程监控、主机节能、控制柜低噪音耐用,一款款集纳了人类在机械、电子、光学等领域最新科研成果的新型电梯竞相问世,冷冰冰的建筑因此散射出人性的光辉,人们的生活因此变得更加美好。中国最早的一部电梯出现在上海,是由美国奥的斯公司于 1901 年安装的。1932 年由美国奥的斯公司安装在天津利顺德酒店的电梯至今还在安全运转着。1951 年,党中央提出要在天安门安装一台由我国自行制造的电梯,天津从庆生电机厂荣接此任,四个月后不辱使命,顺利地完成了任务。十一届三中全会后,沐浴着改革开放的春风,我国电梯业进入了高速发展的时期。在我国任何一个城市,电梯都在被广泛应用着。电梯给人们的生活带来了便利,也为我国现代化建设的加速发展提供了强大的保障。电梯是高层建筑中安全、可靠、垂直上下的运载工具,对改善劳动条件、减轻劳动强度起到很大的作用。电梯的应用范围很广,可用于宾馆、饭店、办公大楼、商场、娱乐场所、仓库以及居民住宅大楼等。在现代社会中,电梯已成为人类必不可少的垂直运输交通工具。 1.2 课题的主要研究内容及设计步骤本课题的主要任务是完成一个电梯系统的调度模块,即根据每个楼层不同顾客的按键需求,让电梯做出合理的判断,正确高效地知道电梯完成各项载客任务。根据此任务,本课题需要研究的内容有: 1、根据系统的技术要求,进行系统硬件的总体方案设计; 2、学习单片机的相关知识,并且加以运用; 3、选择恰当的芯片,并对其内部协议有所掌握,便于应用。 4、研究C 语言编程,并且规定电梯的工作规则,用 C 语言加以实现; 5、对软件和硬件进行调试,让其协调工作,完成指定任务。结合以上内容,本课题的设计方案步骤如下:关于硬件部分:首先,对实际的电梯系统进行模拟,一般情况下,一个电梯应该具备相

4

周口科技职业学院毕业生论文

关按键、显示二极管、数码管等,由于这是一个调度模块,故没有设计具体的

轿厢等机械部分。然后,结合这些实物,选择恰当的芯片,并分成若干模块,安排好各自之间的关系。由于其有诸多按键和显示环节,而单片机的 IO 口管脚资源实在有限,故需要 IO 口扩展,用以管理二极管;同时要有专门的按键控制芯片,从而便于按键管理。在此,我分别选择了 82C55 和 8279 芯片。接着,要完成电路图的设计,画出 PCB 板,焊接相关器件后进行硬件调试,看是否好用并加以适当的更正。关于软件部分:处于最底层的是对两个芯片的寄存器读写工作,完成后方可进行更高层的应用程序调试。为了使硬件简单化,我选择了模拟时序的方法读写寄存器,这比总线操作的方法节省了锁存器。然后是关于电梯调度时所遵循的原则作出规定,其必须基于高效与人性化两个原则。最后是使用 C 语言将规定程序化,以便电梯真正的运作。当然,二者的关系并不是分离的,它们是相辅相成,硬件依据软件来验证,软件依据硬件来调试。经过一个个的发现问题、一个个的解决问题,最终做出完美的电梯调度模块。 1.3 设计功能要求本设计是为一八层电梯设计一调度系统,即使电梯能够合理高效地运行,完成各楼层顾客的接送任务。形象地说,就是要应对不同楼层顾客的不同需求,作出合理高效的判断,使所有顾客在整体运用时间最短的条件下将其运往各自的目的地。这个设计的成品应该可以作为真实电梯的控制系统一样,遵守以下两个原则:一是高效性,二是人性化。而实际电梯所面临的情况无比复杂,故本设计的难点除了硬件上面外,还有对这些复杂的情况归类化,分为若干个基本情况,另外是用恰当的 C 语言描述来表达这些复杂的逻辑。

5

周口科技职业学院毕业生论文

第二章 2.1 硬件芯片的选择

系统的硬件设计

合理的硬件设计是一个设计成功的基石,所以在设计之初,我便把自己的主要任务集中于筹划硬件的搭建工作,当然其中需要兼顾软件设计的需求。由于本设计所模拟的楼层共有八层,其中所需要控制的器件较多,如每层都需有两个上下的指

示灯,电梯轿厢内也需有去几层的指示灯等,而现有单片机的管脚资源无法满足需求,故第一步需要想法扩展单片机的 IO 口管脚资源。在此,我选择了扩展 IO 口最典型的芯片 82C55。其可把一组八位 IO 管脚扩展为 PA、PB、PC 三组管脚,并通过寄存器对各组管脚进行配置,从而满足了本次设计的要求。考虑到电梯会有多个按键,而传统的依据单片机自身的 IO 口布局键盘的方法显然也是不可行的,故本设计选择了典型的管理键盘的芯片 82C79,其重要意义不仅在于减轻了单片机 IO 口的开支负担,而且可以代替单片机完成各个按键的键值编写工作,单片机只要从其 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 可编程 IO 扩展芯片 82C55 模块

8255 是 Intel 公司生产的可编程并行 IO 接口芯片,有 3 个 8 位并行 IO 口。具有 3 个通道 3 种工作方式的可编程并行接口芯片(40 引脚)。其各口功能可由软件选择,使用灵活,通用性强。8255 可作为单片机与多种外设连接时的中间接口电路。其芯片引脚图如图 2.2 所示。

7

周口科技职业学院毕业生论文

VCC 8051 P10 1 DOWN P11 2 P12 3 P13 4 UP P14 5 P15 6 P16 7 P17 8 INT1 13 INT0 12 T1 15 T0 14 VCC 31 C1 20P 19 18 Y RESET 9 11M RD 17 WR 16 P10 P11 P12 P13 P14 P15 P16 P17 INT1 INT0 T1 T0 EAVP X1 X2 RESET RD WR RXD TXD ALEP PSEN 10 11 30 29 RXD TXD ALE P00 P01 P02 P03 P04 P05 P06 P07 P20 P21 P22 P23 P24 P25 P26 P27 39 38 37 36 35 34 33 32 21 A0 22 A1 23 24 25 26 27 28 P00P01 P02 P03 P04 P05 P06 P07 P3 1 2 3 4 5 6 7 8 9

VCC RESET

10UF

CJ3

P20 10K P21 P22 P23 P24 P25 P26 8255cs P27 8279cs

+

1k

R11

10k

R12

C2 GND 20P

RESET

图 2. 1

单片机最小系统

图 2.2

82C55 引脚分布

8

周口科技职业学院毕业生论文

D7~D0(data bus):三态、双向数据线,与CPU数据总线连接,用来传送数据。(chip select):片选信号线,低电平有效时,芯片被选中。 A1, A0(port address):地址线,用来选择内部端口。 (read):读出信号线,低电平有效时,允许数据读出。(write):写入信号线,低电平有效时,允许数据写入。 RESET(reset):复位信号线,高电平有效时,将所有内部寄存器(包括控制寄存器)清0。 PA7~PA0(port A):A 口输入输出信号线。 PB7~PB0(port B):B口输入输出信号线。 PC7~PC0(port C):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 读、写的字节均为数据。 DB0~DB7:与单片机通信的数据引脚,用于传送数据。 Vcc、GND:电源端与地端,用于给芯片提供电源。、(读、写信号):输入线。低电平有效,来自 CPU 的控制信

号,控制 8279 的读、写操作。 IRQ(中断请求):输出线。高电平有效。在键盘工作方式中,当 FIFO传感器 RAM 存有数据时,IRQ 为高电平。 CPU 每次从 RAM 中读出数据时,IRQ 变为低电平。若 RAM 中仍有数据,则 IRQ 再次恢复高电平。

10

周口科技职业学院毕业生论文

在传感器工作方式中,每当检测到传感器状态变化时,IRQ 就出现高电平。SL0~SL3(扫描线):输出线。用来扫描键盘和显示器。它们可以编程设定为编码(4 中取 1)或译码输出(16 取 1)。 RL0~RL7(回复线):输入线。它们是键盘矩阵或传感矩阵的列(或行)信号输入线。 SHIFT(移位信号):输入线、高电平有效。该输入信号是键盘数据的最高位(D7),通常用来扩充键开关的功能,作为控制功能键用。在选通输入方式时,该信号的上升沿可将来自 RL0~RL7 的数据存入 FIFO RAM 中。在传感器输入下,该信号无效。 OUTA0~OUTA3(A 组显示信号):输出线。OUTB0~OUTB3(B 组显示信号):输出线。这两组引线都是显示数据输出线,与多位数字显示的扫描线 SL0~SL3 同步,两组可以独立使用,也可以合并使用。 BD(显示消隐):输出线。低电平有效。该信号在数字切换显示或使用消隐命令时,将显示消隐。其在本设计中的工作电路图模块如图 2.6 所示:

8279 27 26 25 24 P00 12 P01 13 P02 14 P03 15 P04 16 P05 17 P06 18 P07

19 74LS04 INT0 12 U3F 13 4 8279cs P27 22 RD 10 WR 11 P20A0 21 ALE3 RESET 9 OUTA0 OUTA1 OUTA2 OUTA3 DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 IRQ CS RD WR A0 CLK RESET OUTB0 OUTB1 OUTB2 OUTB3 BD SL0 SL1 SL2 SL3 RL0 RL1 RL2 RL3 RL4 RL5 RL6 RL7 SHIFT CNTLS 31 30 29 28 GND 23 32 33 34 35 38 39 1 2 5 6 7 8 36 37 3FUp GND 7FUp 8FDown To-1F To-2F To-7F To-8F

1FUp

5FUp 6FDown 6FUp 7FDown

To-3F To-4F To-5F To-6F

2FDown 2FUp 3FDown

11

4FDown 4FUp 5FDown

周口科技职业学院毕业生论文

图 2.6

8279 键盘控制模块

由图可知,其八位并行数据管脚分别与单片机的 P0 口各管脚相连。读写信号端也分别与单片机的对应。而其片选由 P2^7 控制,低电平有效。 CLK 其管脚与 ALE 相连,单片机正常工作时,ALE 管脚输出方波,频率为单片机工作频率的六分之一。而芯片 82C79 的扫描键盘的频率正是由此而产生,当然 i 用这么高的频率,还需要继续对其分频后方可供 82C79 使用。复位键同样与单片机的复位键相通。而至于有些管脚如 BD、SHIFT、CNTLS 等由于在此设计中无甚意义,故均将其接地处理。其工作机理为:82C79 的 SL0~SL2 在芯片工作时,不断以固定的频率输出低电平,当然是同一时间只选择其中一根线为低电平,其他还未高电平,同时扫描RL0~RL7 端,若得到某各端口返回低电平,在经过消抖处理后仍为低电平,则说明SL0~SL2 当前输出低电平的那根线与 RL0~RL7 当前返回低电平的那根线的交叉处的那个开关被按下了。那么芯片 82C79 会自动将该按键按照规定的协议翻译为相应

的键值(每个按键都有自己唯一的键值标示,这便于在编写程序时读取键值进而进行散转),存储与 FIFO 寄存器中,同时,由于该寄存器中存有单片机未读取的值,IRQ 管脚就会自动输出高电平,再经过非门后对单片机的 INT0 产生中断,此时只需在编程时在中断程序中对其进行相应处理即可。 2.5 MAX232 串口下载模块与附加电源模块等由于程序绝不可能第一次编写完就可以达到预设的目的,其间要经过很多次的更改修正,故为了便于程序的调试工作,我在此电路板上增设了一个MAX232 串口下载模块,这样便可以不用取下单片机去其他的电路板上下载,而直接便可以在此电路板上完成了。同时为便于电源的引入,我选择了电脑 USB 口输出的 5V 直流电源,这样无需再用大型的电源设备,随处便可以调

12

周口科技职业学院毕业生论文

试。他们的电路图如图 2.7 所示:

C10 104 VCC

C8 104

U6 1 2 3 4 5 6 7 8 C1+ VCC V+ GND C1- T1OUT C2+ R1IN C2- R1OUT VT1IN T2OUT T2IN R2IN R2OUT MAX232 16 15 14 13 12 11 10 9

C11 104 RXD TXD

VCC

C12 104

S1

总总总

+

R13 1K CJ1 10UF

USB1 D1 D2 + USB 接串

5 9 4 8 3 7 2

6 1

C9 104

D27

串串交交 DB9

图 2.7

串口下载模块

MAX232 电路时该芯片数据手册中提供的典型应用图。MAX232 是一个电荷泵器件,它采用开关电容技术将 5V 电压升压和获取负电压。至于电源模块,便比较简单了,USB 口通常有四条引出线,其中边缘两根便为电源线,一个为+5V 直流端,一个为地端。中间两根为差分信号线 D+ 与 D-,负责信号的串行通信。但由于此处只用做电源功能,故中间两根无需接入。直流端通过一个按键开关并经过一 10 微法的电容滤波后接入 Vcc, +5V 供整个电路板供电。当电源导通后,电源指示二极管会高亮。同时,基于人性化处理,在电梯上下行时,我专门用若干个二极管排列成上下箭头的形状,如图所示。中间的四个发光二极管组成一竖线型,并处于常亮状态,当电梯上行时,与单片机 P1^3 管脚连接的 UP 端将输出低电平,经过一非门后使组成上三角的四个发光二极管点亮,从而形成以向上箭头;同理,当下行时,与单片机 P1^1 脚相连的 DOWN 端将输出低电平,使组成下三角的四个发光二极管导通,形成向下箭头,如图 2.8 所示。

13

周口科技职业学院毕业生论文

GND D4 GND D8 GND NET1 GND D5 UpD2 GND GND UpD4 11 U3E UP P13 9 10 D1 UpD5 UpD3 D6 6 74LS04 U3C 5 P13 UP D7 4 R3 1K VCC 74LS04 U3B 3

74LS04 R4 U3D 8 NET1 1K GND VCC 74LS04 U4E 11 10 NET2 74LS04 U4D 9 74LS04 8 R5 1K D2

DOWN P11

GND

D9 GND D12

VCC D10

74LS04 2 U4A

1

DownD4 GND

D11

GND DownD2 NET2 GND

DownD5 74LS04 4 U4B

3

P11

DOWN

DownD3 D3

R6 1K VCC

图 2.8 第三章芯片基本读写的实现

上下行箭头显示模块

3.1 单片机对芯片 82C55 的基本读写与一般其他的芯片类似,对 82C55 芯片的操作,一般也即对其内部寄存器的操作。其内部寄存器分为两类,一类为命令寄存器,另一类为数据寄存器。很明显,由于 82C55 的功能为将一组单片机 IO 口扩展为三组 IO 口,那么肯定要有三组数据寄存器,分别对应着它的三组 IO 口,即 PA 口,PB 口与 PC 口,那么 82C55 芯片便有四个寄存器,正好可以用两位的地址线进行寻址(即管脚 A0 与 A1)。大概得其读寄存器的流程图 3.1

14

周口科技职业学院毕业生论文

开始使能片选选择寄存器地址读信号为低准备数据读信号为高片选无效P0置高电平

开始使能片选选择寄存器地址写信号为低准备数据写信号为高片选无效P0置高电平

图 3.1

读写寄存器流程图

具体的说,其过程为:开始选中该芯片(低电平有效),而后设置好所要读写的寄存器的地址,也即设置好 A0 与 A1 的数值组合,若为读寄存器,则让单片机读引脚 P3^7 为低电平,反之若为写寄存器,则让单片机写引脚 P3^6 为低电平,然后把要读或者写的数据放到数据口 P0 口上(需要注意的是,当单片机读寄存器时,对于其自身来说,是输入数据,故此时需先让 P0 口值为高电平 0xff 为下一步的输入做准备,而此流程图的最后一步即为这种情况做准备的),一段短短的稳定时间后再让读引脚或者写引脚为高电平,则在由低到高的跳变中,数据得到了转移。然后再片选无效,以防以后的数据传输产生相互干扰。最后数据口 P0 置为 0xff,为方便下次可能的输入做准备。 3.2 芯片 82C55 的初始化对芯片 82C55 的初始化,实质上即是规定好它每个扩展口是作为什么方式使用,即是输入还是输出,并且工作于何种方式。

15

周口科技职业学院毕业生论文

图 3.3

8255A 工作方式控制字格式

根据本设计的需求可知,我们只需用到两组扩展口 PA 和 PB,并且他们均是用于控制二极管的亮灭,可见是作为输出使用的;并且他们不需要其他的控制,即只要求作为最基本的输出即可,也即工作于方式 0 便可。而这一切,均可以通过芯片的方式控制字来加以限定。由以上要求,再结合图 3.3 我们可以得到该控制字的数值为 0x80(二进制为 1000 0000)。最后,再把这一命令控制字发送到 82C55 的命令寄存器即可,命令寄存器对应的地址为 A0=1,A1=1。 3.3 3.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.2 D7 0 D6 0 D5 0 键盘键盘显示方式设置命令格式 D4 D D3 D D2 K D1 K D0 K

其中:D7、D6、D5=000 方式设置命令特征位。 DD(D4、D3):来设定显示方式,其定义如下(表 3.3):表 3.3 D4 0 0 1 1 D3 0 1 0 1 显示方式 8 个字符显示,左入口开始 16 个字符显示,左入口开始(复位后状态) 8 个字符显示,右入口开始16 个字符显示,右入口开始 D3、D4 显示方式、

所谓左入口,即显示位置从最左一位(最高位)开始,以后逐次输入的显示字符逐个向右顺序排列;所谓右入口,即显示位置从最右一位(最低位)开始,以后逐次输入的显示字符时,已有的显示字符逐个向左顺序移动。 KKK(D2、 D1、 D0):用来设定七种键盘、显示工作方式(表 3. 4):

表 3.4 D2 D1 D0 操作方式

D2、D1、D0 操作方式、、

17

周口科技职业学院毕业生论文

0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

外部编码扫描键盘(16 取 1),双键互锁内部译码扫描键盘(4 取 1),双键互锁外部编码扫描键盘 N 键依次读出内部译码扫描键盘 N 键依次读出外部译码扫描传感器矩阵方式内部译码扫描传感器矩阵方式选通输入方式,外部编码显示扫描选通输入方式,内部译码显示扫描

双键锁定与 N 键轮回是多键按下时的两种不同的保护方式。双键锁定为两键同时按下提供的保护方法。再消颤周期里,如果有两键同时按下,则只有其中一个键弹起,而另一个键保持在按下位置时,才被认可。N 键轮回为 N 键同时按下的保护方法。当有若干键按下时,键盘扫描能够根据发现他们的顺序,依次将它们的状态送入 FIFO RAM 中。 2、程序时钟命令(表 3.5)表 3.5 D7 0 D6 0 D5 1 程序时钟命令格式 D4 P D3 P D2 P D1 P D0 P

其中:D7、D6、D5=001 为时钟命令特征位。 PPPPP( D4、D3、D2、D1、D0)用来设定外部输入 CLK 端的时钟进行分频的分频数 N。N 取值为 2~31。例如外部时钟频率为 2MHZ,PPPPP 被置为 10100(N=20),则对输入的外部时钟 20 分频,以获得 8279 内部要求的 100KMZ 的基本频率。

3、读 FIFO传感器 RAM 命令(表 3.6)表 3.6 读 FIFO传感器 RAM 命令格式 18

周口科技职业学院毕业生论文

D7 0

D6 1

D5 0

D4 AI

D3 X

D1 A

D0 A

其中: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 D7 0 D6 1 D5 1 读显示 RAM 命令格式 D4 AI D3 A D2 A D1 A D0 A 其中: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

周口科技职业学院毕业生论文

D7 1

D6 0

D5 0

D4 AI

D3 A

D2 A

D1 A

其中:D7D6D5 =100 为写显示 RAM 命令字的特征位。在写显示器 RAM 之前用该命令用来设定将要写入的显示 RAM 地址。 AAAA(D3、D2、D1、D0)为将要写入的存储单元地址。 AI(D4)为自动增量特征位。当 AI=1 时,每次写入后地址自动加 1 指向下一次写入地址。 6、显示禁止写入消隐命令特征位(表 3.9)表 3.9 D7 1 D6 0 D5 1 显示禁止写入消隐命令格式显示禁止写入消隐命令格式 D4 X D3 IWA D2 IWB D1 BLA D0 BLB

其中:D7D6D5 =101 为显示禁止写入消隐命令特征位。 IWA、IWB(D3、D2)为 A、B 组显示 RAM 写入屏蔽位。由于显示寄存器分成 A、B 两组,可以单独送数,故用两位来分别屏蔽。当 A 组的屏蔽位 D3=1 时,A 组的显示 RAM 禁止写入。因此,从 CPU 写入显示器 RAM 数据时,不会影响 A 的显示。这种情况通常在采用双 4 位显示器时使用。因为两个双四位显示器是相互独立的。为了给其中一个双四位显示器输入数据而又不影响另一个四位显示器,因此必须对另一组的输入实行屏蔽。BLA、BLB(D1、D0)为消隐显示位。用于对两组显示输出消隐。若 BL=1 时,对应组的显示输出被消隐。当 BL=0 时,则恢复显示。 7、清除命令(表 3.10)表 3.10 D7 1 D6 1 D5 0 D4 CD 清除命令格式清除命令格式 D3 CD D2 CD D1 CF D0 CA

其中:D7D6D5 =110 清除命令特征位。

20

周口科技职业学院毕业生论文

CDCDCD(D4D3D2)用来设定清除显示 RAM 方式,共有四种消除方式(表 3.11)。表 3.11 D4 D3 D2 1 1 1 0 0 1 1 X 0 1 清除方式将显示 RAM 全部清零将显示 RAM 清成 20H(A 组=0010,B 组=0000)将显示 RAM 全部置 1 不清除(CA =0) D4D3D2 消除方式

X X

CF(D1)用来置空 FIFO 存储器,当=1 时,执行清除命令后,FIFO RAM 被置空,

使中断输出线复位。同时,传感器 RAM 的读出地址也被置 0。 CA(D0)为总清的特征位。它兼有 CD 和 CF 的联合效能。在 CD=1 时,对显示的清除方式由 D3、D2 的编码决定。清除显示 RAM 约需 160μS。在此期间 FIFO 状态时的最高位 DU=1,表示显示无效。CPU 不能向显示 RAM 写入数据。 8、结束中断错误方式设置命令(表3.12)表 3.12 D7 1 D6 1 D5 1 结束中断结束中断错误方式设置命令格式 D4 E D3 X D2 X D1 X D0 X

其中: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 状态字中的错误特征位 SE 将置 1,并产生中断请求信号和阻止写入 FIFO RAM。上述八种用于确定8279 操作方式的命令字皆由 D7D6D5 特征位确定,输入 8279 后能自动寻址相应的命令寄存器。因此,写入命令字时唯一的要求是使数据选择信号 A0=1。 8279 只有一位地址线 A0,那么当然只可以寻址两个寄存器。实际上也是如此的,当 A0=0 时,寻址的为其内部的数据寄存器;当 A0=1 时,寻址的为其内部的控制寄存器。

那么其控制命令有多种,单一的一个命令寄存器又是何以分辨如此多的命令呢?如上面所示,命令寄存器的八位中,高三位为命令的分辨符。故若想输入不同的命令,只需写入相应的高三位数据即可。

开始

清零寄存器(命令字0xd1)

设置按键方式(命令字0x03)

设置分频(命令字0x2a)

图 3.4

8279 初始化

在本毕设中,应该规定哪些命令呢?如流程图 3.4 所示,对 8279 的初始化供分为三步,即先后输入三个命令。首先,我们要对芯片内部的各寄存器进行类似于复位的清零操作,方便以后的使用;其次,由于本设计中 8279

22

周口科技职业学院毕业生论文

主管 22 各按键,而按键按下时又有多种复杂的情况,诸如同时有若干按键按下等,我们要选择此种情况的处理方式;再者,由于 8279 对按键实际上是通过扫描的方式确定有无按键按下,故我们还要设置好扫描的频率等,由硬件电路知道,8279 有一时钟输入引脚 CLK 接于单片机的 ALE 引脚上,在单片机正常工作时,ALE 引脚输出的为晶振频率六分之一的脉冲,这正是 8279 扫描的时钟源,当然,8279 的扫描频率不可能达到单片机晶振的输出频率那么高,其实际的最大扫描频率为100KH 左右,故我们需要一设置分频命令。那么这三个命令的命令字是如何得到的呢?参考上面命令字的格式可以知道: (1)清除寄存器命令的高三位特征位应该为110,又由于我们是将显示 RAM 全部清零, D4 到 D2 位应该选择为 100,故由于对显示 RAM 的清除方式选择由 D3 和 D2 控制,故要求其 D0 位为 1。故最终得到的命令字为,转换为十六进制即为 0xd1。 (2)设置按键方式中,其特征位的代码为

000。由于未用到显示功能,故其对应控制位 D4 与 D3 可以随便设置,在此均设置为 00。至于按键工作方式的选择,我们只所以选择内部译码扫描键盘 N 键依次读出的方式,是结合实际情况的结果。双键互锁的方法是当键盘同时有两个键按下时,任何一个键值均不能进入 FIFO RAM 中,直至仅剩一个键保持闭合时,该键值才能进入到 FIFO RAM 中。而 N 键依次读出方式,是 N 个键同时按下的保护方法。当有若干个键同时按下时,在键盘的扫描过程中根据发现它们的先后顺序进行识别,并以此将它们的状态送入 FIFO RAM 中。对比我们可以发现,现实中偶尔会发生不同楼层会有不同人同时按下不同按键的情况发生,这时若选择双键互锁的方式,则谁的键值都不能传达给内部寄存器,这是很不方便的,故在此,我们选择了 N 键依次读出的方式。对于市内部译码还是外部编码的扫描方式,我们也可以根据其特点进行选择:编码方式,也称为外部译码方式,计数器以二进制方式计数,4 位计数状态从扫描线 SL0~SL3 输出,经外部译码器译出 16 位扫描线,为键盘和显示器提供 16 取 1 的扫描线。而译码

23

周口科技职业学院毕业生论文

方式,也称为内部译码方式,扫描计数器的低 2 位经内部译码后从 SL0~SL3 输出,故此时提供了 4 取 1 的扫描译码。由电路图我们可以看出,实际上我们仅仅用到了 SL0~SL3 中的前三根线(因为按键不是太多,三乘八的矩阵键盘已足够使用),故四取一得译码方式便成为了我们的首选,其对应代码为 D2D1D0=011。最终我们得到完整的命令符为 0000 0011,也即十六进制中的 0x03。 (3)设置分频命令字。其对应特征位为 001.由于电路板上,单片机的晶振为 6MHz,ALE 脚输出的脉冲频率为晶振的六分之一,即 1MHz,而 8279 的基本频率为 100KHz,故我们设置的分频系数应该为 1M100K=10 (十进制),对应的二进制为 01010。最后可得完整二进制与十六进制命令码分别为和 0x2a。第四章 4.1 引言从程序功能上来分,本设计的高层软件程序大概可以分为以下几类:一、运行与决策函数;二、中断处理

相关文档