PWM控制LED灯亮度程序
电子元件,电子元器件深圳市创唯电子有限公司
您现在的位置: 首页 > 电子技术
PWM控制LED灯亮度程序  2012/3/1
#include<absacc.h>#include<reg51.h>#include<math.h>#include<intrins.h>voidledxianshi();voidPWM()sbitup=P1^5;//定义UP键sbitdown=P1^6;//定义DOWN键staticunsignedcharpwm;unsignedchart;unsignedcharxdataseg_add_at_0xEFFF;unsignedcharxdatalight_add_at_0xF7FF;#definebase_Adr0xDFFF#defineucharunsignedchar#defineucharunsignedchar#defineuintunsignedint#defineulongunsignedlong#defi

#i nclude &lt;absacc.h>
#i nclude <reg51.h>
#i nclude  <math.h>
#include<intrins.h>
voidledxianshi();
void PWM()
sbit up=P1^5;  //定义UP键
sbit down=P1^6;  //定义DOWN键
static unsigned char pwm;
unsigned char t;
unsigned char xdataseg_add _at_ 0xEFFF;
unsigned char xdata light_add _at_ 0xF7FF;
#define base_Adr  0xDFFF
#define uchar unsigned char
#define uchar unsigned char
#define uint  unsigned int
#define ulong unsigned long
#define uchar unsigned char
#define uint unsigned int
#defineADC0809  XBYTE[0x0B000]  //P2.6选通    
floatsum=0,fjg;
uint i,j,*q,*p,sd=5;
sbit p1_0=P1^0;
void wait(uint n);
void main(void)
{   j=0;
    TMOD=0X01;//设置定时器0
     TH0=0XFC;//定时时间设为1ms
     TL0=0X18;
      EA=0;//先关中断
      EA=1;//开总中断
      ET0=1; 
      //TR0=1;
     for(; ;)
    {
      if(j=20){
 do{}while(!TF0);
   q=0x30;
for(i=0;i<20;i++)  
 {sum=sum+(*q)*(*q);
  q++;
   }
    sum=sum/20;
   fjg=sqrt(sum);
if(fjg>sd)         
   p1_0=1;
   j=0;
}}
}
void power(void)
{  uchar x;
   for(;;)
        {ADC0809=0x01;
         wait(1000);
         x=ADC0809;
         P2=x;
         }
}
void wait(uint n)
{   uint i,j;
    for(i=0;i<n;i++)
    for(j=0;j<100;j++);
}
timer0()interrupt 1 using 1
{*p=ADC0809;
   p++;
  TH0=0XFC;
  TL0=0X18;
  TR0=1;
  j++;
}
//sbit EOC=P3^2;//为A/D转换结束标志
//sbit START=      //启动A/D

与《PWM控制LED灯亮度程序》相关列表
电话:400-900-3095
QQ:800152669
库存查询
Copyright(C) 2011-2021 Szcwdz.com 创唯电子 版权所有 备案号:粤ICP备11103613号
专注电子元件代理销售  QQ:800152669  电子邮件:sales@szcwdz.com  电话:400-900-3095