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

📄 最终程序.lst

📁 飞机泊位管理系统中单片机代码
💻 LST
📖 第 1 页 / 共 4 页
字号:
                                                                                        页     1
                                                                                        03-02-02
                                                                                        19:11:41
伟福汇编器 V5.00                               Copyright (c) 1989, 99 by CHY

地址  机器码 源程序

            	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           MOV     R0,#40H         ;加载显示缓存区指针
011E 7900           MOV     R1,#0           ;R1是显示数据指针
0120 7A3C           MOV     R2,#60          ;开机画面存储区有60字节
0122 E9     LOG:    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,LOG          ;若R2不为0,则继续读取显示点阵数据
012E 7840           MOV	R0,#40H         ;加载显示缓存指针供刷新显示
0130 1202B8         LCALL   BLOCK1          ;转显示驱动程序
0133 1202F6         LCALL   BLOCK2
0136 120334         LCALL   BLOCK3
            
            ;***************显示控制器状态检测***************
            
0139 90BF00 POST:   MOV     DPTR,#0BF00H    ;加载DATA标志端口地址
013C E0     POS1:   MOVX    A,@DPTR         ;读DATA标志
013D 5401           ANL     A,#01H          ;屏蔽A寄存器的高7位
013F 60FB           JZ      POS1            ;若DATA标志为低,再读DATA标志
0141 74FF           MOV     A,#0FFH
0143 F590           MOV     P1,A            ;P1口读入数据时先置全“1”
0145 E590           MOV     A,P1            ;读P1口数据


E:\YAM\飞机泊位系统\程序\最终程序.ASM                                               
 
                                                                                        页     2
                                                                                        03-02-02
                                                                                        19:11:41
伟福汇编器 V5.00                               Copyright (c) 1989, 99 by CHY

地址  机器码 源程序

0147 B4F0F2         CJNE    A,#0F0H,POS1    ;若读入数据不为F0H,则等待
014A 90DF00         MOV     DPTR,#0DF00H    ;加载ACK标志端口地址
014D 7401           MOV     A,#01H          ;
014F F0             MOVX    @DPTR,A         ;将ACK标志置高
0150 12037B         CALL    DELAY1S         ;延时1秒
0153 7400           MOV     A,#0
0155 F0             MOVX    @DPTR,A         ;将ACK清零
            
            ;***************状态显示数据加载****************
            
0156 7840   LOGO:   MOV     R0,#40H         ;加载显示缓存区指针
0158 7900           MOV     R1,#0           ;R1是显示数据指针
015A 7A3C           MOV     R2,#60          ;开机画面存储区有60字节
015C E9     LOG1:   MOV     A,R1
015D 900450         MOV     DPTR,#450H      ;加载开机画面存储区起始地址
0160 93             MOVC    A,@A+DPTR       ;查表法得到显示点阵数据
0161 642A           XRL     A,#0101010B     ;此项由磁翻转显示器特性决定
0163 F6             MOV     @R0,A           ;送点阵数据至显示缓存区
0164 08             INC     R0              ;显示缓存指针增1
0165 09             INC     R1              ;显示数据指针增1
0166 DAF4           DJNZ    R2,LOG1         ;若R2不为0,则继续读取显示点阵数据
0168 7840           MOV	R0,#40H         ;加载显示缓存指针供刷新显示
016A 1202B8         LCALL   BLOCK1          ;转显示驱动程序
016D 1202F6         LCALL   BLOCK2
0170 120334         LCALL   BLOCK3
            
            ;***************主程序段**************
            
0173 7830   MAIN:	MOV	R0,#30H		;加载接受缓存区起始地址
0175 90BF00 MAI1:	MOV	DPTR,#0BF00H	;加载DATA标志端口地址
0178 E0     MAI2:	MOVX	A,@DPTR		;读入主控制器数据标志
0179 5401   	ANL	A,#01H		;屏蔽A高7位
017B 60FB   	JZ	MAI2		;查询DATA信号是否为高
017D 74FF   	MOV	A,#0FFH
017F F590           MOV     P1,A            ;P1口要读入数据,先置全“1”
0181 E590   	MOV	A,P1		;读入P1口的数据
0183 C0E0   	PUSH	A		;压入最新接收的数据
0185 F6     	MOV	@R0,A		;将接收数据写入接收数据缓冲区
0186 08     	INC	R0		;指向下一个缓冲存储单元
0187 7401   	MOV	A,#01H
0189 90DF00 	MOV	DPTR,#0DF00H	;加载ACK端口地址
018C F0     	MOVX	@DPTR,A		;ACK端口置高
018D 90BF00 	MOV	DPTR,#0BF00H	;加载DATA标志端口地址
0190 E0     MAI3:	MOVX	A,@DPTR
0191 5401   	ANL	A,#01H		;屏蔽高7位数据
0193 70FB   	JNZ	MAI3		;若DATA未变低,等待
0195 7400   	MOV	A,#0
0197 90DF00 	MOV	DPTR,#0DF00H	;加载ACK端口地址


E:\YAM\飞机泊位系统\程序\最终程序.ASM                                               
 
                                                                                        页     3
                                                                                        03-02-02
                                                                                        19:11:41
伟福汇编器 V5.00                               Copyright (c) 1989, 99 by CHY

地址  机器码 源程序

019A F0     	MOVX	@DPTR,A		;ACK端口置低
019B D0E0   	POP	A		;弹出读入的数据
019D B4FFD5 	CJNE	A,#0FFH,MAI1	;若不是0FFH结束符,读下一数据
            
01A0 120280         LCALL   CONVERT         ;降接收到的ASCII字符转换并译码
            
            ;***************显示模式判断程序*****************
            
01A3 7840   MODE:	MOV	R0,#40H		;加载显示缓存起始地址
01A5 7930   	MOV	R1,#30H		;判断30H单元显示模式
01A7 E7     	MOV	A,@R1
01A8 B4F103 	CJNE	A,#0F1H,NEXT1
01AB 0201D2         LJMP    MODE1        	;0F1H表示显示模式一
01AE B4F203 NEXT1:	CJNE	A,#0F2H,NEXT2	;0F2H表示显示模式二
01B1 0201D8         LJMP    MODE2
01B4 B4F303 NEXT2:	CJNE	A,#0F3H,NEXT3	;0F3H表示显示模式三
01B7 0201E1         LJMP    MODE3
01BA B4F403 NEXT3:  CJNE    A,#0F4H,NEXT4
01BD 0201ED         LJMP    MODE4           ;0F4H表示显示模式四
01C0 B4F503 NEXT4:  CJNE    A,#0F5H,NEXT5
01C3 0201FC         LJMP    MODE5           ;0F5H表示显示模式五
01C6 B4F603 NEXT5:  CJNE    A,#0F6H,NEXT6
01C9 020243         LJMP    TEST            ;0F6H为显示系统测试命令
01CC B4F7A4 NEXT6:  CJNE    A,#0F7H,MAIN
01CF 0201F3         LJMP    MODE7           ;0F7H表示显示模式七
            
01D2 1202B8 MODE1:	LCALL	BLOCK1		;刷新第1块显示板
01D5 020173 	LJMP	MAIN		;返回主程序
            
01D8 1202B8 MODE2:	LCALL	BLOCK1		;刷新第1块显示板
01DB 1202F6 	LCALL	BLOCK2		;刷新第2块显示板
01DE 020173 	LJMP	MAIN		;返回主程序
            
01E1 1202B8 MODE3:	LCALL	BLOCK1		;刷新第1块显示板
01E4 1202F6 	LCALL	BLOCK2		;刷新第2块显示板
01E7 120334 	LCALL	BLOCK3		;刷新第3块显示板
01EA 020173 	LJMP	MAIN		;返回主程序
            
01ED 120334 MODE4:  LCALL	BLOCK3		;刷新第3块显示板
01F0 020173 	LJMP	MAIN		;返回主程序
            
01F3 1202B8 MODE7:  LCALL   BLOCK1          ;刷新第1块显示板
01F6 120334         LCALL   BLOCK3          ;刷新第3块显示板
01F9 020173         LJMP    MAIN            ;返回主程序
            
            ;***************交替显示程序(方式五)********************
            
01FC 7868   MODE5:  MOV     R0,#68H         ;加载显示缓存1指针


E:\YAM\飞机泊位系统\程序\最终程序.ASM                                               
 
                                                                                        页     4
                                                                                        03-02-02
                                                                                        19:11:41
伟福汇编器 V5.00                               Copyright (c) 1989, 99 by CHY

地址  机器码 源程序

01FE 7980           MOV     R1,#80H         ;加载显示缓存2指针
0200 7A14           MOV     R2,#20          ;搬移字节数为20字节
0202 E6     MOD5A:  MOV     A,@R0
0203 F7             MOV     @R1,A           ;将显示缓存1后20字节搬移至缓存2
0204 74FF           MOV     A,#0FFH         ;
0206 642A           XRL     A,#0101010B     ;由显示器特性决定
0208 F6             MOV     @R0,A           ;显存1后20字节送全亮
0209 08             INC     R0
020A 09             INC     R1
020B DAF5           DJNZ    R2,MOD5A
020D 7A28           MOV     R2,#40          ;显示缓存二共有40字节
020F 7400   MOD5B:  MOV     A,#0
0211 642A           XRL     A,#0101010B
0213 F7             MOV     @R1,A
0214 09             INC     R1
0215 DAF8           DJNZ    R2,MOD5B
            
0217 7840   ALTER:  MOV     R0,#40H         ;显示缓存一起始地址
0219 1202B8         LCALL   BLOCK1          ;显示驱动
021C 1202F6         LCALL   BLOCK2
021F 90BF00         MOV     DPTR,#0BF00H    ;DATA标志位地址
0222 E0             MOVX    A,@DPTR
0223 5401           ANL     A,#01H
0225 7019           JNZ     J2M             ;DATA为高转主程序
0227 120388         LCALL   DELAY2S
022A 7880           MOV     R0,#80H         ;显示缓存二的起始地址
022C 1202B8         LCALL   BLOCK1          ;驱动显示
022F 1202F6         LCALL   BLOCK2
0232 90BF00         MOV     DPTR,#0BF00H
0235 E0             MOVX    A,@DPTR
0236 5401           ANL     A,#01H
0238 7006           JNZ     J2M             ;查询DATA标志
023A 120388         LCALL   DELAY2S
023D 020217         LJMP    ALTER
0240 020173 J2M:    LJMP    MAIN            ;若有新数据则跳转至主程序
            
            ;***************磁翻转显示屏测试程序*******************
            
0243 900800 TEST:   MOV     DPTR,#800H      ;测试画面图案数据地址指针
0246 7C0E           MOV     R4,#14          ;测试画面一共14幅
0248 7830   TES1:   MOV	R0,#30H         ;接收缓存地址指针
024A 74F3   	MOV	A,#0F3H         ;接收缓存模式字
024C F6     	MOV	@R0,A
024D 08             INC     R0
024E 7900   	MOV	R1,#0           ;便宜数据指针
0250 7A0C   	MOV	R2,#12          ;一共须填入12字节数据
0252 E9     TES2:	MOV	A,R1
0253 93     	MOVC	A,@A+DPTR


E:\YAM\飞机泊位系统\程序\最终程序.ASM                                               
 
                                                                                        页     5
                                                                                        03-02-02
                                                                                        19:11:41
伟福汇编器 V5.00                               Copyright (c) 1989, 99 by CHY

地址  机器码 源程序

0254 F6     	MOV	@R0,A
0255 08     	INC	R0
0256 09     	INC	R1
0257 DAF9   	DJNZ	R2,TES2
0259 74FF   	MOV	A,#0FFH         ;结束标志
025B F6     	MOV	@R0,A
025C C083           PUSH    DPH
025E C082           PUSH    DPL             ;保护测试画面存储数据指针
0260 120280 	LCALL	CONVERT         ;显示代码转化和译码
0263 7840   	MOV	R0,#40H         ;显示存储区地址指针
0265 1202B8 	LCALL	BLOCK1
0268 1202F6 	LCALL	BLOCK2
026B 120334 	LCALL	BLOCK3
026E D082           POP     DPL
0270 D083           POP     DPH
0272 7B10           MOV     R3,#10H
0274 0582   TES3:   INC     DPL
0276 DBFC           DJNZ    R3,TES3
0278 12037B         LCALL	DELAY1S
027B DCCB           DJNZ    R4,TES1
027D 020173         LJMP    MAIN
            
            ;***************显示代码转换和译码程序段******************
            
0280 900500 CONVERT:MOV     DPTR,#0500H     ;加载转换码表地址指针
0283 7830           MOV     R0,#30H         ;加载接收缓存地址指针
0285 08     CONV1:  INC     R0              ;接受缓存指针加1
0286 E6             MOV     A,@R0           ;取一个接受缓存中的数据
0287 B4FF03         CJNE    A,#0FFH,CONV2   ;不是0FFH结束符,则继续转换
028A 020292         LJMP    DECODE          ;若已经结束,转显示译码
028D 93     CONV2:  MOVC    A,@A+DPTR       ;取转换码表数据
028E F6             MOV     @R0,A           ;将转换后的数据送回接受缓存
028F 020285         LJMP    CONV1           ;继续接受缓存下一字节转换
0292 900600 DECODE:	MOV	DPTR,#0600H	;加载显示字库地址指针
0295 7830   	MOV	R0,#30H		;加载接收缓存地址指针
0297 7940   	MOV	R1,#40H		;加载显示缓存地址指针
0299 08     DECO1:	INC	R0		;接收缓存指针加1
029A E6     	MOV	A,@R0		;取一个接收缓存中的数据
029B B4FF03 	CJNE	A,#0FFH,DECO2	;不是FFH结束符,则继续译码
029E 0202B7 	LJMP	BACK		;若为FFH结束符,转驱动显示
02A1 7A04   DECO2:	MOV	R2,#4		;一个字符字库占用5字节
02A3 26     CAL:	ADD	A,@R0
02A4 DAFD   	DJNZ	R2,CAL		;计算字库存储区偏移量
02A6 7A05   	MOV	R2,#5		;一个字符字库占用5字节
02A8 C0E0   GET:	PUSH	A		;保护偏移量
02AA 93     	MOVC	A,@A+DPTR	;取ROM字库中点阵显示数据
02AB 642A           XRL     A,#0101010B     ;
02AD F7     	MOV	@R1,A		;保存点阵显示数据至显示缓冲区


E:\YAM\飞机泊位系统\程序\最终程序.ASM                                               
 
                                                                                        页     6

⌨️ 快捷键说明

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