Mình dùng đoạn code này để điều khiển 16 led đơn dùng 89 và 2 con 595 . Mình muốn led sáng dần từ led 0 tới led 16 thì làm ntn? mình mới làm đc chạy từ 0 đến 8 thôi . Code đây
#include"regx52.h"
sbit DATA = P2^1;
sbit SCK = P2^0;
sbit SCL = P2^2;
void quet(unsigned char x)
{
int i,temp;
for(i=0;i<8;i++)
{
temp=x;
temp=temp&0x80;
if(temp==0x80)
DATA=1;
else
DATA=0;
x*=2;
SCK=0;
SCK=1;
}
SCL=0;
SCL=1;
}
void delay()
{
unsigned int i;
for(i=0;i<300;i++);
}
void main()
{
unsigned int i;
unsigned char ma[]={0xef,0xdf,0xbf,0x7f,0xfe,0xfd,0xfb,0xf7,};
while(1)
{
for(i=0;i<8;i++)
{
quet(ma[i]);
delay();
}
}}
#include"regx52.h"
sbit DATA = P2^1;
sbit SCK = P2^0;
sbit SCL = P2^2;
void quet(unsigned char x)
{
int i,temp;
for(i=0;i<8;i++)
{
temp=x;
temp=temp&0x80;
if(temp==0x80)
DATA=1;
else
DATA=0;
x*=2;
SCK=0;
SCK=1;
}
SCL=0;
SCL=1;
}
void delay()
{
unsigned int i;
for(i=0;i<300;i++);
}
void main()
{
unsigned int i;
unsigned char ma[]={0xef,0xdf,0xbf,0x7f,0xfe,0xfd,0xfb,0xf7,};
while(1)
{
for(i=0;i<8;i++)
{
quet(ma[i]);
delay();
}
}}
Comment