您好,欢迎来到抵帆知识网。
搜索
您的当前位置:首页【免费下载】51单片机简易电梯控制程序

【免费下载】51单片机简易电梯控制程序

来源:抵帆知识网


51单片机简易电梯控制程序

ORG 00H N1 EQU 0020H ;系统初始化 ORG 0030H MOV R0,#8 MOV R7,#0 MOV N1,#0 START: MOV R2,#15 CALL XS JNB P3.5,$ CALL XIAODOU

JNB P3.5,$

CALL XINCEN CALL ANJ JMP START XINCEN: JB P3.5,B0

CALL XIAODOU JB P3.5,B0

CALL XIAODOU JB P3.5,B0

CALL XIAODOU JB P3.5,B0

CALL XIAODOU

JB P3.5,B0

SETB P0.7 SETB P0.5

MOV N1,#0 MOV R2,#0

JMP START RET

B0: JB P0.3,B1 CALL XIAODOU JB P0.3,B1

CALL XIAODOU

JB P0.3,B1 CALL XIAODOU JB P0.3,B1

CALL XIAODOU

JB P0.3,B1 MOV R0,#1

;显示数据;检测急停键是否弹起;扫描急停键;关闭输出;清空指令代码;返回开始;扫描一楼行程,获取楼层信号

;载入1层代码1,2表示1层半,3表示2层,4表

示2层半,5表示3层,6表示3层半,7表示4层 MOV R7,#1

CALL XS RET

B1: JB P0.2,B2 CALL XIAODOU JB P0.2,B2 CALL XIAODOU JB P0.2,B2 CALL XIAODOU JB P0.2,B2 CALL XIAODOU JB P0.2,B2 MOV R0,#3 MOV R7,#2

CALL XS

RET

B2: JB P0.1,B3 CALL XIAODOU JB P0.1,B3 CALL XIAODOU JB P0.1,B3 CALL XIAODOU JB P0.1,B3 CALL XIAODOU JB P0.1,B3 MOV R0,#5 MOV R7,#3

CALL XS RET

B3: JB P0.0,ANJ CALL XIAODOU

JB P0.0,ANJ CALL XIAODOU

JB P0.0,ANJ CALL XIAODOU

JB P0.0,ANJ CALL XIAODOU

JB P0.0,ANJ MOV R0,#7 MOV R7,#4

CALL XS RET

;显示数据

;扫描2楼行程,获取楼层信号;载入2层代码;扫描3楼行程,获取楼层信号;载入3层代码;扫描4楼行程,获取楼层信号;载入4层代码

ANJ: JB P2.0,C1 CALL XIAODOU

JB P2.0,C1

CALL XIAODOU JB P2.0,C1

CALL XIAODOU

JB P2.0,C1

CALL XIAODOU

JNB P2.0,$

MOV N1,#1 MOV R6,#1

MOV R2,#10 CALL XS

CALL BIJAORET

C1: JB P2.1,C2

CALL XIAODOU

JB P2.1,C2

CALL XIAODOU JB P2.1,C2

CALL XIAODOU

JB P2.1,C2

CALL XIAODOU

JNB P2.1,$

MOV N1,#3 MOV R6,#3

MOV R2,#11 CALL XS

CALL BIJAO RET

C2: JB P2.2,C3

CALL XIAODOUJB P2.2,C3

CALL XIAODOU JB P2.2,C3

CALL XIAODOUJB P2.2,C3

CALL XIAODOU

JNB P2.2,$

MOV N1,#5 MOV R6,#5

MOV R2,#12 CALL XS

CALL BIJAO

;扫描按键,获取目的层;载入目的1楼代码,R6为副寄存器

;载入目的2楼代码,R6为副寄存器;载入目的3楼代码,R6为副寄存器

RET

C3: JB P2.3,TIAO

CALL XIAODOU JB P2.3,TIAO CALL XIAODOU JB P2.3,TIAO CALL XIAODOU JB P2.3,TIAO CALL XIAODOU

JNB P2.3,$

MOV N1,#7 MOV R6,#7

MOV R2,#4 CALL XS CALL BIJAO RET

TIAO:JMP XINCEN RET

BIJAO: MOV A,R0 小 CJNE A,N1,DIFF JMP START

DIFF: JNC NEXT JMP UP RET

NEXT: JMP DOWN RET

UP: CLR P0.4 CALL OPEN SETB P0.4 CALL OPENDOOR K1: SETB P0.5 CLR P0.7 CALL XINCEN CALL CUZUO MOV A,R0

CJNE A,N1,D1 上行,返回开始

SETB P0.7

CALL OPENDOORCLR P0.6 CALL OPEN ;载入目的4楼代码,R6为副寄存器;楼层比较子程序;楼层数与目的层不相等则转到大小比较段,比较大;没有进位,说明目的层小于楼层,转到下行段;有进位,说明目的层大于楼层,转到上行段

;输出关门指令

;关门时间延时;关门完成;上行子程序段,禁止向下动作,输出上行指令;扫描行程,按键;检测否出错

;判断是否到达指定层,没有则继续上行,到达则关闭;输出开门指令;关门时间延时

SETB P0.6 ;关门完成 JMP START D1: JNC K2 INC R0 JMP K1

RET

DOWN: CLR P0.4 ;输出关门指令

CALL OPEN ;关门时间延时

SETB P0.4 ;关门完成

CALL OPENDOOR K2: SETB P0.7 ;下行子程序段,禁止向上动作,输出下行指令 CLR P0.5 CALL XINCEN ;扫描行程,按键

CALL CUZUO ;检测是否出错

MOV A,R0

CJNE A,N1,D2 ;判断是否到达指定层,没有则继续下行,到达则关闭下行,返回开始

SETB P0.5

CALL OPENDOOR CLR P0.6 ;输出开门指令 CALL OPEN ;关门时间延时

SETB P0.6 ;关门完成 JMP START D2: JC K1

DEC R0 JMP K2

RETXS: ;显示数据 子程序

MOV A,R7 SWAP A ADD A,R2 MOV P1,A

RET

CUZUO:MOV A,N1 ;出错比较子程序 CJNE A,#1,Y1 ;出错更正,若目的数不是1,2,3,4层的代码,则将副寄存器R6的值写入主寄存器N1中 RET

Y1: CJNE A,#3,Y2 RET

Y2: CJNE A,#5,Y3 RET

Y3: CJNE A,#7,Y4 RET

;开门延时子程序

;消抖动延时子程序

Y4: MOV N1,R6

RET

XIAODOU: MOV R3,#60 F1: MOV R4,#248 DJNZ R4,$ DJNZ R3,F1 RET

OPEN: MOV R3,#80 L1: MOV R4,#200 L2: MOV R5,#248 DJNZ R5,$ DJNZ R4,L2 DJNZ R3,L1 RET

OPENDOOR: MOV R3,#100 L3: MOV R4,#20 L4: MOV R5,#248 DJNZ R5,$ DJNZ R4,L4 DJNZ R3,L3 RET END

;延时开门子程序

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- dfix.cn 版权所有 湘ICP备2024080961号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务