tìm hiểu về 8051 và 74595
Trang 1 trong tổng số 1 trang
tìm hiểu về 8051 và 74595
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();
};
}
ở đâ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();
};
}
khanhhuy4390- Moderators tập sự
- Tổng số bài gửi : 37
Join date : 05/11/2012
Age : 34
Đến từ : BINH DUONG
Re: tìm hiểu về 8051 và 74595
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();
};
}
#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();
};
}
khanhhuy4390- Moderators tập sự
- Tổng số bài gửi : 37
Join date : 05/11/2012
Age : 34
Đến từ : BINH DUONG
Similar topics
» Chia sẻ source code mạch đếm 0-99 sử dụng 8051 và LED hồng ngoại
» Giả sử dữ liệu truyền nối tiếp 7 bit là 3Ah với 1 even parity, hãy vẽ tín hiệu trên đường truyền RS232?
» Giả sử dữ liệu truyền nối tiếp 7 bit là 3Ah với 1 even parity, hãy vẽ tín hiệu trên đường truyền RS232?
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết
|
|
Wed Sep 24, 2014 8:46 am by vinagreensun
» Chia sẻ source code mạch đếm 0-99 sử dụng 8051 và LED hồng ngoại
Mon Mar 24, 2014 2:07 pm by xuantruong1911
» mình đang làm đồ án 1 cần làm mạch khó số điện tử dùng ic số và phải có thể thay đổi password
Fri Mar 21, 2014 8:01 pm by saobang
» Chế tạo máy dò kim loại help ?
Fri Nov 29, 2013 11:17 am by Thanhtra conan
» mấy bro vào giup em với
Wed Nov 27, 2013 9:01 pm by luongthanhvp
» giáo trình plc mitsubishi căn bản và nâng cao
Tue Apr 30, 2013 5:55 pm by Admin
» hoc led chay chu
Thu Apr 18, 2013 8:05 pm by vuphong
» QUÉT PHÍM MA TRẬN 4X4 HIỂN THỊ RA LED 7 ĐOẠN
Thu Apr 18, 2013 7:59 pm by thanhxuan
» cách vẽ mạch in bằng ocard 1 cách đơn giản?
Thu Apr 18, 2013 1:09 pm by Admin