赞助论坛
  • 3154阅读
  • 0回复

单灯PWM调光,自编测试程序 [复制链接]

楼层直达
级别: 中级会员
发帖
169
精华
0
金币
182
威望
0
贡献
0
好评
3
注册
2010-01-07
楼主    xiaodai6868 发表于: 2015-10-04 19:56:43 
/************定义声明区*****************/
/*使用芯片:STC89C52
晶振:12MHZ
单按键每按一次调整一点,到达最亮后再按一下恢复初始最低亮度
*/
#include "reg52.h"
void delay10ms(void);
sbit led=P1^0;
sbit key=P3^3;
unsigned char zk=1;
unsigned char count;//计数
/***************主函数*************/
void main()
{
    led=1;
    //P0=0;
    EA=1;
    /****定时器配置***/
    TMOD=0x01;
    TL0=(65535-100)%256;
    TH0=(65535-100)/256;
    ET0=1;
    TR0=1;
    /***死循环***/
    while(1)
    {
    if(key==0)
        {
        delay10ms();
        if(key==0)
        {
            zk=zk+10;
            if(zk>=100)
            {
                zk=1;
            }
        }
        while(!key);
        }
     }
}
void timer() interrupt 1
{
    TL0=(65535-100)%256;
    TH0=(65535-100)/256;
    
    count++;
    if(count>=100) count=0;
    if(count<zk)
        {
        led=0;
        }
    else
        {
        led=1;
        }
}

void delay10ms(void)   //误差 0us
{
    unsigned char a,b,c;
    for(c=5;c>0;c--)
    for(b=4;b>0;b--)
    for(a=248;a>0;a--);
}