標題: 51單片機的三路PWM輸出程序源碼與proteus仿真圖 [打印本頁]

作者: zxr961129    時間: 2018-6-7 09:26
標題: 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; // 占空比調(diào)整
  12. unsigned char Set_PWM1 = 5;     
  13. unsigned char Set_PWM2 = 8;
  14. unsigned char counter = 0;  // 計數(shù)的
  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. {                          // 開關(guān)調(diào)整 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. }
復(fù)制代碼

所有資料51hei提供下載:
8051三路PWM(可適用于51系列單片機).zip (53.13 KB, 下載次數(shù): 113)



作者: 422582774    時間: 2018-10-26 22:50
點個贊
作者: 仗義    時間: 2018-10-29 13:57
加油樓主萬歲,加油 哦也
作者: 快樂眼淚    時間: 2018-10-29 18:50
感謝樓主分享!
作者: 黑1235    時間: 2018-12-24 16:21
請問樓主,定時時間怎么調(diào)整。
作者: 黑1235    時間: 2018-12-24 16:31
請教大神定時時間怎么調(diào)整,發(fā)現(xiàn)與書上的不一樣。
作者: hwasun    時間: 2018-12-24 16:46

不錯的資料,謝謝分享
作者: lxs430405    時間: 2018-12-24 18:19
謝謝樓主的分享
作者: wuxishun    時間: 2019-2-22 11:17
三路可以獨立調(diào)嗎
作者: assor    時間: 2019-4-17 10:33
為什么要有標志位啊,樓主
作者: monkop    時間: 2019-4-17 11:12
謝謝樓主




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1