📄 a164.lst
字号:
A51 MACRO ASSEMBLER A164 30/05/08 08:35:32 PAGE 1
DOS MACRO ASSEMBLER A51 X4.86
OBJECT MODULE PLACED IN A164.O
ASSEMBLER INVOKED BY: C:\OMF51\BIN\A51.EXE C:\HKCX\51ASM\A164.ASM DB SB XR RB(0) PR(A164.LST) OJ(A164.O)
LOC OBJ LINE SOURCE
1 ; 实验一 八段数码管显示
E101 2 OUTBIT equ 0e101h ; 位控制口
E102 3 CLK164 equ 0e102h ; 段控制口(接164时钟位)
E102 4 DAT164 equ 0e102h ; 段控制口(接164数据位)
E103 5 IN equ 0e103h ; 键盘读入口
0060 6 LEDBuf equ 60h ; 显示缓冲
0070 7 Num equ 70h ; 显示的数据
0075 8 DelayT equ 75h ;
0000 9 org 0000h
0000 020057 10 ljmp Start
0003 11 LEDMAP: ; 八段管显示码
0003 3F065B4F 12 db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h
0007 666D7D07
000B 7F6F777C 13 db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h
000F 395E7971
0013 14 Delay: ; 延时子程序
0013 7F00 15 mov r7, #0
0015 16 DelayLoop:
0015 DFFE 17 djnz r7, DelayLoop
0017 DEFC 18 djnz r6, DelayLoop
0019 22 19 ret
001A 20 DisplayLED:
001A 7860 21 mov r0, #LEDBuf
001C 7906 22 mov r1, #6 ; 共6个八段管
001E 7A20 23 mov r2, #00100000b ; 从左边开始显示
0020 24 Loop:
0020 90E101 25 mov dptr, #OUTBIT
0023 7400 26 mov a, #00h
0025 F0 27 movx @dptr, a ; 关所有八段管
0026 E6 28 mov a, @r0
0027 75F008 29 mov B, #8 ; 送164
002A 30 DLP:
002A 33 31 rlc a
002B FB 32 mov r3, a
002C 92E0 33 mov acc.0, c
002E 54FD 34 ANL A, #0FDH
0030 90E102 35 mov dptr, #DAT164
0033 F0 36 movx @dptr, a
0034 90E102 37 mov dptr, #CLK164
0037 4402 38 orl a,#02h
0039 F0 39 movx @dptr, a
003A 54FD 40 anl a,#0fDh
003C F0 41 movx @dptr, a
003D EB 42 mov a, r3
003E D5F0E9 43 djnz B, DLP
0041 90E101 44 mov dptr, #OUTBIT
0044 EA 45 mov a, r2
0045 F0 46 movx @dptr, a ; 显示一位八段管
0046 7E01 47 mov r6, #1
0048 1113 48 call Delay
004A EA 49 mov a, r2 ; 显示下一位
004B 03 50 rr a
004C FA 51 mov r2, a
004D 08 52 inc r0
004E D9D0 53 djnz r1, Loop
0050 90E101 54 mov dptr, #OUTBIT
0053 7400 55 mov a, #0
0055 F0 56 movx @dptr, a ; 关所有八段管
A51 MACRO ASSEMBLER A164 30/05/08 08:35:32 PAGE 2
0056 22 57 ret
0057 90E100 58 Start: mov dptr,#0e100h
005A 7403 59 mov a,#03h
005C F0 60 movx @dptr,a
005D 758140 61 mov sp, #40h
0060 757000 62 mov Num, #0
0063 63 MLoop:
0063 0570 64 inc Num
0065 E570 65 mov a, Num
0067 F5F0 66 mov b, a
0069 7860 67 mov r0, #LEDBuf
006B 68 FillBuf:
006B E5F0 69 mov a, b
006D 540F 70 anl a, #0fh
006F 900003 71 mov dptr, #LEDMap
0072 93 72 movc a, @a+dptr ; 数字转换成显示码
0073 F6 73 mov @r0,a ; 显示在码填入显示缓冲
0074 08 74 inc r0
0075 05F0 75 inc b
0077 B866F1 76 cjne r0, #LEDBuf+6, FillBuf
007A 75751E 77 mov DelayT,#30
007D 78 DispAgain:
007D 111A 79 call DisplayLED ; 显示
007F D575FB 80 djnz DelayT,DispAgain
0082 020063 81 ljmp MLoop
82 END
A51 MACRO ASSEMBLER A164 30/05/08 08:35:32 PAGE 3
XREF SYMBOL TABLE LISTING
---- ------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES / REFERENCES
ACC. . . . . . . . D ADDR 00E0H A 33
B. . . . . . . . . D ADDR 00F0H A 29 43 66 69 75
CLK164 . . . . . . N NUMB E102H A 3# 37
DAT164 . . . . . . N NUMB E102H A 4# 35
DELAY. . . . . . . C ADDR 0013H A 14# 48
DELAYLOOP. . . . . C ADDR 0015H A 16# 17 18
DELAYT . . . . . . N NUMB 0075H A 8# 77 80
DISPAGAIN. . . . . C ADDR 007DH A 78# 80
DISPLAYLED . . . . C ADDR 001AH A 20# 79
DLP. . . . . . . . C ADDR 002AH A 30# 43
FILLBUF. . . . . . C ADDR 006BH A 68# 76
IN . . . . . . . . N NUMB E103H A 5#
LEDBUF . . . . . . N NUMB 0060H A 6# 21 67 76
LEDMAP . . . . . . C ADDR 0003H A 11# 71
LOOP . . . . . . . C ADDR 0020H A 24# 53
MLOOP. . . . . . . C ADDR 0063H A 63# 81
NUM. . . . . . . . N NUMB 0070H A 7# 62 64 65
OUTBIT . . . . . . N NUMB E101H A 2# 25 44 54
SP . . . . . . . . D ADDR 0081H A 61
START. . . . . . . C ADDR 0057H A 10 58#
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -