单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3043|回复: 9
收起左侧

按键PWM控制led亮度单片机源程序

  [复制链接]
962271163 发表于 2018-4-30 17:19 | 显示全部楼层 |阅读模式
单片机源程序如下:
  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, 下载次数: 79)

评分

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

查看全部评分

回复

使用道具 举报

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 来自手机 | 显示全部楼层
借来看看,多谢
回复

使用道具 举报

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

本版积分规则

QQ|手机版|小黑屋|单片机论坛 |51Hei单片机16群 联系QQ:125739409;技术交流QQ群7344883

Powered by 单片机教程网

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