找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6479|回复: 2
打印 上一主题 下一主题
收起左侧

51单片机PWM(脉冲宽度调制程序)

[复制链接]
跳转到指定楼层
楼主
ID:282423 发表于 2018-2-6 13:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序如下:
  1. #include<reg52.h>     //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

  2. sbit LED1 = P2^0;      //定义LED灯,通过LED显示调光效果

  3. unsigned char CYCLE;  //定义周期 该数字X基准定时时间 如果是10 则周期是10 x 0.1ms
  4. unsigned char PWM_ON ;//定义高电平时间

  5. //延时函数                        
  6. void delay(unsigned int cnt)
  7. {
  8.   while(--cnt);
  9. }


  10. void main()
  11. {
  12. bit Flag;
  13. TMOD |=0x01;              //定时器设置 0.1ms in 12M crystal
  14. TH0=(65536-100)/256;
  15. TL0=(65536-100)%256;      //定时0.1mS
  16. IE= 0x82;                 //打开中断
  17. TR0=1;
  18. CYCLE = 10;               // 时间可以调整 这个是10调整 8位PWM就是256步
  19. while(!Flag)
  20.   {
  21.    delay(2000);           //延时时间,从一个亮度到下一个亮度的间隔时间,速度快就能看到连续效果
  22.    PWM_ON++;               //这个使用较长延时,以便能看清楚变化过程
  23.    if(PWM_ON == CYCLE)
  24.     {                      //这个里可以添加其他程序 如到最亮时候控制设备
  25.       Flag=1;
  26.     }
  27.   }
  28. while(Flag)               //亮度递减 同上,是个相反的过程
  29.   {
  30.    delay(2000);           //延迟时间为20000*0.4=8000us
  31.    PWM_ON--;
  32.    if(PWM_ON == 0)
  33.     {
  34.       Flag=0;
  35.     }
  36.   }
  37. }

  38. //定时器中断函数
  39. void tim(void) interrupt 1 using 1
  40. {
  41. static unsigned char count;
  42. TH0=(65536-100)/256;
  43. TL0=(65536-100)%256;     //定时0.1mS
  44.    /* if (count==PWM_ON)
  45.   {
  46.      LED1 = 1;            //灯亮

  47.   }
  48. */

  49.     count++;
  50.     if(count == CYCLE)
  51.   {
  52.     count=0;
  53.     if(PWM_ON!=0)        //如果开启时间是0 保持原来状态
  54.     {
  55.        LED1 = 0;         //灯暗

  56.     }
  57.   }
  58. }
复制代码

全部资料51hei下载地址:
pwm.zip (990 Bytes, 下载次数: 55)



评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:88606 发表于 2018-2-6 18:36 | 只看该作者
论坛有你更精彩
回复

使用道具 举报

板凳
ID:74784 发表于 2018-2-6 21:23 | 只看该作者
需要一个汇编的pwm
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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