Led Matrix Using 74hc595 1207

download Led Matrix Using 74hc595 1207

of 18

Transcript of Led Matrix Using 74hc595 1207

Hng dn vit code cho LED ma trn 8x8 bng thanh ghi dch 74HC595S dng PIC 16F887

Nhm 18 Ging ng 205

Nguyn Tng Sn Nghim Minh Sn Trn Vn Tam Hong S Tn Phm Anh Ti

Hong S Tn in t 3 K53

1> LED ma trn 8x8: y mnh s dng led ma trn 8x8 mu xanh trong proteus:

Xoay linh kin theo chiu

n xoay ngang:

Hong S Tn in t 3 K53

Sau , test chn linh kin, gi s ta cho cc dng v t vo cc chn nh sau:

Hong S Tn in t 3 K53

Chy m phng c kt qu:

Suy ra l 2 chn u tin bn tri l cp ngun cho 2 hng trn, v chn u tin bn phi l t ca ct th 8 k t bn tri sang. Do , gi s mun sng c hng l 3, ct l 5 th cn a ngun vo chn s 3 bn tri, v chn s 4 bn phi:

Hong S Tn in t 3 K53

Vy l khi ly linh kin led matrix xanh ny ra, nu quay n sang phi th n s c cc chn bn tri l dng ngun cp vo, v s th t chn ng vi s hng; cn dy chn bn phi s l nhng chn mnh a tn hiu vo, nu tn hiu vo l 1 th led c t n iu khin tt, cn nu tn hiu vo l 0 th ct sng. VD:

Hong S Tn in t 3 K53

l c s ta qut LED theo hng, mnh s ni sau. 2> IC dch 74HC595: S chn:

Hong S Tn in t 3 K53

Cc chn nh sau: Mnh s ni v chc nng, t na mnh s v d c th: - Cc chn t Q0 n Q7: cc chn ny a tn hiu ra ngoi khi c xung xut, khi cha c xung xut th tng ng trong c thanh ghi 8 bit l u tr gi tr s xut ra. - Chn Q7 : dng y gi tr ca bit dch khi HC595 y. - Chn DS: d liu mun a vo 74HC595 th a tn hiu vo y. - Chn SH_CP: d liu mun a vo 74HC595 th phi c 1 xung vo chn ny xc nhn. - Chn ST_CP: khi c 1 xung vo chn ny th gi tr cc chn Q0 n Q7 mi xut in p ra ngoi, khi cha c th in p cha xut ra. - Chn - Chn th ni ngun. th ni t.

Gi s ni 74HC595 vi PIC nh sau:

Hong S Tn in t 3 K53

Gi s mnh mun a tn hiu Q0=1,Q1=0,Q2=1,Q3=0,Q4=1 vo 595 th nht th ci no cng cui th phi a tn hiu vo u tin: - Cho chn 16 ca PIC =1, a 1 xung vo chn 11 ca 595 th nht bng cch cho chn 15 ca PIC bng 1, ri li cho chn 15 ca PIC bng 0. Khi 595 s xc nhn l c tn hiu a vo chn DS ca n, nn n a tn hiu 1 vo, v a gi tr ny vo nh Q0. - Cho chn 16 ca PIC =0, a 1 xung vo chn 11 ca 595 th nht bng cch cho chn 15 ca PIC bng 1, ri li cho chn 15 ca PIC bng 0. Khi 595 s xc nhn l c tn hiu a vo chn DS ca n, nn n a tn hiu 0 vo, v a gi tr ny vo nh Q0. Gi tr 1 ca Q0 lc trc chuyn sang cho Q1. Vy sau bc ny th Q0=0 v Q1=1. - Tng t nh th, chu k th 3, cho chn 16 ca PIC bng 1, cho xung vo chn 11 ca 595, th gi tr 1 ny c a vo Q0, 2 gi tr kia c y sang Q1 v Q2. Khi Q0=1,Q1=0,Q2=1. - Ln lt nh th, sau 5 chu k th s c gi tr tng ng nh mun nu mnh s dng chn 16 ca PIC hp l Hong S Tn in t 3 K53

- Gi s mnh y vo 595 th nht ln hn 8bit, ngha l t Q0-Q7 khng cha, th bit tha s vo chn Q7, v do chn ny ni vi chn 14 ca 595 th 2 nn tnh hiu bit tha s c y sang con th 2 ny. l cch hot ng ca IC dch bit 74HC595. 3> Mch iu khin tn hiu cho LED ma trn: Do s dng nhiu LED hin th nn cn phi c transistor khuch i dng, trnh s dng dng trc tip ca PIC s khng v khng n nh. Mch ni PIC qua 74HC595 v LED ma trn s dng transistor 2N3904:

Trong hnh trn th mnh ch mi ni 2 chn u ca LED ma trn vi 2 transistor, cn 8 chn iu khin hng th cn 8 transistor ni ging nhau nh th. Nu c 2 LED ma trn, th cc chn hng ca LED ma trn ni vi nhau v ni vi Transistor ging nh trn. 4> Nguyn l qut hng: Xt ci LED ma trn: Hong S Tn in t 3 K53

1 2 3 4 5 6 7 8

hin th ra ch A ny, chng ta qut hng nh sau: - Cho ngun vo chn hng th nht. Cc chn hng khc khng c ngun. Cho tn hiu cc t tri sang phi vo, th t l 11001111 (s 1 th LED tt, s 0 th LED sng), suy ra tn hiu a vo cc chn bn phi l 11110011 (th t ngc li). - Cho ngun vo chn hng th hai. Chn hng khc khng c ngun. Cho tn hiu tng t vi tn hiu cn vo cc chn pha bn phi: 11100001 (th t tn hiu ngc li vi LED sng). - Ln lt nh th n hng 8. Mi hng cho delay rt nh, c ms, nhng lp li vng ny nhiu ln, sao cho >24 hnh/s th mt ngi s khng thy nhy, s c ch A hon chnh. 5> Mch: Da vo nguyn l cc linh kin trn. V c mch nh km file. 6> Lp bng m ch: Dng Exel to bng:

Hong S Tn in t 3 K53

Gi s to ch A, nhng s 0 th LED sng:

Thm cc cn li l s 1 vo, chuyn sang m Hexa theo hng:

Hong S Tn in t 3 K53

Tng ng: Hng 1: 1100 1111 -> 0xCF Hng 2: 1000 0111 -> 0x87 Suy ra mng ch A: {0xCF,0x87,0x33,0x33,0x03,0x03,0x33,0x33} Lm tng t c cc ch khc, mi ch s l 1 mng 8 phn t (mi phn t l 1 chui tn hiu cn a vo chn bn phi ca LED tng ng vi 1 chu k qut 8 hng). 7> Thut ton: Gi 74HC595 pha trn, dng qut hng l row; 2 con 74HC595 pha di dng a tn hiu vo LED ma trn l column. a. Hm con a tn hiu vo 74hC595 column: y l hm con a 8 bit ca mi phn t ca mng ch ci, VD trn l mng ch A vo cc con 74HC595.

Hong S Tn in t 3 K53

Ch , mun a 1 tn hiu vo, cn cho tn hiu vo chn DS, r i cho 1 xung vo SH_CP. a 8 bit vo, cn vng for lp 8 ln, kt hp php dch. Sau khi a 8 bit vo xong, ta a xung vo chn ST_CP th s xut in p ra cc chn t Q0-Q7. VD: void sckr1() { SCKR=1; SCKR=0; } //-----------------------------------//Tao xung SCK cho cot //-----------------------------------void sckc1() { SCKC=1; SCKC=0; } //-----------------------------------//Tao xung xuat du lieu cho 595 hang //-----------------------------------void latr1() { LatR=1; LatR=0; } //-----------------------------------//Tao xung xung xuat du lieu cot //-----------------------------------void latc1() { LatC=1; LatC=0; } //-----------------------------------//Xuat data vao HC595 //-----------------------------------Hong S Tn in t 3 K53

void data1(int8 data) { for(i=0;i>1; sckc1(); //LatC1(); } LatC1(); }

b. Kt hp 2 loi HC595 hng v ct c ch nh mun. bi ny dng 2 LED ma trn, mnh s dng mng 16 bit hin th 1 lc 2 ch ci. VD code ca mnh: #include #device adc=8 #FUSES NOWDT //No Watch Dog Timer #FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD) #FUSES NOPUT //No Power Up Timer #FUSES MCLR //Master Clear pin enabled #FUSES NOPROTECT //Code not protected from reading #FUSES NOCPD //No EE protection #FUSES NOBROWNOUT //No brownout reset #FUSES IESO //Internal External Switch Over mode enabled #FUSES FCMEN //Fail-safe clock monitor enabled #FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O #FUSES NODEBUG //No Debug mode for ICD #FUSES NOWRT //Program memory not write protected #FUSES BORV40 //Brownout reset at 4.0V #FUSES RESERVED //Used to set the reserved FUSE bits #use delay(clock=20000000) #use fast_io(D) #use fast_io(C) #byte PORTD=0x08 Hong S Tn in t 3 K53

#byte PORTC=0x07 #bit C0=PORTC.0 #bit C1=PORTC.1 #bit C2=PORTC.2 #bit D5=PORTD.5 #bit D6=PORTD.6 #bit D7=PORTD.7 #define SCKR C0 #define LatR C1 #define DataR C2 #define SCKC D7 #define LatC D6 #define DataC D5 int8 i=0; int8 chu1,chu2; int8 BangChu[16]={0xCF,0x87,0x33,0x33,0x03,0x03,0x33,0x33, //chu A 0x1F,0x6F,0x6F,0x1F,0x6F,0x6F,0x6F,0x1F};//chu B int16 BangChu2[8]={0xCF1F,0x876F,0x336F,0x331F,0x036F,0x036F,0x336F,0x331F}; //-----------------------------------//Tao xung SCK cho hang //-----------------------------------void sckr1() { SCKR=1; SCKR=0; } //-----------------------------------//Tao xung SCK cho cot //-----------------------------------void sckc1() { SCKC=1; SCKC=0; } //-----------------------------------//Tao xung xuat du lieu cho 595 hang Hong S Tn in t 3 K53

//-----------------------------------void latr1() { LatR=1; LatR=0; } //-----------------------------------//Tao xung xung xuat du lieu cot //-----------------------------------void latc1() { LatC=1; LatC=0; } //-----------------------------------//Xuat data vao HC595 //-----------------------------------void data1(int16 data) { for(i=0;i>1; sckc1(); //LatC1(); } LatC1(); } //-----------------------------------//--------Hien thi 2 chu-------------//-----------------------------------void DispA(int8 chu2) { data1(BangChu2[chu2+0]);DataR=1;sckr1();LatR1();delay_ms(2); data1(0xFFFF);data1(0xFFFF); data1(BangChu2[chu2+1]);DataR=0;sckr1();LatR1();delay_ms(2); data1(0xFFFF);data1(0xFFFF); data1(BangChu2[chu2+2]);DataR=0;sckr1();LatR1();delay_ms(2); data1(0xFFFF);data1(0xFFFF); data1(BangChu2[chu2+3]);DataR=0;sckr1();LatR1();delay_ms(2); data1(0xFFFF);data1(0xFFFF); Hong S Tn in t 3 K53

data1(BangChu2[chu2+4]);DataR=0;sckr1();LatR1();delay_ms(2); data1(0xFFFF);data1(0xFFFF); data1(BangChu2[chu2+5]);DataR=0;sckr1();LatR1();delay_ms(2); data1(0xFFFF);data1(0xFFFF); data1(BangChu2[chu2+6]);DataR=0;sckr1();LatR1();delay_ms(2); data1(0xFFFF);data1(0xFFFF); data1(BangChu2[chu2+7]);DataR=0;sckr1();LatR1();delay_ms(2); data1(0xFFFF);data1(0xFFFF); } void main() { int j=0; set_tris_C(0x00); set_tris_D(0x00); while(1) { chu2=0; DispA(chu2); } }

Kt qu:

Do ang th nn font khng c p lm.

Hong S Tn in t 3 K53

Mnh ch mi lm n y, cha c hiu ng g. Cc bn c th thm bt, kt hp c hiu ng ch chy. C nhiu thut ton xut tn hiu khc nhau nn c th s dng hm con khc, cn c k. Do mnh cng cha lm c nn cng cha gii thiu ra y. Mong cc bn tm hiu thm.

Hong S Tn in t 3 K53