这几天总算完成了DDS正弦信号的发生,限于CPLD的128宏单元不够用也不知道怎样优化,后来就爽性把按键、频率显现、频率操控字交给单片机操控发生,再由单片机讲频率操控字传送给CPLD,这样就完成了频率的操控。终究发生的正弦信号频率规模为1HZ~30KHZ,频率可步进1HZ也可通过单片机预置,也能够主动扫频信号。起先出来的频最大差错到达2HZ多,觉得不对劲出来的频率应该很准确不会有这么大的差错,后来发现原来是晶振禁绝有点差错,后来经程序修改使输出最大频率差错在0.1HZ以内,通过这几天的尽力总算感到了一点的欣喜,呵呵。
这是VHDL顶层模块:
这是当k=001111111111111时的仿真波形:
单片机操控6个数码管显现当时的频率,P1口接4个功用按键,分别是+、-、挑选和扫频,再用两片574向CPLD输出频率操控字。限于时刻暂时做到这么多。
在说一点吧,由所以用DAC0832转化的(转化时刻1us)所以晶振就约束在1M之内了,出来的最大频率,依据奈奎斯特采样定理也就约束在0.5MHZ之内了(不过失真很大的,取小点好了),最终对出来的波形再做滤波就能够了。