📄 dds.asm
字号:
FTW0 EQU 40H ;频率字寄存器,最高字节
FTW1 EQU 41H ;32位频率控制字寄存器(最高字节)
FTW2 EQU 42H ;
FTW3 EQU 43H ;
FTW4 EQU 44H ;最低字节
FTW EQU 45H ;频率字寄存器
CLK_DDS EQU P3.1
RENEW EQU P3.0
RESET EQU P3.2
ORG 0000H
LJMP SAO
ORG 0100H
;****************************扫频子程序*****************************
SAO: MOV SP,#50H
CLR RESET
NOP
NOP
SETB RESET
NOP
NOP
CLR RESET
CLR RENEW
NOP
NOP
CLR CLK_DDS
NOP
NOP
SAO11: MOV FTW0,#00H ;初置控制字 用100M(1MHz)
MOV FTW1,#00H ;高位
MOV FTW2,#00H
MOV FTW3,#00H
MOV FTW4,#00H ;低位
;LCALL DELLY
SAO1: LCALL DDS
NOP
NOP
LCALL ADD10k
;LCALL DL10MS
; LCALL DL10MS
LCALL DL10MS
LCALL DL10MS
LCALL DL10MS
LCALL DL10MS
LCALL DL10MS
;LCALL DL10MS
MOV A,FTW1
CJNE A,#02H,SAO1
;RET
AJMP SAO11
DDS: MOV R6,#05H ;传送40位控制字
MOV R0,#FTW0
; MOV DPTR,#0F700H
CLR RENEW
DDS1: MOV A,@R0 ;*****9850送数子程序
NOP
NOP
MOV P0,A
SETB CLK_DDS
NOP
NOP
NOP
NOP
CLR CLK_DDS
INC R0
DJNZ R6,DDS1
SETB RENEW
NOP
NOP
NOP
NOP
CLR RENEW
RET
ADD10K:CLR C
MOV A,FTW4
ADD A,#70H
MOV FTW4,A
MOV A,FTW3
ADDC A,#3DH
MOV FTW3,A
MOV A,FTW2
ADDC A,#01H
MOV FTW2,A
MOV A,FTW1
ADDC A,#00H
MOV FTW1,A
RET
;10ms延时
DL10MS:MOV R6,#64H
D1MS : MOV R4,#02H
D500us: MOV R3,#0FFH
D1111 : DJNZ R3,D1111
DJNZ R4,D500us
DJNZ R6,D1MS
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -