




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于单片机的电梯控制系统的论文.txt喜欢我这是革命需要,知道不?!你不会叠衣服一边呆着去!以后我来叠!我一定要给你幸福,谁也别想拦着。 本文由huge13145贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 周口科技职业学院毕业生论文 周口科技职业学院 毕业论文(设计) 题 目:单片机控制电梯系统 胡京葛 电子工程系 电子三班 张奎 2011 年 02 月 28 日 姓 名 学 号 系 别 班 级 指导教师 1 周口科技职业学院毕业生论文 目录 目录 1 摘 要 3 第一章 绪论 3 1.1 课题的背景简介 3 1.2 课题的主要研究内容及设计步骤
2、 4 1.3 设计功能要求 5 第二章 系统的硬件设计 6 2.1 硬件芯片的选择 6 2.2 单片机最小系统模块 6 2.3 可编程 I/O 扩展芯片 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 引言
3、 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 单片机为核心 配以必要的传 , 感装置,实现对电梯轿厢的自动控制。在各楼层设置了位置检测电路,利用 磁控传感器对电梯轿厢的位置进行准确定位,实时控制轿厢的运动状态;通 过对各楼层
4、用户按钮信号的检测和处理,按预定的运行规则和程序,发出控 制信号对继电器进行调节,运用继电器来驱动直流电动机,从而控制电梯的 启停、升降和运行时间。整个设计系统实现了电梯控制的基本功能。 关键词 AT89C55 8279 电梯控制 单片机 第一章 1.1 课题的背景简介 绪论 电梯进入人们的生活已经 150 年了。一个半世纪的风风雨雨,翻天覆地 的是历史的变迁,永恒不变的是电梯提升人类生活质量的承诺。 生活在继续,科技在发展,电梯也在进步。150 年来,电梯的材质由黑 白到彩色,样式由直式到斜式,在操纵控制方面更是步步出新手柄开关 操纵、按钮控制、信号控制、集选控制、人机对话等等,多台电梯还出
5、现了 并联控制,智能群控;双层轿厢电梯展示出节省井道空间,提升运输能力的 优势;变速式自动人行道扶梯的出现大大节省了行人的时间;不同外形 扇形、三角形、半菱形、半圆形、整圆形的观光电梯则使身处其中的乘客的 视线不再封闭。如今,以美国奥的斯公司为代表的世界各大著名电梯公司各 展风姿,仍在继续进行电梯新品的研发,并不断完善维修和保养服务系统。 3 周口科技职业学院毕业生论文 调频门控、智能远程监控、主机节能、控制柜低噪音耐用,一款款集纳了人 类在机械、电子、光学等领域最新科研成果的新型电梯竞相问世,冷冰冰的 建筑因此散射出人性的光辉,人们的生活因此变得更加美好。 中国最早的一部电梯出现在上海,是由
6、美国奥的斯公司于 1901 年安装 的。1932 年由美国奥的斯公司安装在天津利顺德酒店的电梯至今还在安全运 转着。1951 年,党中央提出要在天安门安装一台由我国自行制造的电梯,天 津从庆生电机厂荣接此任,四个月后不辱使命,顺利地完成了任务。十一届 三中全会后,沐浴着改革开放的春风,我国电梯业进入了高速发展的时期。 在我国任何一个城市,电梯都在被广泛应用着。电梯给人们的生活带来了便 利,也为我国现代化建设的加速发展提供了强大的保障。电梯是高层建筑中 安全、可靠、垂直上下的运载工具,对改善劳动条件、减轻劳动强度起到很 大的作用。电梯的应用范围很广,可用于宾馆、饭店、办公大楼、商场、娱 乐场所、
7、仓库以及居民住宅大楼等。在现代社会中,电梯已成为人类必不可 少的垂直运输交通工具。 1.2 课题的主要研究内容及设计步骤 本课题的主要任务是完成一个电梯系统的调度模块,即根据每个楼层不 同顾客的按键需求,让电梯做出合理的判断,正确高效地知道电梯完成各项 载客任务。根据此任务,本课题需要研究的内容有: 1、根据系统的技术要求,进行系统硬件的总体方案设计; 2、学习单片机的相关知识,并且加以运用; 3、选择恰当的芯片,并对其内部协议有所掌握,便于应用。 4、研究 C 语言编程,并且规定电梯的工作规则,用 C 语言加以实现; 5、对软件和硬件进行调试,让其协调工作,完成指定任务。 结合以上内容,本课
8、题的设计方案步骤如下: 关于硬件部分: 首先,对实际的电梯系统进行模拟,一般情况下,一个电梯应该具备相 4 周口科技职业学院毕业生论文 关按键、显示二极管、数码管等,由于这是一个调度模块,故没有设计具体 的轿厢等机械部分。然后,结合这些实物,选择恰当的芯片,并分成若干模 块,安排好各自之间的关系。由于其有诸多按键和显示环节,而单片机的 I/O 口管脚资源实在有限,故需要 I/O 口扩展,用以管理二极管;同时要有专门 的按键控制芯片,从而便于按键管理。在此,我分别选择了 82C55 和 8279 芯片。接着,要完成电路图的设计,画出 PCB 板,焊接相关器件后进行硬件 调试,看是否好用并加以适当
9、的更正。 关于软件部分: 处于最底层的是对两个芯片的寄存器读写工作,完成后方可进行更高层 的应用程序调试。 为了使硬件简单化, 我选择了模拟时序的方法读写寄存器, 这比总线操作的方法节省了锁存器。然后是关于电梯调度时所遵循的原则作 出规定,其必须基于高效与人性化两个原则。最后是使用 C 语言将规定程序 化,以便电梯真正的运作。 当然,二者的关系并不是分离的,它们是相辅相成,硬件依据软件来验 证,软件依据硬件来调试。经过一个个的发现问题、一个个的解决问题,最 终做出完美的电梯调度模块。 1.3 设计功能要求 本设计是为一八层电梯设计一调度系统, 即使电梯能够合理高效地运行, 完成各楼层顾客的接送
10、任务。形象地说,就是要应对不同楼层顾客的不同需 求,作出合理高效的判断,使所有顾客在整体运用时间最短的条件下将其运 往各自的目的地。 这个设计的成品应该可以作为真实电梯的控制系统一样,遵守以下两个 原则:一是高效性,二是人性化。而实际电梯所面临的情况无比复杂,故本 设计的难点除了硬件上面外,还有对这些复杂的情况归类化,分为若干个基 本情况,另外是用恰当的 C 语言描述来表达这些复杂的逻辑。 5 周口科技职业学院毕业生论文 第二章 2.1 硬件芯片的选择 系统的硬件设计 合理的硬件设计是一个设计成功的基石,所以在设计之初,我便把自己 的主要任务集中于筹划硬件的搭建工作, 当然其中需要兼顾软件设计
11、的需求。 由于本设计所模拟的楼层共有八层,其中所需要控制的器件较多,如每 层都需有两个上下的指示灯,电梯轿厢内也需有去几层的指示灯等,而现有 单片机的管脚资源无法满足需求,故第一步需要想法扩展单片机的 I/O 口管 脚资源。在此,我选择了扩展 I/O 口最典型的芯片 82C55。其可把一组八位 I/O 管脚扩展为 PA、PB、PC 三组管脚,并通过寄存器对各组管脚进行配置, 从而满足了本次设计的要求。 考虑到电梯会有多个按键,而传统的依据单片机自身的 I/O 口布局键盘 的方法显然也是不可行的,故本设计选择了典型的管理键盘的芯片 82C79, 其重要意义不仅在于减轻了单片机 I/O 口的开支负
12、担,而且可以代替单片机 完成各个按键的键值编写工作,单片机只要从其 FIFO 寄存器中直接读取键 值即可得知哪个按键被按下,进而进行相应的操作。 另外,电路板上还有一些扩展的子电路模块,例如 MAX232 串口下载模 块,U 口供电模块等等,当然这些都是方便程序的下载与调试的。并考虑到 电路板的面积与价格问题,一些芯片与二极管、电阻等用的是贴片封装。 2.2 单片机最小系统模块 单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分 功能集成在一块小芯片上, 但是它具有一个完整计算机所需要的大部分部件: CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸 如通讯接口、
13、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚 至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。 单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片 6 周口科技职业学院毕业生论文 机可以工作的系统。 在本设计中,最小系统应该包括:单片机、晶振电路、复位电路等。如 图 2.1 所示,晶振电路由 C1 与 C2 和晶振组成,晶振是给单片机提供工作信 号脉冲的。它的速率就是单片机的工作速率,简单地说,没有晶振,就没有 时钟周期,没有时钟周期,就无法执行程序代码,单片机就无法工作。并在 晶振的两引脚处接入两个 10pF-50pF 的瓷片电容接地用来削减偕波对电路的
14、 电阻 R11、 稳定性的影响。 复位电路采取的为手动按键复位电路, 由电容 C13, R12 和开关 RESET 组成,当单片机的复位引脚 RESET 出现 2 个机器周期以 上的高电平时,单片机就执行复位操作。如果 RST 持续为高电平,单片机就 处于循环复位状态。 每次复位后, 单片机的程序都会从第一条开始从新执行。 另外,还额外设计了滤波防干扰电路,由 C13 与 R12 组成,电源先经过它们 再接入单片机的 Vcc,可以有效的减少其中的杂波带来的干扰。 2.3 可编程 I/O 扩展芯片 82C55 模块 8255 是 Intel 公司生产的可编程并行 I/O 接口芯片,有 3 个 8
15、 位并行 I/O 口。具有 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
16、 INT1 INT0 T1 T0 EA/VP X1 X2 RESET RD WR RXD TXD ALE/P 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
17、 P26 8255cs P27 8279cs + 1k R11 10k R12 C2 GND 20P RESET 图 2. 1 单片机最小系统 图 2.2 82C55 引脚分布 8 周口科技职业学院毕业生论文 D7D0(data bus):三态、双向数据线,与CPU数据总线连接,用来传送 数据。 (chip select):片选信号线,低电平有效时,芯片被选中。 A1, A0(port address):地址线,用来选择内部端口。 (read):读出信号线,低电平有效时,允许数据读出。 (write):写入信号线,低电平有效时,允许数据写入。 RESET(reset):复位信号线,高电平有效时
18、,将所有内部寄存器(包括控 制寄存器)清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 连接部分、与外设连接部分、控制部分。 2.4 可编程按键控制芯片 82C79 模块 Intel
19、8279 芯片是一种通用的可编程序的键盘、显示接口器件,单个芯片 就能完成键盘输入和 LED 显示控制两种功能。 其引脚分布如图 2.5 所示。 8279 包括键盘输入和显示输出两个部分。 键盘部分提供的扫描方式, 可以和 64 个按键或传感器的阵列相连。 能自 动消除开关抖动以及为 N 个键同时按下提供保护。 9 周口科技职业学院毕业生论文 图 2.5 主要管脚的定义为: (片选):输入线,当 否则被禁止。 8279 引脚分布 =0 时 8279 被选中,允许 CPU 对其读、写, A0(数据选择):输入线。当 A0=1 时 CPU 写入数据为命令字,读出数 据为状态字;A0=0 时 CPU
20、 读、写的字节均为数据。 DB0DB7:与单片机通信的数据引脚,用于传送数据。 Vcc、GND:电源端与地端,用于给芯片提供电源。 、 (读、写信号):输入线。低电平有效,来自 CPU 的控制信 号,控制 8279 的读、写操作。 IRQ(中断请求):输出线。高电平有效。 在键盘工作方式中,当 FIFO/传感器 RAM 存有数据时,IRQ 为高电平。 CPU 每次从 RAM 中读出数据时,IRQ 变为低电平。若 RAM 中仍有数据, 则 IRQ 再次恢复高电平。 10 周口科技职业学院毕业生论文 在传感器工作方式中,每当检测到传感器状态变化时,IRQ 就出现高电 平。 SL0SL3(扫描线):
21、输出线。用来扫描键盘和显示器。它们可以编程设 定为编码(4 中取 1)或译码输出(16 取 1)。 RL0RL7(回复线):输入线。它们是键盘矩阵或传感矩阵的列(或行) 信号输入线。 SHIFT(移位信号):输入线、高电平有效。该输入信号是键盘数据的 最高位(D7),通常用来扩充键开关的功能,作为控制功能键用。 在选通输入方式时, 该信号的上升沿可将来自 RL0RL7 的数据存入 FIFO RAM 中。 在传感器输入下,该信号无效。 OUTA0OUTA3(A 组显示信号):输出线。 OUTB0OUTB3(B 组显示信号):输出线。 这两组引线都是显示数据输出线,与多位数字显示的扫描线 SL0S
22、L3 同 步,两组可以独立使用,也可以合并使用。 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
23、 CS RD WR A0 CLK RESET OUTB0 OUTB1 OUTB2 OUTB3 BD SL0 SL1 SL2 SL3 RL0 RL1 RL2 RL3 RL4 RL5 RL6 RL7 SHIFT CNTL/S 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 5F
24、Down 周口科技职业学院毕业生论文 图 2.6 8279 键盘控制模块 由图可知, 其八位并行数据管脚分别与单片机的 P0 口各管脚相连。 读写 信号端也分别与单片机的对应。 而其片选由 P27 控制, 低电平有效。 CLK 其 管脚与 ALE 相连,单片机正常工作时,ALE 管脚输出方波,频率为单片机 工作频率的六分之一。而芯片 82C79 的扫描键盘的频率正是由此而产生,当 然 i 用这么高的频率,还需要继续对其分频后方可供 82C79 使用。复位键同 样与单片机的复位键相通。而至于有些管脚如 BD、SHIFT、CNTL/S 等由于 在此设计中无甚意义,故均将其接地处理。 其工作机理为:
25、82C79 的 SL0SL2 在芯片工作时,不断以固定的频率输 出低电平,当然是同一时间只选择其中一根线为低电平,其他还未高电平, 同时扫描 RL0RL7 端,若得到某各端口返回低电平,在经过消抖处理后仍 为低电平, 则说明 SL0SL2 当前输出低电平的那根线与 RL0RL7 当前返回低 电平的那根线的交叉处的那个开关被按下了。那么芯片 82C79 会自动将该按 键按照规定的协议翻译为相应的键值(每个按键都有自己唯一的键值标示, 这 便于在编写程序时读取键值进而进行散转),存储与 FIFO 寄存器中,同时, 由于该寄存器中存有单片机未读取的值,IRQ 管脚就会自动输出高电平,再 经过非门后对
26、单片机的 INT0 产生中断,此时只需在编程时在中断程序中对 其进行相应处理即可。 2.5 MAX232 串口下载模块与附加电源模块等 由于程序绝不可能第一次编写完就可以达到预设的目的,其间要经过很 多次的更改修正,故为了便于程序的调试工作,我在此电路板上增设了一个 MAX232 串口下载模块, 这样便可以不用取下单片机去其他的电路板上下载, 而直接便可以在此电路板上完成了。同时为便于电源的引入,我选择了电脑 USB 口输出的 5V 直流电源,这样无需再用大型的电源设备,随处便可以调 12 周口科技职业学院毕业生论文 试。他们的电路图如图 2.7 所示: C10 104 VCC C8 104
27、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 是一个 电荷泵器件,它采用开关电容技
28、术将 5V 电压升压和获取负电压。 至于电源模块,便比较简单了,USB 口通常有四条引出线,其中边缘两 根便为电源线,一个为+5V 直流端,一个为地端。中间两根为差分信号线 D+ 与 D-,负责信号的串行通信。但由于此处只用做电源功能,故中间两根无需 接入。 直流端通过一个按键开关并经过一 10 微法的电容滤波后接入 Vcc, +5V 供整个电路板供电。当电源导通后,电源指示二极管会高亮。 同时,基于人性化处理,在电梯上下行时,我专门用若干个二极管排列 成上下箭头的形状,如图所示。中间的四个发光二极管组成一竖线型,并处 于常亮状态, 当电梯上行时, 与单片机 P13 管脚连接的 UP 端将输出
29、低电平, 经过一非门后使组成上三角的四个发光二极管点亮,从而形成以向上箭头; 同理,当下行时,与单片机 P11 脚相连的 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 U
30、4E 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 芯片的操作,一般也即对其内部寄存 器的操作。其内部寄存器分为两类,一类为命令寄存器,另一类为数据寄存
31、 器。很明显,由于 82C55 的功能为将一组单片机 I/O 口扩展为三组 I/O 口, 那么肯定要有三组数据寄存器,分别对应着它的三组 I/O 口,即 PA 口,PB 口与 PC 口,那么 82C55 芯片便有四个寄存器,正好可以用两位的地址线进 行寻址(即管脚 A0 与 A1)。大概得其读寄存器的流程图 3.1 14 周口科技职业学院毕业生论文 开始 使能片选 选择寄存器 地址 读信号为低 准备数据 读信号为高 片选无效 P0置高电平 开始 使能片选 选择寄存器 地址 写信号为低 准备数据 写信号为高 片选无效 P0置高电平 图 3.1 读写寄存器流程图 具体的说,其过程为:开始选中该芯片
32、(低电平有效),而后设置好所 要读写的寄存器的地址,也即设置好 A0 与 A1 的数值组合,若为读寄存器, 则让单片机读引脚 P37 为低电平,反之若为写寄存器,则让单片机写引脚 P36 为低电平,然后把要读或者写的数据放到数据口 P0 口上(需要注意的 是,当单片机读寄存器时,对于其自身来说,是输入数据,故此时需先让 P0 口值为高电平 0xff 为下一步的输入做准备,而此流程图的最后一步即为这种 情况做准备的),一段短短的稳定时间后再让读引脚或者写引脚为高电平, 则在由低到高的跳变中,数据得到了转移。然后再片选无效,以防以后的数 据传输产生相互干扰。最后数据口 P0 置为 0xff,为方便
33、下次可能的输入做准 备。 3.2 芯片 82C55 的初始化 对芯片 82C55 的初始化,实质上即是规定好它每个扩展口是作为什么方 式使用,即是输入还是输出,并且工作于何种方式。 15 周口科技职业学院毕业生论文 图 3.3 8255A 工作方式控制字格式 根据本设计的需求可知,我们只需用到两组扩展口 PA 和 PB,并且他们 均是用于控制二极管的亮灭,可见是作为输出使用的;并且他们不需要其他 的控制,即只要求作为最基本的输出即可,也即工作于方式 0 便可。而这一 切,均可以通过芯片的方式控制字来加以限定。由以上要求,再结合图 3.3 我们可以得到该控制字的数值为 0x80(二进制为 100
34、0 0000)。最后,再把这一 命令控制字发送到 82C55 的命令寄存器即可,命令寄存器对应的地址为 A0=1,A1=1。 3.3 3.3.1 对芯片 8279 的基本读写与初始化 芯片 8279 的基本读写 与 82C55 类似,由于未用诸如 74HC573 之类的锁存器,P0 口无法实现 数据与地址的复用功能, 8279 的读写控制也是基于模拟时序的基础上进行 对 的。并且他们的时序操作图大概类似,故在此不再赘述。 3.3.2 芯片 8279 的初始化 对该芯片的初始化,也即规定好该芯片的工作方式等,当然由于其功能 16 周口科技职业学院毕业生论文 较为强大,故对其操作的语句也相对多些。
35、一般来说,对 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
36、 显示方式 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
37、 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 外部编码扫描键盘(16 取 1),双键互锁 内部译码扫描键盘(4 取 1),双键互锁 外部编码扫描键盘 N 键依次读出 内部译码扫描键盘 N 键依次读出 外部译码扫描传感器矩阵方式内部译码扫描传感器矩阵方式 选通输入方式,外部编码显示扫描 选通输入方式,内部译码显示扫描 双键锁定与 N 键轮回是多键按下时的两种不同的保护方式。双键锁定为 两键同时按下提供的保护方法。再消颤周期里,如果有两键同时按下,则只 有其中一个键弹起,而另一个键保持在按下位置时,才被认可。N 键轮回为 N 键同时按下的保护方法。当有若干键按下时,键盘扫描能够根据
38、发现他们 的顺序,依次将它们的状态送入 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 取值为 231。例如外部时钟频率为 2MHZ,PPPPP 被 置为 10100(N=20),则对输入的外部时钟 20 分频,以获得 8279 内部要求 的 100KMZ 的基本频率。 3、读 FIFO/传感器 RAM 命令(表 3.6)
39、 表 3.6 读 FIFO/传感器 RAM 命令格式 / 18 周口科技职业学院毕业生论文 D7 0 D6 1 D5 0 D4 AI D3 X D2 A D1 A D0 A 其中:D7D6D5 =010 为读 FIFO/传感器 RAM 命令特征位。该命令字只在传 感器方式时使用。在 CPU 读传感器 RAM 之前,必须使用这条命令来设定传 感器 RAM 中的 8 个地址(每个地址一个字节)。 AAA(D2、D1、D0)为传感器 RAM 中的八个字节地址。 AI(D4)为自动增量特征位。当 AI=1 时,每次读出传感器 RAM 后地 址自动加 1 使地址指针指向下一个存储单元。这样,下一个数据便
40、从下一个 地址读出,而不必重新设置读 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
41、 时,每次读出后地址自动加 1 指 向下一地址。 5、写显示 RAM 命令(表 3.8) 表 3.8 写显示 RAM 命令格式 19 周口科技职业学院毕业生论文 D7 1 D6 0 D5 0 D4 AI D3 A D2 A D1 A D0 A 其中:D7D6D5 =100 为写显示 RAM 命令字的特征位。在写显示器 RAM 之 前用该命令用来设定将要写入的显示 RAM 地址。 AAAA(D3、D2、D1、D0)为将要写入的存储单元地址。 AI(D4)为自动增量特征位。当 AI=1 时,每次写入后地址自动加 1 指 向下一次写入地址。 6、显示禁止写入/消隐命令特征位(表 3.9) 表 3.9
42、 D7 1 D6 0 D5 1 显示禁止写入/消隐命令格式 显示禁止写入/消隐命令格式 D4 X D3 IWA D2 IWB D1 BLA D0 BLB 其中:D7D6D5 =101 为显示禁止写入/消隐命令特征位。 IW/A、IW/B(D3、D2)为 A、B 组显示 RAM 写入屏蔽位。由于显示 寄存器分成 A、B 两组,可以单独送数,故用两位来分别屏蔽。当 A 组的屏 蔽位 D3=1 时,A 组的显示 RAM 禁止写入。因此,从 CPU 写入显示器 RAM 数据时,不会影响 A 的显示。这种情况通常在采用双 4 位显示器时使用。因 为两个双四位显示器是相互独立的。为了给其中一个双四位显示器
43、输入数据 而又不影响另一个四位显示器,因此必须对另一组的输入实行屏蔽。 BL/A、BL/B(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
44、 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 约需 160S。在此期间 FIFO 状态时的最高位 DU=1,表 示显示无效。
45、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
46、第一 次从传感器 RAM 读出数据时就被清除。若自动递增特征已置位(AI=1), 则 CPU 对传感器 RAM 的读出并不能清除 IRQ,而必须通过给 8279 写入结 21 周口科技职业学院毕业生论文 束中断/错误方式设置命令才能使 IRQ 变低。 因此在传感器工作方式中, 此命 令用来结束传感器 RAM 的中断请求。 (2)作为特定错误方式设置命令。在 8279 已被设定为键盘扫描 N 键轮回 方式以后,如果 CPU 给 8279 又写入结束中断/错误方式设置命令(E=1), 则 8279 将以一种特定的错误方式工作。这种方式的特点是:在 8279 的消颤 周期内,如果发现多个按键同时按下
47、,则 FIFO 状态字中的错误特征位 S/E 将置 1,并产生中断请求信号和阻止写入 FIFO RAM。 上述八种用于确定 8279 操作方式的命令字皆由 D7D6D5 特征位确定, 输入 8279 后能自动寻址相应的命令寄存器。 因此, 写入命令字时唯一的要求 是使数据选择信号 A0=1。 8279 只有一位地址线 A0, 那么当然只可以寻址两个寄存器。 实际上也是 如此的,当 A0=0 时,寻址的为其内部的数据寄存器;当 A0=1 时,寻址的为 其内部的控制寄存器。那么其控制命令有多种,单一的一个命令寄存器又是 何以分辨如此多的命令呢?如上面所示,命令寄存器的八位中,高三位为命 令的分辨符
48、。故若想输入不同的命令,只需写入相应的高三位数据即可。 开始 清零寄存器 (命令字0xd1) 设置按键方式 (命令字0x03) 设置分频 (命令字0x2a) 图 3.4 8279 初始化 在本毕设中,应该规定哪些命令呢?如流程图 3.4 所示,对 8279 的初始 化供分为三步,即先后输入三个命令。首先,我们要对芯片内部的各寄存器 进行类似于复位的清零操作,方便以后的使用;其次,由于本设计中 8279 22 周口科技职业学院毕业生论文 主管 22 各按键, 而按键按下时又有多种复杂的情况, 诸如同时有若干按键按 下等,我们要选择此种情况的处理方式;再者,由于 8279 对按键实际上是通 过扫描
49、的方式确定有无按键按下,故我们还要设置好扫描的频率等,由硬件 电路知道,8279 有一时钟输入引脚 CLK 接于单片机的 ALE 引脚上,在单片 机正常工作时,ALE 引脚输出的为晶振频率六分之一的脉冲,这正是 8279 扫描的时钟源,当然,8279 的扫描频率不可能达到单片机晶振的输出频率那 么高,其实际的最大扫描频率为 100KH 左右,故我们需要一设置分频命令。 那么这三个命令的命令字是如何得到的呢?参考上面命令字的格式可以 知道: (1)清除寄存器命令的高三位特征位应该为 110,又由于我们是将显示 RAM 全部清零, D4 到 D2 位应该选择为 100, 故 由于对显示 RAM 的
50、清除方 式选择由 D3 和 D2 控制,故要求其 D0 位为 1。故最终得到的命令字为 11010001,转换为十六进制即为 0xd1。 (2)设置按键方式中,其特征位的代码为 000。由于未用到显示功能,故 其对应控制位 D4 与 D3 可以随便设置,在此均设置为 00。至于按键工作方 式的选择,我们只所以选择内部译码扫描键盘 N 键依次读出的方式,是结合 实际情况的结果。双键互锁的方法是当键盘同时有两个键按下时,任何一个 键值均不能进入 FIFO RAM 中,直至仅剩一个键保持闭合时,该键值才能进 入到 FIFO RAM 中。而 N 键依次读出方式,是 N 个键同时按下的保护方法。 当有若
51、干个键同时按下时,在键盘的扫描过程中根据发现它们的先后顺序进 行识别,并以此将它们的状态送入 FIFO RAM 中。对比我们可以发现,现实 中偶尔会发生不同楼层会有不同人同时按下不同按键的情况发生,这时若选 择双键互锁的方式, 则谁的键值都不能传达给内部寄存器, 这是很不方便的, 故在此,我们选择了 N 键依次读出的方式。对于市内部译码还是外部编码的 扫描方式,我们也可以根据其特点进行选择:编码方式,也称为外部译码方 式,计数器以二进制方式计数,4 位计数状态从扫描线 SL0SL3 输出,经外 部译码器译出 16 位扫描线,为键盘和显示器提供 16 取 1 的扫描线。而译码 23 周口科技职业
52、学院毕业生论文 方式,也称为内部译码方式,扫描计数器的低 2 位经内部译码后从 SL0SL3 输出,故此时提供了 4 取 1 的扫描译码。由电路图我们可以看出,实际上我 们仅仅用到了 SL0SL3 中的前三根线(因为按键不是太多,三乘八的矩阵键 盘已足够使用),故四取一得译码方式便成为了我们的首选,其对应代码为 D2D1D0=011。最终我们得到完整的命令符为 0000 0011,也即十六进制中的 0x03。 (3)设置分频命令字。其对应特征位为 001.由于电路板上,单片机的晶振 为 6MHz,ALE 脚输出的脉冲频率为晶振的六分之一,即 1MHz,而 8279 的 基本频率为 100KHz
53、, 故我们设置的分频系数应该为 1M/100K=10 (十进制) , 对应的二进制为 01010。最后可得完整二进制与十六进制命令码分别为 00101010 和 0x2a。 第四章 4.1 引言 从程序功能上来分, 本设计的高层软件程序大概可以分为以下几类: 一、 运行与决策函数;二、中断处理函数;三、置位各状态变量函数;四、清除 各状态变量函数。 其中,第一类函数起作用于按键按下的时刻,当有按键按下时,8279 芯 片会采集到键盘的键值,并以中断的方式发送给单片机,此时,单片机即对 程序中所用到的各个状态变量进行置位并且通过 82C55 点亮相关发光二极 管,如置位按键所对应的去向变量等,方
54、便决策函数使用。第二类函数的功 能恰好与第一类相反,这类函数起作用于电梯到达目标楼层时,这时函数负 责把相关发光二极管熄灭,并且及时清除相关状态位,以免影响判别函数作 出正确判断。第三类函数是程序的核心。它直接负责管理电梯下一次所要到 达的楼层,并且要基于短时间、高效率、人性化等原则。每当电梯经过一楼 层时,此函数即会被调用,然后返回一个变量名为 aim 的值,它即为下一个 系统的高层软件设计 24 周口科技职业学院毕业生论文 电梯要停留的目标楼层值。 而从程序的层次上来分,又可分为位于最底层的芯片内部寄存器操作的 基层程序和位于上层的应用程序,故本章以此为顺序,先介绍基层函数的实 现,继而详
55、细介绍各高层的应用函数。 4.2 单片机中断处理函数 本设计主要用到了单片机的中断系统。 8279 扫描到有按键按下时, 当 便 会将键值存储起来,并在 IRQ 引脚输出高电平发出中断,通知单片机进行相 关处理。在此详细介绍下中断的相关设置以及中断处理中都进行了哪些操作 (如图 4.1 所示)。 读取键值 分析键值来源 点亮相应发光 二极管 置位相应状态 变量 图 4.1 4.3 4.3.1 电梯判决函数 中断处理中的相关操作 电梯所处状态的分类与判定 这是整个程序成功运行的核心保证。在电梯经过一个楼层时,就会自动 调用该函数,它的作用是基于短时间、高效率、人性化的基础上,合理智能 的对电梯的
56、运行进行调度,结合实际情况,最终得出电梯下一个目标停留楼 层。其流程如图 4.2 所示。 25 周口科技职业学院毕业生论文 开始 按键标识 全为0? 否 是 电梯不 再运行 电梯向 上运行 电梯向 下运行 电梯上 楼接人 电梯上 楼送人 电梯下 楼接人 电梯下 楼送人 相关处理1 相关处理2 相关处理3 相关处理4 图 4.2 电梯判决流程图 由图可知,程序中将实际情况分为四种情况来判断:电梯上行且是去送 人(即电梯此时位于底层,而高层有人呼叫要上楼)、电梯上行且是去接人 (即电梯此时位于底层, 而高层有人呼叫要下楼) 电梯下行且是去送人 、 (即 电梯此时位于高层,而低层有人呼叫要下楼)、电梯下行且是去接人(即电 梯此时位于高层,而低层有人呼叫要上楼)。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 纺织机械的远程运维技术发展趋势考核试卷
- 玻璃行业技术创新趋势考核试卷
- 纸板容器广告视觉策略考核试卷
- 羽绒服设计与都市生活融合考核试卷
- 毛皮制品加工废水资源化利用考核试卷
- 国际货代与物流人才培养与教育考核试卷
- 矿山电气设备安全操作考核试卷
- 环保意识培养与环保行动实施考核试卷
- 海洋油气勘探与开发策略考核试卷
- 化疗患者饮食指导
- 2025年重庆市中考物理模拟试卷(一)(含解析)
- 《服务营销双主动》课件
- 公司法公章管理制度
- 演出经纪人员资格备考资料2025
- 成都交通投资集团有限公司招聘考试真题2024
- DZ∕T 0227-2010 地质岩心钻探规程(正式版)
- GB/T 23858-2009检查井盖
- T∕CSRME 016-2021 城市地下空间网络化拓建工程技术规范
- 员工个人信息保护合规要点清单
- 山东省危废处理名录
- 班组安全安全考核表
评论
0/150
提交评论