⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 led2.c

📁 一款控制150个RGB LED实现颜色渐变
💻 C
字号:
/********************led****************/
#include "ht48r05a-1.h"
//#include "FLASH.H"
/*
unsigned char count;

#define _tmrc4 _0e_4  //timer4 enable bit                             //

#pragma vector isr_4 @ 0x4
#pragma vector isr_8 @ 0x8

void safeguard_init(){
        _intc = 0;
        _tmrc = 0;
        _tmr = 0;
		    _pbc = 0x07;
		    _pcc = 0x03;
		    _pac = 0xf1;       //pa1~pa3为输出模式

}

void isr_8(){  // timer/event 0

        if(count != 0) //0.5sec
            count --;
}
void set_timer(){
        _tmrc4 = 0;
        _tmr = 0xe1;
        _tmrc4 = 1;    //start timer1  
}
*/

#define Blue _pa1
#define Green _pa2
#define Red _pa3

#define HIGH 1;
#define LOW 0;
/*
void RedUp();
void RedDown();
void BlueUp();
void BlueDown();
void GreenUp();
void GreenDown();
*/

void Delay(unsigned char num);
void uDelay(unsigned char num);


void RedUp()
{
    unsigned char i,j;
    for(i = 0; i < 0xff; i ++)
    {
        Red = HIGH;
        uDelay( i );
        Red = LOW;
        uDelay( 0xff - i );
    }
}
void RedDown()
{
    unsigned char i,j;
    for(i = 0; i < 0xff; i ++)
    {
        Red= LOW;
        uDelay( i );
        Red = HIGH;
        uDelay( 0xff - i );
    }
}
void BlueUp()
{
    unsigned char i,j;
    for(i = 0; i < 0xff; i ++)
    {
        Blue = HIGH;
        uDelay( i );
        Blue = LOW;
        uDelay( 0xff - i );
    }
}
void GreenUp()
{
    unsigned char i,j;
    for(i = 0; i < 0xff; i ++)
    {
        Green = HIGH;
        uDelay( i );
        Green = LOW;
        uDelay( 0xff - i );
    }
}
void GreenDown()
{
    unsigned char i,j;
    for(i = 0; i < 0xff; i ++)
    {
        Green= LOW;
        uDelay( i );
        Green = HIGH;
        uDelay( 0xff - i );
    }
}

void main()
{
///////////////////////  start

    _pbc = 0x07;
    _pcc = 0x03;
    _pac = 0xf1;       //pa1~pa3为输出模式

//    safeguard_init();
/*
    _intc = 0x5;    //enable timer
    _tmrc = 0x87;   //timer mode (internal clock)
    set_timer();
*/
    Red = HIGH;           //R,G,B全亮一下
    Green = HIGH;
    Blue = HIGH;
    Delay(1);

    Red = LOW;           //R,G,B全灭
    Green = LOW;
    Blue = LOW;
    Delay(2);

    while(1)
    {
  	    Blue = HIGH;         //B亮
	    Delay(2);
////////////////////////////// B亮    
	    RedUp();             //R渐亮
        Red = HIGH;
////////////////////////////// R,B亮  
        BlueDown();          //B渐暗
        Blue = LOW;
////////////////////////////// R亮 
        GreenUp();           //G渐亮
        Green = HIGH;
////////////////////////////// R,G亮
        RedDown();          //R渐暗
        Red = LOW;
////////////////////////////// G亮   
        BlueUp();           //B渐亮
        Blue = HIGH;
////////////////////////////// B,G亮   
        GreenDown();        //G渐暗
        Green = LOW;
////////////////////////////// B亮  
	}
}
void BlueDown()
{
    unsigned char i,j;
    for(i = 0; i < 0xff; i ++)
    {
        Blue= LOW;
        uDelay( i );
        Blue = HIGH;
        uDelay( 0xff - i );
    }
}
/*
void uDelay(unsigned char num)
{
//    count = 250;
//    while( count ) {;}
}
*/

void uDelay(unsigned char num)
{
    unsigned char i,j;
    for(i = 0; i < num; i ++)
    {
        for(j = 0; j < 0x0f; j ++)
        { ; }
    }
}

void Delay(unsigned char num)
{
    unsigned char i,j,k;
    for(i = 0; i < num; i ++)
    {
        for(j = 0; j < 0xff; j ++)
        {
            for(k = 0; k < 0xff; k ++)
            { ; }
        }
    }
}
/*
void Delay(unsigned char num)
{
    unsigned char i,j,k;
 //   for(i = 0; i < num; i ++)
    {
        count = 250;
        while( count ) {;}
    }
}
*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -