英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

 找回密码
 立即注册
搜索
电子烟方案单片机单片机开发深圳单片机开发
单片机方案国产单片机8位单片机电子烟方案开发
查看: 3372|回复: 0
打印 上一主题 下一主题

pic16f54可调LED亮度程序

[复制链接]
跳转到指定楼层
1#
发表于 2012-8-20 10:50:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
按钮控制LED亮度 芯片PIC16F54 晶振4M


#include<pic.h>
#define uchar  unsigned char
#define uint   unsigned int
__CONFIG (XT&WDTEN&CP) ;
#define LED  RB1

#define  K1    RB3
#define  K2    RB2

#define  KEY   PORTB  
#define  keyi  0B1100
uchar LED_pc,h,l,LEDH,LEDL;

static  bit  HL_bit;
static volatile  bit TM_RBit @ ((unsigned)&TMR0*8)+5;
void TMR0_interrupt(void);

void TMR0_interrupt()
{  if(TM_RBit)
    { TM_RBit=0;
      if(HL_bit){if(h>0)h--; }
      else      {if(l>0)l--; }
    }
   else return ;   
}

void main()
  { uchar i;
    OPTION=0B00000000; // 预分频器分配给定时器0
    TRISB=0B1101;
    LEDH= h=0;
    LEDL=l=255;
      while(1){ CLRWDT();
                TMR0_interrupt();
                if(HL_bit){if(h>0)LED=1;else {l=LEDL;HL_bit=0;}}
                else      {if(l>0)LED=0;else {h=LEDH;HL_bit=1;}}
              if((KEY&keyi)!=keyi)//按健扫描
                {i--;
                 if((i==0) )
                    {
                     if(!K1&&LEDH<255){ LEDH++;LEDL--;}
                     if(!K2&&LEDL<255){ LEDH--;LEDL++;}
                    }
                }
              else i=0;//按健扫描计数器清0
         }
   
  }

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|公司首页|Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 ( 粤ICP备09008620号 )

GMT+8, 2024-4-29 03:49 , Processed in 0.051992 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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