- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
上 海 理 工 大 学
计算机科学与工程系
实 验 报 告
实验名称:电梯自动控制系统设计
课程名称:微机与接口课程设计
姓名:张德臻 学号:0722020117
日期:2010-7-6 地点:学院机房
组员:原彧鑫、张德臻 教师:张幸
一、实验要求
设计一个电梯自动控制系统,由电机驱动控制系统,1路A/D输入,12个按键,4个8段的LED显示器,8个LED指示灯,1路声控报警系统组成。4个8段的LED显示器,8个LED指示灯及12个键盘作为控制系统的控制台设计,以提供人机交互, 控制电机的停启。1路模拟输入主要对电梯中人员重量进行控制,若超重,电梯停止运行,并提示报警。 电梯运行按现实电梯运行规则实现。
二、设计方案
实验结构示意图 软件设计流程图
实验使用AEDK-DJ6机电实验平台以实现8段数码管显示、步进电机的控制,通过使用两片8255芯片来分别操作各个设备,电梯按键输入非编码键盘,所以键盘操作的去抖动、防串键、按键识别和键码产生4个基本功能都有软件来完成,键盘程序分2部分,一个是键盘扫描程序,主要完成扫描键盘上是否有键按下,另一个是键处理程序,用于完成对各个按键的处理。重量检测部分使用0809数模转换芯片完成,在本实验中,出于简化硬件设计和便于调试的考虑,采用电位器模拟质量感应设备。
本系统可以划分的任务模块为以下:
初始化子程序:只在程序的最开始运行一次,负责电机归0,8255初始化,变量初始化等操作。
八段管显示子程序:根据当前显示缓存的值,通过查询码表显示对应的字符,同时本程序也兼具延时功能。
LED指示子程序:控制台上有8个LED指示灯,用来指示当前那个楼层有请求的需要,在内存中开辟8个单元,每个单元表示对应的楼层的请求情况,当该单元的值为0,表示该楼层没有请求,当该单元的值为0FFH,表示该楼层有请求,子程序根据楼层的请求而点亮或熄灭对应的LED指示灯
键盘处理子程序:对控制台命令监听,所以是程序主要核心,该程序包含2部分,一个是键盘扫描子程序,主要完成扫描键盘上是否有键按下,另一个是按键处理程序,用于完成对各个按键的处理,键盘分数字键和功能键。键处理程序仅记忆/修改程序的相关状态变量,具体操作的执行则在相关的执行程序里完成。
电机控制子程序:根据相关的楼层请求、运行状态制定出相应的电机运行策略,设置相应的参数交由电机走拍程序
电机走拍子程序:控制电机的实时运转,根据方向按拍表的内容走步,由既定的步数走到相应的楼层,根据请求表,做相关的处理。
重量检测子程序:通过对ADC0809 的模拟量检测,滤波(采集8次求平均值)判断是否超重(模拟量的大于4.5V),如超重,则进行相应的错误处理(该子程序不在主流程中,在关门按键按下时调用一次)
关于方案改进:
实时系统中尽量少软件延时,本系统中键处理中防抖动,步进电机拍与拍之间间隔都用了软件延时,用此方法因为系统实时性并不高,只有控制台键盘输入,但软件延时会影响显示,所以延时的地方用调用显示来完成,这样延时的精度会受影响,改进的方法就是用定时中断,可使用8253,8259来完成,特别是步进电机的走步程序,如按此方案,走步程序就在中断服务程序里完成,同时可根据步进电机的特性,走出升降曲线,使电机控制在更佳状态。
源程序代码
DATA SEGMENT ;数据段
KCROW DB 0 ;键盘扫描 行设置
KEYID DB 0 ;键值
DRSTAT DB 0FFH ;电机开关门状态(0表示开门,0FFH表示关门,1表示走拍)
ALARM DB 0 ;电机故障指示 (0无故障,0FFH有故障)
FLOOR DW 1 ;电机当前运行的楼层
DIRECT DB 0 ;电机运行方向 (0表示正走,0FFH表示反走)
STEP DB 0 ;电机在走拍程序中4拍的位置
STPNUM DW 0 ;电机走拍次数
STPTAB DB 08H,04H,02H,01H ;拍表
FLRQ DB 8 DUP(0);楼层请求 (0无请求,1有请求)
DCACHE DB 4 DUP(0FH);显示缓存 (4个字节)
;LED段码表
LCODE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;[0123456789] 000H~009H
DB 79H,50H,73H,37H,5CH,00H ;[ErPNo ] 00AH~00FH
;8255(1)端口定义 A键盘输入 B片选输出 C屏幕输出
PA1 EQU 208H
PB1 EQU 209H
PC1 EQU 20AH
P1CTL EQU 20BH
;8255(2)端口定义 A电机输出 B LED输出
PA2 EQU 218H
PB2 EQU 219H
PC2 EQU
文档评论(0)