📄 senddatatoad9851.asm
字号:
NAME sdata
?PR?_senddatatoad9851?sdata SEGMENT CODE
;?DT?_senddatatoad9851?sdata SEGMENT DATA OVERLAYABLE
;?BI?_senddatatoad9851?sdata SEGMENT BIT OVERLAYABLE
PUBLIC _senddatatoad9851
?_senddatatoad9851?BIT:
DATA7 BIT P0.7
FQ_UD BIT P0.6
W_CLK BIT P0.5
RSEG ?PR?_senddatatoad9851?sdata
;=================================================
;写频率数据到AD9851,时钟三倍频已经打开,如果晶振是30000000HZ
;则时钟等于18000000HZ
;R3-R2-R1-R0四个字节,这个32位的数据代表了将输出频率值(注意,不是等于)
;单位HZ
;32位的数据=所需输出的频率值(HZ)乘以2的32次方得到的积再除以18000000
;-------------------------------------------------
_senddatatoad9851:
CLR FQ_UD
MOV A,R7 ;数据低位字节
LCALL SEND_PLLRDATA
MOV A,R6
LCALL SEND_PLLRDATA
MOV A,R5
LCALL SEND_PLLRDATA
MOV A,R4 ;数据高位字节
LCALL SEND_PLLRDATA
MOV A,#001B
LCALL SEND_PLLRDATA
SETB FQ_UD
CLR FQ_UD
RET
;--------------------------------------------------
;==================================================
;==================================================
;--------------------------------------------------
SEND_PLLRDATA:
MOV C,ACC.0
MOV DATA7,C
SETB W_CLK
CLR W_CLK
MOV C,ACC.1
MOV DATA7,C
SETB W_CLK
CLR W_CLK
MOV C,ACC.2
MOV DATA7,C
SETB W_CLK
CLR W_CLK
MOV C,ACC.3
MOV DATA7,C
SETB W_CLK
CLR W_CLK
MOV C,ACC.4
MOV DATA7,C
SETB W_CLK
CLR W_CLK
MOV C,ACC.5
MOV DATA7,C
SETB W_CLK
CLR W_CLK
MOV C,ACC.6
MOV DATA7,C
SETB W_CLK
CLR W_CLK
MOV C,ACC.7
MOV DATA7,C
SETB W_CLK
CLR W_CLK
RET
;-------------------------------------
;=====================================
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -