• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

最廉价的51单片机PWM正弦波逆变驱动

//输出为P1,P3      低电平有效.

#include

unsigned char code lyadsla[]=
{3,6,9,12,15,18,21,24,27,30,33,35,38,40,43,
45,47,49,51,53,54,56,57,59,60,61,62,62,63,63,63,
63,63,63,63,62,62,61,60,59,57,56,54,53,51,49,47,
45,43,40,38,35,33,30,27,24,21,18,15,12,9,6,3,0};
unsigned char code lyadslb[]=
{60,57,54,51,48,45,42,39,36,33,30,28,25,23,20,
18,16,14,12,10,9,7,6,4,3,2,1,1,0,0,0,
0,0,0,0,1,1,2,3,4,6,7,9,10,12,14,16,
18,20,23,25,28,30,33,36,39,42,45,48,51,54,57,60,63};
unsigned int i,j,ij,ji;
void main(void)
{
    while(1)
    {
  P3=0xff;
  ij=64;
   while(ij--)
        {
            P1=0xff;
   for(j=lyadslb[i];j>0;j--);
            P1=0x00;
   for(j=lyadsla[i];j>0;j--);
            i++;
            if(i>63)i=0;    
     }
  P1=0xff;
  ji=64;
  while(ji--)
        {
            P3=0xff;
   for(j=lyadslb[i];j>0;j--);
            P3=0x00;
   for(j=lyadsla[i];j>0;j--);
            i++;
            if(i>63)i=0;
     }   
    }
}

   

 

   

 

   

 

  杯具啊.600买的示波器就这样的效果.......哈哈

全部回复(37)
正序查看
倒序查看
549009960
LV.5
2
2013-10-11 21:44
全部都是代码、看不懂了
0
回复
陈少
LV.6
3
2013-10-11 22:31
@549009960
全部都是代码、看不懂了

就是

0
回复
fm881
LV.7
4
2013-10-11 22:32
0
回复
2013-10-11 23:54
还没有稳压反馈,把稳压反馈加上?
0
回复
陈少
LV.6
6
2013-10-12 00:43
@liwei20080512
还没有稳压反馈,把稳压反馈加上?

你看的懂????

0
回复
2013-10-12 08:10
@陈少
你看的懂????
我最想看的就是稳压反馈PID算法,很多人都不愿意公布这里的代码。
0
回复
2013-10-12 08:48
这个才几个点呀,而且载频也太低了
0
回复
2013-10-12 10:27
@wangshujun
这个才几个点呀,而且载频也太低了
用51单片机推动什么管做的工频逆变啊?图发出来分享一下吧!
0
回复
2013-10-13 14:38
@denminshen
用51单片机推动什么管做的工频逆变啊?图发出来分享一下吧!

呵呵,普通51做PWM不行啊],没有PWM还可换增强型的吧,STC12C------系列的,都带PWM功能,AD,

0
回复
wangshujun
LV.8
11
2013-10-14 17:11
@zhusiheng218
呵呵,普通51做PWM不行啊],没有PWM还可换增强型的吧,STC12C------系列的,都带PWM功能,AD,

没有互补和死区的支持,软件很累

要便宜推荐使用stm8,1.x元的片子带互补输出和死区,软件压力很小

0
回复
2013-10-14 23:44
这个还是有点贵了,论坛里wangshujun老师,用的单片机才1元钱搞定了,同时前后级都给做到了一个单片机里面,这才厉害!楼主要加油!
0
回复
2013-10-14 23:45
@wangshujun
没有互补和死区的支持,软件很累要便宜推荐使用stm8,1.x元的片子带互补输出和死区,软件压力很小
好久都没有看到你了,忙啥呢?
0
回复
weipeng159
LV.2
14
2013-10-15 10:02
@liwei20080512
我最想看的就是稳压反馈PID算法,很多人都不愿意公布这里的代码。
这东西不稳压啊~就是单纯的开关,根本没调制,也没反馈....
0
回复
mvip
LV.3
15
2013-10-15 16:39
你这个使用软件延时不是很稳定和准确,虽然查数组得到的值,觉得波型不好
0
回复
a2580782
LV.3
16
2013-10-24 01:38
@lizlk
这个还是有点贵了,论坛里wangshujun老师,用的单片机才1元钱搞定了,同时前后级都给做到了一个单片机里面,这才厉害!楼主要加油!

 

0
回复
a2580782
LV.3
17
2013-10-24 01:38
@mvip
你这个使用软件延时不是很稳定和准确,虽然查数组得到的值,觉得波型不好

51单片机难道你能做出好的波形???没什么好纠结的.51单片机没D/A.只能这样了.我只是贪图他淘宝上现成的最小系统板.方便.........至于软件延时不准确.那是没办法的.用中断很容易.你试一下就知道了.........结果是做不到50Hz.更别说128以上的取样点了.你就做梦去吧!!!!!!!!!!!!

再说你在看看这个延时代码.for(jjj=0;jjj>0;jjj--)........你就要知道经不起调用中断了........

0
回复
a2580782
LV.3
18
2013-10-24 02:11
@weipeng159
这东西不稳压啊~就是单纯的开关,根本没调制,也没反馈....

PWM脉宽调制.32点正弦取样.

至于反馈51单片机没有A/D.就算了吧....我说得很清楚是工频逆变.直接推50Hz的低频变压器.如果要加A/D芯片.就麻烦了.淘宝没有现成的又廉价的最小系统版卖.要厂家打板划算吗?????????不如直接买成品正弦驱动板...........

不明白有些人就喜欢说些有的没的干嘛???????????

1
回复
2013-10-24 10:18
@a2580782
51单片机难道你能做出好的波形???没什么好纠结的.51单片机没D/A.只能这样了.我只是贪图他淘宝上现成的最小系统板.方便.........至于软件延时不准确.那是没办法的.用中断很容易.你试一下就知道了.........结果是做不到50Hz.更别说128以上的取样点了.你就做梦去吧!!!!!!!!!!!!再说你在看看这个延时代码.for(jjj=0;jjj>0;jjj--)........你就要知道经不起调用中断了........
,支持!做的不错!
0
回复
wangshujun
LV.8
20
2013-10-24 13:21
@a2580782
51单片机难道你能做出好的波形???没什么好纠结的.51单片机没D/A.只能这样了.我只是贪图他淘宝上现成的最小系统板.方便.........至于软件延时不准确.那是没办法的.用中断很容易.你试一下就知道了.........结果是做不到50Hz.更别说128以上的取样点了.你就做梦去吧!!!!!!!!!!!!再说你在看看这个延时代码.for(jjj=0;jjj>0;jjj--)........你就要知道经不起调用中断了........
不能熟练使用定时器中断的,还不能算单片机已经入门
0
回复
a2580782
LV.3
21
2013-10-24 13:29
@wangshujun
不能熟练使用定时器中断的,还不能算单片机已经入门

熟练使用定时器中断的,也不算单片机已经入门.

中断调用还是太简单了.顶多算是基础!!!算是常识

0
回复
denminshen
LV.4
22
2013-10-24 14:56
@a2580782
熟练使用定时器中断的,也不算单片机已经入门.中断调用还是太简单了.顶多算是基础!!!算是常识
用51单片机推动什么管做的工频逆变啊?图发出来分享一下吧!
0
回复
wangshujun
LV.8
23
2013-10-24 16:06
@a2580782
熟练使用定时器中断的,也不算单片机已经入门.中断调用还是太简单了.顶多算是基础!!!算是常识
能把定时器中断弄熟练了就算入门了,动态刷数码管和逆变控制就能做了
0
回复
a2580782
LV.3
24
2013-10-24 21:08
@wangshujun
能把定时器中断弄熟练了就算入门了,动态刷数码管和逆变控制就能做了

你就不用卖弄了.....有本事凭51单片机的资源.你用定时器中断弄个50Hz正弦脉宽调制给人看看.....站着讲话不腰疼啊

0
回复
wangshujun
LV.8
25
2013-10-25 08:53
@a2580782
你就不用卖弄了.....有本事凭51单片机的资源.你用定时器中断弄个50Hz正弦脉宽调制给人看看.....站着讲话不腰疼啊
你这样说就是还没入门呀
0
回复
a2580782
LV.3
26
2013-10-25 11:16
@wangshujun
你这样说就是还没入门呀

有没有入门无所谓.我用定时器中断写过.中断太耗时钟周期.只能做到10+HZ...................

但我看你好像很闲.你写个让我学习一下.不要在这里风言风语风吹沙了................

记住我的主题是51单片机.没D/A芯片.不能以牺牲精度为代价...................

有什么本事就亮出来溜溜.没本事一边凉快去!!!!!!!!

0
回复
plc_avr
LV.6
27
2013-10-25 12:11
@a2580782
有没有入门无所谓.我用定时器中断写过.中断太耗时钟周期.只能做到10+HZ...................但我看你好像很闲.你写个让我学习一下.不要在这里风言风语风吹沙了................记住我的主题是51单片机.没D/A芯片.不能以牺牲精度为代价...................有什么本事就亮出来溜溜.没本事一边凉快去!!!!!!!!

不要火气大,都消消火,呵呵.LZ这个只能拿来自已业余玩玩,真正的应用到产品还有相当长的路要走.

0
回复
a2580782
LV.3
28
2013-10-25 13:17
@plc_avr
不要火气大,都消消火,呵呵.LZ这个只能拿来自已业余玩玩,真正的应用到产品还有相当长的路要走.

学习之余.没想什么产品之类的事情.只对逆变器比较有兴趣!!!!!!!!!!

从模拟电路转来学习数字........刚开始学C.......还有这示波器实在是杯具..........烦啊!

0
回复
2013-10-25 14:15
@a2580782
学习之余.没想什么产品之类的事情.只对逆变器比较有兴趣!!!!!!!!!!从模拟电路转来学习数字........刚开始学C.......还有这示波器实在是杯具..........烦啊!
慢慢搞,谁都是这样过来的,值得鼓励!
0
回复
wangshujun
LV.8
30
2013-10-28 13:04
@a2580782
51单片机难道你能做出好的波形???没什么好纠结的.51单片机没D/A.只能这样了.我只是贪图他淘宝上现成的最小系统板.方便.........至于软件延时不准确.那是没办法的.用中断很容易.你试一下就知道了.........结果是做不到50Hz.更别说128以上的取样点了.你就做梦去吧!!!!!!!!!!!!再说你在看看这个延时代码.for(jjj=0;jjj>0;jjj--)........你就要知道经不起调用中断了........

你这个只是出一个死的spwm,根本没法用呀

做一个东西首先选择资源适合的硬件,纯软件要死人的

0
回复
wangshujun
LV.8
31
2013-10-28 18:40
@a2580782
有没有入门无所谓.我用定时器中断写过.中断太耗时钟周期.只能做到10+HZ...................但我看你好像很闲.你写个让我学习一下.不要在这里风言风语风吹沙了................记住我的主题是51单片机.没D/A芯片.不能以牺牲精度为代价...................有什么本事就亮出来溜溜.没本事一边凉快去!!!!!!!!

用了一天时间,折腾了两个51输出spwm的例子,有很大的可修改空间的,有时间你可以去看看

spwm真的是小儿科的东西,做这么一个没用的东西还不让人说

0
回复