摘设计STC89C52单片机核心三层电梯模拟控制系统硬件部分单片机系统模块电梯外电路键矩阵模拟检测模块楼层显示数码模块电梯行显示模块等4部分组成软件部分C语言利查询方式检测户请求键信息根电梯运行相应楼层时模拟键引起电变化送单片机计数确定楼层数送数码进行显示利单片机设计电梯控制系统具成低通性强灵活性易实现复杂控制等优点
关键词STC89C52 电梯系统 数码显示 控制
1 前言
着国城市化进程日益加快电梯已融入生活电梯应宾馆饭店办公楼商场娱乐场仓库居民住宅楼等电梯高效方便快捷电梯受家热烈欢迎电梯应会断拓展款式种样目满足种样需求电梯现代缺代步工具着科技断进步济深入发展科技引领电梯进行质飞跃电梯越越智越越安全稳定
2 总体设计方案
设计务
设计基STC89C52单片机三层电梯系统单片机作控制核心根电梯运行相应楼层时模拟键引起电变化送单片机计数确定楼层数控制电机转动送数码进行显示硬件设计简单结合软件基实现电梯运行模拟
设计求
(1)层电梯入口处请求扭电梯设客达楼层请求开关
(2)设电梯处位置指示装置电梯运行模式(升降降)指示装置
(3)层楼时间等时间4秒延时时间1秒
(4)记忆电梯外请求信号电梯运行规次序响应信号保留执行清
(5)电梯初始状态1楼等
总体方案证选择
方案:片单片机控制方案种方案片单片机中片作控制器层控制系统分单片机控制然通控制器副控制器间通讯实现电梯系统控制总体框图图
图 方案总体框图
方案二:片单片机控制器方案设计采片单片机控制键数码电机蜂鸣器等信号进行处理总体框图图
图 方案二总体框图
通较知道方案控制系统结构然简单明系统间相互独立便维护修检适层电梯系统系统片单片机联调相方案二说较复杂方案二控制系统适较简单电梯控制系统次设计容3层电梯控制系统选方案二
3 系统硬件电路设计
单片机系统设计
STC89C52宏晶科技推出新代高速低功耗超强抗干扰单片机指令代码完全兼容传统8051单片机12时钟机器周期6时钟机器周期意选择系统图
图 STC89C52单片机系统
SCT89C52特性
1增强型8051单片机
2工作频率范围040MHz
332双IO口
4316位定时计数器
5外部中断4路降中断低电触发电路
6低功耗空闲掉电模式
STC89C52引脚功
P0口:P0口漏极开路8位行双IO口址数总线复口作输出端口时引脚驱动8 TTL负载访问外部数存储器程序存储器时P0口提供低8位址8位数复总线Flash 编程时P0 口接收指令字节程序校验时输出指令字节校验时求外接拉电阻
P1口:P1口具部拉电阻8位双行IO口P1口输出缓器驱动(吸收输出电流)4 TTL 输入端口写1通部拉电阻端口拉高电时作输入口P1口作输入口时部存拉电阻某引脚外部信号拉低时会输出电流(IIL)
P2口:P2口具部拉电阻8位双行IO口P2 输出缓器驱动(吸收输出电流)4 TTL 输入端口P2 写1通部拉电阻端口拉高电时作输入口作输入口时部存拉电阻某引脚外部信号拉低时会输出电流(IIL)
P3口:P3口具部拉电阻8位双行IO口P3 口输出缓器驱动(吸收输出电流)4 TTL 输入P3 口写入1时部拉电阻拉高作输入端口时外部拉低P3 口拉电阻输出电流(IIL)P3 口作般IO 口线外更重途第二功P3 口接收Flash 闪速存储器编程程序校验控制信号
RST:RST复位信号输入引脚晶振工作时果引脚持续出现少两机器(晶振12振荡周期机器周期)高电会单片机复位
XTAL1XTAL2:XTAL1XTAL2片振荡器输入输出引脚XTAL1反振荡放器输入部时钟工作电路输入引脚XTAL2反振荡器输出
PSEN:程序储存允许(PSEN)输出外部程序存储器读选通信号 ALEPROG:ALEPROG址锁存允许编程引脚
EAVpp:外部访问允许需注意:果加密位LB1 编程复位时部会锁存EA端状态
显示电路设计
图模块采数码显示电梯目标楼层行行状态行显示E行显示F模块功耗软件驱动简单硬件电路调试方便价格便宜亮度满足设计求
图 楼层显示模块
图LED显示运行情况电梯运行时LED灯亮达目标楼层LED灯灭
图 LED显示模块
声音提示模块
图模块采蜂鸣提示音提示电梯运行前超重障紧急情况时蜂鸣器警报声达目标楼层时蜂鸣器短提示音软件驱动硬件电路调试非常简洁方便价格便宜满足设计求
图 声音提示模块
键模块
图键输入引起电变化通单片机控制数码显示电梯行
图 键模块
电机模块
图示电梯需行电机转动时LED灯亮
图 电机模块
系统总电路原理图
基单片机三层电梯系统原理图图绘制PCB电路印刷板
图 系统原理图
系统PCB图
图系统PCB图
图 系统PCB图
4 系统程序设计
系统总体设计程序流程图图
图 程序流程图
系统子程序流程图图
图 子程序流程图
5 系统调试
软件调试
Keil软件简介
单片机开发中必硬件外样离开软件写汇编语言源程序变CPU执行机器码两种方法种手工汇编种机器汇编目前已极少手工汇编方法机器汇编通汇编软件源程序变机器码MCS51单片机汇编软件早期A51着单片机开发技术断发展普遍汇编语言逐渐高级语言开发单片机开发软件断发展Keil软件目前流行开发MCS51系列单片机软件年仿真机厂商纷纷宣布全面支持Keil出Keil提供包括C编译器宏汇编连接器库理功强仿真调试器等完整开发方案通集成开发环境(uVision)部分组合起运行Keil软件需PentiumCPU16MB更RAM20M空闲硬盘空间WIN98NTWIN2000WINXP等操作系统掌握软件51系列单片机爱者说十分必果C语言编程Keil二选(目前国买该软件买仿真机支持该软件)C语言仅汇编语言编程方便易集成环境强软件仿真调试工具会令事半功倍
Proteus软件简介
Proteus软件英国Labcenter electronics公司出版EDA工具软件(该软件中国总代理广州风标电子技术限公司)仅具EDA工具软件仿真功仿真单片机外围器件目前仿真单片机外围器件工具然目前国推广刚起步已受单片机爱者事单片机教学教师致力单片机开发应科技工作者青睐Proteus世界著名EDA工具(仿真软件)原理图布图代码调试单片机外围电路协仿真键切换PCB设计真正实现概念产品完整设计目前世界唯电路仿真软件PCB设计软件虚拟模型仿真软件三合设计台处理器模型支持8051HC11PIC101216182430DsPIC33AVRARM8086MSP430等2010年增加CortexDSP系列处理器持续增加系列处理器模型编译方面支持IARKeilMPLAB等种编译器
软件调试结果
系统软件调试成功硬件实现关键软件编译调试程序开发第步缺少部
仿真采Proteus软件Proteus软件完成原理图布图代码调试单片机外围电路协仿真仅具EDA工具软件仿真功仿真单片机外围器件目前仿真单片机外围器件工具
系统仿真图图
图 仿真图
图电梯3楼1楼情况
图 运行时仿真图
图电梯1楼2楼情况
图 电梯1楼2楼
系统硬件制作调试
1课题求做出分析列出需模块单片机系统指示灯模块键电路数码显示电路
2划分系统模块根实际情况确定模块实现方式模块分配IO口确定系统概结构设计中系统硬件较简单直接IO口控制模块需址译码中P0口数码送段选码P1口控制电梯外指示灯P2口接键
3根实际情况确定模块实现方式进确定系统详细参数系中需键较采矩阵键盘P0口部拉电阻应外部加外数码足够量三极进行驱动
4运DXP软件绘制原理图PCB图手动布线绘制原理图程中注意选择合适元件封装进行布线时考虑电路稳定安全考虑美观调试方便布线程中细心免造成断路短路
5印PCB图熨烫腐蚀孔焊接检查线路腐蚀电路板时应注意握度免腐蚀度孔焊接检查电路时应细心保证电路板质量
焊接实物图图
图 实物图
图电梯1楼2楼情况时电梯升状态黄色LED灯亮时电机转动数码显示降状态E目标楼层2达黄色LED灯灭电机停止转动蜂鸣器提示达目标楼层
图 电梯1楼2楼
图电梯2楼3楼情况时电梯升状态黄色LED灯亮时电机转动数码显示升状态E目标楼层3达黄色LED灯灭电机停止转动蜂鸣器提示达目标楼层
图 电梯2楼3楼
调试方案步骤
1先电路板进行目测电路否断点短路点电烙铁进行焊接果怀疑某点断路点短路点万表蜂鸣器测试电路电路通蜂鸣器响通响
2万表蜂鸣器测试电路特电源线线确保电路正常通路
3确保误连接电源
4模块进行检测首先单片机电IO口般高电万表检测验证时指示灯数码段应全亮观察指示灯数码否正常亮够亮亮电流够检测相关节点电压分析原解决外烧入简单拉低IO口电程序否相应变化
5烧入简单程序拉低键盘行线电列线保持高电键
万表检测键列线电否变低变低正常否
正常应检测相关节点电分析障原解决
6 设计总结
电路设计总结
系统硬件结构简明清晰调试程中发现问题分析问题发现电路设计制作程中需注意问题
首先划分系统模块确定模块实现电路形式时考虑控制芯片控制IO口数特点应根系统运行时环境具体情况选择合适电路形式元件次设计程步时应该考虑设置便续工作终调试操作外确定模块电路应电路某关键参数进行分析结合实际理想区进行合理设置
软件设计总结
系统设计关键难点电梯动作调度程序正设计调试程序程中获益匪浅
首先设计模拟实现容分析时全面考虑种情况准确握情况规律遵循统原电梯控制模型设计中应该考虑情况相请求响应差相情况请求响应区中找出路请求先响应原规律
次编写程序代码时养成良编程惯设计风格关键性语句加注释程序读性强便续查错调试者写条件循环语句时考虑全面免逻辑错误死循环外状态变量控制变量应进行初始化免默认初始化值预想致
系统设计单片机实现电梯运行控制功系统采单片机AT89C52数码键等等元器件实现设计求全部功系统足处元器件原水限某功模块存足需加改正
通次毕业设计加深旧知识巩固增强新知识解次利专业知识专业技分析处理解决问题力加强单片机原理应开发等方面掌握日工作学结实基础
提供帮助致谢真诚感谢导师学关心指导
[参考文献]
[1] 李青.单片机通讯技术工程实践[M].北京:航空航天学出版
[2] 李群芳.单片机原理接口应[M].北京:清华学出版社
[3] 杨志亮 Protel 99 SE电路原理图设计技术[M]西安:西北工业学出版社
[4] 马忠梅.单片机C语言应程序设计[M]北京:航空航天学出版社
[5] 谢美.电子线路设计[M]武汉:华中科技学出版社
[6] 胡烨.Protel99SE电路设计仿真教程[M]北京:机械工业出版社
[7] 谭浩强著C程序设计 第三版[M]华学出版社
[8] 刘柏私谢开贵马春雷等.复杂中压配电网性评估分块算法[J].中国电机工程学报200525期(4页)
[9] 周念成谢开贵周家启等.基短路复杂配电网性评估分块算法[J].电力系统动化200529期(22页)
layer elevator system
[Abstract]The design is based on the STC89C52 singlechip microcomputer as the core of the three layer elevator simulation control system The hardware mainly comprises the smallest singlechip system module inside and outside the elevator circuit key matrix simulation detection module digital tube display floor module the elevator down display module is composed of 4 parts The software part of the use of C language using query mode to detect user requests the key information according to the operation of the elevator to the appropriate floor analog key cause changes in level to the SCM count to determine the number of floors and sent to the digital tube display The use of singlechip design of elevator control system and has the advantages of low cost strong versatility flexibility and ease of large complex control advantages
[Key words] STC89C52 elevator system digital display control
附 录 1
程序清单:
#include <>
#include <>
#define uchar unsigned char
#define uint unsigned int
unsigned int nmb
uint Data
uchar y
uchar flag
int num
int q
char lou
sbit LEDP2^3
sbit beepP2^2
sbit IR1P3^4
sbit IR2P3^3
uchar baishige
sbit qianweiP2^7
sbit baiweiP2^6
sbit shiweiP2^5
sbit geweiP2^4
uchar TB[]{0x3f0x060x5b0x4f0x660x6d
0x7d0x070x7f0x6f} 显示段码
void delay1(uchar a)数码显示部分延时函数
{
unsigned int i
while( a 0)
{
for(i 0 i < 100 i++) 表示空语句CPU空转
} i 0加125CPU概耗时1毫秒
}
void xianshi(char yychar xxint tt)数码显示函数够显示意4位十进制数
{
if(yy0)
{
qianwei0
P00X40 0111 0001 F 停止
delay1(5)
qianwei1
}
if(yy1)
{
qianwei0
P00X71 0111 0001 F 升
delay1(5)
qianwei1
}
if(yy2)
{
qianwei0
P00X79 0111 1001 E 降
delay1(5)
qianwei1
}
baiwei0
P0TB[xx10]
delay1(5)
baiwei1
shiwei0
P00x40
delay1(5)
shiwei1
gewei0
P0TB[num]
delay1(5)
gewei1
}
**电梯门外键定义***
sbit K1P1^0第三层 请求键
sbit K2P1^3第三层 请求键
sbit K3P1^1第二层 请求键
sbit K4P1^4第二层 请求键
sbit K5P1^2第层 请求键
sbit K6P1^5第层 请求键
**电梯门键定义***
sbit KK1P1^6第三层选择1楼键
sbit KK2P3^1第三层选择2楼键
sbit KK3P3^4第三层选择3楼键键复位num1
sbit KK4P3^7第三层选择报警键
sbit KK5P1^7第二层选择1楼键
sbit KK6P3^2第二层选择3楼键
sbit KK7P3^5第二层选择2楼键键复位num1
sbit KK8P2^0第二层选择报警键
sbit KK9P3^0 第层选择2楼键
sbit KK10P3^3第层选择3楼键
sbit KK11P3^6第层选择1楼键键复位num1
sbit KK12P2^1第层选择报警键
void qingqiu()
{
if(K10) 3
{
flag1lounum3
while(K10)
}
if(K20) 3
{
flag1lounum3
while(K20)
}
if(K30) 2
{
flag1lounum2
while(K30)
}
if(K40) 2
{
flag2lounum2
while(K40)
}
if(K50) 1
{
flag2lounum1
while(K50)
}
if(K60) 1
{
flag2lounum1
while(K60)
}
if(KK30||KK70||KK110) 复位
{
flag0numlou1
while(KK30||KK70||KK110)
}
}
void Beep()
{uchar i
beep0
for(i0i<5i++)
{xianshi(flaglounum)}
beep1
}
void Beep1()
{uchar i
beep0
for(i0i<50i++)
{xianshi(flaglounum)}
beep1
}
void baojing()
{
if(KK8KK12KK40)
{
Beep()
}
}
void xuanzhe() 选择层
{
if(lou1)果前第层
{
if(KK90)2楼
{
numlou2
while(KK90)
{
LED0 for(q0q<500q++){xianshi(1lounum)}
Beep1()
LED1
}
}
if(KK100) 3楼
{
numlou3
while(KK100)
{ LED0 for(q0q<500q++){xianshi(1lounum)}
Beep1()
LED1
}
}
}
if(lou2)第二层
{
if(KK50)
{
numlou1
while(KK50)
{ LED0 for(q0q<500q++){xianshi(flaglounum)}
Beep1()
LED1
}
}
if(KK60)
{
numlou3
while(KK60)
{ LED0 for(q0q<500q++){xianshi(flaglounum)}
Beep1()
LED1
}
}
}
if(lou3)第三层
{
if(KK10)
{
numlou1
while(KK10)
{ LED0 for(q0q<500q++){xianshi(2lounum)}
Beep1()
LED1
}
}
if(KK20)
{
numlou2
while(KK20)
{ LED0 for(q0q<500q++){xianshi(2lounum)}
Beep1()
LED1
}
}
}
}
void main(void)
{
flag0 初始状态0表示时电梯处停止状态 1 显示E 表示升 2 显示F 表示降
lou1 初始状态1电梯停1楼2表示处2楼 3表示处3楼
num1 表示达目楼层
P1P30XFF
beepLEDKK8KK121
while(1)
{
xianshi(flaglounum)
qingqiu()电梯外请求信号
xuanzhe()电梯没操作
baojing()报警操作
}
}
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档