Keywords

November 2017
MonTueWedThuFriSatSun
  12345
6789101112
13141516171819
20212223242526
27282930   

Calendar Calendar


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

Xem chủ đề cũ hơn Xem chủ đề mới hơn 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 : 27
Đế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 : 27
Đến từ : BINH DUONG

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

Về Đầu Trang Go down

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang


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