88 LED点阵屏模仿电梯运行的楼层显示本科课程毕业设计doc.docx

上传人:b****2 文档编号:14000076 上传时间:2023-06-19 格式:DOCX 页数:29 大小:823.32KB
下载 相关 举报
88 LED点阵屏模仿电梯运行的楼层显示本科课程毕业设计doc.docx_第1页
第1页 / 共29页
88 LED点阵屏模仿电梯运行的楼层显示本科课程毕业设计doc.docx_第2页
第2页 / 共29页
88 LED点阵屏模仿电梯运行的楼层显示本科课程毕业设计doc.docx_第3页
第3页 / 共29页
88 LED点阵屏模仿电梯运行的楼层显示本科课程毕业设计doc.docx_第4页
第4页 / 共29页
88 LED点阵屏模仿电梯运行的楼层显示本科课程毕业设计doc.docx_第5页
第5页 / 共29页
88 LED点阵屏模仿电梯运行的楼层显示本科课程毕业设计doc.docx_第6页
第6页 / 共29页
88 LED点阵屏模仿电梯运行的楼层显示本科课程毕业设计doc.docx_第7页
第7页 / 共29页
88 LED点阵屏模仿电梯运行的楼层显示本科课程毕业设计doc.docx_第8页
第8页 / 共29页
88 LED点阵屏模仿电梯运行的楼层显示本科课程毕业设计doc.docx_第9页
第9页 / 共29页
88 LED点阵屏模仿电梯运行的楼层显示本科课程毕业设计doc.docx_第10页
第10页 / 共29页
88 LED点阵屏模仿电梯运行的楼层显示本科课程毕业设计doc.docx_第11页
第11页 / 共29页
88 LED点阵屏模仿电梯运行的楼层显示本科课程毕业设计doc.docx_第12页
第12页 / 共29页
88 LED点阵屏模仿电梯运行的楼层显示本科课程毕业设计doc.docx_第13页
第13页 / 共29页
88 LED点阵屏模仿电梯运行的楼层显示本科课程毕业设计doc.docx_第14页
第14页 / 共29页
88 LED点阵屏模仿电梯运行的楼层显示本科课程毕业设计doc.docx_第15页
第15页 / 共29页
88 LED点阵屏模仿电梯运行的楼层显示本科课程毕业设计doc.docx_第16页
第16页 / 共29页
88 LED点阵屏模仿电梯运行的楼层显示本科课程毕业设计doc.docx_第17页
第17页 / 共29页
88 LED点阵屏模仿电梯运行的楼层显示本科课程毕业设计doc.docx_第18页
第18页 / 共29页
88 LED点阵屏模仿电梯运行的楼层显示本科课程毕业设计doc.docx_第19页
第19页 / 共29页
88 LED点阵屏模仿电梯运行的楼层显示本科课程毕业设计doc.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

88 LED点阵屏模仿电梯运行的楼层显示本科课程毕业设计doc.docx

《88 LED点阵屏模仿电梯运行的楼层显示本科课程毕业设计doc.docx》由会员分享,可在线阅读,更多相关《88 LED点阵屏模仿电梯运行的楼层显示本科课程毕业设计doc.docx(29页珍藏版)》请在冰点文库上搜索。

88 LED点阵屏模仿电梯运行的楼层显示本科课程毕业设计doc.docx

88LED点阵屏模仿电梯运行的楼层显示本科课程毕业设计doc

 

本科课程设计(论文)

8×8LED点阵屏模仿电梯运行的楼层显示

 

学院信息工程学院

专业测控技术与仪器

(光机电一体化方向)

年级班别20级

(1)班

学号

学生姓名

指导教师

2014年01月13日

摘要

伴随着我国现代化程度的提高,电梯成为高层建筑中的重要交通工具,它是高层建筑中安全、可靠、垂直上下的运载工具,对改善劳动条件、减轻劳动强度起到很大的作用。

同时也给人们的生活带来了便利,为我国现代化建设的加速发展提供了强大的保障。

电梯的应用范围很广,可用于宾馆、饭店、办公大楼、商场、娱乐场所,仓库以及居民住宅大楼等。

因此,在现代社会中电梯已成为人类必不可少的垂直运输交通工具。

利用单片机控制电梯有成本低,通用性强,灵活性大以及易于实现复杂控制等优点。

本课程设计采用了一种采用单片AT89C51芯片进行电梯控制系统的设计方法,主要阐述如何使用单片机进行编程来实现电子设计的方法,利用单片机编程实现功能,简洁而又多变的设计方法,缩短了研发周期,同时使电梯控制系统体积更小功能更强大。

本设计实现了电梯控制系统所需的一些基本功能,能通过数字按键选择楼层,点阵显示实时楼层数。

原理图采用proteus专业软件来设计。

 

关键词:

单片机;电梯;系统;控制;C语言

 

附录A程序清单16

1任务提出与方案论证

1.1课程设计要求

1、设计采用单片机控制8*8LED点阵屏来模仿电梯运行的楼层显示装置。

2、单片机的Pl口的8只引脚接有8只按键开关Kl~K8,这8只按键开关K1~K8分别代表l楼~8楼。

如果某一楼层的按键按下,单片机控制的点阵屏将从当前位置向上或向下平滑滚动显示到指定楼层的位置。

3、在上述功能的基础上,向电路中添加LED指示灯和蜂呜器,使系统可以同时识别依次按下的多个按键,在到达指定位置后蜂鸣器发出短暂声音且LED闪烁片刻,数字继续滚动显示。

4、如果在待去的楼层的数字中,有的在当前运行的反方向,则数字先在当前方向运行完毕后,再依次按顺序前往反方向的数字位置。

1.2课题设计内容

本课题的主要任务是完成一个电梯系统的智能控制模块,即根据每个楼层不同顾客的按键要求,让电梯做出合理的判断,正确高效的指导电梯完成各项载客任务。

设计基于单片机的电梯智能控制系统的硬件电路与软件程序,给出硬件系统的电路原理图,对硬件电路与软件分别进行调试,得到调试成功的基于单片机的电梯智能控制系统。

根据此任务,本课题需要研究的内容有:

1、根据系统的技术要求,进行系统硬件的总体方案设计;

2、学习单片机的相关知识,并且加以运用;

3、选择适当的芯片,并对其内部协议有所掌握,便于应用。

4、研究单片机C语言编程,并且规定电梯的工作规则,用C语言加以实现;

5、对软件和硬件进行调试,让其协调工作,完成指定任务。

1.3方案论证

本次设计的基本思想是采用AT89C51单片机作为核心,利用其丰富的I/O接口与外围电路配合进行控制。

按题目要求采用8*8点阵来实时显示电梯所在楼层。

由于是8层楼,采用8个独立键盘。

当电梯到达目的楼层时,LED灯亮起,蜂鸣器响,此时即可进、出乘客,然后电梯根据乘客的选择判断去哪一层,继续运行。

电梯的正常运行通过单片机的控制来实现。

 

2总体设计

2.1设计原理及方法

根据层次化设计理论,该设计问题自顶向下可分为单片机最小系统模块、显示模块、开关控制模块、电机驱动模块、稳压模块,其系统框图如图2.1所示。

 

图2.1电梯控制系统框图

本次设计是采用键盘控制实现上下到指定楼层,通过稳压模块使电机转动带动电梯箱上下运动,到达指定楼层。

显示模块是显示此时的楼层以及要求到达的楼层。

电梯初始显示0。

单片机的Pl口的8只引脚接有8只按键开关K1~K8,这8只按键开关K1~K8分别代表l楼~8楼。

如果按下代表某一楼层的按键,单片机控制的点阵屏将从当前位置向上或向下平滑滚动显示到指定楼层的位置。

在上述功能的基础上,向电路中添加LED指示灯和蜂呜器,使系统可以同时识别依次按下的多个按键,在到达指定位置后蜂鸣器发出短暂声音且LED闪烁片刻,数字继续滚动显示。

例如,当前位置在l层时,用户依次按下6、5时,则数字分别向上滚动到5、6时暂停且LED闪烁片刻,同时蜂鸣器发出提示音。

如果在待去的楼层的数字中,有的在当前运行的反方向,则数字先在当前方向运行完毕后,再依次按顺序前往反方向的数字位置。

用P2口做8*8点阵的行选通,Pl口完成按键的读取及确认。

 

3.硬件电路器件选择

 

3.1AT89C51单片机

AT89C51是一个低电压,高性能CMOS8位单片机带有4K字节的可反复擦写的程序存储器(PENROM)。

和128字节的存取数据存储器(RAM),这种器件采用ATMEL公司的高密度、不容易丢失存储技术生产,并且能够与MCS-51系列的单片机兼容。

片内含有8位中央处理器和闪烁存储单元,有较强的功能的AT89C51单片机能够被应用到控制领域中。

本设计采用AT89C51,它提供以下的功能标准:

4K字节闪烁存储器,128字节随机存取数据存储器,32个I/O口,2个16位定时/计数器,1个5向量两级中断结构,1个串行通信口,片内震荡器和时钟电路。

另外,AT89C51还可以进行0HZ的静态逻辑操作,并支持两种软件的节电模式。

闲散方式停止中央处理器的工作,能够允许随机存取数据存储器、定时/计数器、串行通信口及中断系统继续工作。

掉电方式保存随机存取数据存储器中的内容,但震荡器停止工作并禁止其它所有部件的工作直到下一个复位。

引脚图如图2-7所示。

图3.1AT89C51引脚

VCC:

电源电压

GND:

P0口:

P0口是一组8位漏极开路双向I/O口,即地址/数据总线复用口。

作为输出口时,每一个管脚都能够驱动8个TTL电路。

当“1”被写入P0口时,每个管脚都能够作为高阻抗输入端。

P0口还能够在访问外部数据存储器或程序存储器时,转换地址和数据总线复用,并在这时激活内部的上拉电阻。

P0口在闪烁编程时,P0口接收指令,在程序校验时,输出指令,需要接电阻。

P1口:

P1口一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动4个TTL电路。

对端口写“1”,通过内部的电阻把端口拉到高电平,此时可作为输入口。

因为内部有电阻,某个引脚被外部信号拉低时输出一个电流。

闪烁编程时和程序校验时,P1口接收低8位地址。

P2口:

P2口是一个内部带有上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动4个TTL电路。

对端口写“1”,通过内部的电阻把端口拉到高电平,此时,可作为输入口。

因为内部有电阻,某个引脚被外部信号拉低时会输出一个电流。

在访问外部程序存储器或16位地址的外部数据存储器时,P2口送出高8位地址数据。

在访问8位地址的外部数据存储器时,P2口线上的内容在整个运行期间不变。

闪烁编程或校验时,P2口接收高位地址和其它控制信号。

P3口:

P3口是一组带有内部电阻的8位双向I/O口,P3口输出缓冲故可驱动4个TTL电路。

对P3口写如“1”时,它们被内部电阻拉到高电平并可作为输入端时,被外部拉低的P3口将用电阻输出电流。

P3口除了作为一般的I/O口外,更重要的用途是它的第二功能,如下表所示:

端口引脚

第二功能

P3.0

RXD

P3.1

TXD

P3.2

INT0

P3.3

INT1

P3.4

T0

P3.5

T1

P3.6

WR

P3.7

RD

表2-1

P3口还接收一些用于闪烁存储器编程和程序校验的控制信号。

RST:

复位输入。

当震荡器工作时,RET引脚出现两个机器周期以上的高电平将使单片机复位。

ALE/:

当访问外部程序存储器或数据存储器时,ALE输出脉冲用于锁存地址的低8位字节。

即使不访问外部存储器,ALE以时钟震荡频率的1/16输出固定的正脉冲信号,因此它可对输出时钟或用于定时目的。

要注意的是:

每当访问外部数据存储器时将跳过一个ALE脉冲时,闪烁存储器编程时,这个引脚还用于输入编程脉冲。

如果必要,可对特殊寄存器区中的8EH单元的D0位置禁止ALE操作。

这个位置后只有一条MOVX和MOVC指令ALE才会被应用。

此外,这个引脚会微弱拉高,单片机执行外部程序时,应设置ALE无效。

PSEN:

程序储存允许输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器读取指令时,每个机器周期两次PSEN有效,即输出两个脉冲。

在此期间,当访问外部数据存储器时,这两次有效的PSEN信号不出现。

EA/VPP:

外部访问允许。

欲使中央处理器仅访问外部程序存储器,EA端必须保持低电平。

需要注意的是:

如果加密位LBI被编程,复位时内部会锁存EA端状态。

如EA端为高电平,CPU则执行内部程序存储器中的指令。

闪烁存储器编程时,该引脚加上+12V的编程允许电压VPP,当然这必须是该器件是使用12V编程电压VPP。

XTAL1:

片内振荡器反相放大器和时钟发生线路的输入端。

使用片内振荡器时,连接外部石英晶体和微调电容。

XTAL2:

片内振荡器反相放大器的输出端。

当使用片内振荡器时,外接石英晶体和微调电容。

 

3.274LS245

图3.2 74LS245

74LS245是我们常用的芯片,用来驱动LED或者其他的设备,它是8路相同三态双向总线收发器,可双向传输数据。

74LS245还具有双向三态功能,既可以输出,也可以输入数据。

当8051单片机的P0口总线负载达到或超过P0口最大负载能力时,必须接入74LS245等总线驱动器。

当片选端/CE低电平有效时,DIR=“0”,信号由B向A传输;(接收)

DIR=“1”,信号由A向B传输;(发送)当CE为高电平时,A、B均为高组态。

由于P2口始终输出地址的高8位,接口时74LS245d三态控制端1G和2G接地,P2口与驱动器输入线对应相连。

P0口与74LS245输入端相连,E端接地,保证数据线畅通。

8051的/RD和/PSEN相与后接DIR,使得RD且PSEN有效时,74LS245输入(P0.1←D1),其他时间处于输出(P01→D1)。

 

3.3.LED点阵

图3.3LED点阵外观

显示屏是由发光二极管行列组成的LED点阵模块组成显示屏体。

本设计中选择8*8的点阵是由64个发光二极管按规律组成的。

如图2-10。

图3.4LED点阵内部结构

如图2-8所示的发光二极管,行接高电平,列接低电平,发光二极管导通发光。

8X8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮。

4模块设计

4.1单片机最小系统模块

图4.1单片机最小系统

单片机最小系统包括主芯片,复位电路和晶振脉冲产生电路。

X1为12MHz晶振,与30Pf电容并联,产生1us的脉冲信号作为单片机的“心脏”部分。

复位电路是开关与10uf电容并联组成的上电自动复位电路,在RST端为高电平时单片机清零,也即开关按下会产生清零信号。

RP1为排阻,作为P0端的上拉电阻,接此原因是P0端口是由OC门组成。

U1为数据输入端口,通过电脑编程能将程序通过此接口烧录入单片机中。

8位CPU·4kbytes,程序存储器(ROM)(52为8K),128bytes的数据存储器(RAM)(52有256bytes的RAM),32条I/O口线·111条指令,大部分为单字节指令,21个专用寄存器,2个可编程定时/计数器,5个中断源,2个优先级(52有6个),一个全双工串行通信口,外部数据存储器寻址空间为64kB,外部程序存储器寻址空间为64kB,逻辑操作位寻址功能,双列直插40PinDIP封装,单一+5V电源供电。

CPU:

由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;

RAM:

用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;

ROM:

用以存放程序、一些原始数据和表格;

I/O口:

四个8位并行I/O口,既可用作输入,也可用作输出;

T/C:

两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式;

一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片机之间或单片机与微机之间的串行通信;

片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。

最高振荡频率为12M。

4.2开关控制模块

图4.2开关控制模块

单片机的Pl口的8只引脚接有8只按键开关K1~K8,这8只按键开关K1~K8分别代表l楼~8楼。

如果按下代表某一楼层的按键,单片机控制的点阵屏将从当前位置向上或向下平滑滚动显示到指定楼层的位置,系统检测按键低电平识别依次按下的多个按键。

4.3显示模块

 

图4.3显示模块

8X8点阵,它共由64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一行置1电平,某一列置0电平,则相应的二极管就亮;p2进行列扫描,p0输入数据.

4.4声光模块

图4.4

P3.0、P3.1口分别控制电路中LED指示灯和蜂呜器,使系统可以同时识别依次按下的多个按键,在到达指定位置后蜂鸣器发出短暂声音且LED闪烁片刻,数字继续滚动显示。

4.5按键中断检测模块

图4.5

按键中断检测模块,由于单片机检测低电平,有8个按键需要检测,采用2个四输入端与门和一个二输入端与门搭配,使之达到检测是否有按键按下目的。

4.6电源电路模块

电源电路如图2-6所示。

整个系统采用的电源电压只需+5V电压,将交流电经变压器变换为12V交流电,再用整流桥得到8.5V左右的直流电,采用不可调的3端稳压器件LM7805将电源稳定在5V直流输出。

图4.6电源电路

4.7电路总图

图4.7电路总图

 

5.软件设计

 

图5.1电梯智能控制功能实现流程图

详细程序见附录。

6总结

本课程设计了实现单片机控制下电梯智能控制系统的设计方案。

由于条件的限制,没有做成真正的电梯。

但做成的电梯智能控制系统的硬件电路已能演示。

可以按照乘客的要求,将乘客送到要去的目的层。

但是,电梯还有很多的扩展的空间并未实现,比如电梯自动语音报站系统的设计,楼层监控系统,节能设计以及其它更多的服务。

设计的核心内容就是利用单片机C51的编程来实现控制外围各电路的运行。

通过本次设计,我熟练掌握了程控系统设计的一般步骤,熟悉了编程软件的用法,并对编程能力起到了一定的提高作用。

本系统具有硬件少,结构简单,容易实现,性能稳定可靠,成本低等特点。

在此次设计中,我们得到以下体会:

一、在这次点阵设计的过程让我进一步熟悉KEIL及Proteus的使用。

二、通过这次点阵设计,重新复习并进一步学习了MCS-52优点,明确了研究目标。

三、在后的设计中,既要想到电路器件的联合使用,又要灵活变通,举一反三。

通过本次设计,我收获颇丰,本人的知识领域得到进一步扩展,专业技能得到进一步提高,同时提高了分析和解决实际问题的综合能力。

另外,也培养了自己严肃认真的科学态度和严谨求实的作风。

由于本人水平有限,本次设计还存在一些不足之处,请评阅与答辩的各位老师批评指正。

 

附录A程序清单

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

ucharcodeTable_of_Digits[]=//点阵显示数组

{

0x00,0x3C,0x24,0x24,0x3C,0x24,0x24,0x3C,//8

0x00,0x3C,0x04,0x04,0x04,0x04,0x04,0x00,//7

0x00,0x3C,0x20,0x20,0x3C,0x24,0x24,0x3C,//6

0x00,0x3C,0x20,0x20,0x3C,0x04,0x3C,0x00,//5

0x00,0x0C,0x14,0x24,0x7E,0x04,0x04,0x00,//4

0x00,0x3C,0x04,0x3C,0x04,0x04,0x3C,0x00,//3

0x00,0x3C,0x04,0x04,0x3C,0x20,0x3C,0x00,//2

0x00,0x08,0x38,0x08,0x08,0x08,0x3E,0x00,//1

0x00,0x3C,0x66,0x42,0x42,0x66,0x3C,0x00//0

};

uchari=0,t=0,j=0,a=0;//i-行扫描,t-延迟

charoffset=0;

staticintCurrent_floor=0,Pressed_key_up=0,Pressed_key_down=0,b=0,c=0,max=0,min=0;//Current_floor-当前楼层,Pressed_key_up-上升请求,Pressed_key_down-下降请求

intflag;

intfloor_up[8]={9,9,9,9,9,9,9,9};//上升请求存放数组

intfloor_down[8]={0,0,0,0,0,0,0,0};//下降请求存放数组

sbitKEY1=P1^0;//定义P1口按键

sbitKEY2=P1^1;

sbitKEY3=P1^2;

sbitKEY4=P1^3;

sbitKEY5=P1^4;

sbitKEY6=P1^5;

sbitKEY7=P1^6;

sbitKEY8=P1^7;

sbitLED=P3^7;//定义LED跟蜂鸣器

sbitSPEAK=P3^6;

voidKey_up_comparison();//函数声明,把floor_up[]按从小到大排列

voidKey_down_comparison();//把floor_down[]按从大到小排列

voidmax_min_comparison();//比较出floor_up[]的最大值(max)和floor_down[]的最小值(min)

//

//主函数

//

voidmain()

{

P2=0x80;//初始化

LED=0;

SPEAK=0;

TMOD=0x01;//T0方式

TH0=(-6000)/256;//6ms定时

TL0=(-6000)%256;

IT0=1;

IE=0x83;

TR0=1;

ET0=1;

Pressed_key_up=floor_up[0];

while

(1)//循环排列

{

Key_up_comparison();

Key_down_comparison();

max_min_comparison();

}

}

voidLED_Screen_Display()interrupt1//进入中断,显示楼层

{

TH0=(-6000)/256;//6ms

TL0=(-6000)%256;

P0=0xff;

Pressed_key_up=floor_up[0];

Pressed_key_down=floor_down[0];

if(flag==1)//上升标志

{

if(Pressed_key_up!

=9)//有上升请求

{

if(Pressed_key_up>Current_floor)//点阵平滑上升显示

{

P0=~Table_of_Digits[(8-Current_floor)*8+i+offset];

P2=_crol_(P2,1);

if(++i==8)

{

i=0;

P2=0x80;

}

if(++t==25)//延迟

{

t=0;

if(--offset==-8)

{

offset=0;

++Current_floor;

}

}

}

elseif(Pressed_key_up

elseif(Pressed_key_up==Current_floor)//到达请求楼层

{

P0=~Table_of_Digits[(8-Current_floor)*8+i];

P2=_crol_(P2,1);

if(++i==8)

{i=0;P2=0x80;}

LED=~LED;SPEAK=~SPEAK;//蜂鸣器响,LED闪烁

if(++t==250)

{

t=0;

if(Current_floor==Pressed_key_up)

{

Current_floor=Pressed_key_up;

if(Current_floor==max)

{

flag=0;

}

floor_up[0]=9;

}

}

}

}

elseif(Pressed_key_up==9)//无请求,扫描显示当前楼层

{

P0=~Table_of_Digits[(8-Current_floor)*8+i];

P2=_crol_(P2,1);

if(++i==8)

{

i=0;

P2=0x80;

}

if(++t==250)

t=0;

}

}

elseif(flag==0)//下降标志

{

if(Pressed_key_down!

=0)//有下降请求

{

if(Pressed_key_down>Current_floor);

elseif(Pressed_key_down

{

P0=~Table_of_Digits[(8-Current_floor)*8+i+offset];

P2=_crol_(P2,1);

if(++i==8)

{

i=0;

P2=0x80;

}

if(++t==25)

{

t=0;

if(++offset==8)

{

offset=0;

--Current_floor;

}

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2