AD9858编程时对频率控制字和相位补偿字的初始化
0赞
发表于 8/19/2012 4:18:27 PM
阅读(2659)
AD9858编程时对频率控制字和相位补偿字的初始化如下所示: FTW0_1 EQU 00101011B FTW0_2 EQU 00101111B FTW0_3 EQU 00110011B FTW0_4 EQU 00110111B POW0_1 EQU 00111011B POW0_2 EQU 00111111B MOV P3, 40H MOV P1, #FTW0_1 CLR WR_ SETB WR_ SETB FUD CLR FUD MOV P3, 40H MOV P1, #FTW0_2 CLR WR_ SETB WR_ SETB FUD CLR FUD MOV P3,40H MOV P1, #FTW0_3 CLR WR_ SETB WR_ SETB FUD CLR FUD MOV P3, #40H MOV P1, #FTW0_4 CLR WR_ SETB WR_ SETB FUD CLR FUD ; MOV P3, #00H MOV P1, #POW0_1 CLR WR_ SETB WR_ SETB FUD CLR FUD ; MOV P3, #00H MOV P1, #POW0_2 CLR WR_ SETB WR_ SETB FUD CLR FUD
设计时,应先将8位频率控制字送入单片机的P3口,再将这8位的地址送入P1口。由于送8位地址的同时也将WR置为高位。因此,将WR置低就可将8位控制字和6位地址送入DDS缓冲器。由于频率的更新只需FUD一个上升沿,所以将FUD置为高位就可将8位数据送入指定的频率寄存器(初始化已将FUD置为低位),最后再将FUD置为低位,以为后边的频率更新设置上升沿做准备。
通过一个简单的程序可将一个频点的控制字送入DDS的存储寄存器。再通过相同的地址列表和送数方式就可将所需要的其它三个频点送入DDS的存储寄存器。这样,通过外部选择信号PS1和PS0就可以快速在这四个频点间进行切换。
