用单片机控制LED灯(项目)

发布时间: 2024-08-14
来源: 电子工程世界

#include

#define uchar unsigned char

sbit LED_RED = P2^0;

sbit LED_GREEN = P2^1;

sbit LED_BLUE = P2^2;


//要显示的颜色值

uchar COLOR_RED = 0xff;

uchar COLOR_GREEN = 0xcc;

uchar COLOR_BLUE = 0x33;


uchar i = 0;


//初始化定时器,用于控制PWM波

void Init_INT0(){

    TMOD = 0x02;//工作方式2,8位自动装置定时器

    TH0 = 0xf0;

    TL0 = TH0;

    ET0 = 1;

    EA = 1;

    TR0 = 1;

}


void main(){

    Init_INT0();

    while(1);

}


void INT0_Resolve() interrupt 1{

    //i的值从0-255循环,当i到达255时,i++的结果为0

    i++;


    //红色LED的PWM波形

    if(i < COLOR_RED){

        LED_RED = 1;

    }else{

        LED_RED = 0;

    }

    //绿色LED的PWM波形

    if(i < COLOR_GREEN){

        LED_GREEN = 1;

    }else{

        LED_GREEN = 0;

    }

    //蓝色LED的PWM波形

    if(i < COLOR_BLUE){

        LED_BLUE = 1;

    }else{

        LED_BLUE = 0;

    }

}


文章来源于: 电子工程世界 原文链接

本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。