oufuqiang 发表于 2012-6-13 00:47:05

高性能软件PWM程序,最高可达1.558KHz,8bit@24MHz标准8051

高速模拟PWM程序(C51),可达1.114KHz,8bit分辨率@24MHz标准8051

#include <reg52.h>

sbit PWM = P3^7;
unsigned char pwm_count,pwm_value;

void main(void)
{
pwm_value=80;
while(1)
{
pwm_count++;
if(pwm_count==pwm_value)
    {
    PWM=0;
    }
if(pwm_count==0)
    {
    PWM=1;
    }
}
}


仅6行,编译后只有10字节的软件模拟PWM程序(ASM),42级5位半分辨率,7.8125KHz@24MHz8051
ORG0000H
INIT: SETB TR0
MAIN: MOVA,#80      ;PWM值,0-255
SUBB A,TL0
MOVP3.7,C
SJMP MAIN
END

高速模拟PWM程序(ASM),可达1.558KHz,8bit@24MHz标准8051
ORG          0000H
MAIN:         INC    A
                  CJNE A,#10,BDY
                  SETB P3.7
                  SJMP MAIN
BDY:          JNZ    MAIN
                  CLR    P3.7
                  SJMP MAIN
                  END

yue621 发表于 2012-6-13 01:01:07

强!必须顶!!!!!!!!!!!!!!!!!!!!!

hsztc 发表于 2012-6-13 01:38:58

最好用定时器中断来实现,你这一开PWM,其它事都做不了了.

sdf159372008 发表于 2012-6-13 07:32:27

性能果然够高,可是一开了之后单片机只能做PWM输出了。

jetli 发表于 2012-6-13 08:22:14

没神马意义。就一io翻转程序{:titter:}

XA144F 发表于 2012-6-13 08:29:28

看到标题的时候就猜到你的程序会是什么样子的了……果然,你的单片机除了PWM其他什么事都干不了。

cjr82123 发表于 2012-6-13 08:36:49

备用参考,谢谢!

dory_m 发表于 2012-6-13 08:42:50

学习,再学习!!!{:smile:}

ncigray 发表于 2012-6-13 08:44:17

就算stc随便整个能PWM的片子也跑好几十K了。

dashashi 发表于 2012-6-13 12:43:08

感觉没啥用- -

learner123 发表于 2012-6-13 14:00:53

误导初学者

lovelywwei 发表于 2012-6-13 14:13:41

...{:sweat:}
IO翻转么?

Bicycle 发表于 2012-6-13 14:57:49

哦,原来这样高速

mcujack 发表于 2012-6-13 15:09:23

原来是这样的

huwuzhao 发表于 2012-6-13 15:16:40

已经达到飞机的速度了{:funk:}{:funk:}{:funk:}

6K6K 发表于 2012-6-13 15:32:50

这有什么用?什么都不能做,就空跑PWM?调节频率、占空比都不行啊

skynet 发表于 2012-6-13 15:38:18

文西,你这太阳能手电筒怎么用?{:lol:}

oufuqiang 发表于 2012-6-13 20:22:00

我可没说我的程序如何实用,我只是简单做个测试,晒一下思路而已。
如果能有更高的程序欢迎贴上来。
硬件PWM不在本帖讨论范围。随便一个UC3842都能出几百Khz的PWM。

dongjiren2012 发表于 2012-6-14 00:25:36

试试吧,挺好的

yao1 发表于 2012-6-14 08:28:51

换成中断写就OK了

raxb 发表于 2012-6-14 13:12:21

skynet 发表于 2012-6-13 15:38 static/image/common/back.gif
文西,你这太阳能手电筒怎么用?

有太阳就亮,没太阳就灭{:lol:} {:lol:} {:lol:} {:lol:} {:lol:}

tangly2017 发表于 2019-10-29 20:06:30

谢谢楼主的分享!!

lvxinchao-206 发表于 2020-12-28 20:31:51

写这样的程序有意义吗

motor_control 发表于 2020-12-29 12:32:19

还是乖乖用硬件的吧!没有太大必要。
页: [1]
查看完整版本: 高性能软件PWM程序,最高可达1.558KHz,8bit@24MHz标准8051