51单片机模拟电梯汇编程序
来源:互联网 发布:linux cp 排除文件夹 编辑:程序博客网 时间:2024/04/30 14:08
很早以前编的模拟电梯的51单片机程序
ORG 0000H
STOP:ORL P1,#00H
MOV 30H,#01H
LCALL DISPLAY
LOOP1:LCALL LOOP
LCALL KEY80;外部调用1、2、3、4、5、6
LJMP LOOP1
KEY80:LCALL LOOP ;电梯在一楼
D80: CJNE A,#0EEH,D90 ;判断按键1是否按下
LJMP KEY1
D90: CJNE A,#0DEH,D81
LCALL U11
LJMP KEY2
D81: CJNE A,#0BEH,D82
LCALL U11
LJMP KEY2
D82: CJNE A,#7EH,D83
LCALL U22
LJMP KEY3
D83: CJNE A,#0EDH,D84
LCALL U22
LJMP KEY3
D84: CJNE A,#0DDH,KEY80
LCALL U33
LJMP KEY4
KEY50: LCALL LOOP ; 电梯在二楼
D50: CJNE A,#0EEH,D91
LCALL DN11
LJMP KEY1
D91 : CJNE A,#0DEH,D92
LCALL KEY2
D92: CJNE A,#0BEH,D51
LCALL KEY2
D51: CJNE A,#7EH,D52
LCALL U11
LJMP KEY3
D52: CJNE A,#0EDH,D53
LCALL U11
LJMP KEY3
D53: CJNE A,#0DDH,KEY50
LCALL U22
LJMP KEY4
KEY60: LCALL LOOP ; 电梯在三楼
D60: CJNE A,#0EEH,D61
LCALL DN22
LJMP KEY1
D61: CJNE A,#0DEH,D62
LCALL DN11
LJMP KEY2
D62: CJNE A,#0BEH,D93
LCALL DN11
LJMP KEY2
D93: CJNE A,#7EH,D94
LCALL KEY3
D94: CJNE A,#0EDH,D63
LCALL KEY3
D63: CJNE A,#0DDH,KEY60
LCALL U11
LJMP KEY4
KEY70:LCALL LOOP ; 电梯在四楼
D70: CJNE A,#0EEH,D71
LCALL DN33
LJMP KEY1
D71: CJNE A,#0DEH,D72
LCALL DN22
LJMP KEY2
D72: CJNE A,#0BEH,D73
LCALL DN22
LJMP KEY2
D73: CJNE A,#7EH,D74
LCALL DN11
LJMP KEY3
D74: CJNE A,#0EDH,D95
LCALL DN11
LJMP KEY3
D95: CJNE A,#0DDH,KEY70
LCALL KEY4
KEY1: LCALL LOOP ;从一楼上
D10: CJNE A,#7DH,D11
LCALL U1
LJMP KEY6
D11: CJNE A,#0EBH,D12
LCALL U2
LJMP KEY7
D12: CJNE A,#0DBH,KEY1
LCALL U3
LJMP KEY8
KEY2: LCALL LOOP
D20: CJNE A,#0BDH,D21 ;二楼
LCALL DN1
LJMP KEY5
D21: CJNE A,#0EBH,D22
LCALL U1
LJMP KEY7
D22: CJNE A,#0DBH,KEY2
LCALL U2
LJMP KEY8
KEY3: LCALL LOOP
D30: CJNE A,#0BDH,D31 ;三楼
LCALL DN2
LJMP KEY5
D31: CJNE A,#7DH,D32
LCALL DN1
LJMP KEY6
D32: CJNE A,#0DBH,KEY3
LCALL U1
LJMP KEY8
KEY4:LCALL LOOP
D40: CJNE A,#0BDH,D41 ;四楼
LCALL DN3
LJMP KEY5
D41: CJNE A,#7DH,D42
LCALL DN2
LJMP KEY6
D42: CJNE A,#0EBH,KEY4
LCALL DN1
LJMP KEY7
DH:LJMP KEY80
DJ:LJMP KEY50
DK:LJMP KEY60
DL:LJMP KEY70
KEY5: LCALL LOOP ;一楼
D15: CJNE A,#7DH,D16
LCALL U1
LJMP KEY50
D16: CJNE A,#0EBH,D17
LCALL U2
LJMP KEY60
D17: CJNE A,#0DBH,DH
LCALL U3
LJMP KEY70
KEY6:
LCALL LOOP
D25: CJNE A,#0BDH,D26 ;二楼
LCALL DN1
LJMP KEY80
D26: CJNE A,#0EBH,D27
LCALL U1
LJMP KEY60
D27: CJNE A,#0DBH,DJ
LCALL U2
LJMP KEY70
KEY7: LCALL LOOP
D35: CJNE A,#0BDH,D36 ;三楼
LCALL DN2
LJMP KEY80
D36: CJNE A,#7DH,D37
LCALL DN1
LJMP KEY50
D37: CJNE A,#0DBH,DK
LCALL U1
LJMP KEY70
KEY8: LCALL LOOP
D45: CJNE A,#0BDH,D46 ;四楼
LCALL DN3
LJMP KEY80
D46: CJNE A,#7DH,D47
LCALL DN2
LJMP KEY50
D47: CJNE A,#0EBH,DL
LCALL DN1
LJMP KEY60
U1: LCALL LOOP ;上一层楼
CJNE A,#0BBH,U1
LCALL U0
INC 30H
LCALL DISPLAY
RET
U2: LCALL LOOP ;上两层楼
CJNE A,#0BBH,U2
LCALL U0
INC 30H
LCALL DISPLAY
LCALL U0
INC 30H
LCALL DISPLAY
RET
U3: LCALL LOOP ;上三层楼
CJNE A,#0BBH,U3
LCALL U0
INC 30H
LCALL DISPLAY
LCALL U0
INC 30H
LCALL DISPLAY
LCALL U0
INC 30H
LCALL DISPLAY
RET
DN1: LCALL LOOP ;下一层楼
CJNE A,#0BBH,DN1
LCALL DN0
DEC 30H
LCALL DISPLAY
RET
DN2: LCALL LOOP ;下两层楼
CJNE A,#0BBH,DN2
LCALL DN0
DEC 30H
LCALL DISPLAY
LCALL DN0
DEC 30H
LCALL DISPLAY
RET
DN3: LCALL LOOP ;下三层楼
CJNE A,#0BBH,DN3
LCALL DN0
DEC 30H
LCALL DISPLAY
LCALL DN0
DEC 30H
LCALL DISPLAY
LCALL DN0
DEC 30H
LCALL DISPLAY
RET
U11: LCALL LOOP ;上一层楼
LCALL U0
INC 30H
LCALL DISPLAY
RET
U22: LCALL LOOP ;上两层楼
LCALL U0
INC 30H
LCALL DISPLAY
LCALL U0
INC 30H
LCALL DISPLAY
RET
U33: LCALL LOOP ;上三层楼
LCALL U0
INC 30H
LCALL DISPLAY
LCALL U0
INC 30H
LCALL DISPLAY
LCALL U0
INC 30H
LCALL DISPLAY
RET
DN11: LCALL LOOP ;下一层楼
LCALL DN0
DEC 30H
LCALL DISPLAY
RET
DN22: LCALL LOOP ;下两层楼
LCALL DN0
DEC 30H
LCALL DISPLAY
LCALL DN0
DEC 30H
LCALL DISPLAY
RET
DN33: LCALL LOOP ;下三层楼
LCALL DN0
DEC 30H
LCALL DISPLAY
LCALL DN0
DEC 30H
LCALL DISPLAY
LCALL DN0
DEC 30H
LCALL DISPLAY
RET
LOOP: ;按键判断
MOV P0,#0FH
MOV A,P0
CJNE A,#0FH,D1
LJMP LOOP
D1: MOV 40H,A
MOV P0,#0F0H
MOV A,P0
MOV 41H,A
D2: MOV P0,#0F0H
MOV A,P0
CJNE A,41H,D3
LJMP D2
D3: MOV A,41H
ADD A,40H
RET
U0: ;往上
Z1:MOV R5,#3
Z11:MOV R3,#108
START2:MOV R0,#05
START3:MOV A,R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
JZ START2
CPL A
MOV P1,A
CALL DELAY
INC R0
DJNZ R3,START3
DJNZ R5,Z11
RET
DN0: ;往下
L1:MOV R5,#3
L11:MOV R3,#108
START:MOV R0,#00H
START1:MOV A,R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
JZ START
CPL A
MOV P1,A
CALL DELAY
INC R0
DJNZ R3,START1
DJNZ R5,L11
RET
DELAY:
MOV R1,#40
D99: MOV R2,#248
DJNZ R2,$
DJNZ R1,D99
RET
TABLE:
DB 03H,09H,0CH,06H
DB 00
DB 03H,06H,0CH,09H
DB 00
DISPLAY: ;显示程序
MOV A,30H
MOV P2,A
RET
END
- 51单片机模拟电梯汇编程序
- 51单片机一位数码管汇编程序
- 单片机汇编程序
- 单片机汇编程序使用误区
- C51单片机汇编程序问题解决:
- 51单片机模拟PWM
- 51单片机模拟PWM
- 51单片机模拟交通灯
- 电梯调度模拟系统
- 简易电梯模拟程序
- 课程设计-电梯模拟
- 电梯调度算法模拟
- c语言,电梯模拟
- 电梯调度模拟系统
- 模拟电梯调度程序
- 电梯模拟系统
- 【java】电梯调度模拟
- Java-模拟电梯运行
- hadoop全套免费视频
- arm架构mmu
- 如何向App Store提交应用
- Android RecoverSystem 类
- linux gdb 调试多线程 多进程 显示宏
- 51单片机模拟电梯汇编程序
- 视频监控分辨率CIF、DCIF、D1格式的简介
- word中公式编辑器编辑的公式显示不全,如何解决?(除增大行间距的方法)
- 【JAVA】java使用
- Linux iptables 增删改查
- 33. 面向对象的LotusScript(六)之为自定义对象模拟事件
- CAS配置(一)-集成RESTFul
- apache 日子切割rotatelogs
- Win7系统下硬盘安装Ubuntu 12.04双系统