Keywords

April 2018
MonTueWedThuFriSatSun
      1
2345678
9101112131415
16171819202122
23242526272829
30      

Calendar Calendar


tìm hiểu về 8051 và 74595

Go down

tìm hiểu về 8051 và 74595

Bài gửi  khanhhuy4390 on Fri Feb 01, 2013 10:01 pm

chuong trình này điều khiển led đơn
ở đây mình chỉ mới dk có 24 led thôi
chỉ có kiểu led rượt đuổi
không biết làm mấy kiểu khác . giúp mình tí làm thế nào để chạy dc nhiều kiểu
#include"regx52.h"
sbit DATA = P2^1;
sbit SCK = P2^0;
sbit SCL = P2^2;

unsigned char i,j;// bien dem so led
void delay(long times)
{
while(times--);
}


//--------------------------------------------------------------------------------------------------
void dich(void) // dich du lieu ra 595
{
SCK=0;
SCK=1;
}

//--------------------------------------------------------------------------------------------------

void chot(void) // chot du lieu ra 595
{
SCL=0;
SCL=1;
}

//--------------------------------------------------------------------------------------------------

// ctc chon led sang o vi tri i=num ( muon nhieu led sang cung thi or them (i==num||i=...||...)
void chon_led(unsigned char num)
{
for(i=0;i<24;i++)
{
if(i==num) {DATA=1;} // =1 led sang
else(DATA=0); // =0 led tat
dich();
}
chot();
}


//--------------------------------------------------------------------------------------------------
// ctc cho led sang theo thu tu tu 0-15
void sang_lan_luot_1(void)
{
for(j=0;j<24;j++)
{
chon_led(j);
delay(5000); // tu viet ctc delay nhe, he so tuy chinh phu hop
};
}
void sang_lan_luot_2(void)
{
for(j=24;j>0;j--)
{

chon_led(j);
delay(5000); // tu viet ctc delay nhe, he so tuy chinh phu hop
};
}


//--------------------------------- Chuong Trinh Chinh -----------------------------------------------
void main()
{
while(1)
{
sang_lan_luot_1();
sang_lan_luot_2();

};
}
avatar
khanhhuy4390
Moderators tập sự

Tổng số bài gửi : 37
Join date : 05/11/2012
Age : 28
Đến từ : BINH DUONG

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: tìm hiểu về 8051 và 74595

Bài gửi  khanhhuy4390 on Sat Feb 02, 2013 9:23 pm

doan code nay con nhieu cho chua hieu xin moi nguoi giup do

#include"regx52.h"
sbit DATA = P2^1;
sbit SCK = P2^0;
sbit SCL = P2^2;

unsigned int n,m,k;
unsigned char i,j;// bien dem so led
void delay(unsigned char ms )
{
int i,j;
for(i=0;i<ms;i++)
{
for(j=0;j<800;j++);

}
}
//--------------------------------------------------------------------------------------------------
void dich(void) // dich du lieu ra 595
{
SCK=0;
SCK=1;
}

//--------------------------------------------------------------------------------------------------

void chot(void) // SCL du lieu ra 595
{
SCL=0;
SCL=1;
}

//--------------------------------------------------------------------------------------------------

// ctc chon led sang o vi tri i=num ( muon nhieu led sang cung thi or them (i==num||i=...||...)
void chon_led(unsigned char num)
{
for(i=0;i<32;i++)
{
if(i==num) {DATA=1;} // =1 led sang
else(DATA=0); // =0 led tat
dich();
}
chot();
}


//--------------------------------------------------------------------------------------------------
// ctc cho led sang theo thu tu tu 0-32
void sang_lan_luot_1(void)
{
for(j=0;j<32;j++)
{
chon_led(j);
delay(10);
};
}
void sang_lan_luot_2(void)
{
for(j=32;j>0;j--)
{

chon_led(j);
delay(10);
};
}

void ctdich(unsigned char x) // chua hieu lam giai thich gium
{
int i,tam;
for(i=0;i<8;i++)
{
tam=x;
tam=tam&0x80;
if(tam==0x80) DATA=1;
else DATA=0;
x=x<<1;
SCK=0;
SCK=1;
}
}
void dich3(unsigned char a,b,c,d) //dieu khien 4 ic 74595
{
ctdich(d);
ctdich(c);
ctdich(b);
ctdich(a);
}
void tatdan()
{
int j;
unsigned char code led1[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00}; //tatdan
unsigned char code led2[]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff}; //sang dan
unsigned char code led3[]={0x3f,0x9f,0xcf,0xe7,0xf3,0xf9,0xfc,0xfe}; // 2led sang duoi
unsigned char code led4[]={0x9f,0xcf,0xe7,0xf3,0xf9,0xfc,0xfe};
for(j=0;j<8;j++)
{
dich3(led1[j],0xff,0xff,0xff);
SCL=0;
SCL=1;
delay(10);
}
for(j=0;j<8;j++)
{
dich3(0,led1[j],0xff,0xff);
SCL=0;
SCL=1;
delay(10);
}
for(j=0;j<8;j++)
{
dich3(0,0,led1[j],0xff);
SCL=0;
SCL=1;
delay(10);
}
for(j=0;j<8;j++)
{
dich3(0,0,0,led1[j]);
SCL=0;
SCL=1;
delay(10);
}
//nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
for(j=0;j<8;j++)
{
dich3(0,0,0,led2[j]);
SCL=0;
SCL=1;
delay(10);
}
for(j=0;j<8;j++)
{
dich3(0,0,led2[j],0xff);
SCL=0;
SCL=1;
delay(10);
}
for(j=0;j<8;j++)
{
dich3(0,led2[j],0xff,0xff);
SCL=0;
SCL=1;
delay(10);
}
for(j=0;j<8;j++)
{
dich3(led2[j],0xff,0xff,0xff);
SCL=0;
SCL=1;
delay(10);
}

//ddddddddddddddddddddddd
for(j=0;j<8;j++)
{
dich3(0xff,0xff,0xff,led3[j]);
SCL=0;
SCL=1;
delay(10);
}
for(j=0;j<7;j++)
{
dich3(0xff,0xff,led4[j],0xff);
SCL=0;
SCL=1;
delay(10);
}
for(j=0;j<7;j++)
{
dich3(0xff,led4[j],0xff,0xff);
SCL=0;
SCL=1;
delay(10);
}
for(j=0;j<7;j++)
{
dich3(led4[j],0xff,0xff,0xff);
SCL=0;
SCL=1;
delay(10);
}
}
//--------------------------------- Chuong Trinh Chinh -----------------------------------------------
void main()
{
while(1)
{
sang_lan_luot_1();
sang_lan_luot_2();
tatdan();
};
}
avatar
khanhhuy4390
Moderators tập sự

Tổng số bài gửi : 37
Join date : 05/11/2012
Age : 28
Đến từ : BINH DUONG

Xem lý lịch thành viên

Về Đầu Trang Go down

Về Đầu Trang


 
Permissions in this forum:
Bạn không có quyền trả lời bài viết