senddatatoad9851.asm
来自「AD9851子程序 愿程序 驱动程序和实现步进控制的子程序 方便程序的扩张」· 汇编 代码 · 共 84 行
ASM
84 行
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 + =
减小字号Ctrl + -
显示快捷键?