搜索
bottom↓
回复: 17

51pwm程序

[复制链接]

出0入0汤圆

发表于 2011-7-14 22:48:25 | 显示全部楼层 |阅读模式
源程序ourdev_657932IIR7IF.zip(文件大小:9K) (原文件名:stc_pwm_exa.zip)

出0入0汤圆

发表于 2011-7-20 14:21:31 | 显示全部楼层
回复【楼主位】999933
-----------------------------------------------------------------------
学习中

出0入0汤圆

发表于 2012-2-25 12:46:14 | 显示全部楼层
先拿着。

出0入0汤圆

发表于 2012-8-11 15:21:41 | 显示全部楼层
学习学习呵呵呵

出0入0汤圆

发表于 2012-8-11 19:57:04 | 显示全部楼层
有汇编的吗?

出0入0汤圆

发表于 2012-8-11 20:23:17 来自手机 | 显示全部楼层
学习下,你做到多频率,两头百分比多少

出0入0汤圆

发表于 2013-6-15 22:45:47 | 显示全部楼层
学习中!!!!

出0入0汤圆

发表于 2013-6-16 19:10:17 | 显示全部楼层
下下来看了一下,好像是那个工程师文章里面的吧,也学习了

出0入0汤圆

发表于 2013-8-18 08:36:26 | 显示全部楼层
收了,多谢LZ

出0入85汤圆

发表于 2013-8-18 09:05:23 | 显示全部楼层
硬件PWM?多少位的?

出0入0汤圆

发表于 2014-4-16 08:56:39 | 显示全部楼层
拿走看看,

出0入0汤圆

发表于 2014-4-16 13:44:55 | 显示全部楼层
调试PWM中P1没看到变化的?

出0入0汤圆

发表于 2014-4-22 17:01:10 | 显示全部楼层
谢谢楼主分享,进来学习学习

出0入0汤圆

发表于 2014-4-25 08:28:51 | 显示全部楼层
学习中,必须参考

出0入0汤圆

发表于 2014-4-25 09:32:34 | 显示全部楼层
本帖最后由 ypengfei 于 2014-4-25 09:34 编辑

呼吸灯吧,一点说明和注释没有?我也发我的,还有演示视频,应该大家都可以看懂。

详细可以访问www.yanpengfei.cn查看。

1、假设我们电机运行频率在100Hz,也就是1秒变化100次,那么一次变化需要1/100S = 10ms,也就是一个单独的PWM周期时间应该是10ms(即一个PWM周期由正脉冲

和负脉冲构成,正负脉冲之和为10ms),也就是需要10毫秒变化一次占空比。

2、因为PWM真空比可调区间设置为1-100,也就是需要把10ms分成100份,每份的值就是最小高电平时间,即最低的占空比。

3、10ms/100=0.1ms=100us,也就是需要单片机设置为100us中断一次,100次中断调整一个占空比。

4、我用的11.0592MHz的晶振,根据《说说51单片机设置定时器初始值的事》所说,计算0.1ms的中断初始值是11059200/12/10000=92;65536-x=92,x=65544,即0xFFA4,所以寄存器应该是ffa4的初始值
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------



  1. view plaincopy to clipboardprint?
  2. #include <reg52.h>   
  3. int time_count =0;//时间标志  
  4. sbit pwmout =P0^0;//pwm输出IO  
  5. int  pwm_count = 0;  
  6. int  pwmout_count = 0;           
  7. int direction = 0;   
  8.   
  9. void ss() interrupt 1 //0.1ms定时器  
  10. {  
  11.     TH0 = 0xff;  
  12.     TL0 = 0xa4;  
  13.     time_count ++;  
  14.     if (time_count == 100) //10毫秒,调整pwm_count  
  15.     {  
  16.         if (direction ==0)//方向(增加)  
  17.         {         
  18.             pwm_count ++;                  
  19.             if (pwm_count > 100 )//到达周期,调整增长方向  
  20.             {  
  21.                 direction = 1;  
  22.             }                                             
  23.         }                  
  24.   
  25.         if (direction == 1)//方向(减小)  
  26.         {  
  27.             pwm_count --;  
  28.             if (pwm_count == 0)  
  29.             {  
  30.                 direction = 0;  
  31.             }  
  32.         }  
  33.         time_count = 0;  
  34.         pwmout_count = pwm_count;  
  35.   
  36.     }         
  37.   
  38.     if (pwmout_count > 0)//0.1ms执行一次  
  39.     {                                    
  40.         pwmout = 1;  
  41.         pwmout_count --;  
  42.     }  
  43.     else  
  44.     {  
  45.         pwmout = 0;  
  46.     }        
  47. }  
  48.   
  49. void main()  
  50. {  
  51.     pwmout = 0;  
  52.     TMOD = 0x01;   
  53.     TH0 = 0xff;  
  54.     TL0 = 0xa4;  
  55.     ET0 = 1;//允许T0中断  
  56.     EA = 1;      //开启总中断  
  57.     TR0 = 1;   
  58.     while(1);  
  59. }
复制代码


效果截图:

出0入0汤圆

发表于 2014-8-14 17:17:28 | 显示全部楼层
mark

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-4-19 13:48

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

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