📄 das8830.asm
字号:
P4 equ 0e8h
sda_io equ 0e004h
da_cs equ 0e000h
sclk equ p3.5
sdat equ p3.4
spk bit P4.1
org 0000h
ljmp main
main:
clr spk
clr sclk
setb sdat
mov dptr,#0e000h
mov a,#04H
movx @dptr,a
mov r0,#0
mov r1,#0
loop:
inc r0
lcall dac8830
mov a,#10
lcall d1ms
sjmp loop
dac8830:
; 要输出的数据从R0R1输,R0为高字节,R1为低字节
; 占用:ACC CY DPTR R0 R1 R2(计数)
mov a,#0
mov dptr,#sda_io
movx @dptr,a
mov a,#00000100B
mov dptr,#da_cs
movx @dptr,a
nop
mov a,r0
mov r2,#8
dac8830_loop1:
;(MSB) R0 R1
clr sclk
rlc a
mov sdat,c
nop
nop
nop
setb sclk
djnz r2,dac8830_loop1
mov a,r1
mov r2,#8
dac8830_loop2:
;(MSB) R0 R1
clr sclk
rlc a
mov sdat,c
nop
nop
setb sclk
djnz r2,dac8830_loop2
clr sclk
nop
nop
mov a,#00000110B
mov dptr,#da_cs
movx @dptr,a
ret
D1ms: ;X=22.1184MHz
;t=1-255ms
push 06h
push 07h
MOV R7,A
D1ms_01:
MOV R6,#200 ;t.=1ms
D1ms_02:
NOP
NOP
NOP
NOP
NOP
NOP
NOP
DJNZ R6,D1ms_02
DJNZ R7,D1ms_01
pop 07h
pop 06h
RET
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -