找回密码
 立即注册

QQ登录

只需一步,快速开始

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

51单片机的三路PWM输出程序源码与proteus仿真图

  [复制链接]
跳转到指定楼层
楼主
附件里包括proteus仿真,c源码,hex文件等
单片机三路PWM输出仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机三路PWM输出源程序如下:
  1. #include<reg51.h>   //
  2. sbit P1_0 = P1^0;   // 三路PWM输出
  3. sbit P1_1 = P1^1;
  4. sbit P1_2 = P1^2;
  5. sbit key10 = P3^2;
  6. sbit key11 = P3^3;
  7. sbit key20 = P3^4;
  8. sbit key21 = P3^5;
  9. sbit key30 = P3^7;
  10. sbit key31 = P3^1;
  11. unsigned char Set_PWM0 = 2; // 占空比调整
  12. unsigned char Set_PWM1 = 5;     
  13. unsigned char Set_PWM2 = 8;
  14. unsigned char counter = 0;  // 计数的
  15. bit bdata tt1,tt2,tt3;      // 标志位
  16. void main()
  17. {
  18. TMOD=0x01;
  19. TH0=(65536-2000)/256;      // 定时时间  可以修改
  20. TL0=(65536-2000)%256;
  21. EA=1;
  22. ET0=1;
  23. TR0=1;
  24. while(1)
  25. {                          // 开关调整 PWM  占空比
  26. if(key10==0 && tt1==0) {tt1 = 1; Set_PWM0++;} // K1、K2
  27. if(key11==0 && tt1==0) {tt1 = 1; Set_PWM0--;}
  28. if(key10==1 && key11==1) tt1=0;
  29. if(key20==0 && tt2==0) {tt2 = 1; Set_PWM1++;} // K3、K4
  30. if(key21==0 && tt2==0) {tt2 = 1; Set_PWM1--;}
  31. if(key20==1 && key21==1) tt2=0;
  32. if(key30==0 && tt3==0) {tt3 = 1; Set_PWM2++;} // K5、K6
  33. if(key31==0 && tt3==0) {tt3 = 1; Set_PWM2--;}
  34. if(key30==1 && key31==1) tt3=0;
  35. }
  36. }
  37. void Timer0(void) interrupt 1 // 定时器0   PWM 控制
  38. {                           
  39.   TH0=(65536-2000)/256;       // 定时时间  可以修改
  40.   TL0=(65536-2000)%256;
  41.   counter++;
  42.   if(counter >= 16) counter = 0;   // PWM  16级  可以修改
  43.   if(counter >= Set_PWM0) P1_0 = 0; else P1_0 = 1;
  44.   if(counter >= Set_PWM1) P1_1 = 0; else P1_1 = 1;
  45.   if(counter >= Set_PWM2) P1_2 = 0; else P1_2 = 1;
  46. }
复制代码

所有资料51hei提供下载:
8051三路PWM(可适用于51系列单片机).zip (53.13 KB, 下载次数: 113)


评分

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

查看全部评分

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

使用道具 举报

沙发
ID:92867 发表于 2018-10-26 22:50 | 只看该作者
点个赞
回复

使用道具 举报

板凳
ID:417062 发表于 2018-10-29 13:57 | 只看该作者
加油楼主万岁,加油 哦也
回复

使用道具 举报

地板
ID:399179 发表于 2018-10-29 18:50 来自手机 | 只看该作者
感谢楼主分享!
回复

使用道具 举报

5#
ID:419215 发表于 2018-12-24 16:21 来自手机 | 只看该作者
请问楼主,定时时间怎么调整。
回复

使用道具 举报

6#
ID:419215 发表于 2018-12-24 16:31 来自手机 | 只看该作者
请教大神定时时间怎么调整,发现与书上的不一样。
回复

使用道具 举报

7#
ID:280272 发表于 2018-12-24 16:46 | 只看该作者

不错的资料,谢谢分享
回复

使用道具 举报

8#
ID:453624 发表于 2018-12-24 18:19 | 只看该作者
谢谢楼主的分享
回复

使用道具 举报

9#
ID:243748 发表于 2019-2-22 11:17 来自手机 | 只看该作者
三路可以独立调吗
回复

使用道具 举报

10#
ID:468240 发表于 2019-4-17 10:33 | 只看该作者
为什么要有标志位啊,楼主
回复

使用道具 举报

11#
ID:513536 发表于 2019-4-17 11:12 来自手机 | 只看该作者
谢谢楼主
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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