Hôm nay chip hướng dẫn và chia sẻ các bạn code c và file lập trình IC ghi dịch 74HC595 điều khiển 8 led đơn..rất đơn giản nhiều hiệu ứng led chạy,led sáng dần,sáng nhấp nháy,sáng chẵn lẻ.còn sáng dồn chip chưa thực hiện được..và còn lập trình 32led sáng dần chip cũng chưa làm được..bạn nào lập trình được thì share nhé...cùng nhau chia sẻ,cùng nhau hiểu biết.
// LAP TRINH 74HC595 DIEU KHIEN 8 LED DON
//****HTTP://CHIPKOOL.TK**********/
#include
#include
#include
// khao bao cac chan 74hc595 de lap trinh
sbit dulieu = P2^1; // chan du lieu
sbit xung = P2^0; // chan xung dich tung bit
sbit chot = P2^2; // chan chot du lieu
unsigned int n,m,k;
//****Chuong trinh tao tre**********/
void delay(unsigned char ms )
{
int i,j;
for(i=0;i
{
for(j=0;j<125;j++);
}
}
// chuong trinh lap trinh cho 74hc595 chuyen noi tiep sang song song
void convert(unsigned char x)
{ // do chuc nang ghi dich 8 bit vao noi tiep ra song song
// do do vong for duoi se cho dich 8 lan de du 8 chan dau ra cho vdk
int i,tam;
for(i=0;i<8;i++) // 8 lan dich de co 8 bit
{
tam=x;
tam=tam&0x80; // lay ra bit dau tien la bit D7 10000000 D7 ------D0
if(tam==0x80) dulieu=1; //so sanh neu bang 1 nghia la dich het tu D0 den D7
else dulieu=0; // nguoc lai du lieu se bang 0 va tiep tuc dich phai
x=x<<1; // dich bit nhu sau
xung=0; // moi lan dich se can mot xung cho phep moi dich dc (tich cuc muc duong)
xung=1;
}
//chot=0; // khi dich du 8 biut thi chot du lieu va xuat ra output
//chot=1;
}
//********************Hieu ung sang duoi******************************************/
void sangduoi()
{
int j;//00000001;00000010;00000100;00001000;000100000;00100000;01000000;10000000
unsigned char mang[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
for(j=0;j<8;j++)
{
convert(mang[j]);
chot=0; // khi dich du 8 biut thi chot du lieu va xuat ra output
chot=1;
delay(1000);
}
}
//*******************Hieu ung sang dan******************************/
void sangdan()
{
int j;
unsigned char mang[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};
for(j=0;j<8;j++)
{
convert(mang[j]);
chot=0; // khi dich du 8 biut thi chot du lieu va xuat ra output
chot=1;
delay(1000);
}
}
//*******************hieu ung chop tat led*************
void choptat()
{
int j;
unsigned char mang[]={0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff};
for(j=0;j<8;j++)
{
convert(mang[j]);
chot=0; // khi dich du 8 biut thi chot du lieu va xuat ra output
chot=1;
delay(1000);
}
}
//*****************hieu ung sang chan le****************//
void chanle()
{
int j;
unsigned char mang[]={0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa};
for(j=0;j<8;j++)
{
convert(mang[j]);
chot=0; // khi dich du 8 biut thi chot du lieu va xuat ra output
chot=1;
delay(1000);
}
}
//*************chuong trinh chinh***************
void main(void)
{
sangdan();
chanle();
choptat();
sangduoi();
}
File lập trình keilc 4+ mô phỏng protues 7.8
(pass:chipkool.tk)
Phạm Văn Ngọc Anh-01644326695
Nguồn bài viết: Blog Điện Tử | Tin Học
CODE LẬP TRÌNH
// LAP TRINH 74HC595 DIEU KHIEN 8 LED DON
//****HTTP://CHIPKOOL.TK**********/
#include
#include
#include
// khao bao cac chan 74hc595 de lap trinh
sbit dulieu = P2^1; // chan du lieu
sbit xung = P2^0; // chan xung dich tung bit
sbit chot = P2^2; // chan chot du lieu
unsigned int n,m,k;
//****Chuong trinh tao tre**********/
void delay(unsigned char ms )
{
int i,j;
for(i=0;i
{
for(j=0;j<125;j++);
}
}
// chuong trinh lap trinh cho 74hc595 chuyen noi tiep sang song song
void convert(unsigned char x)
{ // do chuc nang ghi dich 8 bit vao noi tiep ra song song
// do do vong for duoi se cho dich 8 lan de du 8 chan dau ra cho vdk
int i,tam;
for(i=0;i<8;i++) // 8 lan dich de co 8 bit
{
tam=x;
tam=tam&0x80; // lay ra bit dau tien la bit D7 10000000 D7 ------D0
if(tam==0x80) dulieu=1; //so sanh neu bang 1 nghia la dich het tu D0 den D7
else dulieu=0; // nguoc lai du lieu se bang 0 va tiep tuc dich phai
x=x<<1; // dich bit nhu sau
xung=0; // moi lan dich se can mot xung cho phep moi dich dc (tich cuc muc duong)
xung=1;
}
//chot=0; // khi dich du 8 biut thi chot du lieu va xuat ra output
//chot=1;
}
//********************Hieu ung sang duoi******************************************/
void sangduoi()
{
int j;//00000001;00000010;00000100;00001000;000100000;00100000;01000000;10000000
unsigned char mang[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
for(j=0;j<8;j++)
{
convert(mang[j]);
chot=0; // khi dich du 8 biut thi chot du lieu va xuat ra output
chot=1;
delay(1000);
}
}
//*******************Hieu ung sang dan******************************/
void sangdan()
{
int j;
unsigned char mang[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};
for(j=0;j<8;j++)
{
convert(mang[j]);
chot=0; // khi dich du 8 biut thi chot du lieu va xuat ra output
chot=1;
delay(1000);
}
}
//*******************hieu ung chop tat led*************
void choptat()
{
int j;
unsigned char mang[]={0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff};
for(j=0;j<8;j++)
{
convert(mang[j]);
chot=0; // khi dich du 8 biut thi chot du lieu va xuat ra output
chot=1;
delay(1000);
}
}
//*****************hieu ung sang chan le****************//
void chanle()
{
int j;
unsigned char mang[]={0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa};
for(j=0;j<8;j++)
{
convert(mang[j]);
chot=0; // khi dich du 8 biut thi chot du lieu va xuat ra output
chot=1;
delay(1000);
}
}
//*************chuong trinh chinh***************
void main(void)
{
sangdan();
chanle();
choptat();
sangduoi();
}
File lập trình keilc 4+ mô phỏng protues 7.8
(pass:chipkool.tk)
Phạm Văn Ngọc Anh-01644326695
Nguồn bài viết: Blog Điện Tử | Tin Học
Đăng nhận xét