⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lll.lst

📁 此系统是本人做毕业设计时候的老东西了
💻 LST
📖 第 1 页 / 共 3 页
字号:

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 1





       MCS-51 Family Cross Assembler   A S E M - 5 1   V 1.2
       =====================================================



	Source File:	LLL.ASM
	Object File:	LLL.HEX
	List File:	LLL.LST



 Line  I  Addr  Code            Source

    1:				;*****************************************************************************
    2:				;*****************************************************************************
    3:				;*****************************************************************************
    4:				;							05楼宇毕业设计
    5:				;项目:8层电梯模拟控制
    6:				;设计成员:周强		设计时间:3月20日至今
    7:				;设计地点:江西应用工程职业学院实验单片机开发室
    8:				;指导老师:饶裕
    9:		N      0000		ORG 0
   10:		B      00A0		XIANWEI EQU P2.0	;	红外接收
   11:		B      00A1		DOWN EQU P2.1		;	电动机反转
   12:		B      00A2		UP EQU P2.2		;	正转
   13:		B      00A3		JINGGAO EQU P2.3	;	报警
   14:		B      00A4		MEN EQU P2.4		;	门
   15:		B      00A5		RS EQU P2.5
   16:		B      00A6		RW EQU P2.6
   17:		B      00A7		E EQU P2.7
   18:		B      00B0		DOOR EQU P3.0		;	门开关
   19:		B      00B1		CHECK EQU P3.1		;	检修开关
   20:		B      00B7		BAOHU EQU P3.7		;	断电保护红外接收
   21:	  0000	7A 00			MOV R2,#00H		;	电梯状态寄存器
   22:	  0002	75 80 01		MOV P0,#01H		;	1602B初始化
   23:	  0005	71 A9			ACALL ENABLE 		;	清除屏幕
   24:	  0007	75 80 38		MOV P0,#38H
   25:	  000A	71 A9			ACALL ENABLE 		;	8位点阵方式
   26:	  000C	75 80 08		MOV P0,#08H
   27:	  000F	71 A9			ACALL ENABLE 		;	显示光标不闪烁
   28:	  0011	75 80 06		MOV P0,#06H
   29:	  0014	71 A9			ACALL ENABLE 		;	显示顺序设置(左到右)
   30:	  0016	75 80 80		MOV P0,#80H
   31:	  0019	71 A9			ACALL ENABLE		;       显示位置
   32:	  001B	51 23			ACALL DISP		;	显示当前楼层信号
   33:	  001D	75 80 0C		MOV P0,#0CH
   34:	  0020	71 A9			ACALL ENABLE
   35:	  0022	D2 A3			SETB JINGGAO
   36:	  0024	30 B7 09	LPP:    JNB BAOHU,MAIN		;	断电保护
   37:	  0027	C2 A1			CLR DOWN		;	下行
   38:	  0029	20 B7 F8		JB BAOHU,LPP		;	再次判断
   39:	  002C	01 30			AJMP MAIN		;	主程序
   40:		N      000B		ORG 0BH			;	定时器0入口地址
   41:	  000B	02 03 65		LJMP TT0
   42:		N      0030		ORG 30H
   43:	  0030	D2 A1		MAIN:	SETB DOWN		;	停止下行

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 2



 Line  I  Addr  Code            Source

   44:	  0032	78 20			MOV R0,#20H		;	20地址送R0
   45:	  0034	7B 5F			MOV R3,#5FH		;	循环次数送R3
   46:	  0036	75 90 FF		MOV P1,#0FFH
   47:
   48:	  0039	76 00		CLER:	MOV @R0,#00H		;	00H送R0的内容地址
   49:	  003B	08			INC R0			;	对RAM中20H~~7FH单元清0
   50:	  003C	DB FB			DJNZ R3,CLER
   51:	  003E	D2 7F			SETB 7FH 		;	门关闭信号为1
   52:	  0040	75 89 01		MOV TMOD,#01H		;	定时器设为方式1
   53:	  0043	75 A8 82		MOV IE,#82H		;	开中断总允许
   54:	  0046	7B 64			MOV R3,#100		;	DELAY1循环次数
   55:	  0048	75 8C 3C		MOV TH0,#3CH		;	50MS定时初值
   56:	  004B	75 8A B0		MOV TL0,#0B0H
   57:	  004E	75 30 01		MOV 30H,#1		;	楼层信号指针
   58:	  0051	D2 A4			SETB MEN		;	模拟门限位开关
   59:	  0053	D2 B0			SETB DOOR		;	保持门关
   60:	  0055	7A FF			MOV R2,#0FFH		;	电梯状态寄存器
   61:	  0057	75 80 01		MOV P0,#01H		;	1602B初始化
   62:	  005A	71 A9			ACALL ENABLE 		;	清除屏幕
   63:	  005C	75 80 38		MOV P0,#38H
   64:	  005F	71 A9			ACALL ENABLE 		;	8位点阵方式
   65:	  0061	75 80 08		MOV P0,#08H
   66:	  0064	71 A9			ACALL ENABLE 		;	显示光标不闪烁
   67:	  0066	75 80 06		MOV P0,#06H
   68:	  0069	71 A9			ACALL ENABLE 		;	显示顺序设置(左到右)
   69:	  006B	75 80 80		MOV P0,#80H
   70:	  006E	71 A9			ACALL ENABLE		;       显示位置
   71:	  0070	51 23			ACALL DISP		;	显示当前楼层信号
   72:	  0072	75 80 0C		MOV P0,#0CH
   73:	  0075	71 A9			ACALL ENABLE
   74:	  0077	D2 A3			setb jinggao
   75:	  0079	51 A7		SCAN:	ACALL KEYBORDSCAN	;	键盘扫描
   76:	  007B	20 A3 02		JB JINGGAO,LOOP1	;	警告判断
   77:	  007E	21 4C			AJMP ERR		;	报警
   78:	  0080	78 21		LOOP1:	MOV R0,#21H		;	送楼层指针给R0
   79:	  0082	B6 01 04		CJNE @R0,#1H,LOOP	;	判断1楼是否有请求信号
   80:	  0085	C2 A4			CLR MEN			;	开电梯门
   81:	  0087	C2 7F			CLR 7FH
   82:	  0089	76 00		LOOP:	MOV @R0,#0
   83:	  008B	75 31 00		MOV 31H,#00H
   84:	  008E	78 22			MOV R0,#22H		;	送楼层指针给R0
   85:	  0090	B6 00 06	LP:	CJNE @R0,#0,BBC		;	楼层请求信号判断
   86:	  0093	08			INC R0			;	下一层
   87:	  0094	B8 29 F9		CJNE R0,#29H,LP		;	没到最顶层时返回继续判断下一层
   88:	  0097	80 E0			SJMP SCAN		;	无请求返回继续扫描
   89:	  0099	30 7F DD	BBC:	JNB 7FH,SCAN		;	门是否关闭,没关闭继续接受请求信号
   90:	  009C	D2 A4		NEXT2:	SETB MEN
   91:	  009E	76 00			MOV @R0,#0		;	清除请求信号
   92:	  00A0	D2 8C			SETB TR0		;	开定时中断
   93:	  00A2	D2 A1			SETB DOWN		;	关闭电梯向下信号
   94:	  00A4	C2 A2			CLR UP			;	开启电梯向上信号
   95:	  00A6	7A 11			MOV R2,#11H		;	送电梯运行信号到R2
   96:	  00A8	51 23			ACALL DISP		;	显示当前运行状态
   97:	  00AA	51 A7			ACALL KEYBORDSCAN	;	读取键盘信号
   98:	  00AC	20 A3 02		JB JINGGAO,NEXT3
   99:	  00AF	21 4C			AJMP ERR

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 3



 Line  I  Addr  Code            Source

  100:	  00B1	E5 30		NEXT3:	MOV A,30H		;	送当前楼层指针信号到A
  101:	  00B3	24 30			ADD A,#30H		;	加30H取当前楼层信号
  102:	  00B5	F8			MOV R0,A		;	保存当前楼层信号
  103:	  00B6	B6 FF 2E		CJNE @R0,#0FFH,NEXT1	;	比较当前楼层信号是否需要乘坐电梯
  104:	  00B9	76 00			MOV @R0,#00H		;	停止后将请求信号清除
  105:	  00BB	E8			MOV A,R0		;	当前楼层信号指针送到A
  106:	  00BC	94 10			SUBB A,#10H		;	减10H求得当前楼层
  107:	  00BE	F8			MOV R0,A		;	当前楼层信号送R0
  108:	  00BF	76 00			MOV @R0,#0		;	清除当前楼层请求信号
  109:	  00C1	D2 A2			SETB UP			;	关闭电动机
  110:	  00C3	C2 8C			CLR TR0			;	关闭定时器
  111:	  00C5	7A FF			MOV R2,#0FFH		;	送停止信号到信号指针R2
  112:	  00C7	51 23			ACALL DISP		;	显示当前状态
  113:	  00C9	7B 32			MOV R3,#50
  114:	  00CB	D2 7F			SETB 7FH
  115:	  00CD	C2 A4			CLR MEN			;	开电梯门
  116:	  00CF	51 A7		WAIT:	ACALL KEYBORDSCAN	;	读取键盘信号
  117:	  00D1	20 A3 02		JB JINGGAO,WWW
  118:	  00D4	21 4C			AJMP ERR
  119:	  00D6	30 7F 0A	WWW:	JNB 7FH,AK
  120:	  00D9	71 D5			ACALL DELAY1		;	调延时子程序
  121:	  00DB	71 D5			ACALL DELAY1		;	等待
  122:	  00DD	DB F0			DJNZ R3,WAIT		;	等待
  123:	  00DF	7B 32			MOV R3,#50		;	等待
  124:	  00E1	D2 A4			SETB MEN		;	关闭电梯门
  125:	  00E3	E5 30		AK:	MOV A,30H		;	将当前楼层信号送A
  126:	  00E5	24 30			ADD A,#30H		;	加30H求当前楼层信号指针
  127:	  00E7	B4 38 B2	NEXT1:	CJNE A,#38H,NEXT2	;	比较判断是否到达最高层
  128:	  00EA	D2 A2			SETB UP			;	是则短暂停留
  129:	  00EC	C2 8C			CLR TR0			;	关闭定时器
  130:	  00EE	7A FF			MOV R2,#0FFH		;	送停止信号到显示指针
  131:	  00F0	51 23			ACALL DISP		;	显示当前楼层信号
  132:	  00F2	51 A7			ACALL KEYBORDSCAN	;	读取键盘信号
  133:	  00F4	7A 00		NTXT11:	MOV R2,#00H		;	送向下信号到R2
  134:	  00F6	C2 A1			CLR DOWN		;	启动电动机返回向下
  135:	  00F8	D2 8C			SETB TR0		;	开启定时器
  136:	  00FA	51 23			ACALL DISP		;	显示当前运行信号
  137:	  00FC	51 A7			ACALL KEYBORDSCAN	;	读取键盘信号
  138:	  00FE	20 A3 02		JB JINGGAO,NEXT22
  139:	  0101	21 4C			AJMP ERR
  140:	  0103	E5 30		NEXT22:	MOV A,30H		;	将当前楼层信号送A
  141:	  0105	24 30			ADD A,#30H		;	加30H求当前楼层请求信号指针
  142:	  0107	F8			MOV R0,A		;	转存到R0
  143:	  0108	B6 FF 2C		CJNE @R0,#0FFH,GODOWN	; 	判断当前楼层是否有电梯请求信号
  144:	  010B	76 00			MOV @R0,#00H		;	是则将当前信号清除
  145:	  010D	E8			MOV A,R0		;	将当前楼层请求信号指针送A
  146:	  010E	94 10			SUBB A,#10H		;	减10H求当前楼层信号指针
  147:	  0110	F8			MOV R0,A		;	信号指针送R0
  148:	  0111	76 00			MOV @R0,#0		;	清除当前楼层请求信号
  149:	  0113	D2 A1			SETB DOWN		;	关闭电动机
  150:	  0115	7A FF			MOV R2,#0FFH		;	送停止信号到R2
  151:	  0117	C2 8C			CLR TR0			;	关闭定时器
  152:	  0119	51 23			ACALL DISP		;	显示当前信号
  153:	  011B	C2 A4			CLR MEN			;	开电梯门
  154:	  011D	D2 7F			SETB 7FH
  155:	  011F	51 A7		WAIT1:	ACALL KEYBORDSCAN	;	读取键盘信号

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 4



 Line  I  Addr  Code            Source

  156:	  0121	20 A3 02		JB JINGGAO,GGG
  157:	  0124	21 4C			AJMP ERR
  158:	  0126	30 7F 0A	GGG:	JNB 7FH,AKK
  159:	  0129	71 D5			ACALL DELAY1		;	等待
  160:	  012B	71 D5			ACALL DELAY1		;	等待
  161:	  012D	DB F0			DJNZ R3,WAIT1		;	等待
  162:	  012F	7B 32			MOV R3,#50		;	恢复初值
  163:	  0131	D2 A4			SETB MEN		;	关闭电梯门
  164:	  0133	E5 30		AKK:	MOV A,30H		;	当前楼层信号送A
  165:	  0135	24 30			ADD A,#30H		;	加30H求当前楼层请求信号指针
  166:	  0137	B4 31 BA	GODOWN:	CJNE A,#31H,NTXT11	;	判断是否到达最底层
  167:	  013A	D2 A1			SETB DOWN		;	是则关闭电动机
  168:	  013C	C2 8C			CLR TR0			;	关闭定时器
  169:	  013E	7A FF			MOV R2,#0FFH		;	送停止信号到R2
  170:	  0140	E8			MOV A,R0		;	送当前楼层请求信号指针到A
  171:	  0141	94 10			SUBB A,#10H		;	减10H求当前楼层信号指针
  172:	  0143	F8			MOV R0,A		;	转存R0
  173:	  0144	76 00			MOV @R0,#0		;	清除当前楼层请求信号
  174:	  0146	D2 7F			SETB 7FH
  175:	  0148	51 23			ACALL DISP		;	显示当前信号
  176:	  014A	01 79			AJMP SCAN		;	返回键盘扫描
  177:				;=======================================检修主程序
  178:	  014C	D2 A2		ERR:	SETB UP			;	关闭电动机
  179:	  014E	D2 A1			SETB DOWN
  180:	  0150	7A 33			MOV R2,#33H		;	送检修信号
  181:	  0152	51 23			ACALL DISP		;	显示当前
  182:	  0154	75 80 08		MOV P0,#08H		;	关显示
  183:	  0157	71 A9			ACALL ENABLE
  184:	  0159	71 CC			ACALL DELAY		;	...
  185:	  015B	71 CC			ACALL DELAY
  186:	  015D	71 CC			ACALL DELAY		;	...
  187:	  015F	71 CC			ACALL DELAY
  188:	  0161	71 CC			ACALL DELAY
  189:	  0163	71 CC			ACALL DELAY
  190:	  0165	71 CC			ACALL DELAY
  191:	  0167	75 80 0C		MOV P0,#0CH		;	开显示
  192:	  016A	71 A9			ACALL ENABLE
  193:	  016C	20 B1 DD		JB CHECK,ERR		;	检修键是否按下
  194:	  016F	71 CC			ACALL DELAY
  195:	  0171	20 B1 D8		JB CHECK,ERR
  196:	  0174	71 CC			ACALL DELAY
  197:	  0176	51 23		ERR3:	ACALL DISP		;	显示当前
  198:	  0178	75 80 08		MOV P0,#08H		;	关显示
  199:	  017B	71 A9			ACALL ENABLE
  200:	  017D	71 CC			ACALL DELAY		;	...
  201:	  017F	71 CC			ACALL DELAY
  202:	  0181	71 CC			ACALL DELAY		;	...
  203:	  0183	71 CC			ACALL DELAY
  204:	  0185	71 CC			ACALL DELAY
  205:	  0187	71 CC			ACALL DELAY		;	...
  206:	  0189	71 CC			ACALL DELAY
  207:	  018B	75 80 0C		MOV P0,#0CH		;	开显示
  208:	  018E	71 A9			ACALL ENABLE
  209:	  0190	30 B1 E3		JNB CHECK,ERR3		;	等待键松开
  210:	  0193	75 65 FF		MOV 65H,#0FFH		;	送警告标志到65H
  211:	  0196	D2 A4			SETB MEN		;	关闭电梯门

ASEM-51 V1.2                                         Copyright (c) 1996 by W.W. Heinz                                         PAGE 5



 Line  I  Addr  Code            Source

  212:	  0198	D2 A3			SETB JINGGAO		;	关闭生光报警
  213:	  019A	E5 30			MOV A,30H
  214:	  019C	24 20			ADD A,#20H
  215:	  019E	B4 21 02		CJNE A,#21H,ERRR
  216:	  01A1	21 A7			AJMP ERR2
  217:	  01A3	C2 A1		ERRR:	CLR DOWN		;	向下运行
  218:	  01A5	D2 8C			SETB TR0		;	开启定时器
  219:	  01A7	51 23		ERR2:	ACALL DISP		;	显示当前
  220:	  01A9	75 80 08		MOV P0,#08H		;	关显示
  221:	  01AC	71 A9			ACALL ENABLE
  222:	  01AE	71 CC			ACALL DELAY		;	...
  223:	  01B0	71 CC			ACALL DELAY
  224:	  01B2	71 CC			ACALL DELAY		;	...
  225:	  01B4	71 CC			ACALL DELAY
  226:	  01B6	71 CC			ACALL DELAY
  227:	  01B8	71 CC			ACALL DELAY		;	...
  228:	  01BA	71 CC			ACALL DELAY
  229:	  01BC	75 80 0C		MOV P0,#0CH		;	开显示
  230:	  01BF	71 A9			ACALL ENABLE
  231:	  01C1	E5 30			MOV A,30H
  232:	  01C3	24 20			ADD A,#20H
  233:	  01C5	B4 21 DF		CJNE A,#21H,ERR2	;	是否到达最低层
  234:	  01C8	D2 A1			SETB DOWN		;	关闭电梯
  235:	  01CA	C2 8C			CLR TR0			;	关闭定时器
  236:	  01CC	75 30 64		MOV 30H,#100
  237:	  01CF	51 23		ERR1:	ACALL DISP		;	显示当前
  238:	  01D1	75 80 08		MOV P0,#08H		;	关显示
  239:	  01D4	71 A9			ACALL ENABLE
  240:	  01D6	71 CC			ACALL DELAY		;	...
  241:	  01D8	71 CC			ACALL DELAY
  242:	  01DA	71 CC			ACALL DELAY		;	...
  243:	  01DC	71 CC			ACALL DELAY
  244:	  01DE	71 CC			ACALL DELAY
  245:	  01E0	71 CC			ACALL DELAY		;	...

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -