搜索
bottom↓
回复: 46

本人新做的一个PROTEUS三路PWM输出的仿真例子

[复制链接]

出0入0汤圆

发表于 2005-9-17 20:17:21 | 显示全部楼层 |阅读模式
本人最近要用到SPWM方面的东西,因此就先做了一个用MEGA8单片机输出三路PWM波形的例子,

希望对那些不太懂PWM知识的朋友一些小小的帮助,本例是通过PROTEUS软件仿真通过的,详情请看: MEGA8单片机的三路PWM输出仿真

以下是仿真时的波形:


1
2
3

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2005-9-17 20:32:35 | 显示全部楼层
你这个软件不错

出0入0汤圆

发表于 2005-9-17 21:00:46 | 显示全部楼层
好看...

出0入0汤圆

 楼主| 发表于 2005-9-17 23:03:55 | 显示全部楼层
呵呵,本人一直用这个软件来仿真程序,感觉非常不错,希望大家也喜欢,软件在本站有,有兴趣找找看!

出0入0汤圆

发表于 2005-9-19 19:46:05 | 显示全部楼层

出0入0汤圆

发表于 2005-9-20 09:09:52 | 显示全部楼层
怎么不能下载了呢???

出0入0汤圆

发表于 2005-9-20 09:21:29 | 显示全部楼层
我也去下一个

出0入0汤圆

发表于 2005-9-20 12:24:27 | 显示全部楼层
请问楼主用的是什么软件?我用的PROTEUS 6.7 SP3 安装成功了,模拟器件和C51系列可以仿真及存盘,AVR系列却不行,不是提示没有该器件的模型就是程序停止响应。

出0入0汤圆

 楼主| 发表于 2005-9-20 21:27:40 | 显示全部楼层
这个PROTEUS 6.7 SP3应该可以的呀,我用的是PROTEUS 6.3 SP1都可以的!还有本网站好像有PROTEUS 6.5 SP5版,你可以试试!

出0入0汤圆

发表于 2005-9-30 21:10:46 | 显示全部楼层
Design:   E:\mega8_spwm\mega8_spwm.DSN

Doc. no.: <NONE>

Revision: <NONE>

Author:   <NONE>

Created:  05/09/14

Modified: 05/09/15



Compiling source files...

Build completed OK.

Compiling netlist...

Linking netlist...

Partition analysis...



Simulating partition 1 [FD261785]...

Animation started sucessfully...

PROSPICE Release 6.7 SP0 (C) Labcenter Electronics 1993-2005.

SPICE Kernel Version 3f5. (C) Berkeley University ERL.



Reading netlist...

Reading SPICE models...

Loading library 'ANALOGD.SML'

Loading library 'APEX.SML'

Loading library 'BURRBROWN.SML'

Loading library 'ELANTEC.SML'

Loading library 'FAIRCHLD.SML'

Loading library 'INTERSIL.SML'

Loading library 'LINTEC.SML'

Loading library 'NATOA.SML'

Loading library 'SUPERTEX.SML'

Loading library 'TECCOR.SML'

Loading library 'TEX101.SML'

Loading library 'TEX301.SML'

Loading library 'TEX3_1.SML'

Loading library 'TEX401.SML'

Loading library 'TEX5_1.SML'

Loading library 'VALVES.SML'

Loading library 'ZETEX.SML'

Building circuit...

Added GEARTH resistor for net #00023.

Added GEARTH resistor for net #00024.

Added GEARTH resistor for net #00027.

Instantiating SPICE models...

[U1] AVR model release 6.7 SP0.

[U1] Loaded 512 bytes of persistent EEPROM data.

[U1] Loading HEX file 'mega8_spwm.hex'.

[U1] Read total of 324 bytes from file 'mega8_spwm.hex'.

[SPICE] Error 106 - TRAN:  Timestep too small; time = 2.64918, timestep = -8.88178e-016: trouble with node "#00001"

.

Real Time Simulation FAILED.





为什么???

出0入0汤圆

发表于 2005-10-3 08:41:08 | 显示全部楼层
我觉得本站PROTEUS 6.5版本的破解很好,很稳定.

出0入0汤圆

发表于 2006-2-18 21:23:18 | 显示全部楼层
能做到50K HZ吗???频率太低了,没什么好用的

出0入0汤圆

发表于 2006-3-5 11:08:31 | 显示全部楼层
请问PWM能不能用来控制LED啊,让他渐渐亮渐渐灭啊?请老大赐教啊?谢谢了啊

出0入0汤圆

发表于 2006-3-6 15:57:52 | 显示全部楼层
WANGMING

能的!

出0入0汤圆

发表于 2006-3-6 15:57:53 | 显示全部楼层
WANGMING

能的!

出0入0汤圆

发表于 2006-3-6 15:57:53 | 显示全部楼层
WANGMING

能的!QQ195606148

出0入0汤圆

发表于 2006-3-6 15:57:58 | 显示全部楼层
WANGMING

能的!QQ195606148

出0入0汤圆

发表于 2006-3-13 16:21:36 | 显示全部楼层
回12楼

可以的  

最简单的就是将LED直接接在PWM信号上   

下面是我刚刚做的一个

你做的时候你可以让频率自动改变的



//ICC-AVR application builder : 2006-3-7 13:20:09

// Target : M16

// Crystal: 8.0000Mhz

/*PD5做16位PWM相位修正输出  PAO按一次频率向上加10000  加至最大0xffff

                            PA0按一次频率向下减10000  减至最下0*/

#include <iom16v.h>

#include <macros.h>

void delay_us(unsigned int time)      //微秒级延时程序

  {     

    do

          {

            time--;

            //WDR();

          }       

    while (time>1);

  }          

void delay_ms(unsigned int time)      //毫秒级延时程序

  {

    while(time!=0)

          {               

            delay_us(1000);

            time--;

          }

    //WDR();

  }

void port_init(void)

{

PORTA = 0x00;

DDRA  = 0x00;

PORTB = 0x00;

DDRB  = 0x00;

PORTC = 0x00; //m103 output only

DDRC  = 0x00;

PORTD = 0x00;

DDRD  = 0xff;

}



//call this routine to initialize all peripherals

void init_devices(void)

{

//stop errant interrupts until set up

CLI(); //disable all interrupts

port_init();

MCUCR = 0x00;

GICR  = 0x00;

TIMSK = 0x00; //timer interrupt sources

SEI(); //re-enable interrupts

//all peripherals are now initialized

}

void pwmout (signed long date)

{

CLI();

TCCR1A=0Xa3;

TCCR1B=0X02;

OCR1A=date;

//delay_ms(10);

SEI();

}



void main (void)

{

signed long sentdate;

char flag, oldp, newp;

oldp=newp=0x01;

flag=1;

sentdate=0;

init_devices();

//delay_ms(10);

  do

  {

  oldp=PINA;

  if (!(oldp & newp))

  //if (PINA&0x01==0)

     delay_ms(20);

         if (!(oldp & newp))

            {

               

                if (flag)

                  {

                  sentdate=sentdate+10000;

                   if (sentdate>=0xffff)

                      {

                          sentdate=0xffff;

                          pwmout(sentdate);

                          flag=0;

                     }

                         else

                         {

                         pwmout(sentdate);

                         }

          

                 }

                else

                {

                   sentdate=sentdate-10000;

                    if (sentdate<=0)

                       {

                           sentdate=0;

                           pwmout(sentdate);

                           flag=1;

                       }

                           else

                           {

                            pwmout(sentdate);

                           }

                }

               

                }

  }

while(1);

}

出330入0汤圆

发表于 2006-3-22 13:33:44 | 显示全部楼层
恩,好东西,顶一下.

出0入0汤圆

发表于 2006-6-22 10:43:58 | 显示全部楼层
如何将写好的程序在proteus中仿真,还望各位仁兄赐教!

出0入0汤圆

发表于 2006-6-22 10:47:41 | 显示全部楼层
以前听说过这个仿真软件,只是一直未用过。所有写好的程序都是写到mcu中来检验程序的对错。今天看到这个软件随决定改变一下调试的方法,望各位仁兄指点一二!

出0入0汤圆

 楼主| 发表于 2006-6-26 22:47:38 | 显示全部楼层
楼上的兄弟,写好程序后,编译生成hex文件,然后打开proteus,调入画好的电路图,在mcu上面单击鼠标右健选中,然后单击左健,弹出属性对话框,导入生成的hex文件,确定后就可以仿真了!
-----此内容被peterf于2006-06-26,22:48:07编辑过

出0入0汤圆

发表于 2006-7-3 23:10:20 | 显示全部楼层

出0入0汤圆

发表于 2006-8-12 10:37:13 | 显示全部楼层
现在怎么不能下载了

出0入0汤圆

发表于 2006-8-16 15:59:48 | 显示全部楼层
不能下载,可惜

出0入0汤圆

发表于 2006-9-13 20:15:57 | 显示全部楼层
不能下載啊
头像被屏蔽

出0入0汤圆

发表于 2008-3-19 12:25:58 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽

出0入0汤圆

发表于 2008-3-19 12:27:55 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2008-10-19 16:29:47 | 显示全部楼层
点击此处下载&nbsp;ourdev_460753.rar(文件大小:705K)&nbsp;(原文件名:PROTEUS三路PWM输出的仿真例子.rar)&nbsp;

出0入18汤圆

发表于 2008-11-13 17:22:57 | 显示全部楼层
我也来研究研究!

出0入8汤圆

发表于 2008-11-17 16:23:55 | 显示全部楼层
非常感谢。

出0入0汤圆

发表于 2008-12-5 11:14:00 | 显示全部楼层
来看看,看好用不

出0入0汤圆

发表于 2008-12-16 09:40:27 | 显示全部楼层
哇。。好老的贴子!!

现在还有人在顶!!!

我也顶个。我现在在搞DMX512信号控PWM输出!做灯饰应用的!

呵呵也是熟悉DMX不久,练练手看看!!!

出0入0汤圆

发表于 2008-12-18 22:20:00 | 显示全部楼层
很好。我正在研究这东西。弄下来好好参考一下。

出0入0汤圆

发表于 2008-12-21 01:19:30 | 显示全部楼层
我也来研究研究!谢谢分享

出0入0汤圆

发表于 2009-5-18 19:31:04 | 显示全部楼层
太好了。。

出0入0汤圆

发表于 2010-1-8 19:22:20 | 显示全部楼层
顶一个!

出0入0汤圆

发表于 2010-7-30 14:52:41 | 显示全部楼层
看下。

出0入0汤圆

发表于 2010-8-11 15:33:49 | 显示全部楼层
好帖子,谢谢

出0入0汤圆

发表于 2010-11-1 17:28:34 | 显示全部楼层
----------------------------------------------
█〓██▄▄▄▄▄▄ ●●●  
▄▅██████▅▄▃▂  
██████████████  
◥⊙▲⊙▲⊙▲⊙▲⊙▲⊙▲◤

出0入0汤圆

发表于 2010-11-2 20:27:19 | 显示全部楼层
好贴!

出0入0汤圆

发表于 2011-6-12 11:48:49 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-6-21 17:21:18 | 显示全部楼层
MARK记得先,到时需要用到,谢谢各位分享!

出0入0汤圆

发表于 2012-9-16 09:29:46 | 显示全部楼层
顶一个,好帖子!谢谢分享!

出0入0汤圆

发表于 2012-9-16 09:42:33 | 显示全部楼层
老帖新顶,呵呵。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-10 18:56

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表