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

📄 pwm_led.c

📁 一个用PWM控制48路双色灯的程序,还没完呢,好后再传~
💻 C
字号:
#include   <reg52.h>

#define PWM 20

unsigned char pwm_red[24];
unsigned char pwm_green[24];
unsigned char time=0;
unsigned char dis_code[6];

sbit ser=P3^3;	
sbit rck=P3^4;
sbit sck=P3^5;


void delay(unsigned int ms)
{
	unsigned long int tms;
	tms=46*ms;
	while(tms)
	{
		tms--;
	}
}

void initTimer(void)
{
	TMOD=0x1;
	TH0=0xfc;
	TL0=0x6c;
	
	TR0=1;
	ET0=1;
	EA=1;
} 
void send595()
{
	unsigned char i,j;
	rck=0;	
	//for(j=0;j<6;j++)
//	{
		for(i=0;i<8;i++)
		{
			sck=0;
			dis_code[j]<<=1;
			ser=CY;
			sck=1;
		}
//	}
	rck=1;
}

void timer0(void) interrupt 1
{
	unsigned char i;
	TH0=0xfc;
	TL0=0x6c;
	time++;
	for(i=0;i<24;i++)
	{
		if(pwm_red[i]==time)
			dis_code[i&8]=dis_code;
	}
	for(i=0;i<24;i++)
	{
	;//	if()
	}
	if(time==PWM)
	{
		time=0;
		dis_code[0]=0;
		dis_code[1]=0;
		dis_code[2]=0;
		dis_code[3]=0xff;
		dis_code[4]=0xff;
		dis_code[5]=0xff;
	}
	send595();	 
}


void   main()   
{   
	//initTimer();	
	dis_code[0]=0xf0;
	dis_code[1]=0xf0;
	dis_code[2]=0xf0;
	dis_code[3]=0xf0;
	dis_code[4]=0xf0;
	dis_code[5]=0xf0;
	while(1)    
	{
		/*pwm_red++;
		if(pwm_red==PWM)
			pwm_red=5;
		pwm_green--;
		if(pwm_green==5)
			pwm_green=PWM;
		delay(100);*/ 
		send595();
	}
}	
   

⌨️ 快捷键说明

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