You are on page 1of 18

Hng dn vit code cho LED ma

trn 8x8 bng thanh ghi dch 74HC595


S 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

th ni ngun.

- Chn

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<8;i++)
{
DataC=data&1;
data=data>>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 <16F887.h>
#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<16;i++)
{
DataC=data&1;
data=data>>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

You might also like