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

2020-01-12 17:17发布

  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
复制代码
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
21条回答
yao1
1楼-- · 2020-01-14 23:49
换成中断写就OK了
raxb
2楼-- · 2020-01-15 01:23
skynet 发表于 2012-6-13 15:38
文西,你这太阳能手电筒怎么用?

有太阳就亮,没太阳就灭
tangly2017
3楼-- · 2020-01-15 03:57
谢谢楼主的分享!!

一周热门 更多>