搜索
bottom↓
回复: 23

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

[复制链接]

出0入0汤圆

发表于 2012-6-13 00:47:05 | 显示全部楼层 |阅读模式
  1. 高速模拟PWM程序(C51),可达1.114KHz,8bit分辨率@24MHz标准8051

  2. #include <reg52.h>

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

  5. void main(void)
  6. {
  7. pwm_value=80;
  8. while(1)
  9.   {
  10.   pwm_count++;
  11.   if(pwm_count==pwm_value)
  12.     {
  13.     PWM=0;
  14.     }
  15.   if(pwm_count==0)
  16.     {
  17.     PWM=1;
  18.     }
  19.   }
  20. }


  21. 仅6行,编译后只有10字节的软件模拟PWM程序(ASM),42级5位半分辨率,7.8125KHz@24MHz8051
  22. ORG  0000H
  23. INIT: SETB TR0
  24. MAIN: MOV  A,#80        ;PWM值,0-255
  25.   SUBB A,TL0
  26.   MOV  P3.7,C
  27.   SJMP MAIN
  28.   END

  29. 高速模拟PWM程序(ASM),可达1.558KHz,8bit@24MHz标准8051
  30. ORG          0000H
  31. MAIN:         INC    A
  32.                   CJNE A,#10,BDY
  33.                   SETB P3.7
  34.                   SJMP MAIN
  35. BDY:          JNZ    MAIN
  36.                   CLR    P3.7
  37.                   SJMP MAIN
  38.                   END
复制代码

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

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2012-6-13 01:01:07 | 显示全部楼层
强!必须顶!!!!!!!!!!!!!!!!!!!!!

出0入0汤圆

发表于 2012-6-13 01:38:58 | 显示全部楼层
最好用定时器中断来实现,你这一开PWM,其它事都做不了了.

出0入0汤圆

发表于 2012-6-13 07:32:27 | 显示全部楼层
性能果然够高,可是一开了之后单片机只能做PWM输出了。

出0入0汤圆

发表于 2012-6-13 08:22:14 | 显示全部楼层
没神马意义。就一io翻转程序

出0入0汤圆

发表于 2012-6-13 08:29:28 | 显示全部楼层
看到标题的时候就猜到你的程序会是什么样子的了……果然,你的单片机除了PWM其他什么事都干不了。

出0入0汤圆

发表于 2012-6-13 08:36:49 | 显示全部楼层
备用参考,谢谢!

出0入0汤圆

发表于 2012-6-13 08:42:50 | 显示全部楼层
学习,再学习!!!

出0入0汤圆

发表于 2012-6-13 08:44:17 | 显示全部楼层
就算stc随便整个能PWM的片子也跑好几十K了。

出0入0汤圆

发表于 2012-6-13 12:43:08 | 显示全部楼层
感觉没啥用- -

出0入0汤圆

发表于 2012-6-13 14:00:53 | 显示全部楼层
误导初学者

出0入30汤圆

发表于 2012-6-13 14:13:41 | 显示全部楼层
...
IO翻转么?

出0入0汤圆

发表于 2012-6-13 14:57:49 | 显示全部楼层
哦,原来这样高速

出0入0汤圆

发表于 2012-6-13 15:09:23 | 显示全部楼层
原来是这样的

出0入42汤圆

发表于 2012-6-13 15:16:40 | 显示全部楼层
已经达到飞机的速度了

出0入0汤圆

发表于 2012-6-13 15:32:50 | 显示全部楼层
这有什么用?什么都不能做,就空跑PWM?调节频率、占空比都不行啊

出0入12汤圆

发表于 2012-6-13 15:38:18 | 显示全部楼层
文西,你这太阳能手电筒怎么用?

出0入0汤圆

 楼主| 发表于 2012-6-13 20:22:00 | 显示全部楼层
我可没说我的程序如何实用,我只是简单做个测试,晒一下思路而已。
如果能有更高的程序欢迎贴上来。
硬件PWM不在本帖讨论范围。随便一个UC3842都能出几百Khz的PWM。

出0入0汤圆

发表于 2012-6-14 00:25:36 | 显示全部楼层
试试吧,挺好的

出0入0汤圆

发表于 2012-6-14 08:28:51 | 显示全部楼层
换成中断写就OK了

出0入0汤圆

发表于 2012-6-14 13:12:21 | 显示全部楼层
skynet 发表于 2012-6-13 15:38
文西,你这太阳能手电筒怎么用?

有太阳就亮,没太阳就灭

出0入0汤圆

发表于 2019-10-29 20:06:30 | 显示全部楼层
谢谢楼主的分享!!

出0入0汤圆

发表于 2020-12-28 20:31:51 | 显示全部楼层
写这样的程序  有意义吗

出0入79汤圆

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

本版积分规则

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

GMT+8, 2024-4-26 22:46

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

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