哈!刚刚用以下子程序在bg6qbv的板子上用51系列单片机验证通过ad9851的控制,原来真的好简单!!
;==================定义单片机与dds芯片的连接========
dds_data bit p0.0
dds_wclk bit p0.1
dds_fqud bit p0.2
;===================================================
;==================定义dds控制数据的存放地址========
dds_data0 data 40h
dds_data1 data 41h
dds_data2 data 42h
dds_data3 data 43h
dds_data4 data 44h
;===================================================
;==============送数据到dds芯片(串行控制方式)==========
send_dds_data: mov r1,#dds_data4 ;从w4的最低位开始送出数据
;一直到w0的最低位结束
mov r0,#05h ;设总共要送出的字节为5x8
clr dds_fqud ;置低
loop_send_w: mov a,@r1 ;把数据由缓冲区送给a准备输出
clr c ;清零
send_1_bit: mov r2,#08h ;循环8次,每次送出一个字节
loop_send: clr dds_wclk
rrc a ;左移
mov dds_data,c ;送出一位数据到dds
nop
setb dds_wclk
nop
djnz r2,loop_send ;判断是否送完这一位的8个字节
dec r1
djnz r0,loop_send_w ;判断是否送完5位
setb dds_fqud
nop
clr dds_fqud
ret
;==================送数据到dds芯片子程序结束=========