新闻  |   论坛  |   博客  |   在线研讨会
第四十七课 PWM之二 一级中断调节LED亮度
0750long | 2009-06-16 12:55:49    阅读:1480   发布文章

第四十七课 PWM之二 一级中断调节LED亮度

前面的课程都掌握的可以的话,PWM其实也没什么好讲的,在这里只是想告诉大家PWM的基本原理和实现的方法!

程序讲解

/*--------------------------------------------------------------*/
//按键控制显示LED亮度
//Time: 19:22 2009-4-28


/*--------------------------------------------------------------*/
//包含头文件
#include <AT89X52.H>
//#include "Beep.H"

/*--------------------------------------------------------------*/
//按键接口定义 对应开发板硬件
sbit K1 = P3^4;  //亮度增加
sbit K2 = P3^5;  //亮度减弱

unsigned char pwm_para;
unsigned char pwm_counter;


/*--------------------------------------------------------------*/
//定时器初始化
void T0_init(void)
{
    TMOD |= 0x02;
    TH0  = 0xc4;    //60us
    TL0  = 0xc4;
    IE  |= 0x82;
    TR0  = 1;
}


/*--------------------------------------------------------------*/
//定时器中断服务
void T0_intservice(void) interrupt 1
{
 pwm_counter++;
 if(pwm_counter < pwm_para) P1 = 0x00;
 else              P1 = 0xff;
}


/*--------------------------------------------------------------*/
//主函数
void main(void)
{
 T0_init();
 while(1)
    {
        if(!K1) {pwm_para++; while(!K1);}
        if(!K2) {pwm_para--; while(!K2);}
 }
}

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客