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

📄 disp.lst

📁 飞机泊位管理系统中单片机代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
                                                                                        Page   1
                                                                                        05-29-01
                                                                                        21:31:34
WAVE assembler version 5.00                   Copyright (c) 1989, 99 by CHY

Addr  Code  Source Line

            	ORG	0000H
0000 020100  	LJMP	0100H		;开机或复位后,跳转至100H单元执行程序
            
                    ORG	0100H
0100 7400   INIT:   MOV	A,#0
0102 F5A8           MOV     0A8H,A          ;禁止一切中断
0104 90DF00         MOV     DPTR,#0DF00H    ;ACK标志清零
0107 F0             MOVX    @DPTR,A
0108 90FD00 	MOV	DPTR,#0FD00H	;初始化行复位端口
010B F0     	MOVX	@DPTR,A
010C 90FE00 	MOV	DPTR,#0FE00H	;初始化行置位端口
010F F0     	MOVX	@DPTR,A
0110 74FF           MOV	A,#0FFH
0112 90FB00 	MOV	DPTR,#0FB00H
0115 F0     	MOVX	@DPTR,A		;初始化列选择板1端口
0116 90F700 	MOV	DPTR,#0F700H
0119 F0     	MOVX	@DPTR,A		;初始化列选择板1端口
011A 90EF00 	MOV	DPTR,#0EF00H
011D F0     	MOVX	@DPTR,A		;初始化列选择板1端口
            
011E 7840   LOGO:   MOV     R0,#40H         ;加载显示缓存区指针
0120 7900           MOV     R1,#0           ;R1是显示数据指针
0122 7A3C           MOV     R2,#60          ;开机画面存储区有60字节
0124 E9     LOG1:   MOV     A,R1
0125 900300         MOV     DPTR,#300H      ;加载开机画面存储区其实地址
0128 93             MOVC    A,@A+DPTR       ;查表法得到显示点阵数据
0129 642A           XRL     A,#0101010B     ;此项由磁翻转显示器特性决定
012B F6             MOV     @R0,A           ;送点阵数据至显示缓存区
012C 08             INC     R0              ;显示缓存指针增1
012D 09             INC     R1              ;显示数据指针增1
012E DAF4           DJNZ    R2,LOG1         ;若R2不为0,则继续读取显示点阵数据
0130 7840           MOV	R0,#40H         ;加载显示缓存指针供刷新显示
0132 1201D4         LCALL   FIRST           ;转显示驱动程序
            
            
0135 7830   MAIN:	MOV	R0,#30H		;加载接受缓存区起始地址
            
0137 90BF00 MAI1:	MOV	DPTR,#0BF00H	;加载DATA标志端口地址
013A E0     MAI2:	MOVX	A,@DPTR		;读入主控制器数据标志
013B 5401   	ANL	A,#01H		;屏蔽A高7位
013D 60FB   	JZ	MAI2		;查询DATA信号是否为高
013F 74FF   	MOV	A,#0FFH
0141 F590           MOV     P1,A            ;P1口要读入数据,先置全"1"
0143 E590   	MOV	A,P1		;读入P1口的数据
0145 C0E0   	PUSH	A		;压入最新接收的数据
0147 F6     	MOV	@R0,A		;将接收数据写入接收数据缓冲区
0148 08     	INC	R0		;指向下一个缓冲存储单元
0149 7401   	MOV	A,#01H


D:\飞机泊位系统\ASM\DISP.ASM                                                        
 
                                                                                        Page   2
                                                                                        05-29-01
                                                                                        21:31:34
WAVE assembler version 5.00                   Copyright (c) 1989, 99 by CHY

Addr  Code  Source Line

014B 90DF00 	MOV	DPTR,#0DF00H	;加载ACK端口地址
014E F0     	MOVX	@DPTR,A		;ACK端口置高
014F 90BF00 	MOV	DPTR,#0BF00H	;加载DATA标志端口地址
0152 E0     MAI3:	MOVX	A,@DPTR
0153 5401   	ANL	A,#01H		;屏蔽高7位数据
0155 70FB   	JNZ	MAI3		;若DATA未变低,等待
0157 7400   	MOV	A,#0
0159 90DF00 	MOV	DPTR,#0DF00H	;加载ACK端口地址
015C F0     	MOVX	@DPTR,A		;ACK端口置低
015D D0E0   	POP	A		;弹出读入的数据
015F B4FFD5 	CJNE	A,#0FFH,MAI1	;若不是0FFH结束符,读下一数据
            
0162 900350 CONVERT:MOV     DPTR,#0350H     ;加载转换码表地址指针
0165 7830           MOV     R0,#30H         ;加载接收缓存地址指针
0167 08     CONV1:  INC     R0              ;接受缓存指针加1
0168 E6             MOV     A,@R0           ;取一个接受缓存中的数据
0169 B4FF03         CJNE    A,#0FFH,CONV2   ;不是0FFH结束符,则继续转换
016C 020174         LJMP    DECODE          ;若已经结束,转显示译码
016F 93     CONV2:  MOVC    A,@A+DPTR       ;取转换码表数据
0170 F6             MOV     @R0,A           ;将转换后的数据送回接受缓存
0171 020167         LJMP    CONV1           ;继续接受缓存下一字节转换
            
0174 900400 DECODE:	MOV	DPTR,#0400H	;加载显示字库地址指针
0177 7830   	MOV	R0,#30H		;加载接收缓存地址指针
0179 7940   	MOV	R1,#40H		;加载显示缓存地址指针
017B 08     DECO1:	INC	R0		;接收缓存指针加1
017C E6     	MOV	A,@R0		;取一个接收缓存中的数据
017D B4FF03 	CJNE	A,#0FFH,DECO2	;不是FFH结束符,则继续译码
0180 020199 	LJMP	DRIVE		;若为FFH结束符,转驱动显示
0183 7A04   DECO2:	MOV	R2,#4		;一个字符字库占用5字节
0185 26     CAL:	ADD	A,@R0
0186 DAFD   	DJNZ	R2,CAL		;计算字库存储区偏移量
0188 7A05   	MOV	R2,#5		;一个字符字库占用5字节
018A C0E0   GET:	PUSH	A		;保护偏移量
018C 93     	MOVC	A,@A+DPTR	;取ROM字库中点阵显示数据
018D 642A           XRL     A,#0101010B     ;
018F F7     	MOV	@R1,A		;保存点阵显示数据至显示缓冲区
0190 D0E0   	POP	A		;恢复偏移量
0192 04     	INC	A		;取下一字节字库数据
0193 09     	INC	R1		;显示缓存指针加1
0194 DAF4   	DJNZ	R2,GET		;不到5字节,继续取字库数据
0196 02017B  	LJMP	DECO1		;开始下一字符译码
            
0199 7840   DRIVE:	MOV	R0,#40H		;加载显示缓存起始地址
019B 7930   	MOV	R1,#30H		;判断显示模式
019D E7     	MOV	A,@R1
019E B4F103 	CJNE	A,#0F1H,NEXT1
01A1 0201B3         LJMP    MODE1        	;F1H表示显示模式一


D:\飞机泊位系统\ASM\DISP.ASM                                                        
 
                                                                                        Page   3
                                                                                        05-29-01
                                                                                        21:31:34
WAVE assembler version 5.00                   Copyright (c) 1989, 99 by CHY

Addr  Code  Source Line

01A4 B4F203 NEXT1:	CJNE	A,#0F2H,NEXT2	;F2H表示显示模式二
01A7 0201B9         LJMP    MODE2
01AA B4F303 NEXT2:	CJNE	A,#0F3H,NEXT3	;F3H表示显示模式三
01AD 0201C2         LJMP    MODE3
01B0 0201CE NEXT3:  LJMP    MODE4           ;F4H表示显示MODE4
            
01B3 1201D4 MODE1:	lCALL	FIRST		;刷新第一块显示板
01B6 020135 	LJMP	MAIN		;返回主程序
            
01B9 1201D4 MODE2:	LCALL	FIRST		;刷新第1块显示板
01BC 120214 	LCALL	SECOND		;刷新第2块显示板
01BF 020135 	LJMP	MAIN		;返回主程序
            
01C2 1201D4 MODE3:	LCALL	FIRST		;刷新第1块显示板
01C5 120214 	LCALL	SECOND		;刷新第2块显示板
01C8 120252 	LCALL	THIRD		;刷新第3块显示板
01CB 020135 	LJMP	MAIN		;返回主程序
            
01CE 120252 MODE4:	LCALL	THIRD		;单独刷新第3块显示板
01D1 020135 	LJMP	MAIN		;返回主程序
            
01D4 7900   FIRST:	MOV	R1,#0		;列选择线指针置零,从第0列开始刷新
01D6 E6     FIR1:	MOV	A,@R0		;取一列的行点阵显示数据
01D7 C0E0   	PUSH	A		;保护行置位数据
01D9 90FE00         MOV	DPTR,#0FE00H	;加载行置位端口地址
01DC F0     	MOVX	@DPTR,A		;行置位数据送行置位口
01DD 90FB00 	MOV	DPTR,#0FB00H	;加载第1块列驱动板地址
01E0 E9     	MOV	A,R1		;列指针内容送A
01E1 F0     	MOVX	@DPTR,A		;选中相应的列选择线
01E2 00             NOP
01E3 74FF           MOV	A,#0FFH		;送无效字
01E5 F0     	MOVX	@DPTR,A		;以关闭列译码器
01E6 120290         LCALL   DELAY
01E9 7400   	MOV	A,#0
01EB 90FE00 	MOV	DPTR,#0FE00H	;加载行置位端口地址
01EE F0     	MOVX	@DPTR,A		;行置位口清零
01EF 120290         LCALL   DELAY
01F2 D0E0   	POP	A		;恢复行置位数据
01F4 F4             CPL     A               ;取反得到行复位数据
01F5 90FD00 	MOV	DPTR,#0FD00H	;加载行复位端口地址
01F8 F0     	MOVX	@DPTR,A		;送行复位数据
01F9 90FB00 	MOV	DPTR,#0FB00H	;加载第1块列驱动板地址
01FC E9     	MOV	A,R1
01FD F0     	MOVX	@DPTR,A		;选中列驱动线
01FE 00             NOP
01FF 74FF   	MOV	A,#0FFH		;送无效字
0201 F0     	MOVX	@DPTR,A		;关闭列译码器
0202 120290 	LCALL   DELAY           ;延时2ms


D:\飞机泊位系统\ASM\DISP.ASM                                                        
 
                                                                                        Page   4
                                                                                        05-29-01
                                                                                        21:31:34
WAVE assembler version 5.00                   Copyright (c) 1989, 99 by CHY

Addr  Code  Source Line

0205 7400   	MOV	A,#0
0207 90FD00 	MOV	DPTR,#0FD00H	;加载行复位端口地址
020A F0     	MOVX	@DPTR,A		;行置位口清零
020B 120290         LCALL   DELAY           ;
020E 09     	INC 	R1		;修改列驱动选择指针
020F 08     	INC	R0		;修改显示缓存指针
0210 B914C3 	CJNE	R1,#20,FIR1	;不满二十列则继续刷新
0213 22     	RET			;返回主程序
            
0214 7900   SECOND:	MOV	R1,#0		;列选择线指针置零,从第0列开始刷新
0216 E6     SEC1:	MOV	A,@R0		;取一列的行点阵显示数据
0217 C0E0   	PUSH	A		;保护行置位数据
0219 90FE00         MOV	DPTR,#0FE00H	;加载行置位端口地址
021C F0     	MOVX	@DPTR,A		;行置位数据送行置位口
021D 90F700 	MOV	DPTR,#0F700H	;加载第2块列驱动板地址
0220 E9     	MOV	A,R1		;列指针内容送A
0221 F0     	MOVX	@DPTR,A		;选中相应的列选择线
0222 120290         LCALL   DELAY           ;延时5ms
0225 74FF   	MOV	A,#0FFH		;送无效字
0227 F0     	MOVX	@DPTR,A		;以关闭列译码器
0228 7400   	MOV	A,#0
022A 90FE00 	MOV	DPTR,#0FE00H	;加载行置位端口地址
022D F0     	MOVX	@DPTR,A		;行置位口清零
022E 120290         LCALL   DELAY
0231 D0E0   	POP	A		;恢复行置位数据
0233 F4             CPL     A               ;取反得到行复位数据
0234 90FD00 	MOV	DPTR,#0FD00H	;加载行复位端口地址
0237 F0     	MOVX	@DPTR,A		;送行复位数据
0238 90F700 	MOV	DPTR,#0F700H	;加载第2块列驱动板地址
023B E9     	MOV	A,R1
023C F0     	MOVX	@DPTR,A		;选中列驱动线
023D 120290 	LCALL   DELAY           ;延时5ms
0240 74FF   	MOV	A,#0FFH		;送无效字
0242 F0     	MOVX	@DPTR,A		;关闭列译码器
0243 7400   	MOV	A,#0
0245 90FD00 	MOV	DPTR,#0FD00H	;加载行复位端口地址
0248 F0     	MOVX	@DPTR,A		;行置位口清零
0249 120290         LCALL   DELAY
024C 09     	INC 	R1		;修改列驱动选择指针
024D 08     	INC	R0		;修改显示缓存指针
024E B914C5 	CJNE	R1,#20,SEC1	;不满二十列则继续刷新
0251 22     	RET			;返回主程序
            
0252 7900   THIRD:	MOV	R1,#0		;列选择线指针置零,从第0列开始刷新
0254 E6     THI1:	MOV	A,@R0		;取一列的行点阵显示数据
0255 C0E0   	PUSH	A		;保护行置位数据
0257 90FE00         MOV	DPTR,#0FE00H	;加载行置位端口地址
025A F0     	MOVX	@DPTR,A		;行置位数据送行置位口


D:\飞机泊位系统\ASM\DISP.ASM                                                        
 
                                                                                        Page   5
                                                                                        05-29-01
                                                                                        21:31:34
WAVE assembler version 5.00                   Copyright (c) 1989, 99 by CHY

Addr  Code  Source Line

025B 90EF00 	MOV	DPTR,#0EF00H	;加载第3块列驱动板地址
025E E9     	MOV	A,R1		;列指针内容送A
025F F0     	MOVX	@DPTR,A		;选中相应的列选择线
0260 120290         LCALL   DELAY           ;延时5ms
0263 74FF   	MOV	A,#0FFH		;送无效字
0265 F0     	MOVX	@DPTR,A		;以关闭列译码器
0266 7400   	MOV	A,#0
0268 90FE00 	MOV	DPTR,#0FE00H	;加载行置位端口地址
026B F0     	MOVX	@DPTR,A		;行置位口清零
026C 120290         LCALL   DELAY
026F D0E0   	POP	A		;恢复行置位数据
0271 F4             CPL     A               ;取反得到行复位数据
0272 90FD00 	MOV	DPTR,#0FD00H	;加载行复位端口地址
0275 F0     	MOVX	@DPTR,A		;送行复位数据
0276 90EF00 	MOV	DPTR,#0EF00H	;加载第3块列驱动板地址
0279 E9     	MOV	A,R1
027A F0     	MOVX	@DPTR,A		;选中列驱动线
027B 120290 	LCALL   DELAY           ;延时5ms
027E 74FF   	MOV	A,#0FFH		;送无效字
0280 F0     	MOVX	@DPTR,A		;关闭列译码器
0281 7400   	MOV	A,#0
0283 90FD00 	MOV	DPTR,#0FD00H	;加载行复位端口地址
0286 F0     	MOVX	@DPTR,A		;行置位口清零
0287 120290         LCALL   DELAY
028A 09     	INC 	R1		;修改列驱动选择指针
028B 08     	INC	R0		;修改显示缓存指针
028C B914C5 	CJNE	R1,#20,THI1	;不满二十列则继续刷新
028F 22     	RET			;返回主程序
            
0290 7F14   DELAY:	MOV	R7,#20          ;2ms延时子程序(12MHz)
0292 7E32   DEL1:	MOV	R6,#50
0294 DEFE   DEL2:	DJNZ	R6,DEL2
0296 DFFA   	DJNZ	R7,DEL1
0298 22     	RET
            
0299 7F0A   DELAY1s:MOV     R7,#10		;延时1S的子程序
029B 7EC8   DEL1S1: MOV     R6,#200
029D 7D7D   DEL1S2: MOV     R5,#125
029F DDFE   DEL1S3: DJNZ    R5,DEL1S3
02A1 DEFA           DJNZ    R6,DEL1S2
02A3 DFF6           DJNZ    R7,DEL1S1
02A5 22             RET
            
                    ORG     0300H           ;开机画面存储区
0300 3F4040 
0303 403F           DB      3FH,40H,40H,40H,3FH
0305 3F4040 
0308 403F           DB      3FH,40H,40H,40H,3FH


D:\飞机泊位系统\ASM\DISP.ASM                                                        
 
                                                                                        Page   6
                                                                                        05-29-01
                                                                                        21:31:34
WAVE assembler version 5.00                   Copyright (c) 1989, 99 by CHY

Addr  Code  Source Line

030A 7C1211 
030D 127C           DB      7CH,12H,11H,12H,7CH
030F 181412 
0312 7F10           DB      18H,14H,12H,7FH,10H
            
0314 000000 
0317 0000           DB      0H,0H,0H,0H,0H
0319 000000 
031C 0000           DB      0H,0H,0H,0H,0H
031E 000000 
0321 0000           DB      0H,0H,0H,0H,0H
0323 000000 
0326 0000           DB      0H,0H,0H,0H,0H
            
0328 000000 
032B 0000           DB      0,0,0,0,0
032D 000000 
0330 0000           DB      0,0,0,0,0
0332 000000 
0335 0000           DB      0,0,0,0,0
0337 000000 
033A 0000           DB      0,0,0,0,0
            
                    ORG     0350H           ;ASCII转换码表
0350 242424 
0353 242424 
0356 242424 
0359 242424 
035C 242424 
035F 24             DB      24H,24H,24H,24H,24H,24H,24H,24H,24H,24H,24H,24H,24H,24H,24H,24H
0360 242424 
0363 242424 
0366 242424 
0369 242424 
036C 242424 
036F 24             DB      24H,24H,24H,24H,24H,24H,24H,24H,24H,24H,24H,24H,24H,24H,24H,24H
0370 242424 
0373 242424 
0376 242424 
0379 242424 
037C 242D24 
037F 24             DB      24H,24H,24H,24H,24H,24H,24H,24H,24H,24H,24H,24H,24H,2DH,24H,24H
0380 000102 
0383 030405 
0386 060708 
0389 092C24 
038C 242424 
038F 24             DB      00H,01H,02H,03H,04H,05H,06H,07H,08H,09H,2CH,24H,24H,24H,24H,24H


D:\飞机泊位系统\ASM\DISP.ASM                                                        
 
                                                                                        Page   7

⌨️ 快捷键说明

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