das8830.lst
来自「一个已经在使用的16位DAC8830的源码,有用的,欢迎下载」· LST 代码 · 共 151 行
LST
151 行
A51 MACRO ASSEMBLER DAS8830 07/16/2007 13:19:07 PAGE 1
MACRO ASSEMBLER A51 V7.10
OBJECT MODULE PLACED IN das8830.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE das8830.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1
2
3
4
00E8 5 P4 equ 0e8h
E004 6 sda_io equ 0e004h
E000 7 da_cs equ 0e000h
00B5 8 sclk equ p3.5
00B4 9 sdat equ p3.4
10
00E9 11 spk bit P4.1
12
0000 13 org 0000h
0000 020003 14 ljmp main
15
16
0003 17 main:
0003 90E004 18 mov dptr,#sda_io
0006 7401 19 mov a,#1
0008 F0 20 movx @dptr,a
21
22
23
0009 C2E9 24 clr spk
000B C2B5 25 clr sclk
000D D2B4 26 setb sdat
27
000F 90E000 28 mov dptr,#0e000h
0012 7404 29 mov a,#04H
0014 F0 30 movx @dptr,a
0015 7800 31 mov r0,#0
0017 7900 32 mov r1,#0
0019 33 loop:
34
0019 08 35 inc r0
001A 120024 36 lcall dac8830
37
001D 740A 38 mov a,#10
001F 120050 39 lcall d1ms
40
0022 80F5 41 sjmp loop
42
43
0024 44 dac8830:
45 ; 要输出的数据从R0R1输,R0为高字节,R1为低字节
46 ; 占用:ACC CY DPTR R0 R1 R2(计数)
0024 7400 47 mov a,#0
0026 90E004 48 mov dptr,#sda_io
0029 F0 49 movx @dptr,a
50
002A 7404 51 mov a,#00000100B
002C 90E000 52 mov dptr,#da_cs
002F F0 53 movx @dptr,a
54
0030 00 55 nop
0031 7A10 56 mov r2,#16
0033 57 dac8830_loop:
58 ;(MSB) R0 R1
A51 MACRO ASSEMBLER DAS8830 07/16/2007 13:19:07 PAGE 2
0033 C2B5 59 clr sclk
0035 C3 60 clr c
0036 E9 61 mov a,r1
0037 33 62 rlc a
0038 F9 63 mov r1,a
0039 E8 64 mov a,r0
003A 33 65 rlc a
003B F8 66 mov r0,a
003C 92B4 67 mov sdat,c
003E 00 68 nop
003F 00 69 nop
0040 00 70 nop
0041 D2B5 71 setb sclk
0043 DAEE 72 djnz r2,dac8830_loop
0045 C2B5 73 clr sclk
0047 00 74 nop
0048 00 75 nop
0049 7406 76 mov a,#00000110B
004B 90E000 77 mov dptr,#da_cs
004E F0 78 movx @dptr,a
004F 22 79 ret
80
81
82
83
84
85
86
87
0050 88 D1ms: ;X=22.1184MHz
89 ;t=1-255ms
0050 C006 90 push 06h
0052 C007 91 push 07h
0054 FF 92 MOV R7,A
0055 93 D1ms_01:
0055 7EC8 94 MOV R6,#200 ;t.=1ms
0057 95 D1ms_02:
0057 00 96 NOP
0058 00 97 NOP
0059 00 98 NOP
005A 00 99 NOP
005B 00 100 NOP
005C 00 101 NOP
005D 00 102 NOP
005E DEF7 103 DJNZ R6,D1ms_02
0060 DFF3 104 DJNZ R7,D1ms_01
105
0062 D007 106 pop 07h
0064 D006 107 pop 06h
0066 22 108 RET
109
110
111 end
A51 MACRO ASSEMBLER DAS8830 07/16/2007 13:19:07 PAGE 3
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
D1MS . . . . . . . C ADDR 0050H A
D1MS_01. . . . . . C ADDR 0055H A
D1MS_02. . . . . . C ADDR 0057H A
DAC8830. . . . . . C ADDR 0024H A
DAC8830_LOOP . . . C ADDR 0033H A
DA_CS. . . . . . . N NUMB E000H A
LOOP . . . . . . . C ADDR 0019H A
MAIN . . . . . . . C ADDR 0003H A
P3 . . . . . . . . D ADDR 00B0H A
P4 . . . . . . . . N NUMB 00E8H A
SCLK . . . . . . . B ADDR 00B0H.5 A
SDAT . . . . . . . B ADDR 00B0H.4 A
SDA_IO . . . . . . N NUMB E004H A
SPK. . . . . . . . B ADDR 00E8H.1 A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?