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

📄 display.lst

📁 飞机泊位管理系统中单片机代码
💻 LST
📖 第 1 页 / 共 3 页
字号:
                                                                                        Page   1
                                                                                        06-30-01
                                                                                        15:41:35
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 90DF00         MOV     DPTR,#0DF00H    ;ACK标志清零
0105 F0             MOVX    @DPTR,A
0106 90FD00 	MOV	DPTR,#0FD00H	;初始化行复位端口
0109 F0     	MOVX	@DPTR,A
010A 90FE00 	MOV	DPTR,#0FE00H	;初始化行置位端口
010D F0     	MOVX	@DPTR,A
010E 74FF           MOV	A,#0FFH
0110 90FB00 	MOV	DPTR,#0FB00H
0113 F0     	MOVX	@DPTR,A		;初始化列选择板1端口
0114 90F700 	MOV	DPTR,#0F700H
0117 F0     	MOVX	@DPTR,A		;初始化列选择板2端口
0118 90EF00 	MOV	DPTR,#0EF00H
011B F0     	MOVX	@DPTR,A		;初始化列选择板3端口
            
011C 7840   LOGO:   MOV     R0,#40H         ;加载显示缓存区指针
011E 7900           MOV     R1,#0           ;R1是显示数据指针
0120 7A3C           MOV     R2,#60          ;开机画面存储区有60字节
0122 E9     LOG1:   MOV     A,R1
0123 900400         MOV     DPTR,#400H      ;加载开机画面存储区起始地址
0126 93             MOVC    A,@A+DPTR       ;查表法得到显示点阵数据
0127 642A           XRL     A,#0101010B     ;此项由磁翻转显示器特性决定
0129 F6             MOV     @R0,A           ;送点阵数据至显示缓存区
012A 08             INC     R0              ;显示缓存指针增1
012B 09             INC     R1              ;显示数据指针增1
012C DAF4           DJNZ    R2,LOG1         ;若R2不为0,则继续读取显示点阵数据
012E 7840           MOV	R0,#40H         ;加载显示缓存指针供刷新显示
0130 120248         LCALL   BLOCK1          ;转显示驱动程序
0133 120286         LCALL   BLOCK2
0136 1202C4         LCALL   BLOCK3
            
0139 90BF00 TEST:   MOV     DPTR,#0BF00H    ;加载DATA标志端口地址
013C E0     TES1:   MOVX    A,@DPTR         ;读DATA标志
013D 5401           ANL     A,#01H          ;屏蔽A寄存器的高7位
013F 60FB           JZ      TES1            ;若DATA标志为低,再读DATA标志
0141 74FF           MOV     A,#0FFH
0143 F590           MOV     P1,A            ;P1口读入数据时先置全“1”
0145 E590           MOV     A,P1            ;读P1口数据
0147 B4F0F2         CJNE    A,#0F0H,TES1    ;若读入数据不为F0H,则等待
014A 90DF00         MOV     DPTR,#0DF00H    ;加载ACK标志端口地址
014D 7401           MOV     A,#01H          ;
014F F0             MOVX    @DPTR,A         ;将ACK标志置高
0150 12030B         CALL    DELAY1S         ;延时1秒
0153 7400           MOV     A,#0


D:\飞机泊位系统\程序\DISPLAY.ASM                                                    
 
                                                                                        Page   2
                                                                                        06-30-01
                                                                                        15:41:35
WAVE assembler version 5.00                   Copyright (c) 1989, 99 by CHY

Addr  Code  Source Line

0155 F0             MOVX    @DPTR,A         ;将ACK清零
            
0156 7830   MAIN:	MOV	R0,#30H		;加载接受缓存区起始地址
0158 90BF00 MAI1:	MOV	DPTR,#0BF00H	;加载DATA标志端口地址
015B E0     MAI2:	MOVX	A,@DPTR		;读入主控制器数据标志
015C 5401   	ANL	A,#01H		;屏蔽A高7位
015E 60FB   	JZ	MAI2		;查询DATA信号是否为高
0160 74FF   	MOV	A,#0FFH
0162 F590           MOV     P1,A            ;P1口要读入数据,先置全“1”
0164 E590   	MOV	A,P1		;读入P1口的数据
0166 C0E0   	PUSH	A		;压入最新接收的数据
0168 F6     	MOV	@R0,A		;将接收数据写入接收数据缓冲区
0169 08     	INC	R0		;指向下一个缓冲存储单元
016A 7401   	MOV	A,#01H
016C 90DF00 	MOV	DPTR,#0DF00H	;加载ACK端口地址
016F F0     	MOVX	@DPTR,A		;ACK端口置高
0170 90BF00 	MOV	DPTR,#0BF00H	;加载DATA标志端口地址
0173 E0     MAI3:	MOVX	A,@DPTR
0174 5401   	ANL	A,#01H		;屏蔽高7位数据
0176 70FB   	JNZ	MAI3		;若DATA未变低,等待
0178 7400   	MOV	A,#0
017A 90DF00 	MOV	DPTR,#0DF00H	;加载ACK端口地址
017D F0     	MOVX	@DPTR,A		;ACK端口置低
017E D0E0   	POP	A		;弹出读入的数据
0180 B4FFD5 	CJNE	A,#0FFH,MAI1	;若不是0FFH结束符,读下一数据
            
0183 900500 CONVERT:MOV     DPTR,#0500H     ;加载转换码表地址指针
0186 7830           MOV     R0,#30H         ;加载接收缓存地址指针
0188 08     CONV1:  INC     R0              ;接受缓存指针加1
0189 E6             MOV     A,@R0           ;取一个接受缓存中的数据
018A B4FF03         CJNE    A,#0FFH,CONV2   ;不是0FFH结束符,则继续转换
018D 020195         LJMP    DECODE          ;若已经结束,转显示译码
0190 93     CONV2:  MOVC    A,@A+DPTR       ;取转换码表数据
0191 F6             MOV     @R0,A           ;将转换后的数据送回接受缓存
0192 020188         LJMP    CONV1           ;继续接受缓存下一字节转换
            
            
0195 900600 DECODE:	MOV	DPTR,#0600H	;加载显示字库地址指针
0198 7830   	MOV	R0,#30H		;加载接收缓存地址指针
019A 7940   	MOV	R1,#40H		;加载显示缓存地址指针
019C 08     DECO1:	INC	R0		;接收缓存指针加1
019D E6     	MOV	A,@R0		;取一个接收缓存中的数据
019E B4FF03 	CJNE	A,#0FFH,DECO2	;不是FFH结束符,则继续译码
01A1 0201BA 	LJMP	MODE		;若为FFH结束符,转驱动显示
01A4 7A04   DECO2:	MOV	R2,#4		;一个字符字库占用5字节
01A6 26     CAL:	ADD	A,@R0
01A7 DAFD   	DJNZ	R2,CAL		;计算字库存储区偏移量
01A9 7A05   	MOV	R2,#5		;一个字符字库占用5字节


D:\飞机泊位系统\程序\DISPLAY.ASM                                                    
 
                                                                                        Page   3
                                                                                        06-30-01
                                                                                        15:41:35
WAVE assembler version 5.00                   Copyright (c) 1989, 99 by CHY

Addr  Code  Source Line

01AB C0E0   GET:	PUSH	A		;保护偏移量
01AD 93     	MOVC	A,@A+DPTR	;取ROM字库中点阵显示数据
01AE 642A           XRL     A,#0101010B     ;
01B0 F7     	MOV	@R1,A		;保存点阵显示数据至显示缓冲区
01B1 D0E0   	POP	A		;恢复偏移量
01B3 04     	INC	A		;取下一字节字库数据
01B4 09     	INC	R1		;显示缓存指针加1
01B5 DAF4   	DJNZ	R2,GET		;不到5字节,继续取字库数据
01B7 02019C  	LJMP	DECO1		;开始下一字符译码
            
01BA 7840   MODE:	MOV	R0,#40H		;加载显示缓存起始地址
01BC 7930   	MOV	R1,#30H		;判断显示模式
01BE E7     	MOV	A,@R1
01BF B4F103 	CJNE	A,#0F1H,NEXT1
01C2 0201DA         LJMP    MODE1        	;F1H表示显示模式一
01C5 B4F203 NEXT1:	CJNE	A,#0F2H,NEXT2	;F2H表示显示模式二
01C8 0201E0         LJMP    MODE2
01CB B4F303 NEXT2:	CJNE	A,#0F3H,NEXT3	;F3H表示显示模式三
01CE 0201E9         LJMP    MODE3
01D1 B4F403 NEXT3:  CJNE    A,#0F4H,NEXT4
01D4 0201F5         LJMP    MODE4           ;F4H表示显示MODE4
01D7 0201FB NEXT4:  LJMP    MODE5           ;F5H-->MODE5
            
01DA 120248 MODE1:	LCALL	BLOCK1		;刷新第一块显示板
01DD 020156 	LJMP	MAIN		;返回主程序
            
01E0 120248 MODE2:	LCALL	BLOCK1		;刷新第1块显示板
01E3 120286 	LCALL	BLOCK2		;刷新第2块显示板
01E6 020156 	LJMP	MAIN		;返回主程序
            
01E9 120248 MODE3:	LCALL	BLOCK1		;刷新第1块显示板
01EC 120286 	LCALL	BLOCK2		;刷新第2块显示板
01EF 1202C4 	LCALL	BLOCK3		;刷新第3块显示板
01F2 020156 	LJMP	MAIN		;返回主程序
            
01F5 1202C4 MODE4:	LCALL	BLOCK3		;单独刷新第3块显示板
01F8 020156 	LJMP	MAIN		;返回主程序
            
01FB 7868   MODE5:  MOV     R0,#68H         ;
01FD 7980           MOV     R1,#80H
01FF 7A14           MOV     R2,#20
0201 E6     MOD5A:  MOV     A,@R0
0202 F7             MOV     @R1,A
0203 74FF           MOV     A,#0FFH
0205 642A           XRL     A,#0101010B
0207 F6             MOV     @R0,A
0208 08             INC     R0
0209 09             INC     R1


D:\飞机泊位系统\程序\DISPLAY.ASM                                                    
 
                                                                                        Page   4
                                                                                        06-30-01
                                                                                        15:41:35
WAVE assembler version 5.00                   Copyright (c) 1989, 99 by CHY

Addr  Code  Source Line

020A DAF5           DJNZ    R2,MOD5A
020C 7A28           MOV     R2,#40
020E 7400   MOD5B:  MOV     A,#0
0210 642A           XRL     A,#0101010B
0212 F7             MOV     @R1,A
0213 09             INC     R1
0214 DAF8           DJNZ    R2,MOD5B
            
0216 7840   ALTER:  MOV     R0,#40H
0218 120248         LCALL   BLOCK1
021B 120286         LCALL   BLOCK2
021E 1202C4         LCALL   BLOCK3
0221 90BF00         MOV     DPTR,#0BF00H
0224 E0             MOVX    A,@DPTR
0225 5401           ANL     A,#01H
0227 701C           JNZ     J2M
0229 120318         LCALL   DELAY5S
022C 7880           MOV     R0,#80H
022E 120248         LCALL   BLOCK1
0231 120286         LCALL   BLOCK2
0234 1202C4         LCALL   BLOCK3
0237 90BF00         MOV     DPTR,#0BF00H
023A E0             MOVX    A,@DPTR
023B 5401           ANL     A,#01H
023D 7006           JNZ     J2M
023F 120318         LCALL   DELAY5S
0242 020216         LJMP    ALTER
0245 020156 J2M:    LJMP    MAIN
            
            
0248 7900   BLOCK1:	MOV	R1,#0		;列选择线指针置零,从第0列开始刷新
024A E6     BLO1:	MOV	A,@R0		;取一列的行点阵显示数据
024B C0E0   	PUSH	A		;保护行置位数据
024D 90FE00         MOV	DPTR,#0FE00H	;加载行置位端口地址
0250 F0     	MOVX	@DPTR,A		;行置位数据送行置位口
0251 90FB00 	MOV	DPTR,#0FB00H	;加载第1块列驱动板地址
0254 E9     	MOV	A,R1		;列指针内容送A
0255 F0     	MOVX	@DPTR,A		;选中相应的列选择线
0256 120302         LCALL	DELAY
0259 74FF           MOV	A,#0FFH		;送无效字
025B F0     	MOVX	@DPTR,A		;以关闭列译码器
025C 7400           MOV	A,#0
025E 90FE00 	MOV	DPTR,#0FE00H	;加载行置位端口地址
0261 F0     	MOVX	@DPTR,A		;行置位口清零
0262 120302         LCALL   DELAY
0265 D0E0   	POP	A		;恢复行置位数据
0267 F4             CPL     A               ;取反得到行复位数据
0268 90FD00 	MOV	DPTR,#0FD00H	;加载行复位端口地址


D:\飞机泊位系统\程序\DISPLAY.ASM                                                    
 
                                                                                        Page   5
                                                                                        06-30-01
                                                                                        15:41:35
WAVE assembler version 5.00                   Copyright (c) 1989, 99 by CHY

Addr  Code  Source Line

026B F0     	MOVX	@DPTR,A		;送行复位数据
026C 90FB00 	MOV	DPTR,#0FB00H	;加载第1块列驱动板地址
026F E9     	MOV	A,R1
0270 F0     	MOVX	@DPTR,A		;选中列驱动线
0271 120302         LCALL	DELAY
0274 74FF   	MOV	A,#0FFH		;送无效字
0276 F0     	MOVX	@DPTR,A		;关闭列译码器
0277 7400   	MOV	A,#0
0279 90FD00 	MOV	DPTR,#0FD00H	;加载行复位端口地址
027C F0     	MOVX	@DPTR,A		;行置位口清零
027D 120302         LCALL   DELAY           ;
0280 09     	INC 	R1		;修改列驱动选择指针
0281 08     	INC	R0		;修改显示缓存指针
0282 B914C5 	CJNE	R1,#20,BLO1	;不满二十列则继续刷新
0285 22     	RET			;返回主程序
            
0286 7900   BLOCK2:	MOV	R1,#0		;列选择线指针置零,从第0列开始刷新
0288 E6     BLO2:	MOV	A,@R0		;取一列的行点阵显示数据
0289 C0E0   	PUSH	A		;保护行置位数据
028B 90FE00         MOV	DPTR,#0FE00H	;加载行置位端口地址
028E F0     	MOVX	@DPTR,A		;行置位数据送行置位口
028F 90F700 	MOV	DPTR,#0F700H	;加载第2块列驱动板地址
0292 E9     	MOV	A,R1		;列指针内容送A
0293 F0     	MOVX	@DPTR,A		;选中相应的列选择线
0294 120302         LCALL   DELAY           ;延时5ms
0297 74FF   	MOV	A,#0FFH		;送无效字
0299 F0     	MOVX	@DPTR,A		;以关闭列译码器
029A 7400   	MOV	A,#0
029C 90FE00 	MOV	DPTR,#0FE00H	;加载行置位端口地址
029F F0     	MOVX	@DPTR,A		;行置位口清零
02A0 120302         LCALL   DELAY
02A3 D0E0   	POP	A		;恢复行置位数据
02A5 F4             CPL     A               ;取反得到行复位数据
02A6 90FD00 	MOV	DPTR,#0FD00H	;加载行复位端口地址
02A9 F0     	MOVX	@DPTR,A		;送行复位数据
02AA 90F700 	MOV	DPTR,#0F700H	;加载第2块列驱动板地址
02AD E9     	MOV	A,R1
02AE F0     	MOVX	@DPTR,A		;选中列驱动线
02AF 120302 	LCALL   DELAY           ;延时5ms
02B2 74FF   	MOV	A,#0FFH		;送无效字
02B4 F0     	MOVX	@DPTR,A		;关闭列译码器
02B5 7400   	MOV	A,#0
02B7 90FD00 	MOV	DPTR,#0FD00H	;加载行复位端口地址
02BA F0     	MOVX	@DPTR,A		;行置位口清零
02BB 120302         LCALL   DELAY
02BE 09     	INC 	R1		;修改列驱动选择指针
02BF 08     	INC	R0		;修改显示缓存指针
02C0 B914C5 	CJNE	R1,#20,BLO2	;不满二十列则继续刷新


D:\飞机泊位系统\程序\DISPLAY.ASM                                                    
 
                                                                                        Page   6

⌨️ 快捷键说明

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