找回密码
 立即注册

QQ登录

只需一步,快速开始

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

51单片机pwm调制程序与Proteus仿真图 适合初学者

[复制链接]
跳转到指定楼层
楼主
来51黑电子论坛很久了,在众多大佬大牛的资料分享下我学习到了很多,我目前也是一个初学者,最近搞懂了以前很久没搞懂的pwm脉冲调制,个人觉得我这应该是最通俗易懂的,程序通过仿真和示波器测试,下面分享一下自己的源代码,如果有哪里不是很好希望有大佬提出

下面是单片机代码   
  1. #include <REGX51.H>
  2. unsigned int condition=10;//这里高电平占一份
  3. unsigned int cnt;
  4. sbit pin=P2^0;
  5. sbit led=P1^0;
  6. sbit key=P3^0;
  7. void button();
  8. void delay(unsigned int t)
  9. {
  10. while(t--);
  11. }

  12. void main()
  13. {
  14.     TMOD=0x01;
  15.     TL0 = 0x38;                //设置定时初值
  16.         TH0 = 0xFF;
  17.         EA=1;
  18.         ET0=1;               
  19.         TR0 = 1;
  20.                 while(1)
  21.                 {
  22.                      if(cnt>=100)//整个周期100
  23.     {
  24.         cnt=0;
  25.     }
  26.     if(cnt<condition)              
  27.     {
  28.     pin=1;
  29.     }
  30.     else
  31.     {
  32.     pin=0;
  33.     }  button();
  34.   }
  35. }
  36. void Isr01() interrupt 1
  37. {

  38.         TL0 = 0x38;                //设置定时初值
  39.         TH0 = 0xFF;
  40.         cnt++;
  41. }

  42. void button()           //按下开关改变上升沿的时间
  43. {
  44. if(key!=1)
  45. {
  46.   delay(50);
  47.   if(key!=1)
  48.   {
  49.    condition=condition+10;
  50.    led=!led;
  51.    if(condition==100)
  52.    {
  53.             condition=0;
  54.    }
  55.    while(!key);
  56.   }
  57. }
  58. }
复制代码



附件在2楼下载

评分

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

查看全部评分

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

使用道具 举报

沙发
ID:876099 发表于 2021-7-31 10:33 | 只看该作者
51黑电子论坛pwm波调制.zip (48.6 KB, 下载次数: 37)
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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