📄 disp.lst
字号:
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 + -