标题: 按键PWM控制led亮度单片机源程序 [打印本页]

作者: 962271163    时间: 2018-4-30 17:19
标题: 按键PWM控制led亮度单片机源程序
单片机源程序如下:
  1. //程序名:单片机实验仪配套程序--pwm控制led亮度
  2. //电路简介:1、P0接J1的led共阳端;
  3. //          2、P2.6接J14单键键盘的6,作为增加亮度按钮
  4. //          3、P2.7接J14单键键盘的7,作为减小亮度按钮
  5. //saxmcu  20080518  

  6. #include <reg51.h>

  7. #define out P0
  8. sbit INC=P2^6;     //SW1
  9. sbit DEC=P2^7;     //sw2
  10. //-----------------------------------------------------------------
  11. void Init(void)
  12. {        
  13.         //定时器设置
  14.         TMOD=0x22;  //T1=T0=定时方式2自动重装
  15.         TH1=0;     //脉宽宽度
  16.         TL1=80;
  17.         TH0=55;      //频率调节=0频率最低
  18.         TL0=0;   
  19.       TR0=1;        //先启动T0定时
  20.         ET1=1;
  21.         ET0=1;   
  22.         EA=1;       //总中断开
  23. }
  24. //定时器0中断
  25. //频率********************************************
  26. void Timer0(void) interrupt 1
  27. {
  28.         out=0xff;      //关led
  29.         TL0=0;
  30.         TR1=1;         //打开脉宽定时
  31. }
  32. //定时器1中断
  33. //脉宽********************************************
  34. void Timer1(void) interrupt 3
  35. {
  36.         out=~out;      //开led
  37.         TR1=0;         //脉宽调节结束
  38. }   
  39. //消抖延时
  40. delay()
  41. {
  42.   unsigned int i;
  43.   for(i=0;i<2000;i++);
  44. }
  45. //**********************************
  46. main()
  47. {
  48.     Init();
  49.     while(1)
  50.      {
  51.        INC=1;DEC=1;
  52.        if (INC==0)
  53.           {delay();
  54.            if (INC==0)  
  55.                {
  56.                 if (TH1<200) TH1++;
  57.                }
  58.           }
  59.        else if (DEC==0)
  60.           {delay();
  61.            if (DEC==0)  
  62.                {
  63.                 if (TH1>0) TH1--;
  64.                }
  65.           }
  66.      }
  67.    
  68. }
复制代码

所有资料51hei提供下载:
按键PWM控制led亮度-c.rar (15.43 KB, 下载次数: 212)



作者: lin07555    时间: 2018-8-10 14:34
很好,正好要用到,学习学习
作者: lychee12345    时间: 2019-1-13 22:35
有帮助!谢谢辣~
作者: 耀天鸿    时间: 2019-1-19 13:50
非常实用的资料多谢楼主
作者: xixdpj-2    时间: 2019-3-20 21:37
老师你好请教一下,我用了这个程序为什么LED不能全灭呢

作者: jwl595    时间: 2019-3-21 08:30
这个例程很简单的 ,也可以控制延时函数的时间进行PWM的占空比变化 如果去用单片机做一个遥控车你就会更深刻明白占空比了
作者: xixdpj-2    时间: 2019-3-21 21:11
看来是要好好学习,很简单的也变通不了,加油
作者: 黑骑士1996    时间: 2019-4-14 21:09
请问有没有仿真图
作者: woxihuanni    时间: 2019-5-1 17:44
我为什么看不了资料
作者: zbyes    时间: 2019-5-17 15:35
借来看看,多谢
作者: WFX777888    时间: 2019-7-15 05:19

非常实用的资料多谢楼主
作者: 睡不着觉88    时间: 2019-7-15 15:04
跟着大家后面慢慢学起来,感谢分享
作者: 247015164    时间: 2019-8-20 21:05
没有看明白,没有看到按键程序,是怎么判断的
作者: 迟迟不离去    时间: 2019-9-9 18:15
楼主,您好。师傅您知道怎么样才能实现单独按键单独变化,连续按键持续变化吗?希望能给点思路,最近被这个问题搞得有点焦头烂额。万分感谢
作者: 小白话    时间: 2019-9-21 20:49
谢谢!!
作者: Aminezzz    时间: 2019-11-24 23:20
这个是用到占空比的原理吗?
作者: seataozhang    时间: 2020-3-5 17:27
非常不错,感谢楼主分享!
最近初学PIC单片机,能改成适配PIC单处机吗?




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