📄 pwm_led.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 + -