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

2009-6-12 21:52 3785 11 11 分类: MCU/ 嵌入式

第四十七课 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);}
 }
}


相关程序:https://static.assets-stash.eet-china.com/album/old-resources/2009/6/12/fe49effb-ad42-4fef-8e6c-a759de52387d.rar


 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
11
关闭 站长推荐上一条 /3 下一条