• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖
  • 论坛首页
  • 逆变/光伏/并网
  • 51单片机实现的spwm样例,有两个目录,分别对应着单极性和双极性的控制,50hz,128点数据,等价开关频率才6k,调制输出极限为8为满度

51单片机实现的spwm样例,有两个目录,分别对应着单极性和双极性的控制,50hz,128点数据,等价开关频率才6k,调制输出极限为8为满度

先上仿真图,回头再传项目文件,可以直接在keil软件里面编译仿真,并利用仿真时的逻辑分析仪查看输出波形

双极性输出,没有死区的时候只需要输出一个pwm信号即可,外部用一个反向器产生互补信号,并利用与非门产生死区就可以工作起来了

一个周期的变化波形,上半的是一个io输出的过零点信号,便于进行观察

因为点数偏多,所以在分别抓取前半和后半周期的图,一边观察。


HELLO-1.rar

全部回复(15)
正序查看
倒序查看
2013-10-28 18:01

单极性的继续,上面波形是工频臂的驱动,下面波形是高频臂的驱动

开机的第二个周期

开机后0.5秒的周期数据

开机后1秒的周期

连续多个周期的数据

HELLO-2.rar

0
回复
2013-10-28 18:09
@wangshujun
单极性的继续,上面波形是工频臂的驱动,下面波形是高频臂的驱动[图片]开机的第二个周期[图片]开机后0.5秒的周期数据[图片]开机后1秒的周期[图片]连续多个周期的数据HELLO-2.rar

因为差不多10年没有用过51了,所以很多东西都不熟悉了,这些东西从安装c51的软件,到查芯片手册,知道仿真成功大约用了8-9个小时吧,按照当前程序的框架实现稳压和保护功能都会很便利,做这个开源的目的是说明spwm真的是很简单的事情。

这个里面用到了增强型51的pca模块,当年2004年前后具有这个模块的都属于高端芯片的,现在路边的垃圾片都有这个功能了,stc的3块以上的单片机,甚至c8051超过4块钱的51单片机都是支持的.

但是还是要说一下用51来做这个真的很没有性价比,无法有效的做出死区和互补输出,仅仅外加这些东西就失去了性价比,即使单片机白送也不划算。

eg8010其实也是一个8051内核的,它内部的定时器就能实现死区等设置的输出,这也是eg8010能实现较多功能的重要原因,如果不借助中断模式,输出了spwm已经占据了单片机所有的资源,其他功能几乎都很难加上的

其实现在32为的m0,新塘的最低起价大约是不到3快,能实现的功能会很强大的

0
回复
2013-10-28 18:12

编程和调试用的keil 9.51版

注意解压的目录别带着中文,否则有可能导致keil运行缓慢

0
回复
LSHNIU
LV.6
5
2013-10-28 19:41
@wangshujun
编程和调试用的keil9.51版注意解压的目录别带着中文,否则有可能导致keil运行缓慢
A51 MACRO ASSEMBLER V8.02b - SN: K1FMC-SSDYNC
COPYRIGHT KEIL ELEKTRONIK GmbH 1987 - 2008"C:\Keil\C51\BIN\A51.EXE" "..\..\LIB\STARTUP.A51" SET (COMPACT) DEBUG PRINT(.\STARTUP.lst) OBJECT(.\STARTUP.obj) EPA51 FATAL ERROR -
  FILE:       ..\..\LIB\STARTUP.A51
  ERROR:      FILE DOES NOT EXIST
A51 TERMINATED.
Target not created 编译不了,但是学习了!感谢大师的倾情奉献!
0
回复
2013-10-28 21:13
@LSHNIU
A51MACROASSEMBLERV8.02b-SN:K1FMC-SSDYNCCOPYRIGHTKEILELEKTRONIKGmbH1987-2008"C:\Keil\C51\BIN\A51.EXE""..\..\LIB\STARTUP.A51"SET(COMPACT)DEBUGPRINT(.\STARTUP.lst)OBJECT(.\STARTUP.obj)EPA51FATALERROR- FILE:      ..\..\LIB\STARTUP.A51 ERROR:     FILEDOESNOTEXISTA51TERMINATED.Targetnotcreated编译不了,但是学习了!感谢大师的倾情奉献![图片]

我用的keil是9.51版本的,如果不是很熟悉建议用同样的版本

网上很好找,应该需要破解才行

0
回复
2013-10-28 21:16
@LSHNIU
A51MACROASSEMBLERV8.02b-SN:K1FMC-SSDYNCCOPYRIGHTKEILELEKTRONIKGmbH1987-2008"C:\Keil\C51\BIN\A51.EXE""..\..\LIB\STARTUP.A51"SET(COMPACT)DEBUGPRINT(.\STARTUP.lst)OBJECT(.\STARTUP.obj)EPA51FATALERROR- FILE:      ..\..\LIB\STARTUP.A51 ERROR:     FILEDOESNOTEXISTA51TERMINATED.Targetnotcreated编译不了,但是学习了!感谢大师的倾情奉献![图片]

这个提示是startup.a51文件没有找到,这个文件没有改动,就是keil自带的,不同版本可能存放位置不同,可以在keil的安装目录下找到对应文件,然后复制到工程目录中就行了,手头没有8.02版本,没法测试

大概思路就是这样了

0
回复
IGBT2010
LV.8
8
2013-10-28 21:25
@wangshujun
单极性的继续,上面波形是工频臂的驱动,下面波形是高频臂的驱动[图片]开机的第二个周期[图片]开机后0.5秒的周期数据[图片]开机后1秒的周期[图片]连续多个周期的数据HELLO-2.rar
学习!!
0
回复
LSHNIU
LV.6
9
2013-10-28 21:31
@wangshujun
这个提示是startup.a51文件没有找到,这个文件没有改动,就是keil自带的,不同版本可能存放位置不同,可以在keil的安装目录下找到对应文件,然后复制到工程目录中就行了,手头没有8.02版本,没法测试大概思路就是这样了
我的KEIL4把C51V952和MDK472都合并了的。谢谢楼主的提示!感谢楼主的热情帮助!
0
回复
LSHNIU
LV.6
10
2013-10-28 22:18
@LSHNIU
我的KEIL4把C51V952和MDK472都合并了的。谢谢楼主的提示!感谢楼主的热情帮助![图片]
工程Source Group 1添加启动文件夹start 包含startuP.a51就可以了!Rebuild target 'Simulator'
compiling HELLO.C...
assembling STARTUP.A51...
linking...
Program Size: data=17.0 xdata=132 code=494
creating hex file from "HELLO"...
"HELLO" - 0 Error(s), 0 Warning(s).,,再次感谢楼主!
0
回复
a2580782
LV.3
11
2013-10-28 22:43
来学习了...感谢感谢.......我还以为你能用普通51不用PCA模块呢.......害我空欢喜一场.唉..........不过我还是要好好学了.还是感谢
0
回复
a2580782
LV.3
12
2013-10-28 22:44
@wangshujun
单极性的继续,上面波形是工频臂的驱动,下面波形是高频臂的驱动[图片]开机的第二个周期[图片]开机后0.5秒的周期数据[图片]开机后1秒的周期[图片]连续多个周期的数据HELLO-2.rar
连夜拜读
0
回复
wangshujun
LV.8
13
2013-10-28 23:54
@a2580782
来学习了...感谢感谢.......我还以为你能用普通51不用PCA模块呢.......害我空欢喜一场.唉..........不过我还是要好好学了.还是感谢

现在带有pca模块的51是相当的普及的,stc的都有大把


0
回复
2013-10-30 13:46
@wangshujun
现在带有pca模块的51是相当的普及的,stc的都有大把
0
回复
LSHNIU
LV.6
15
2013-11-01 21:20
@漩涡浩子
[图片]
这么好的学习资料怎么就这样沉底了啊?大家要顶起来让更多人走向数字化电源发展啊!
0
回复
2016-03-20 20:04
太感谢了,大师
0
回复