51单片机和DAC0832制作可调频的信号发生器
发布网友
发布时间:2022-05-30 16:41
我来回答
共3个回答
热心网友
时间:2023-10-20 02:42
你的问题很好解释啊!
256个点,DAC0832速率为1us左右,理论上频率可以达到1M/256=3906HZ。
但实际上受器件影响,不一定达到这么高的频率。
不过由于你用的是51单片机,12T的模式,执行指令的速率非常低,所以真正影响频率的首先不是DAC0832,而是单片机。因相对于DAC0832的速率,单片机的速率慢了很多,所以单片机的速率是跟不上DAC0832的。
像你程序中用了这么多if,各种判断,频率的运算,还要加上中断的耗时,必定会将频率降下来了。
12T模式的51,单周期时间为1M,加上这些if啊,运算啊,中断耗时啊,频率一下子就降下来了……
所以,要提高速度,取的波形点降低,没必要高这么多,256太高了。你DAC0832后级做出滤波即可。采样定理不是说了嘛,采样速率只要不小于2倍的信号频率,即可还原出原始波形。理论上波形点只要2点就够了…… 但实际应用中,取16个点,或者32个点,也是足够了…… 拿32个点来说,256/32=8,速度一下子就上升8倍……
热心网友
时间:2023-10-20 02:43
最大600HZ的追问怎样让频率扩大,我的问题在哪儿呢?
热心网友
时间:2023-10-20 02:43
你首先检查电路接线是否有问题。其次是程序是否正常运行。测试电路的最好办法,是去掉单片机,直接对dac0832的8个数据输入端手动编码,看输出是否按照规律变化,如果这样正常,那就要检查程序。