标题: 51单片机SPWM输出占空比顺序不对,不知什么原因? [打印本页]

作者: ZMRGHY    时间: 2021-2-1 20:24
标题: 51单片机SPWM输出占空比顺序不对,不知什么原因?
求助,51单片机,SPWM输出占空比顺序不对,不知什么原因?

        使用24.576M晶振!!!
        要求SPWM滤波后,得到50Hz正弦波。。。
        单片机P0.0 输出50Hz交流正半周的SPWM信号。。。
        单片机P0.1 输出50Hz交流负半周的SPWM信号。。。

        输出正半周加负半周时间正好是20mS。50Hz频率没有问题了。。。
        但是SPWM输出占空比顺序不对。
        程序中写的是 %10、%20、%40、%60、%80、%80、%60、%40、%20、%10。。。。。
        示波器显示的是 %10、%10、%20、%40、%60、%80、%80、%60、%40、%20。。。。。

研究了半天,找不出原因来???














源代码文件、HEX程序文件、仿真电路.rar

21.42 KB, 下载次数: 21


作者: xianfajushi    时间: 2021-2-2 16:28
下载文件是坏的
作者: ZMRGHY    时间: 2021-2-3 01:27
xianfajushi 发表于 2021-2-2 16:28
下载文件是坏的

没有呀!!!可以仿真的。。。
能不能,详细说一下什么情况
作者: chenyinhu    时间: 2021-2-3 06:23
我感觉是你初始化的时候就是 0xff 0x33然后就已经按10%占空比在出了
作者: chenyinhu    时间: 2021-2-3 06:24
我们之前调试的时候是用DAC直接打出来看波形是不是正弦
作者: xianfajushi    时间: 2021-2-3 08:18


作者: ZMRGHY    时间: 2021-2-3 14:21
歪打正着,解决了问题。

却对定时器的原理更加迷糊了。。。。。。。
只知其然,不知其所以然。

求各位大佬,讲解一下。。。。。

01.JPG (106.83 KB, 下载次数: 65)

01.JPG

02.JPG (100.67 KB, 下载次数: 58)

02.JPG

03.JPG (102.92 KB, 下载次数: 61)

03.JPG

04.JPG (138.38 KB, 下载次数: 48)

04.JPG

3SPWM.rar

21.23 KB, 下载次数: 25


作者: mason2020    时间: 2021-2-4 14:01
dr>10的程序会一直执行if里的程序,而dr==10的程序只执行一次if里的程序
作者: 大呼呼大    时间: 2021-5-3 17:34
你直接跳过了dr = 0 的情况
作者: 大呼呼大    时间: 2021-5-3 18:32
if(!output)
        {
               if(!dr)
                 out2= 1;
               else
                out1=1;
        }
           else
                  if(!dr)
                 out1= 1;
               else
                out2=1;

}
帮你改了一下




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1