标题: pwm按键调节led亮度仿真+单片机源代码 [打印本页]

作者: ck987418869    时间: 2017-12-12 15:05
标题: pwm按键调节led亮度仿真+单片机源代码
pwm按键调节led亮度仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)

单片机源程序如下:
  1. #include <reg51.h>

  2. typedef unsigned char uint8;
  3. typedef unsigned int  uint16;

  4. sbit down = P3^0;
  5. sbit up = P3^1;

  6. uint8 t = 0;
  7. uint8 PWM_T = 0;   //占空比控制变

  8. void delay_1ms(uint16 t)
  9. {
  10.         uint16 x,y;
  11.         for(x=t;x>0;x--)
  12.                 for(y=120;y>0;y--);
  13. }


  14.          
  15. /****************************************************
  16.                   主程序
  17. ****************************************************/
  18. void main(void)      
  19. {

  20.         TMOD = 0x02;   //定时器0,工作模式2,8位定时模式
  21.         TH0=210;     //写入预置初值(取值1-255,数越大PWM频率越高)
  22.         TL0=210;     //写入预置值 (取值1-255,数越大PWM频率越高)
  23.         TR0=1;       //启动定时器
  24.         ET0=1;       //允许定时器0中断
  25.         EA=1;        //允许总中断
  26.         P2=0xff;          //初始化P1,输出端口
  27.         PWM_T=30;
  28.          while(1)      
  29.        
  30.          {   
  31.                    if(!up)
  32.                          {
  33.                                 if(PWM_T<250)
  34.                                         {
  35.                                           PWM_T++;
  36.                                         }
  37.                                
  38.                                 delay_1ms(10);
  39.                         }
  40.                  if(!down)
  41.                          {
  42.                                 if(PWM_T>0)
  43.                                         {
  44.                                           PWM_T--;
  45.                                         }
  46.                                
  47.                                 delay_1ms(10);
  48.                         }

  49.        
  50.          }      
  51. }
  52. /****************************************************
  53.                /定时器0中断模拟PWM
  54. ****************************************************/
  55. timer0() interrupt 1  
  56. {
  57.          t++;    //每次定时器溢出加1
  58.          
  59.          if(t==250)   //PWM周期 100个单位
  60. ……………………

  61. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
-pwm调光.zip (56.56 KB, 下载次数: 219)



作者: 饮冰人    时间: 2017-12-20 19:42
好东西  学习学习
作者: 奇偶611    时间: 2018-1-29 09:30
要是加个数码管显示怎么加啊
作者: radio0326    时间: 2018-4-12 16:21
先看看
作者: 112653354    时间: 2018-6-20 17:53
哈可以吧
作者: saler8888    时间: 2018-6-21 09:58
效果不错
作者: zzghrh    时间: 2018-6-21 15:31
缺少按键程序
作者: zzghrh    时间: 2018-6-21 15:42
按键程序没有,这样子叫我们怎么仿真?浪费墨币
作者: 247015164    时间: 2019-8-20 21:03
学习下
作者: 125844584    时间: 2020-3-31 14:13
奇偶611 发表于 2018-1-29 09:30
要是加个数码管显示怎么加啊

我也想加一个数码管,你最后做出来了吗
作者: 125844584    时间: 2020-3-31 14:19
设计很完美 棒
作者: hbcqd    时间: 2020-3-31 15:44
设计很好,谢谢分享!
作者: 125844584    时间: 2020-4-4 14:50
125844584 发表于 2020-3-31 14:13
我也想加一个数码管,你最后做出来了吗

你当时那个设计出来了吗




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1