📄 ad0809.lst
字号:
A51 MACRO ASSEMBLER AD0809 03/12/03 09:40:21 PAGE 1
DOS MACRO ASSEMBLER A51 X4.86
OBJECT MODULE PLACED IN AD0809.O
ASSEMBLER INVOKED BY: C:\OMF51\BIN\A51.EXE C:\HKCX\51ASM\AD0809.ASM DB SB XR RB(0) PR(AD0809.LST) OJ(AD0809.O)
LOC OBJ LINE SOURCE
1 ; “验证式” 实验四 A/D转换实验
2
E101 3 OUTBIT equ 0e101h ; 位控制口
E102 4 CLK164 equ 0e102h ; 段控制口(接164时钟位)
E102 5 DAT164 equ 0e102h ; 段控制口(接164数据位)
E103 6 IN equ 0e103h ; 键盘读入口
0040 7 LEDBuf equ 40h ; 显示缓冲
0000 8 org 0000h
0000 758160 9 mov sp,#60h
0003 90E100 10 mov dptr,#0e100h ;8155初始化
0006 7403 11 mov a,#03h
0008 F0 12 movx @dptr,a
0009 754000 13 mov 40h,#00h ;显示缓冲器初始化
000C 754108 14 mov 41h,#08h
000F 754200 15 mov 42h,#00h
0012 754309 16 mov 43h,#09h
0015 754400 17 mov 44h,#00h
0018 754500 18 mov 45h,#00h
001B 7F28 19 LOOP1: MOV R7,#40
001D 120046 20 VI: lcall DISPLAY
0020 DFFB 21 DJNZ R7,VI
0022 7400 22 mov a,#00h
0024 90A000 23 mov dptr,#0a000h ;0809AD的通道开始转换吗?
0027 F0 24 movx @dptr,a
0028 7F0F 25 mov r7,#0fh
002A DFFE 26 loop2: djnz r7,loop2
002C E0 27 movx a,@dptr
002D 7845 28 mov r0,#45h ;拆字
002F 120034 29 lcall ptds
0032 80E7 30 sjmp loop1
0034 F9 31 ptds: mov r1,a
0035 12003A 32 lcall ptds1
0038 E9 33 mov a,r1
0039 C4 34 swap a
003A 540F 35 ptds1: anl a,#0fh
003C F6 36 mov @r0,a
003D 18 37 dec r0
003E 22 38 ret
003F 39 Delay:
003F 7F00 40 mov r7, #0 ; 延时子程序
41
0041 42 DelayLoop:
0041 DFFE 43 djnz r7, DelayLoop
0043 DEFC 44 djnz r6, DelayLoop
0045 22 45 ret
46
0046 D2D3 47 DISPLAY:setb 0d3h
0048 7840 48 mov r0, #LEDBuf
004A 7906 49 mov r1, #6 ; 共6个八段管
004C 7A20 50 mov r2, #00100000b ; 从左边开始显示
004E 51 Loop:
004E 90E101 52 mov dptr, #OUTBIT
0051 7400 53 mov a, #00h
0053 F0 54 movx @dptr, a ; 关所有八段管
55
0054 E6 56 mov a, @r0
0055 90008B 57 mov dptr,#LEDmap
0058 93 58 movc a,@a+dptr
A51 MACRO ASSEMBLER AD0809 03/12/03 09:40:21 PAGE 2
0059 75F008 59 mov B, #8 ; 送164
005C 60 DLP:
005C 33 61 rlc a
005D FB 62 mov r3, a
005E 92E0 63 mov acc.0, c
0060 54FD 64 anl a,#0fdh
0062 90E102 65 mov dptr, #DAT164
0065 F0 66 movx @dptr, a
0066 90E102 67 mov dptr, #CLK164
0069 4402 68 orl a,#02h
006B F0 69 movx @dptr, a
006C 54FD 70 anl a,#0fDh
006E F0 71 movx @dptr, a
006F EB 72 mov a, r3
0070 D5F0E9 73 djnz B, DLP
0073 90E101 74 mov dptr, #OUTBIT
0076 EA 75 mov a, r2
0077 F0 76 movx @dptr, a ; 显示一位八段管
0078 7E01 77 mov r6, #1
007A 113F 78 call Delay
007C EA 79 mov a, r2 ; 显示下一位
007D 03 80 rr a
007E FA 81 mov r2, a
007F 08 82 inc r0
0080 D9CC 83 djnz r1, Loop
0082 90E101 84 mov dptr, #OUTBIT
0085 7400 85 mov a, #0
0087 F0 86 movx @dptr, a
0088 C2D3 87 clr 0d3h ; 关所有八段管
008A 22 88 ret
008B 89 LEDMAP: ; 八段管显示码
008B 3F065B4F 90 db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h
008F 666D7D07
0093 7F6F777C 91 db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h
0097 395E7971
92 END
A51 MACRO ASSEMBLER AD0809 03/12/03 09:40:21 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 63
B. . . . . . . . . D ADDR 00F0H A 59 73
CLK164 . . . . . . N NUMB E102H A 4# 67
DAT164 . . . . . . N NUMB E102H A 5# 65
DELAY. . . . . . . C ADDR 003FH A 39# 78
DELAYLOOP. . . . . C ADDR 0041H A 42# 43 44
DISPLAY. . . . . . C ADDR 0046H A 20 47#
DLP. . . . . . . . C ADDR 005CH A 60# 73
IN . . . . . . . . N NUMB E103H A 6#
LEDBUF . . . . . . N NUMB 0040H A 7# 48
LEDMAP . . . . . . C ADDR 008BH A 57 89#
LOOP . . . . . . . C ADDR 004EH A 51# 83
LOOP1. . . . . . . C ADDR 001BH A 19# 30
LOOP2. . . . . . . C ADDR 002AH A 26# 26
OUTBIT . . . . . . N NUMB E101H A 3# 52 74 84
PTDS . . . . . . . C ADDR 0034H A 29 31#
PTDS1. . . . . . . C ADDR 003AH A 32 35#
SP . . . . . . . . D ADDR 0081H A 9
VI . . . . . . . . C ADDR 001DH A 20# 21
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -