Professional Documents
Culture Documents
Thiet Ke Bang Quang Cao Led Su Dung VI Dieu Khien Atmega16
Thiet Ke Bang Quang Cao Led Su Dung VI Dieu Khien Atmega16
KHOA IN IN T
TT NGHIP
ti:
NGUYN VN BO
Lp CCQ1306B
TP H Ch Minh, 12-2015
B CNG THNG
TRNG C CNG THNG TP HCM
---------------------------------------------
c lp - T do - Hnh phc
---------------------------------
NHIM V N TT NGHIP
Ngnh: .........
u n:
......
.
.....
3.
...
...
...
4.
...
..
..
5.
6.
7.
Ch nhim B mn
thng
nm
thng
nm
Cn b phn bin
1
B GIO DC V O TO
TRNG I HC BCH KHOA H NI
---------------------------------------------------
BN NHN XT N TT NGHIP
H v tn sinh vin:
.............
NGUYN VN BO
............
S hiu sinh
vin: .....2113060068......
Ngnh: .................................................................................................. Kho: .............. 49 .........................
Ging vin hng dn:....................... TS. O VN PHNG ....................................................
Cn b phn bin: .......................................................................................................................................
1. Ni dung thit k tt nghip:
...................................................................................................................................................................................................
...................................................................................................................................................................................................
...................................................................................................................................................................................................
...................................................................................................................................................................................................
...................................................................................................................................................................................................
...................................................................................................................................................................................................
......................................................................................................................
Ngy
thng
nm
Cn b phn bin
Li ni u
Qung bo c s dng trong rt nhiu lnh vc ca i sng x hi . Hu
nh i u ta cng c th thy nhng bng qung co vi nhiu hnh thc khc
nhau. Vi mc ch lm ni bt ln sn phm ca mnh c khi tri sng hay ti
ngi ta s dng rng ri cc bng qung co in t. Bng qung bo in t c
nhiu loi , c s dng trong nhiu lnh vc khc nhau , c kh nng hin th hnh
nh v mu sc phong ph . Tuy nhin do iu kin c hn nn trong n ny
chng em mong mun tm hiu v nguyn l thit k mt bng qung co in t c
kh nng iu khin hin th cc k t theo nh mong mun v thit k mt module
led qung bo c nh th nghim.
u tin chng em xin cm n s hng dn ch bo tn tnh ca thy
Nguyn Tin Dng . Thy cung cp cho chng em cc ti liu v ti gip
chng em d dng hn trong qu trnh tm hiu n . Trong qu trnh lm thc
hin n thy ch bo chng em mi khi gp kh khn n c th hon
thnh.
Chng em cng xin cm n cc thy c gio trong khoa tn tnh dy d
chng em trong nhng nm hc va qua gip chng em c nhng kin thc c
s lm n ny.
Sinh vin
NGUYN VN BO
Tm tt n
Ni dung chnh ca n l vic iu khin hin th led ma trn. Khi iu
khin hin th led ma trn c 2 phng php cp ngun theo tng hng hay tng
ct. n s tp trung trnh by v phng php cp ngun theo tng ct . Vic cp
ngun cho cc ct c thc hin bng cch s dng IC gii m 74HC138 , cp
ngun cho cc hng trong ct c thc hin bng cch s dng b ghi dch
74HC595. D liu m ha cp ngun cho cc hng trong ct c gi ra b ghi
dch thng qua vic s dng SPI ca vi iu khin. Vic iu khin thi gian cp
ngun cho ma trn to tc qut c thc hin bng cch s dng b nh thi.
Phn cui ca n s trnh by v cch to mt s hiu ng cho ma trn led khi s
dng phng php cp ngun theo ct.
Project abstract
The main content of this project is led matrix display control. There has two
power supply methods for controlling the led matrix : row by row or column by
column . In this project , I will introduce the column once. When using this method,
the 74HC138 decoder is used to power for each column and the 74HC595 shift
register is used to power every row in the column which is chosen by 74HC138.
The data which is coded the power suply for every row in each column is tranfered
to the shift register by using the SPI of the microcontroller. Timing to power the led
matrix can be done by using the timer/counter of the microcontroller. This is the
simple method to controll the scan rate for led matix display. Some led matrix
display effects will be presented in the final part of this document.
Mc lc
Li ni u...............................................................................................................1
Tm tt n...........................................................................................................2
Danh sch cc hnh v.............................................................................................5
Danh sch cc bng.................................................................................................6
Danh sch cc cng thc.........................................................................................7
Phn m u............................................................................................................8
Chng 1 : Gii thiu chung................................................................................10
1.1) Qung co....................................................................................................10
1.2) Bng led qung bo......................................................................................11
1.2.1) Mt s c trng....................................................................................11
1.1.2) Qung co bng led................................................................................12
1.3) Gii thiu chung v h thng........................................................................16
Chng 2 : Gii thiu v vi iu khin AVR Atmega16.....................................19
2.1) Gii thiu v vi iu khin h AVR...............................................................19
2.1.1) Mt s c trng....................................................................................19
2.1.2) Mt s c trng....................................................................................20
2.1.3) Mt s c trng....................................................................................22
2.1.4) Mt s h vi diu khin AVR.................................................................23
2.2) S b v vi iu khin Atmega16..................................................................23
2.2.1) c trng...............................................................................................25
2.2.2) CPU.......................................................................................................27
2.2.3) B nh....................................................................................................34
Chng 3 : Nguyn tc iu khin led ma trn...................................................39
3.1) Cu trc v nguyn l cp ngun cho led ma trn.......................................39
3.2) Nguyn tc to font ch hin th...................................................................40
3.3) iu khin hin th led ma trn....................................................................41
Chng 4: iu khin cp ngun cho led ma trn..............................................44
4.1) iu khin cp ngun cho ct dng 74HC138.............................................44
4.1.1) Chc nng ca 74HC138.......................................................................44
4.1.2) S dng 74HC138 cp ngun cho cc ct ma trn............................45
4.2) iu khin cp ngun cho hng dng 74HC595..........................................47
3
Phn m u
Qung co lun l mt trong cc vn ng vai tr quan trng trong s
pht trin ca mt cng ty, doanh nghip hay thm ch l ca mt ca hng. Qung
co tt s em li nhiu li ch to ln. Cng chnh v vy m khng ngc nhin khi
hng nm cc doanh nghip u t rt nhiu vo vn ny. Mt trong nhng
bin php c a dng hin nay l s dng bng qung co bng n LED, v
s n gin, hin i, bt mt, chi ph hp l cng nh tnh hiu qu ca n. Nhng
bng thng tin, cng cho hay nhng bng LED qung co vi mu sc sc s, bt
mt, gy nhiu ch chc hn khng cn xa l i vi ngi dn, nht l ngi
dn th.
Qung co bng n LED hin nay c ng dng rt rng ri trong nhiu
ngnh, nhiu lnh vc. N khng ch gii hn bi vic hin th cc dng ch, cc
bin hiu nhp nhy m cn c th hin th cc hnh nh ha, cc hnh nh full
colour v c bit l c th hin th c c video. N cng khng ch gii hn
trong vic qung co trong nh (indoor), bn ngoi tri (semi outdoor ) m cn c
th qung co c ngoi tri, ngay gia ban ngy vi sng v sc nt cao.
(Chng I s gii thiu chi tit hn v vn qung co bng n LED).
Tuy nhin do cn hn ch v nhiu mt nn trong n ny chng em ch
gii hn vic hin th cc dng ch c truyn t my tnh xung vi nh dng
font ting anh lu sn trong b nh Flash ca AVR v mt s hiu ng hin th
c bn.
Trong 2 chng u tin ca n chng em s gii thiu chung v qung
co bng bng LED, gii thiu h thng cng nh s lc v vi iu khin AVR v
h ATMega 16. Cc chng tip theo chng em s trnh by v ng gp ca mnh
cho ti. Cc khi khuch i cng sut v giao tip my tnh s c bn Bi
Lu Qunh v Nghim Xun Quyn s trnh by nn trong n ny em s tp
trung trnh by v vic iu khin hin th, cht d liu cho ma trn :
10
Bo ch.
Pht thanh.
Qung co trc tuyn.
Qung co qua bu in.
Qung co trn cc phng tin vn chuyn.
Qung co qua cc trang vng.
Qung co trn t ri, p phch, pano hay bng rn.
Qung co trn bao b sn phm.
Qung co qua cc th gi trc tip.
Qung co truyn ming.
Qung co bng n LED.
1.2.1) Mt s c trng
LED (Light Emitting Diode i t pht quang) l cc loi i t c kh nng
pht ra nh sng hay tia hng ngoi, t ngoi. Cng ging nh i t, LED c cu
to t mt khi bn dn loi P ghp vi mt khi bn dn loi N.
11
12
14
L bng thng tin in t thit k chuyn dng cho tng ngnh (c bit l
ngn hng), sn phm c s dng rng ri cc s giao dch, phng giao dich,
l phng tin tt gip cho vic trao i t gi nhanh, thun tin. Bng c nhiu
tnh nng d s dng v thay i thng tin qua my tnh.
Bng qung co mn hnh Full Colour :
Sn phm mn hnh Full Colour l dng sn phm mi, ng dng nhng
cng ngh khoa hc tin tin nht ca ngnh LED hin nay. Sn phm c ng
dng trong mi lnh vc ca x hi nh vn ha, truyn thng, th thao, du lch.
sc thng tin hin th trn bng in t thay i theo tng m chng khon v ph
thuc vo s tng gim gi ca m chng khon . iu ny gip cho mi ngi
theo di thng tin chng khon mt cch d dng hn.
Khng ch c vy ngy nay bng LED qung co cn c ng dng trong
nhiu ngnh, lnh vc khc na nh : bng thng tin nghip v cho ngnh du lch,
bu in in t, ngn hng in t, bng kt qu x s kin thit, bng t s thi
u th thao, bng in t dng cho tn hiu giao thng vi kiu dng phong ph,
thit k hin i v hiu ng bt mt cho hiu qu cao trong lnh vc qung co.
Tuy nhin, do hn ch v nhiu mt cng nh nh hng ca suy thoi kinh
t ton cu nn hin nay Vit Nam xut hin khng nhiu cc bng, bin qung
co hin th video, nhng cc bng qung co hin th dng text dng gii thiu,
qung b thng hiu hay hin th thng tin v cc loi hnh dch v, sn phm
(mc li xut ngn hng, thng tin ti sn giao dch chng khon, thng tin v
thi gian biu ti sn bay, kt qu cc trn bng ) th vn ang pht trin mnh
m. c im u vit ca loi hnh ny l d dng thay i, cp nht ni dung cn
hin th bng phn mm.
16
17
18
2.1.2) Mt s c trng
AVR c cu trc Havard trong ng truyn cho b nh d liu (data
memory bus) v ng truyn cho b nh chng trnh (Program memory bus)
c tch ring. Data memory bus ch c 8 bit v c kt ni vi hu ht cc thit
b ngoi vi, cc Register File. Trong khi , program memory bus c rng 16 bit
v ch phc v cho thanh ghi lnh (instruction register).
B nh chng trnh (program memory) l b nh Flash lp trnh c.
Trong cc loi AVR c nh AT90S1200 b nh chng trnh ch gm mt phn l
Application Flash Section cn trong cc loi AVR mi c thm phn Boot Flash
Section. Chc nng chnh ca b nh chng trnh l cha cc lnh (instruction)
nn chng ta khng c nhiu c hi tc ng nn b nh ny khi lp trnh cho chip.
Cng chnh v vy m i vi ngi lp trnh th b nh ny khng qu quan
trng. Tt c cc thanh ghi quan trng cn kho st nm trong b nh d liu ca
chip.
21
2.1.3) Mt s c trng
23
S khi
2.2.1) c trng
c ch to theo kin trc RISC hiu sut cao m in nng tiu th thp
Tp lnh gm 131 lnh, hu ht u ch thc thi trong 1 chu k xung nhp.
B nhn hai chu k.
32 x 8 thanh ghi lm vic a dng.
Hot ng tnh
16 MIPS vi thng lng 16MHz
8KB Flash ROM lp trnh c ngay trn h thng :
Giao din ni tip SPI c th lp trnh ngay trn h thng.
Cho php 1000 ln ghi/xa.
B EEPROM 512 byte, cho php 100.000 ln ghi/xa
16 Kbyte b nh chng trnh in-System Self-programmable Flash.
Chu k ghi/xa (Write/Erase) :10.000 Flash/ 100.000 EEPROM.
ti a .
Tc x l lnh n 8 MIPS 8 MHz ngha l 8 triu lnh trn giy.
B nh thi gian thc (RTC) vi b dao ng v ch m tch bit
2 b Timer 8 bit v 1 b Timer 16 bit vi ch so snh v chia tn s
tch bit v ch bt mu.
4 knh iu ch rng xung PWM.
C n 13 interrupt ngoi v trong.
B so snh Analog.
26
2.2.2) CPU
Kin trc AVR ni chung, cc chc nng chnh ca CPU m bo s thc thi
chnh xc process. CPU phi c kh nng truy xut b nh, thc hin tnh ton, iu
khin thit b ngoi vi v cc knh ngt.
Trong th t thc hin song song, AVR s dng kin trc Harvard vi b
nh tch ri gia hai lung process v d liu. Cc ch lnh trong b nh process
c thc hin vi nhng mc pipeline n. Trong khi mt lnh dang thc thi, lnh
tip theo s c tm np trc t b nh process. Khi nim ny cho php cc lnh
s c thc hin trong mi chu k xung. B nh process l h thng b nh Flash
lp trnh li c. Truy xut nhanh thanh ghi File cha 32*8 bit thanh ghi lm vic
a nng vi mt chu k xung n truy xut thi gian. iu ny cho php b tnh
ton ALU lm vic n chu k.
28
29
Bit
30
I
Read/Write
Khi to
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Bit 7-I : cho php ngt ton cc. Khng cho php ngi s dng t
xa. Ch b xa khi c ngt mi xut hin v c ch dn bi RETI cho
nhng ngt k tip. C th c t hoc c xa bi SEI v CLI.
Bit 6-T : bit lu tr. C th chp t BST sang BLD v ngc li.
Bit 5-H : C nh na H s dng nh na hu ch trong php tnh s
BCD.
Bit 4-S : tn hiu bit S = N V
Bit 3-D : 2 c trn
Bit 2-N : c ph nh.
Bit 1-Z : c zero
Bit 0-C : c nh.
31
Bit
14
13
12
11
10
SP15
SP14
SP13
SP12
SP11
SP10
SP9
SP8
SP7
SP6
SP5
SP4
SP3
SP2
SP1
SP0
3
R /W
R /W
0
0
2
R/W
R/W
0
0
1
R/W
R/W
0
0
R/W
R/W
0
0
R/W
R/W
0
0
Read/Write
Khi to
15
4
R/W
R/W
0
0
R/W
R/W
0
0
0
R/W
R/W
0
0
32
d liu trong b xung ca kin trc AVR nh nn ch s dng thanh ghi SPL,
trong trng hp ny khng c thanh ghi SPH.
2.2.2.5 Reset v x l ngt.
AVR cung cp vi ngun ngt khc nhau. Cc ngt ny c vector Reset ring
bit vi vector process. Tt c cc ngt ghi mc logic 1 cng vi ngt ton cc.
Trong thanh ghi trng thi cc bit cho php ngt ph thuc gi tr Counter process.
Cc ngt c th t ng b cm khi khi ng kha bit BLB02 hoc BLB12.
Khi mt ngt xut hin, ngt ton cc cho php I-bit xa v tt c cc ngt
cn li b cm. S dng phn mm c th ghi logic 1 cho I-bit cho php ngt. Tt c
cc ngt c cho php c th ngt thng trnh. I-bit t ng c lp khi mt
lnh ngt tr li thc thi t RETI.
C hai kiu ngt c bn.
Kiu 1 : hot ng bi 1 s kin lp bi c ngt. Vi mi ngt Counter
process l mt vector ti vector ngt hin ti trong th t thc thi, phn cng
s xa c ngt. Cc c ngt c th b xa bi ghi logic 1 ti v tr bit c
xa. Nu iu kin mt ngt xut hin trong khi cho php ngt bit b xa th
c ngt s c lp v nh n khi ngt cho php hoc c ngt b xa bi
phn mm. Tng t, iu kin cc ngt xut hin trong khi bit
GIE(Global Interrupt Enable) b xa th c nh s lp v nh n khi bit GIE
c lp.
Kiu 2 : cc ngt s c hot ng nu iu kin ngt c mt. Nhng
ngt ny khng cn c c ngt. Nu iu kin ngt khng xut hin trc khi
ngt cho php ngt s khng c hot ng.
Khi AVR thot khi 1 ngt, n s lun tr v process chnh v thc thi hn
mt lnh trc khi tm dng ngt. Ch thanh ghi trng thi khng t ng lu tr
khi vo mt th tc ngt v cng khng t phc hi khi thot ra khi th tc. Khi s
dng lnh CLI cm cc ngt th ngt s khng trc tip b cm. Khng c ngt
c thc thi sau lnh CLI ngay c khi xut hin ng thi vi lnh. Xem v d
sau :
Ghi bng Assembly
33
Ghi bng C
Ghi bng C
34
2.2.3) B nh
Phn ny m t cc b nh khc nhau trong Atmega16. Kin trc AVR c 2
b nh chnh : b nh d liu v b nh process. B xung thm vo c tnh AVR
mt b nh EEPROM lu tr d liu.
2.2.3.1 H thng b nh lp trnh li Flash
Atmega16 cha 16 K bytes On-Chip trong h thng b nh lp trnh li
Flash lu tr process. Cho AVR 16 hoc 32 bit th b nh flash l 8K*16. B nh
Flash c kh nng ghi/ xa 1000 ln cho mi vng. Atmega16 c Counter 13 bit
cng vi 8K a ch process.
Hnh 2 - S b nh process
2.2.3.2 B nh d liu SRAM
C ti 1120 a ch nh cho b nh nhp xut, thanh ghi file v SRAM
ni. 96 ng a ch u tin dnh ring cho thanh ghi file v b nh vo ra v cn
1024 ng a ch cn li cho SRAM ni.
35
Hnh 2 - S b nh d liu
36
Bit
Bit
Khi to
13
12
11
10
EEAR8
EEAR7
EEAR6
EEAR5
EEAR4
EEAR3
EEAR2
EEAR1
EEAR0
R
R/W
0
X
R/W
R/W
X
X
Read/Write
14
4
R
R/W
0
X
R
R/W
0
X
R
R/W
0
X
R
R/W
0
X
0
R
R/W
0
X
R
R/W
0
X
Bit
MSB
Read/Write
Khi to
LSB
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Read/Write
Khi to
EERIE
2
EEMWE
R/W
R/W
R/W
R/W
R/W
R/W
EEWE
EERE
R/W
R/W
EEPROM. Khi a ch v d liu a ln chnh xc, bit EEWE phi ghi ln 1. Bit
EEMWE phi ghi ln 1 trc khi logic 1 c ghi cho EEWE. Cc bc cn lm
khi ghi EEPROM. (bc 3 v 4 c th b qua).
i n khi EEWE tr v 0.
i n khi SPMEN trong SPMCR tr v 0.
Ghi a ch mi EEPROM ti EEAR (ty chn).
Ghi d liu mi EEPROM ti EEAR (ty chn).
Ghi logic 1 ti bit EEMWE trong khi ghi EEWE trong EECR v 0.
Trong 4 chu k xung ng h sau khi lp EEMWE ghi logic 1 cho
EEWE.
Bit 0 EERE : EEPROM cho php c
Tn hiu cho php c EERE c tn hiu tra cu ti EEPROM. Khi a ch
ng th lp ln thanh ghi EEAR, bit EERE phi ghi logic 1 khi ng
EEPROM c. S truy xut EEPROM c cn 1 lnh v yu cu d liu c gi tr
trc tip. Khi EEPROM c c CPU b dng trong 4 chu k trc khi lnh tip
c thc thi. Ngi s dng cn phi kim tra bit EEWE trc thao tc c. Nu
ghi hot ng trong tin trnh th khng ci no c th c EEPROM, cng khng
th thay i thanh ghi EEAR. B dao ng chun c s dng ly thi gian
truy xut EEPROM.
2.2.3.4 B nh I/O :
Tt c cc Atmega16 I/O v cc thit b ngoi vi trong khng gian I/O. V tr
I/O c truy xut bi lnh IN v OUT, s chuyn d liu gia 32 thanh ghi h tr
38
lm vic v khng gian I/O. Nhng thanh ghi I/O thuc phm vi a ch 00$ - $1F
l bt truy xut trc tip s dng cc lnh SBI v CBI. Trong cc thanh ghi gi tr
cc bit n c kim tra bi cc lnh SBI v CBI.
39
Nhn
vo
mun hin th ch
H
H
Ct 5: L ,
R phi cp ngun
H
tng ct nh sau :
H
H,H,L,L,L,H
,L
Ct 4: H , L , L , H , L , H , L , L
Ct 3: H , L , L , H , H , L , L , L
Ct 2: H , L , L , H , L , L , L , L
Ct 1: H , H , H , H , H , H , H , L
Cc led trong cc ct khc c cp in p mc thp .
Cc gi tr ny cn c lu li trong b nh ca vi iu khin khi cn ta
c th ly ra. Ta c th lu cc gi tr ny thnh tng byte trong b nh theo trt t
t hng 1 ti hng 8 hay ngc li. V d ct 1 ta lu theo th t t hng mt ti 8
th lu gi tr 0F8H cn nu ngc li th l 7FH .
Vic m ha font ph thuc vo cch cp ngun cho ma trn led. Nu ta cp
ngun cho tng ct ca ma trn led sng ln lt th font ch phi lu cc gi tr
logic m ha cch cp ngun cho tt c cc led trong ct . Gi s ta m ha font 6
ct 8 hng ( 5 ct m ha ch 1 ct to khong cch 2 ch k tip) nh nu trong
nguyn tc iu khin led th mi k t cn 6 byte d liu lu.
41
B2: Bt u vi ct i=1.
42
43
44
45
E1
E2
u vo
E3
A0
X
X
X
L
X
L
X
H
X
L
X
L
X
L
H
L
H
H
H
H
H
H
H
H
H
H
H
H
H
H
A1
X
A2
X
Y0
H
Y1
H
Y2
H
u ra
Y3 Y4
H
H
Y5
H
Y6
H
Y7
H
46
47
48
MR
DS
u ra
Q7 Qn
Chc nng
MR mc thp d liu ch dch
X
X
L
L
H
L
L
L
X
X
X
L
L
L
Q6
Qn
Q6
Qn
cc chn DS,SH_CP,ST_CP ca
50
51
Bit
SPIE SPE
Read/Write
Khi to
DORD
R/W
R/W
R/W
MSTR
R/W
0
R/W
R/W
R/W
0
Leading Edge
Rising
Failing
Trailing Edge
Failing
Rising
Leading Edge
Sample
Setup
Trailing Edge
Setup
Sample
SPR1
SPR0
Tn s SCK
54
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
fosc/4
fosc/16
fosc/64
fosc/128
fosc/2
fosc/8
fosc/32
fosc/64
Bit
Read/Write
SPIF
WCOL -
R/W
Khi to
SPI2X
MSB
Read/Write
Khi to
R/W
X
LSB
R/W
X
R/W
R/W
R/W
R/W
R/W
X
R/W
X
55
4.3) Kt lun
Khi cp ngun cho ma trn ty theo kch thc ca ma trn m ta c th s
dng nhiu phng php khc nhau. Vi cc ma trn nh ta c th s dng cc
chn ca vi iu khin trc tip iu khin vic cp ngun cho ma trn. Vi ma
trn ln th cn phi dng cc IC h tr cho vic iu khin cp ngun cho ma trn.
Khi cp ngun cho ma trn theo tng ct th ta c th s dng cc IC c tc dng
chn knh cp ngun cho ma trn, ti mi thi im mi IC ny ch cp ngun
cho 1 ct ca ma trn . i vi cc hng trong ct th ta c th dng cc b ghi dch
cp ngun. Khi cp ngun th ta cn ch vic cp pht d liu ca cc hng
phi tng ng vi ct c cp ngun.
a) Ch thng thng :
Ch hot ng n gin nht ca Timer l ch thng (WGM13:0 =
0). Trong ch ny b m lun m ln v khng c xa. B m trn khi
m qua gi tr max (MAX= 0xFFF) v tr li BOTTOM (0x0000). Trong ch
ny Timer/Counter Overflow Flag (TOV1) s c thit lp ngay khi TCNT1 tr v
0. Trong trng hp ny c TOV1 hot dng nh bit th 17 ca b m nn n
khng t xa. Tuy nhin khi kt hp vi ngt trn Timer c ny c th t ng xa,
phn gii ca Timer c th tng ln bi phn mm.
Khi bt tn hiu u vo kh d s dng ch thng nhng cn phi
ch ti khong thi gian ln nht gia cc s kin ngoi, khong thi gian ny
phi khng vt qu phn gii ca b m. Nu khong thi gian gia cc s
kin qu di ta c th dng ngt trn hay tng rng xung m c th m rng
phn gii cho khi ny .
58
59
f OCnA
f clk _ I / O
2.N .(1 OCRnA)
RFPWM
log(TOP 1)
log(2)
60
fOCnxPWM
log(TOP 1)
log(2)
Bit
FOC1A
FOC1B
WGM11
WGM10
COM1A1
COM1A0
COM1B1
COM1B0
R/W
R/W
R/W
R/W
R/W
R/W
Read/Write
Khi to
COM1A0/
COM1B1
COM1B0
M t
Port hot ng thng thng.Khng kt ni
OC1A/OC1B.
Xa OC1A/OC1B
Thit lp OC1A/OC1B
63
WGM13 WGM12
WGM11
WGM10
Ch hot ng ca timer
TOP
Cp nht
Thit lp
OCR1X
c TOV1
Thng
0xFFFF
Lp tc
MAX
0x00FF
TOP
BOTTOM
0x01FF
TOP
BOTTOM
0x03FF
TOP
BOTTOM
CTC
OCR1A
Lp tc
MAX
0x00FF
TOP
TOP
0x01FF
TOP
TOP
0x03FF
TOP
TOP
10
ICR1
TOP
BOTTOM
11
OCR1A
TOP
BOTTOM
12
CTC
ICR1
Lp tc
MAX
13
Reserved
14
Fast PWM
ICR1
TOP
TOP
15
Fast PWM
OCR1A
TOP
TOP
ICR1
BOTTOM BOTTOM
2.TCCR1B:
Bit
Read/Write
Khi to
ICNC11
ICES1
WGM13
WGM12
CS12
CS11
R/W
R/W
R/W
0
0
CS10
R/W
R/W
R/W
R/W
64
CS11
0
0
1
1
0
0
1
1
CS10
0
1
0
1
0
1
0
1
M t
Timer khng hot ng
clk I/O /1 ( khng chia tn )
clk I/O /8 ( t b chia tn )
clk I/O /64 ( t b chia tn )
clk I/O /256 ( t b chia tn )
clk I/O /1024( t b chia tn )
Ngun ngoi t chn T1 , sn ln
Ngun ngoi t chn T1 , sn xung
3.TCNT1H/L:
7
Bit
R/W
R/W
TCNT1[15:8]
TCNT1[7:0]
Read/Write
Khi to
R/W
R/W
R/W
R/W
R/W
R/W
0
Bit
R/W
R/W
OCR1A[15:8]
OCR1A[7:0]
Read/Write
R/W
R/W
Khi to
R/W
R/W
R/W
R/W
5.OCR1BH/L:
7
Bit
R/W
R/W
R/W
OCR1B[15:8]
OCR1B[7:0]
Read/Write
R/W
R/W
R/W
R/W
R/W
Khi to
Cc thanh ghi OCR1x c lin tc so snh vi thanh ghi TCNT1 . Mi khi bng
nhau c th to ra 1 ngt so snh u ra hay thay i dng sng ti cc chn u
ra OC1x .
6.TIMSK:
Bit
Read/Write
Khi to
OCIE2
TOIE2
TICE1
R/W
R/W
R/W
R/W
OCIE1A
3
OCIE1B
TOIE1
R/W
0
OCIE0
R/W
0
0
TOIE0
R/W
0
7
OCF2
Read/Write
Khi to
6
TOV2
5
ICF1
OCF1A
OCF1B
TOV1
R/W
R/W
R/W
OCF0
R/W
R/W
TOF0
R/W
R/W
67
CS11
CS10
OCR1A
TCCR1B
23040
0x09
2880
0x0A
360
0x0B
90
0x0C
22
0x0D
5.3) Kt lun
Tc qut ma trn nh hng hnh nh quan st c trn ma trn. Do
vic to tc qut hp l c vai tr quan trng trong vic iu khin hin th led
ma trn. Dng b nh thi l phng php n gin nht iu khin tc qut
mt cch chnh xc. Vic thit lp cc thng s cho b nh thi mt cch linh hot
s gip ta d dng hn trong vic iu khin tc qut cho ma trn.
69
71
72
74
76
77
78
79
6.5) Kt lun
Vic s dng 2 mng d liu mt mng lu ton b khung hnh, mt mng
lu hnh nh tc thi s gip vic to cc hiu ng n gin hn. X l cc d liu
trn mng th nht ri lu vo mng th 2 a ra hin th s cn mt lng b
nh ln khi s lng k t v kch thc ca font ch tng. Do khi to cc hiu
ng v iu khin hin th cn phi ch n kch thc b nh. Nu cn c th
dng thm cc b nh ngoi hoc chn cc vi iu khin c b nh ln c th
to hiu ng cn thit. Cc bng in t thng dng thng ch hin th mt ni
dung c nh nn ta c th s dng b nh flash (c kch thc kh ln ) lu gi
tr ca mng th nht, thm ch c th lu ton b cc khung cn hin th. Khi ta
ch cn iu khin vic xut d liu theo a ch hin th.
i vi phng php cp ngun theo tng ct th vic to cc hiu ng dch
tri, dch phi kh n gin v vic m rng ma trn khng nh hng nhiu n
vic gn d liu nhng vi cc hiu ng dch ln xung kh phc tp khi m rng
ma trn. Tuy nhin nu ch s dng mt hiu ng cho ma trn th vi hiu ng dch
ln, xung ta c th chn phng php cp ngun theo tng hng. Khi cn phi
xy dng font ch theo tng hng v phi xp xp li cc ma trn led ( xoay 90
so vi khi cp ngun theo ct ).
80
Kt lun
Module iu khin hin th hon thnh , v t c nhng kt qu
sau:
- C kh nng iu khin hin th 2 chui k t trn hai hng ma trn,
c kh nng iu khin hin th ma trn c rng ln hn.
- C kh nng hin th cc dng k t vi ba mu xanh, v cam.
- C kh nng iu khin hin th cc k t vi mt s hiu ng c
bn. Thut ton iu khin hin th hiu ng c th s dng khi m rng ma trn v
c th lm c s to cc hiu ng phc tp hn.
- C kh nng thay i tn s qut ma trn .
Tuy nhin module vn cn mt s gii hn :
- C th hin th cc k t trn hai dng nhng li c lp vi nhau.
Do khi gp phi mt s yu cu v vic hin th 2 dng ch c tng quan
nht nh th cn phi thay i v vic iu khin xut d liu.
- Tuy c th thay i mu ca dng ch hin th nhng li cha iu
khin c mu sc ca tng k t. Vn ny c th d dng khc phc khi hin
th cc k t tnh, nhng khi cn iu khin cc k t ng th s kh khn trong
vic iu khin mu sc.
- Do qu trnh iu khin hin th cn c giai on ly mu li d liu
nn khi iu khin hin th ma trn c kch thc ln c th gy nh hng n vic
iu khin tn s qut .
Trong ti c th c mt s vn hp l hay cha ti u v cc thut ton
iu khin hin th v s dng b nh ca vi iu khin. Do em rt mong c s
gp ca cc thy c v cc bn n c th hon thin hn.
81
82
83
U5
74HC595
MR
OE
ULN2803
COM
1C
2C
3C
4C
5C
6C
7C
8C
10
18
17
16
15
14
13
12
11
10
18
17
16
15
14
13
12
11
10
18
17
16
15
14
13
12
11
470uF
10
13
1B
2B
3B
4B
5B
6B
7B
8B
COM
1C
2C
3C
4C
5C
6C
7C
8C
U2
ST_CP
1
2
3
4
5
6
7
8
1B
2B
3B
4B
5B
6B
7B
8B
COM
1C
2C
3C
4C
5C
6C
7C
8C
GND
12
15
1
2
3
4
5
6
7
9
1
2
3
4
5
6
7
8
1B
2B
3B
4B
5B
6B
7B
8B
ULN2803
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
Q7'
15
1
2
3
4
5
6
7
9
1
2
3
4
5
6
7
8
33pF
SH_CP
DS
MR
OE
ST_CP
74HC595
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
Q7'
15
1
2
3
4
5
6
7
9
220v
11
14
10
13
12
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
Q7'
U4
SH_CP
DS
MR
OE
ST_CP
SH_CP
DS
U1
11
14
10
13
12
11
14
KHI CP NGUN:
TR1
7805
VI
VO
3
33pF
TRAN-2P5S
U3
ULN2803
U6
74HC595
SCK
MOSI
OC0
84
C3
1nF
P1
ERROR
6
2
RI
DTR
CTS
TXD
RTS
RXD
DSR
DCD
9
4
8
3
7
2
6
1
C2-
C2+
VSVS+
8
7
13
14
R2IN
T2OUT
R1IN
T1OUT
R2OUT
T2IN
R1OUT
T1IN
C1-
C1+
COMPIM
9
10
12
11
RXD
TXD
C6
1nF
C7
85
B1
A1
A2
A3
A4
A5
A6
A7
A8
A8
A7
C5
A6
C6
C[0..7]
C4
A5
C3
A4
C2
A3
A2
A1
C0
C1
U8
E1
E2
E3
74HC138
6
4
5
1
2
3
A
B
C
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
15
14
13
12
11
10
9
7
C0
C1
C2
C3
C4
C5
C6
C7
C[0..7]
C2
U7
9
33pF
13
12
C1
40
39
38
37
36
35
34
33
33pF
OC0
MOSI
SCK
1
2
3
4
5
6
7
8
RESET
XTAL1
XTAL2
PA0/ADC0
PA1/ADC1
PA2/ADC2
PA3/ADC3
PA4/ADC4
PA5/ADC5
PA6/ADC6
PA7/ADC7
PB0/XCK/T0
PB1/T1
PB2/INT2/AIN0
PB3/OC0/AIN1
PB4/SS
PB5/MOSI
PB6/MISO
PB7/SCK
PC0/SCL
PC1/SDA
PC2/TCK
PC3/TMS
PC4/TDO
PC5/TDI
PC6/TOSC1
PC7/TOSC2
PD0/RXD
PD1/TXD
PD2/INT0
PD3/INT1
PD4/OC1B
PD5/OC1A
PD6/ICP
PD7/OC2
AVCC
AREF
22
23
24
25
26
27
28
29
14
15
16
17
18
19
20
21
RXD
TXD
30
32
ATMEGA16
86
//0
//1
//2
//3
//4
//5
//6
//7
//8
//9
//A
//B
//C
//D
//E
//F
//G
//H
//I
//J
//K
//L
//M
//N
//O
//P
//Q
//R
//S
//T
//U
//V
//W
//X
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
31
33
34
87
96,16,15,16,96,0,
67,69,73,81,97,0,
4,42,42,42,28,0,
126,18,18,18,12,0,
28,34,34,34,20,0,
12,18,18,20,126,0,
28,42,42,16,0,0,
4,62,72,64,32,0,
24,37,37,37,30,0,
126,16,16,16,14,0,
0,92,2,2,4,0,
4,2,2,92,0,0,
126,8,20,34,0,0,
124,2,2,2,0,0,
30,32,30,32,30,0,
62,8,16,62,0,0,
28,34,34,34,28,0,
31,36,36,36,24,0,
24,36,36,36,31,0,
0,30,32,32,24,0,
18,42,42,42,36,0,
0,32,124,34,4,0,
60,2,2,2,60,0,
56,4,2,4,56,0,
56,2,12,2,56,0,
34,20,8,20,34,0,
48,8,14,8,48,0,
34,38,42,50,34,0,
0,0,0,0,0,0,
255};
//Y
//Z
//a
//b
//c
//d
//e
//f
//g
//h
//i
//j
//k
//l
//m
//n
//o
//p
//q
//r
//s
//t
//u
//v
//w
//x
//y
//z
//
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
88
void lm1() {
for (i=0;i<=sokt1-1;i++){
for (j=0;j<=5;j++) {
dong1[i*6+j]=~FONT[chuoi1[i]*6+j+1];
}
}
for (i=0;i<=sokt2-1;i++){
for (j=0;j<=5;j++) {
dong2[i*6+j]=~FONT[chuoi2[i]*6+j+1];
}
}
}
void lm2(){
for (i=0;i<=sokt1*6-1;i++){
dong1[i+sokt1*6]=dong1[i];
//dong1[i]=0;
dong1[i]=255;
}
for (i=0;i<=sokt2*6-1;i++){
dong2[i+sokt2*6]=dong2[i];
//dong2[i]=0;
dong2[i]=255;
}
}
void xulychuoi(){
for (i=0;i<sokt1;i++) {
if ((chuoi1[i]>47)&&(chuoi1[i]<58)) chuoi1[i]=chuoi1[i]-48;
else if ((chuoi1[i]>64)&&(chuoi1[i]<91)) chuoi1[i]=chuoi1[i]-55;
else if ((chuoi1[i]>96)&&(chuoi1[i]<123)) chuoi1[i]=chuoi1[i]-60;
else chuoi1[i]=62;
}
for (i=0;i<sokt2;i++) {
if ((chuoi2[i]>47)&&(chuoi2[i]<58)) chuoi2[i]=chuoi2[i]-48;
else if ((chuoi2[i]>64)&&(chuoi2[i]<91)) chuoi2[i]=chuoi2[i]-55;
else if ((chuoi2[i]>96)&&(chuoi2[i]<123)) chuoi2[i]=chuoi2[i]-60;
else chuoi2[i]=62;
}
}
void shiftleft(){
for (i=0;i<sokt1*12-1;i++){
dong1[i]=dong1[i+1];
}
89
//dong1[sokt1*12-1]=0;
dong1[sokt1*12-1]=255;
for (i=0;i<sokt2*12-1;i++){
dong2[i]=dong2[i+1];
}
//dong2[sokt2*12-1]=0;
dong2[sokt2*12-1]=255;
}
void shiftright(){
tg= dong1[sokt*12-1];
for (i=sokt1*12-1;i>0;i--){
dong1[i]=dong1[i-1];}
dong1[0]=tg;
tg= dong2[sokt*12-1];
for (i=sokt2*12-1;i>0;i--){
dong2[i]=dong2[i-1];}
dong2[0]=tg;
}
void UP(int k){
sokt=((sokt1>sokt2)?sokt1:sokt2);
if (k<8)
for (i=0;i<=sokt*6-1;i++){
dong1[i]=0xFF;
dong2[i]=(dong1[i+sokt*6]>>(8-k))|(0xFF<<k);
}
else if ((k>7)&&(k<16)) {
m=k-8 ;
for (i=0;i<=sokt*6-1;i++){
dong1[i]=(dong1[i+sokt*6]>>(8-m))|(0xFF<<m);
dong2[i]=(dong1[i+sokt*6]<<m)|(dong2[i+sokt*6]>>(8-m));
}
}
else if ((k>15)&&(k<24)) {
m=k-16 ;
for (i=0;i<=sokt*6-1;i++){
dong1[i]=(dong1[i+sokt*6]<<m)|(dong2[i+sokt*6]>>(8-m));
dong2[i]=(dong2[i+sokt*6]<<m)|(0xFF>>(8-m));
}
}
else
{
m=k-24 ;
for (i=0;i<=sokt*6-1;i++){
dong1[i]=(dong2[i+sokt*6]<<m)|(0xFF>>(8-m));
dong2[i]=0xFF;
90
/*
if ( k>=8) {
for (i=0;i<=sokt*6-1;i++){
m=k-8;
dong1[i]=(dong1[i+sokt*6]<<m)|(0xFF>>(8-m));
dong2[i]=(dong2[i+sokt*6]<<m)|(0xFF>>(8-m));
} }
if (k<8) {
for (i=0;i<=sokt*6-1;i++){
dong1[i]=(dong1[i+sokt*6]>>(8-k))|(0x7F<<k);
dong2[i]=(dong2[i+sokt*6]>>(8-k))|(0x7F<<k);
} }
*/
}
void down(int k){
sokt=((sokt1>sokt2)?sokt1:sokt2);
if (k>23) {
m=k-24;
for (i=0;i<=sokt*6-1;i++){
dong1[i]=0xFF;
dong2[i]=(dong1[i+sokt*6]>>m)|(0x7F<<m);
} }
if ((k>15)&&(k<=23)) {
m=k-16;
for (i=0;i<=sokt*6-1;i++){
dong1[i]=(dong1[i+sokt*6]>>m)|(0xFF<<(8-m));
dong2[i]=(dong1[i+sokt*6]<<(8-m))|(dong2[i+sokt*6]>>m);
} }
if ((k>7)&&(k<16)) {
m=k-8;
for (i=0;i<=sokt*6-1;i++){
dong1[i]=(dong1[i+sokt*6]<<(8-m))|(dong2[i+sokt*6]>>m);
dong2[i]=(dong2[i+sokt*6]<<m)|(0xFF<<(8-m));
} }
if (k<8){
m=8-k ;
for (i=0;i<=sokt*6-1;i++){
dong1[i]=(dong2[i+sokt*6]<<m)|(0xFF>>(8-m));
dong2[i]=0xFF;
} }
/*
91
if ( k>8) {
for (i=0;i<sokt*6;i++){
m=k-8;
dong2[i]=(dong2[i+sokt*6]>>m)|(0x7F<<(8-m));
dong1[i]=(dong1[i+sokt*6]>>m)|(0x7F<<(8-m));
} }
if (k<=8) {
for (i=0;i<sokt*6;i++){
dong2[i]=(dong2[i+sokt*6]<<(8-k))|(0xFF>>k);
dong1[i]=(dong1[i+sokt*6]<<(8-k))|(0xFF>>k);
} }
*/
}
void tungchu () {
for (i=0;i<k*6;i++){
dong1[i]=dong1[sokt*6+i];
dong2[i]=dong2[sokt*6+i];
}
}
void hienthi() {
switch (col){
// 2do1do
case 0 :
spi(0x00);
spi(dong2[c+16]);
spi(0x00);
spi(dong2[c+8]);
spi(0x00);
spi(dong2[c]);
spi(0x00);
spi(dong1[c+16]);
spi(0x00);
spi(dong1[c+8]);
spi(0x00);
spi(dong1[c]);
break;
// 2xanh1do
case 1 :
spi(dong2[c+16]);
spi(0x00);
spi(dong2[c+8]);
spi(0x00);
92
spi(dong2[c]);
spi(0x00);
spi(0x00);
spi(dong1[c+16]);
spi(0x00);
spi(dong1[c+8]);
spi(0x00);
spi(dong1[c]);
break;
// 2cam1do
case 2 :
spi(dong2[c+16]);
spi(dong2[c+16]);
spi(dong2[c+8]);
spi(dong2[c+8]);
spi(dong2[c]);
spi(dong2[c]);
spi(0x00);
spi(dong1[c+16]);
spi(0x00);
spi(dong1[c+8]);
spi(0x00);
spi(dong1[c]);
break;
// 2do1xanh
case 3 :
spi(0x00);
spi(dong2[c+16]);
spi(0x00);
spi(dong2[c+8]);
spi(0x00);
spi(dong2[c]);
spi(dong1[c+16]);
spi(0x00);
spi(dong1[c+8]);
spi(0x00);
spi(dong1[c]);
spi(0x00);
break;
// 2xanh1xanh
case 4 :
spi(dong2[c+16]);
spi(0x00);
spi(dong2[c+8]);
spi(0x00);
spi(dong2[c]);
93
spi(0x00);
spi(dong1[c+16]);
spi(0x00);
spi(dong1[c+8]);
spi(0x00);
spi(dong1[c]);
spi(0x00);
break;
// 2cam1xanh
case 5 :
spi(dong2[c+16]);
spi(dong2[c+16]);
spi(dong2[c+8]);
spi(dong2[c+8]);
spi(dong2[c]);
spi(dong2[c]);
spi(dong1[c+16]);
spi(0x00);
spi(dong1[c+8]);
spi(0x00);
spi(dong1[c]);
spi(0x00);
break;
// 2do1cam
case 6 :
spi(0x00);
spi(dong2[c+16]);
spi(0x00);
spi(dong2[c+8]);
spi(0x00);
spi(dong2[c]);
spi(dong1[c+16]);
spi(dong1[c+16]);
spi(dong1[c+8]);
spi(dong1[c+8]);
spi(dong1[c]);
spi(dong1[c]);
// 2xanh1cam
case 7 :
spi(dong2[c+16]);
spi(0x00);
spi(dong2[c+8]);
spi(0x00);
spi(dong2[c]);
spi(0x00);
spi(dong1[c+16]);
94
spi(dong1[c+16]);
spi(dong1[c+8]);
spi(dong1[c+8]);
spi(dong1[c]);
spi(dong1[c]);
break;
// 2cam1cam
case 8 :
spi(dong2[c+16]);
spi(dong2[c+16]);
spi(dong2[c+8]);
spi(dong2[c+8]);
spi(dong2[c]);
spi(dong2[c]);
spi(dong1[c+16]);
spi(dong1[c+16]);
spi(dong1[c+8]);
spi(dong1[c+8]);
spi(dong1[c]);
spi(dong1[c]);
break;
default: break;
}
}
void hieuung() {
switch (eff){
// hienbt
case 0 :
lm1();
break;
// dichtrai
case 1 :
if (t==48){
t=0;
sp++;
}
if (sp==tocdo_chay){
sp=0;
k++ ;
shiftleft();
}
if (k==sokt*12) {
lm1();
lm2();
k=0;
95
}
break;
// dichphai
case 2 :
if (t==48){
t=0;
sp++;
}
if (sp==tocdo_chay){
sp=0;
k++ ;
shiftright();
}
if (k==sokt*12) {
lm1();
lm2();
k=0;
}
break;
// dichlen
case 3 :
if (t==48){
t=0;
sp++;
}
if (sp==tocdo_chay){
sp=0;
k++ ;
UP(k);
}
if (k>=32) {
lm1();
lm2();
k=0;
/* if (t==sokt*8){
k++;
UP(k);
}
if (k==16) {
lm1();
lm2();
k=0;
}
*/
}
break;
96
// dichxuong
case 4 :
if (t==48){
t=0;
sp++;
}
if (sp==tocdo_chay){
sp=0;
k++ ;
down(k);
}
if (k>=32) {
lm1();
lm2();
k=0;
}
break;
// tungchu
case 5 :
if (t==200){
t=0;
sp++;
}
if (sp==tocdo_chay){
sp=0;
k++ ;
tungchu();
}
if (k>sokt) {
lm1();
lm2();
k=0;
}
break;
default: break;
}
}
// Timer 1 output compare A interrupt service routine
interrupt [TIM1_COMPA] void timer1_compa_isr(void) {
hienthi();
LatchData();
PORTC=c+8;
PORTA=c+8;
97
c++;
t++;
if (c==8) c=0;
hieuung();
}
void main(void){
lm1();
lm2();
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: clk/256 kHz
// Mode: CTC top=OCR1A
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: On
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x0C;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=tocdo_quet;
OCR1BH=0x00;
OCR1BL=0x00;
/*UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x19;*/
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x47;
DDRB=0xFF;
DDRC=0xFF;
DDRA=0xFF;
98
SCL=1;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x10;
// Global enable interrupts
#asm("sei")
// SPI initialization
// SPI Type: Master
// SPI Clock Rate: clk
// SPI Clock Phase: Cycle Half
// SPI Clock Polarity: Low
// SPI Data Order: MSB First
SPCR=0x50;
SPSR=0x00;
while (1){
unsigned char temp1,temp2,length;
int i;
temp1 = getchar();
if (temp1=='A')
{
TIMSK=0x00;
//Nhan chuoi ky tu hang 1
//tinh do dai chuoi
temp1 = getchar()-48;
temp2 = getchar()-48;
length = temp1*10 + temp2;
sokt1=length;
//Nhan chuoi ky tu
if (length >=1){
for( i=0;i<length;i++)
{
chuoi1[i] = getchar();
}
//Nhan chuoi ky tu hang 2
//tinh do dai chuoi
temp1 = getchar()-48;
temp2 = getchar()-48;
length = temp1*10 + temp2;
sokt2=length;
//Nhan chuoi ky tu
if (length >=1){
for( i=0;i<length;i++)
{
chuoi2[i] = getchar();
}
//Nhan mau
col = getchar() - 48;
99
100