You are on page 1of 130

z

TI

Nghin cu v Vi iu khin 8051. Thit k


m hnh ng h thi gian thc hin th trn
Led 7 thanh

Gio vin hng dn

Sinh vin thc hin

: Trn Th Cnh

Trng HCN H Ni

Khoa in t

MC LC
LI NI U .......................................................................................................5
CHNG 1. TNG QUAN V H VI IU KHIN 8051 ..............................6
1.1 Tm tt v lch s ca 8051 ..........................................................................6
1.2 S khi chung ca h 8051 ......................................................................7
1.3 Cc thnh vin khc ca 8051.......................................................................8
1.3.1 B vi iu khin 8052 ............................................................................8
1.3.2 B vi iu khin 8031 ............................................................................8
1.4 Cc phin bn ca 8051 ................................................................................8
1.4.1 B vi iu khin 8751 ............................................................................9
1.4.2 B vi iu khin AT8951 t Atmel Corporation.....................................9
1.4.3 B vi iu khin DS5000 t hng Dalas Semiconductor ......................11
1.4.4 Phin bn OTP ca 8051......................................................................12
1.4.5 H 8051 t hng Philips.......................................................................12
1.5 Kin trc phn cng ca h Vi iu khin 8051..........................................13
1.5.1 S khi ca 8051/8052/ AT89S52..................................................13
1.5.2 Chc nng cc khi ca 8051/8052/AT89S52......................................13
1.5.2.1 CPU .............................................................................................. 13
1.5.2.2 B nh chng trnh (b nh Rom)...............................................14
1.5.2.3 B nh d liu (b nh Ram) ........................................................14
1.5.2.4 B UART (Universal Ansynchronous Receiver and Transmitter)...14
1.5.2.5 Ba b Timer/Counter 16 bit........................................................... 14
1.5.2.6 WDM (Watch Dog Timer) ............................................................ 14
1.5.2.7 iu khin ngt .............................................................................15
1.5.2.8 B lp trnh (ghi chng trnh ln Flash Rom) .............................. 16
1.5.2.9 B chia tn s................................................................................16
1.5.2.10 Bn cng xut nhp.....................................................................16
1.6 T chc b nh bn trong ca 8051 ............................................................ 16
1.7 Hot ng nh thi ....................................................................................21
1.7.1 Gii thiu............................................................................................. 21
1.7.2 Cc thanh ghi ca b nh thi............................................................. 21
1.7.2.1 Cc thanh ghi ca Timer 0, Timer 1 ..............................................21
1.7.2.2 Cc thanh ghi ca Timer 2............................................................. 24
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

1.7.3 Cc ch ca b nh thi .................................................................27


1.7.4 Cc ngun xung Clock .........................................................................30
1.8 Cng ni tip .............................................................................................. 31
1.8.1 Gii thiu............................................................................................. 31
1.8.2 Cc thanh ghi ca cng ni tip............................................................ 32
1.8.3 Cc ch hot ng ...........................................................................34
1.8.4 Tc baud ca Port ni tip............................................................... 37
1.9 Ngt v x l ngt.......................................................................................38
1.9.1 Gii thiu............................................................................................. 38
1.9.2 T chc ngt ........................................................................................39
1.9.3 X l ngt ............................................................................................ 41
CHNG 2. CC LINH KIN LIN QUAN...................................................43
2.1 Tm hiu v IC thi gian thc DS1307........................................................43
2.1.1 Gii thiu............................................................................................. 43
2.1.2 S v chc nng cc chn................................................................ 43
2.1.3 Ti nguyn v cch xut nhp d liu vo DS1307 .............................. 44
2.1.4 Thut ton giao tip I2C vi Vi iu khin AT89S52........................... 48
2.1.4.1 iu kin Start v Stop..................................................................48
2.1.4.2 Ch hot ng ..........................................................................50
2.1.4.3 Cch thc giao tip vi DS1307 ....................................................51
2.1.4.4 Thut ton thit k phn mm .......................................................52
2.2 B bin i tng t sang s (ADC0804) ...................................................55
2.2.1 Gii thiu............................................................................................. 55
2.2.2 S v chc nng cc chn ADC0804...............................................56
2.2.2.1 S chn ....................................................................................56
2.2.2.2 Chc nng cc chn.......................................................................56
2.3 Vi iu khin AT89S52 ..............................................................................58
2.3.1 Gii thiu.............................................................................................. 58
2.3.2 S chn v chc nng cc chn ca AT89S52 ................................ 59
2.3.2.1 S chn ca AT89S52 .............................................................. 59
2.3.2.2 Chc nng cc chn ca AT89S52 ................................................60
2.4 IC ghi dch 74HC595..................................................................................64
2.4.1 Gii thiu............................................................................................. 64
2.4.2 S chn v chc nng cc chn .......................................................64

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

2.4.2.1 S chn ....................................................................................64


2.4.2.2 Chc nng cc chn.......................................................................65
2.5 Led 7 on ..................................................................................................65
2.5.1 Gii thiu............................................................................................. 65
2.5.2 Kt ni vi vi iu khin......................................................................66
2.5.3 Bng m ca Led Anode chung (cc led n sng mc 0).................67
2.5.4 Bng m ca Led Cathode chung (cc led n sng mc 1) ..............69
2.5.5 Giao tip Vi iu khin vi led 7 on (minh ha v thc hnh vi 8 led
7 on)...........................................................................................................69
CHNG 3. THIT K M HNH..................................................................72
3.1 S nguyn l ........................................................................................... 72
3.2 S mch in .............................................................................................. 76
3.3 M hnh thc t........................................................................................... 79
3.4 ng dng....................................................................................................79
KT LUN..........................................................................................................80
TI LIU THAM KHO...................................................................................81
PH LC.............................................................................................................82

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

DANH SCH HNH V


Hnh 1.1 B tr bn trong ca h 8051 ....................................................................7
Hnh 1.2 S khi ca vi iu khin AT89S52 ..................................................13
Hnh 1.3 Hot ng ca Timer 0 v Timer 1 ch 0........................................27
Hnh 1.4 Hot ng ca Timer0 v Timer1 ch 1..........................................27
Hnh 1.5 Hot ng ca Timer0 v Timer1 ch 2..........................................28
Hnh 1.6 Hot ng ca Timer0 ch 3 ..........................................................29
Hnh 1.7 S khi cng ni tip ca 8051 .........................................................32
Hnh 1.8 Gin truyn nhn d liu ch 0..................................................34
Hnh 1.9 Tc baud ch 0 ..........................................................................34
Hnh 1.10 Gin truyn nhn d liu ca ch 1.............................................35
Hnh 1.11 Dng Timer 1 v Timer 2 cung cp tc baud cho cng ni tip .......35
Hnh 1.12 Tc baud ch 1 ........................................................................36
Hnh 1.13 Tc baud ch 2 ........................................................................36
Hnh 1.14 Tc baud ch 3 ........................................................................37
Hnh 1.15 Chng trnh trc (a) v sau (b) khi c ngt xy ra ............................ 39
Hnh 2.1 Cc dng ng gi ca chip DS1307......................................................43
Hnh 2.2 S chn ca DS1307 .........................................................................43
Hnh 2.3 S mc c bn ca DS1307............................................................... 44
Hnh 2.4 S cu trc ca cc thanh ghi trong DS1307 .....................................45
Hnh 2.5 Cch cp nht d liu cho DS1307.........................................................46
Hnh 2.6 T chc theo bit ca cc thanh ghi .........................................................46
Hnh 2.7 S cu trc bn trong ca DS1307 ....................................................48
Hnh 2.8 iu kin Start v Stop ..........................................................................49
Hnh 2.9 Qu trnh c v ghi d liu ca DS1307 ...............................................50
Hnh 2.10 S tng qut ca ng h ................................................................ 52
Hnh 2.11 Thut ton giao tip ca DS1307 vi Vi iu Khin............................ 52
Hnh 2.12 Qu trnh c d liu t DS1307 c lu vo Ram AT89S52 ............53
Hnh 2.13 Thut ton ci t gi...........................................................................54
Hnh 2.14 Thut ton cp nht d liu cho DS1307 ..............................................55
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

Hnh 2.15 S chn thc t ca ADC0804 ........................................................56


Hnh 2.16 Cch mc to xung ng h cho chp ADC0804 ..................................57
Hnh 2.17 S chn ca AT89S52.....................................................................59
Hnh 2.18 Cu trc ca cc chn trn Port0 ..........................................................60
Hnh 2.19 Cu trc ca cc chn trn Port 1 v Port 3 ..........................................61
Hnh 2.20 Cu trc ca cc chn trn Port2 ..........................................................61
Hnh 2.21 Mch reset AT89S52 ...........................................................................63
Hnh 2.22 Mch to dao ng...............................................................................63
Hnh 2.23 Mch to xung cho Vi iu khin.........................................................64
Hnh 2.24 S chn thc t 74HC595................................................................ 64
Hnh 2.25 S chn 7 SEG-COM-ANODE v hnh nh minh ha.....................66
Hnh 3.1 Mch iu khin ....................................................................................72
Hnh 3.2 Mch o nhit ...................................................................................73
Hnh 3.3 Mch hin th .........................................................................................73
Hnh 3.4 Mch hin th 1 ......................................................................................74
Hnh 3.5 Mch ngun 5V .....................................................................................74
Hnh 3.6 Mch qut phm .....................................................................................75
Hnh 3.7 Mch iu khin ....................................................................................76
Hnh 3.8 Mch o nhit ...................................................................................76
Hnh 3.9 Mch hin th .........................................................................................77
Hnh 3.10 Mch hin th 1 ....................................................................................77
Hnh 3.11 Mch ngun 5V ...................................................................................78
Hnh 3.12 Mch qut phm ...................................................................................78
Hnh 3.13 M hnh ng h thc t ......................................................................79

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

DANH SCH CC BNG BIU


Bng 1.1 Cc c tnh ca 8051 u tin ................................................................6
Bng 1.2 So snh cc c tnh ca cc thnh vin h 8051 .....................................8
Bng 1.3 Cc phin bn ca 8051 do hng Atmel cung cp (Flash Rom)..............10
Bng 1.4 Cc phin bn 8051 t hng Dalas Semiconductor ................................ 11
Bng 1.5 Mt s thnh vin ca h 8051 .............................................................. 12
Bng 1.6 S chu k my WDT m ty theo gi tr S0, S1, S2.............................. 15
Bng 1.7 Thi gian trn ca WDT........................................................................15
Bng 1.8 Cc thanh ghi trng thi chng trnh (PSW: Program Status Word)......19
Bng 1.9 Thanh ghi chc nng TMOD .................................................................22
Bng 1.10 Thanh ghi chc nng TCON ................................................................ 23
Bng 1.11 Thanh ghi chc nng T2CON .............................................................. 25
Bng 1.12 Thanh ghi chc nng T2MOD ............................................................. 26
Bng 1.13 V tr v ngha cc bit ca thanh ghi SCON.......................................33
Bng 1.14 Cc ch ca cng ni tip ph thuc SM1, SM0 ............................. 33
Bng 1.15 Bng tc baud khc nhau ................................................................ 35
Bng 1.16 Cc gi tr ca thanh ghi TH1 to tc baud .....................................38
Bng 1.17 V tr v cng dng cc bit ca thanh ghi IE ........................................40
Bng 1.18 V tr v cng dng cc bit ca thanh ghi IP.........................................40
Bng 1.19 Cc c gy ngt ...................................................................................41
Bng 1.20 Cc Vector ngt ...................................................................................42
Bng 2.1 Bng so snh in p .............................................................................58
Bng 2.2 Tn chn v chc nng cc chn ca Port 3 ...........................................62
Bng 2.3 Bng m cho Led Anode chung (a l MSB, dp l LSB) .........................67
Bng 2.4 Bng m cho Led Anode chung (a l LSB, dp l MSB) .........................68
Bng 2.5 Bng m ca Led Cathode chung........................................................... 69

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

DANH SCH CC T VIT TT


T vit tt

Tn ting anh

Tn ting vit
E

EA

Truy cp bn ngoi

External Access
I

IC
IE
IP

Vi mch tch hp
Cho php ngt
Thanh ghi ngt

Intergrated Circuit
Interrupt
Interrupt Priority
O

OV

C trn

Over Flag
P

PSW

Program Status Word

PSEN

Program Store Enable

Thanh ghi t trng thi chng


trnh
Tn hiu ng ra

RAM

R
Random Access Memory

B nh truy cp ngu nhin

ROM
RST

Read Only Memory


Reset

B nh ch c
Reset

SFR

S
Special Function Register

Thanh ghi c chc nng c bit

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

LI CAM OAN
Trong qu trnh thc hin ti tt nghip ny, em xin m bo bi bo co
tt nghip ny l do chnh em thc hin, khng c s sao chp nguyn vn ca bt
k ti liu no. Nu sai em xin chu mi hnh thc k lut ca nh trng.

H Ni, Ngy 13 thng 6 nm 2012


Ngi cam oan
(K, ghi r h tn)

Trn Th Cnh

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

LI NI U
Ngy nay ngnh k thut in t c vai tr rt quan trng trong cuc sng
ca con ngi. Cc h thng in t ngy nay rt a dng v ang thay th cc cng
vic hng ngy ca con ngi t nhng cng vic n gin n phc tp nh iu
khin tn hiu n giao thng, cc bin qung co, o tc ng c hay cc ng
h s Cc h thng ny c th thit k theo h thng tng t, h thng s hay l
dng vi iu khin. Tuy nhin trong cc h thng in t thng minh hin nay
ngi ta thng s dng vi iu khin hn l cc h thng tng t hay h thng s
bi mt s u im vt tri m vi iu khin mang li l: tin cy cao, gi
thnh thp, d dng thit k, lp t v vn hnh lm c iu chng ta
phi c kin thc v vi iu khin, hiu c cu trc v chc nng ca n.
Sau gn 3 nm hc tp v nghin cu ti trng, vi s ging dy ca cc thy,
c gio trong trng cng vi s hng dn tn tnh ca thy Hong Vn Quang, em
chn ti: Nghin cu v Vi iu khin 8051. Thit k m hnh ng h thi
gian thc hin th trn Led 7 thanh lm n tt nghip vi mong mun p dng
nhng kin thc hc vo thc t phc v nhu cu i sng con ngi. Ni dung ca
ti bao gm 3 chng:
-

Chng 1: Tng quan v h Vi iu khin 8051

Chng 2: Cc linh kin lin quan

Chng 3: Thit k m hnh

Do kin thc v trnh nng lc cn hn hp nn vic thc hin ti ny


khng th trnh c thiu st, knh mong nhn c s thng cm v gp ca tt c
cc thy, c gio v cc bn n ny c hon thin hn.
Em xin chn thnh cm n.

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

CHNG 1. TNG QUAN V H VI IU KHIN 8051

1.1 Tm tt v lch s ca 8051


Nm 1981, hng Intel gii thiu b vi iu khin 8051. B vi iu khin ny cha
trn 60.000 transistor bao gm 128 byte Ram, 4 kbyte Rom, 2 b nh thi, mt
cng ni tip v bn cng vo/ra song song ( rng 8 bit) tt c u c t trn
mt chip. 8051 l b x l 8 bit, c ngha l CPU ch c th lm vic c 8 bit d
liu ti mt thi im.
D liu ln hn 8 bit c chia thnh cc d liu 8 bit x l, 8051 tr ln ph
bin sau khi Intel cho php cc nh sn xut khc sn xut v bn cc bin th ca
8051. iu ny dn n s ra i nhiu phin bn 8051 vi tc khc nhau v
dung lng Rom trn chp khc nhau, nhng cc lnh u tng thch vi 8051 ban
u. Nh vy, nu ta vit chng trnh cho mt phin bn ca 8051 th cng chy
c vi mi phin bn khc khng ph thuc vo hng sn xut.
Vi iu khin 8051 l loi vi iu khin 8 bit, cng sut tiu th thp nhng tnh
nng tng i mnh v tr thnh b vi iu khin hng u trong nhng nm gn
y.
Bng 1.1 Cc c tnh ca 8051 u tin

c Tnh

S Lng

Rom

4 kbyte

Ram

128 byte

B nh Thi

Chn vo/ra

32

Cng ni tip

Ngun ngt

Ngoi ra 8051 cn c cc thng s c tnh sau:


+ Khng gian nh chng trnh (m) ngoi 64 kbyte.
+ Khng gian nh d liu ngoi 64 kbyte.

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

+ B nh x l bit (thao tc trn cc bit ring r).


+ 210 v tr nh c nh a ch, mi v tr 1 bit.
+ Nhn/chia trong 4s.
1.2 S khi chung ca h 8051
- Interrupt Control: iu khin ngt
- Other Register: cc thanh ghi khc
- 128 byte Ram
- B nh thi: 0, 1, 2
- CPU: n v iu khin trung tm
- Oscillator: mch dao ng
- Bus Control: iu khin Bus
- Input/output: cc chn vo ra
- Serial port: cng ni tip
- INT1/INT0: cc ngt 1/0

Hnh 1.1 B tr bn trong ca h 8051

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

1.3 Cc thnh vin khc ca 8051


C hai b vi iu khin l cc thnh vin khc ca h 8051 l 8052 v 8031.
1.3.1 B vi iu khin 8052
B vi iu khin 8052 l mt thnh vin ca h 8051, 8052 c tt c cc c
tnh chun ca 8051 ngoi ra n c thm 128 byte Ram v mt b nh thi na.

Bng 1.2 So snh cc c tnh ca cc thnh vin h 8051

c Tnh

8051

8052

8031

Rom

4 kbyte

8 kbyte

Khng c

Ram

128 byte

256 byte

128 byte

B nh thi

Chn vo/ra

32

32

31

Cng ni tip

Ngun ngt

* Da vo bng 1.2 c th thy cc chng trnh vit cho 8051 u chy trn 8052
nhng iu ngc li l khng ng.
1.3.2 B vi iu khin 8031
Mt thnh vin khc na ca 8051 l chp 8031. Chp c coi nh l 8051
khng c Rom trn chp. s dng chp ny phi b sung Rom ngoi cho n,
Rom ngoi phi cha chng trnh m 8031 s np v thc hin. Vi 8051, chng
trnh c cha trong Rom trn chp b gii hn bi 4 kbyte, cn Rom ngoi gn
vi 8031 th c th ln n 64 kbyte. Khi s dng Rom ngoi ch c th cn li
hai cng s dng cho mc ch vo ra, gii quyt vn ny gii php c th
l m rng cng vo ra cho 8031 bng cch s dng vi mch PPI 8255.
1.4 Cc phin bn ca 8051
Mc d 8051 l thnh vin ph bin nht ca h 8051 nhng cn c rt nhiu
phin bn ca n vi nhng tn gi khc nhau ty thuc vo kiu b nh chng
trnh, cng ngh ch to, tn s lm vic

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

V d: Phin bn ca 8051 vi b nh UV-PROM c k hiu 8751. Phin bn


Flash Rom cng c bn bi nhiu hng khc nhau, chng hn nh Atmel vi tn
gi AT89C51 cn phin bn NV-RAM ca 8051 do Dalas Semiconductor cung cp
th c gi l DS5000. Ngoi ra cn c phin bn OTP (lp trnh c mt ln)
cng c sn xut bi nhiu hng.
1.4.1 B vi iu khin 8751
Chp 8751 ch c 4 kbyte b nh UV-EPROM trn chp. s dng chp
ny cn c b t PROM v b xa UV-EPROM xa ni dung ca b nh
UV-EPROM bn trong 8751 trc khi ta c th lp trnh li n. Do ROM trn chp
i vi 8751 l UV-EPROM nn cn phi mt 20 pht xa 8751 trc khi n
c th c lp trnh tr li. V iu ny dn n nhiu nh sn xut gii thiu cc
phin bn FLASH-ROM v UV-RAM. Ngoi ra cn c nhiu phin bn vi cc tc
khc nhau ca 8751 t nhiu hng khc nhau.
8751 c s dng trong cng vic pht trin v b nh chng trnh trn
cc vi mch ny c xa bng nh sng t ngun t ngoi.
1.4.2 B vi iu khin AT8951 t Atmel Corporation
AT8951 l phin bn 8051 c Rom trn chp dng b nh Flash. Phin bn
ny l l tng i vi nhng pht trin nhanh v b nh Flash c th c xa
trong vi giy. Dng AT89C51 pht trin mt h thng da trn b vi iu
khin yu cu mt b t Rom h tr b nh Flash, khng yu cu b xa Rom.
Hng Atmel cho ra i mt phin bn ca AT89C51 c th lp trnh qua cng
truyn thng Com ca my tnh IBM PC.

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

10

Bng 1.3 Cc phin bn ca 8051 do hng Atmel cung cp (Flash Rom)

K hiu
AT89C51

Rom

Ram

4 kbyte 128

Chan
I/O
32

Timer

Ngt VCC

5v

byte
AT89LV51

4 kbyte 128

32

3v

15

3v

8 kbyte 128

15

3v

8 kbyte 128

20 chn/2
hng

32

5v

byte
AT89LV52

20 chn/2
hng

byte
AT89C52

40 chn/2
hng

byte
AT89C2051 2 kbyte 128

40 chn/2
hng

byte
AT89C1051 1 kbyte 64

ng v

40 chn/2
hng

32

3v

byte

40 chn/2
hng

AT89C2051 l b vi iu khin 8 bit c ch to theo cng ngh CMOS, c th


hot ng c di in p 2,7V n 6V. B vi iu khin c ng gi DIP 20
chn, kh nh gn so vi 89S52 nhng vn c ti nguyn thng dng nh:
+ B nh: 2 kbyte Flash c th ghi/xa 1000 ln, 128x8-bit Ram
+ C th hot ng tn s thch anh ln ti 24MHz
+ 15 chn xut/nhp
+ 2 b Timer/Counter 16 bit
+ 6 ngun ngt
+ 1 cng ni tip
+ 1 b so snh (Analog Comparator)
AT89C4051 c s chn v cc ti nguyn ging AT89C2051, ngoi tr b nh
Rom c dung lng ln hn (4 kbyte). AT89S52 l mt b vi iu khin thng
dng, gi r, c kh nhiu chc nng hay, c bit l c tch hp sn b np ISP trn

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

11

chp gip ngi s dng c th d dng thc hin cc bi th nghim vi chi ph rt


thp.
Cng c rt nhiu phin bn k hiu th hin kiu ng v v tc khc nhau ca
sn phm. V d ch C ng trc 51 trong AT89C51-12PC l k hiu cho CMOS,
12 k hiu cho 12MHz, v P l kiu ng v DIP v ch C cui cng l k
hiu cho thng mi (ngc vi ch M l qun s).
1.4.3 B vi iu khin DS5000 t hng Dalas Semiconductor
Mt phin bn ph bin khc na ca 8051 l DS5000 ca hng
Semiconductor. B nh Rom trn chp ca DS5000 di dng NV-RAM. Kh
nng c/ghi ca n cho php chng trnh c np vo Rom trn chp trong khi
n vn trong h thng (khng phi ly ra). iu ny cn c th c thc hin
thng qua cng ni tip ca my tnh IBM-PC. Vic np chng trnh trong h
thng (in-system) ca DS5000 thng qua cng ni tip ca PC lm cho n tr thnh
mt h thng pht trin ti ch l tng. Mt u vit ca NV-RAM l kh nng
thay i ni dung ca Rom theo tng byte ti mt thi im. iu ny tng phn
vi b nh Flash v EPROM m b nh ca chng phi c xa sch trc khi
lp trnh li cho chng.
Bng 1.4 Cc phin bn 8051 t hng Dalas Semiconductor
Ch T ng sau 5000 l c ng h thi gian thc
M linh kin

Rom

Ram

DS5000-8

8kbyte

128

DS5000-32

32kbyte

DS5000T-8
DS5000T-8

Chn

ng

Timer

Ngt

Vcc

32

5V

40

128

32

5V

40

8kbyte

128

32

5V

40

32kbyte

128

32

5V

40

I/O

* ng h thi gian thc RTC l khc vi b nh thi Timer. RTC to v gi thi


gian 1 pht, gi, ngy, thng, nm k c khi tt ngun.
Cn c nhiu phin bn DS5000 vi nhng tc v kiu ng gi khc nhau.
V d DS5000-8-8 c 8 kbyte NV-RAM v tc 8MHz.
Thng thng DS5000-8-12 hoc DS5000T-8-12 l l tng vi nhng d n
ca sinh vin.
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

12

Bng 1.5 Mt s thnh vin ca h 8051

M linh kin

Tc

NV-RAM

DS5000-8-8

8kbyte

8MHz

DS5000-8-12

8kbyte

12MHz

DS5000-32-8

32kbyte

8MHz

DS5000T-32-12

32kbyte

8MHz(with RTC)

DS5000-32-12

32kbyte

12MHz

DS5000-8-12

8kbyte

12MHz(with RTC)

1.4.4 Phin bn OTP ca 8051


Cc phin bn OTP ca 8051 l cc chp 8051 c th lp trnh c mt ln
v c cung cp t nhiu hng khc nhau. Cc phin bn Flash v NV-RAM
thng c s dng pht trin sn phm mu. Khi mt sn phm c thit k
v c hon thin tuyt i th phin bn OTP ca 8051 c dng sn xut
hng lot v gi thnh mt n v sn phm s r hn.
1.4.5 H 8051 t hng Philips
Mt nh sn xut chnh ca h 8051 khc na l Philips Corporation. Tht
vy, hng ny c mt di la chn rng ln cho cc b vi iu khin 8051. Nhiu
sn phm ca hng c km theo c tnh nh cc b chuyn i ADC, DAC,
cng I/O m rng v cc phin bn OTP v Flash.

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

13

1.5 Kin trc phn cng ca h Vi iu khin 8051


1.5.1 S khi ca 8051/8052/AT89S52

Hnh 1.2 S khi ca vi iu khin AT89S52


1.5.2 Chc nng cc khi ca 8051/8052/AT89S52
1.5.2.1 CPU
- Thanh ghi tch ly A.
- Thanh ghi tch ly ph B, dng cho php nhn v php chia.
- n v logic hc (ALU: Arithmetic logical unit).
- Thanh ghi t trng thi chng trnh (PSW: Prorgam status Word).
- Bn bng thanh ghi.
- Con tr ngn xp.

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

14

1.5.2.2 B nh chng trnh (b nh Rom)


Gm 8kbyte Flash.
1.5.2.3 B nh d liu (b nh Ram)
Gm 256byte.
1.5.2.4 B UART (Universal Ansynchronous Receiver and
Transmitter)
C chc nng truyn nhn ni tip, AT89S52 c th giao tip vi cng ni
tip ca my tnh thng qua b UART.
1.5.2.5 Ba b Timer/Counter 16 bit
Thc hin cc chc nng nh thi v m s kin.
1.5.2.6 WDM (Watch Dog Timer)
WDM c dng phc hi li hot ng ca CPU khi n b treo bi
nguyn nhn no . WDM AT89S52 gm mt b Timer 14 bit, 1 b Timer 7 bit,
thanh ghi WDTPRG ( WDT programable ), iu khin Timer 7 bit v mt thanh
ghi chc nng WDTRST (WDM register). Bnh thng WDT khng hot ng,
cho php WDT, cc gi tr 1EH v E1H cn phi ghi lin tip vo thanh ghi
WDTRST. Timer 14 bit ca WDT s m tng dn sau mi chu k ng h cho n
gi tr 16383 th xy ra trn. Khi xy ra trn chn Reset s c t mc cao trong
khong thi gian 98*Tosc ( Tosc=1/Fosc ) v AT89S52 s c Reset. Khi WDT
hot ng, ngoi tr Reset phn cng v Reset do WDT trn th khng c cch no
c th cm c WDT, v vy khi s dng WDT th cc on m ca chng trnh
phi c t trong cc khe thi gian gia cc ln WDT c khi to li.
Thanh ghi WDTPRG:

S2

S1

S0

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

15

Ty theo cc gi tr khc nhau c ghi vo S0, S1, S2, s chu k my m WDT


s m v thi gian trong cc bng 1.6, bng 1.7

Bng 1.6 S chu k my WDT m ty theo gi tr S0, S1, S2

S2

S1

S0

S chu k my WDT m

2^14

2^15

2^16

2^17

2^18

2^19

2^20

2^21

Bng 1.7 Thi gian trn ca WDT

S2

S1

S0

Fosc=12MHz Fosc=16MHz

Fosc=20MHz

16,38ms

12,28ms

9,82ms

32,77ms

24,57ms

19,66ms

65,54ms

49,14ms

39,32ms

131,01ms

98,28ms

76,64ms

262,14ms

196,56ms

157,28ms

524,29ms

393,12ms

314,56ms

1,54s

788,24ms

629,17ms

2,10s

1,57s

1,25s

1.5.2.7 iu khin ngt


Vi hai ngun ngt ngoi v 4 ngun ngt trong.

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

16

Khoa in t

1.5.2.8 B lp trnh (ghi chng trnh ln Flash Rom)


Cho php ngi s dng c th np chng trnh cho chip m khng cn cc
b np chuyn dng.
1.5.2.9 B chia tn s
Vi h s chia l 12.
1.5.2.10 Bn cng xut nhp
Gm 32 chn.
1.6 T chc b nh bn trong ca 8051
B nh trong 89S52 bao gm ROM v RAM. RAM trong 89S52 bao gm nhiu
thnh phn: phn lu tr a dng, phn lu tr a ch ha tng bit, cc bank thanh
ghi v cc thanh ghi chc nng c bit.
AT89S52 c b nh c t chc theo cu trc Harvard: c nhng vng b
nh ring bit cho chng trnh v d liu. Chng trnh v d liu c th cha bn
trong 89S52 nhng 89S52 vn c th kt ni vi 64Kbyte b nh chng trnh v
64Kbyte d liu bn ngoi.

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

17

Khoa in t

Bn b nh Data bn trong Chip 89S52 c t chc nh sau:


a ch
byte

a ch bit

SVTH: Trn Th Cnh

a ch
byte

a ch bit

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

18

RAM bn trong AT89S52 c phn chia nh sau:


- Cc bank thanh ghi c a ch t 00H n 1FH.
- RAM a ch ha tng bit c a ch t 20H n 2FH.
- RAM a dng t 30H n 7FH.
- Cc thanh ghi chc nng c bit t 80H n FFH.
- RAM a dng
RAM a dng c a ch t 30h 7Fh c th truy xut mi ln 8 bit bng
cch dng ch nh a ch trc tip hay gin tip.
Cc vng a ch thp t 00h 2Fh cng c th s dng cho mc ch nh
trn, ngoi cc chc nng c bit c cp phn sau.
- RAM c th nh a ch bit
Vng a ch t 20h -2Fh gm 16 byte c th thc hin nh vng RAM a
dng (truy xut mi ln 8 bit) hay thc hin truy xut mi ln 1 bit bng cc lnh x
l bit.
- Cc bank thanh ghi
Vng a ch 00h 1Fh c chia thnh 4 bank thanh ghi: bank 0 t 00h
07h, bank 1 t 08h 0Fh, bank 2 t 10h 17h v bank 3 t 18 1Fh. Cc bank
thanh ghi ny c i din bng cc thanh ghi t R0 n R7. Sau khi khi ng th
h thng bank 0 c chn s dng.
Do c 4 bank thanh ghi nn ti mt thi im ch c mt bank thanh ghi
c truy xut bi cc thanh ghi R0 n R7. Vic thay i bank thanh ghi c
thc hin thng qua thanh ghi t trng thi chng trnh (PSW).
- Cc thanh ghi c chc nng c bit
Cc thanh ghi trong 89S52 c nh dng nh mt phn ca RAM trn chip
v vy mi thanh ghi s c mt a ch (ngoi tr thanh ghi b m chng trnh v
thanh ghi lnh v cc thanh ghi ny him khi b tc ng trc tip). Cng nh R0
n R7, 89S52 c 21 thanh ghi c chc nng c bit (SFR: Special Function
Register) vng trn ca RAM ni t a ch 80H n 0FFH.

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

19

Sau y l mt vi thanh ghi c bit thng c s dng:

Bng 1.8 Cc thanh ghi trng thi chng trnh (PSW: Program Status Word)

BIT

SYMBOL

ADDRESS

DESCRIPTION

PSW.7

CY

D7H

Cary Flag

PSW.6

AC

D6H

Auxiliary Cary Flag

PSW.5

F0

D5H

Flag 0

PSW4

RS1

D4H

Register Bank Select 1

PSW.3

RS0

D3H

Register Bank Select 0


00=Bank 0; address 00H07H
01=Bank 1; address 08H0FH
10=Bank 2; address 10H17H
11=Bank 3; address 18H1FH

PSW.2

OV

D2H

Overlow Flag

PSW.1

D1H

Reserved

PSW.0

DOH

Even Parity Flag

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

20

Chc nng tng bit trng thi chng trnh


- C Carry CY (Carry Flag):
C nh thng n c dng cho cc lnh ton hc: C =1 nu php ton
cng c s trn hoc php tr c mn v ngc li C = 0 nu php ton cng
khng trn v php tr khng c mn.
- C Carry ph AC (Auxiliary Carry Flag):
Khi cng nhng gi tr BCD (Binary Code Decimal), c nh ph AC c
set nu kt qu 4 bit thp nm trong phm vi iu khin 0AH - 0FH. Ngc li AC
=0
- C 0 (Flag 0):
C 0 (F0) l 1 bit c a dng dng cho cc ng dng ca ngi dng.
- Nhng bit chn bank thanh ghi truy xut:
RS1 v RS0 quyt nh dy thanh ghi tch cc. Chng c xa sau khi reset
h thng v c thay i bi phn mm khi cn thit.
Ty theo RS1, RS0 = 00, 01, 10, 11 s c chn Bank tch cc tng ng l
Bank 0, Bank1, Bank2 v Bank3.

SVTH: Trn Th Cnh

RS1

RS0

BANK

Lp: C T6 K11

Trng HCN H Ni

21

Khoa in t

- C trn OV (Over Flag):


C trn c set sau mt hot ng cng hoc tr nu c s trn ton hc.
- Bit Parity (P):
Bit t ng c set hay Clear mi chu k my lp Parity chn vi
thanh ghi A. S m cc bit 1 trong thanh ghi A cng vi bit Parity lun lun chn.
V d A cha 10101101B th bit P set ln mt tng s bit 1 trong A v P to
thnh s chn.
Bit Parity thng c dng trong s kt hp vi nhng th tc ca Port ni
tip to ra bit Parity trc khi pht i hoc kim tra bit Parity sau khi thu.
1.7 Hot ng nh thi
1.7.1 Gii thiu
Cc b nh thi ( Timer ) c s dng rt rng ri trong cc ng dng o
lng v iu khin. C th coi mt b nh thi n bit l b m n bit c to ra
bi n flip_flop mc ni tip vi nhau. u ra ca b nh thi chnh l u vo ca
flip_flop u tin...
AT89S52 c 3 b nh thi 16 bit trong hai b Timer 0, Timer 1 c 4 ch
hot ng. Timer 2 c 3 ch hot ng. Cc b nh thi dng nh
khong thi gian (hn gi), m s kin xy ra bn ngoi b vi iu khin hoc to
tc baud cho cng ni tip.
Trong cc ng dng nh khong thi gian, Timer c lp trnh sao cho s
trn sau mt khong thi gian v thit lp c trn bng 1. C trn c s dng bi
chng trnh thc hin mt hnh ng tng ng nh kim tra trng thi ca cc
ng vo hoc gi cc s kin ra cc ng ra.
m s kin dng xc nh s ln xy ra ca mt s kin. Trong ng
dng ny ngi ta tm cch quy cc s kin thnh s chuyn mc t 1 xung 0 trn
cc chn T0 hoc T1 hoc T2 dng cc Timer tng ng m cc s kin .
1.7.2 Cc thanh ghi ca b nh thi
1.7.2.1 Cc thanh ghi ca Timer 0, Timer 1
-Thanh ghi ch nh thi (TMOD)

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

22

Thanh ghi TMOD cha hai nhm 4 bit dng t ch lm vic cho
Timer 0 v Timer 1.
7
GATE1

C/#T1

M1

M0

GATE0

C/#T0

M1

M0

Thanh ghi TMOD


Bng 1.9 Thanh ghi chc nng TMOD

Bit

Tn

Timer

M t

GATE1

Bit m cng cho timer 1, khi c t


bng 1 th Timer 1 ch chy khi chn
INT1 mc cao

C/#T1

Bit chn ch Counter/Timer 1


1=b m s kin
0=b nh khong thi gian

M1

Bit 1 chn ch ca Timer 1

M0

Bit 0 chn ch ca Timer 1


00: ch 0-Timer 13 bit
01: ch 1-Timer 16 bit
10: ch 2-8 bit t ng np li
11: ch 3-tch Timer

GATE0

Bit m cng Timer 0, khi c t bng


1 th Timer 0 ch chy khi chn INT0
mc cao

C/#T0

Bit chn ch Counter/Timer ca


Timer 0

M1

Bit 1 chn ch ca Timer 0

M0

Bit 0 chn ch ca Timer 0

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

23

TMOD khng c bit nh v, n thng load mt ln bi phn mm u chng


trnh khi ng mode Timer. Sau s nh gi c th dng li, c khi ng
li nh th bi truy xut ca cc thanh ghi chc nng c bit ca Timer khc.
-Thanh ghi iu khin Timer (TCON)
Thanh ghi TCON cha cc bit trng thi v cc bit iu khin Timer 0 v Timer 1.
Bn bit cao trong TCON ( TCON.4-TCON.7 ) c dng iu khin cc b
nh thi hot ng hoc ngng ( TR0, TR1) hoc bo cc b nh thi trn
(TF0, TF1).
Bn bit thp ca TCON ( TCON.0-TCON.3 ) khng dng iu khin cc b
nh thi, chng c dng pht hin v khi ng cc ngt ngoi.
TCON.7 TCON.6 TCON.5 TCON.4 TCON.3 TCON.2 TCON.1 TCON.0
TF1

TR1

TF0

TR0

IT1

IE1

IT0

IE0

Thanh ghi TCON


Bng 1.10 Thanh ghi chc nng TCON
Bit

K hiu

a ch

M t

TCON.7

TF1

8F

C bo trn ca T1, c t bi
phn cng khi c trn, c xa bi
phn mm hoc bi phn cng khi
b VXL ch n chng trnh phc
v ngt

TCON.6

TR1

8EH

Bit iu khin T1 hot ng c


t xa bi phn mm iu khin
cho Timer chy/dng

TCON.5

TF0

8DH

C bo trn T0

TCON.4

TR0

8CH

Bit iu khin T0 hot ng

TCON.3

IT1

8BH

C ngt do T1

TCON.2

IE1

8AH

C ngt ngoi 1

TCON.1

IT0

89H

C ngt do T0

TCON.0

IE0

88H

C ngt ngoi 0

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

24

- Cc thanh ghi cha gi tr ca cc b nh thi.


Cc Timer 0 v Timer 1 u l cc Timer 16 bit, mi Timer c thanh ghi 8 bit
dng cha gi tr khi to hoc gi tr hin thi ca cc Timer.
C th nh sau :
Timer 0 c TH0 v TL0, Timer 1 c TH1 v TL1.
* Cc thanh ghi ny khng c nh a ch bit.
Timer 1
TH1(8bit) TL1(8bit)

Timer 0
TH0(8bit) TL0(8bit)

1.7.2.2 Cc thanh ghi ca Timer 2


- Thanh ghi T2CON

T2CON.7 T2CON.6 T2CON.5 T2CON.4 T2CON.3 T2CON.2 T2CON.1 T2CON.0


TF2

EXF2

RCLK

SVTH: Trn Th Cnh

TCLK

EXEN2

TR2

C/#T2

CP/#RL2

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

25

Bng 1.11 Thanh ghi chc nng T2CON

Bit

K hiu

a ch

M t

T2CON.7

TF2

CFH

C bo trn ca Timer 2, TF2 c t khi


Timer 2 trn v c xa bng phn mm, TF2
khng c thit lp khi TCLK v RCLK c
t bng 1

T2CON.6

EXF2

CEH

C ngt ngoi Timer 2, TXF2=1 khi xy ra s


np li hoc thu nhn, EXF2=1 cng gy ra ngt
do Timer 2 nu nh ngt ny c lp trnh cho
php, EXF2 c xa bi phn mm

T2CON.5

RCLK

CDH

Bit chn Timer cung cp xung nhp cho ng


nhn ca cng ni tip
- RCLK=1 th Timer 2 s cung cp tc baud
cho cng ni tip ( ch 1 v 3).
- RCLK=0 th Timer 1 s cung cp tc baud
cho cng ni tip ( ch 1 v 3).

T2CON.4

TCLK

CCH

Bit chn Timer cung cp xung nhp cho ng


truyn ca cng ni tip
- TCLK=1 th Timer 2 s cung cp tc baud
cho cng ni tip ng truyn.
- TCLK=0 th Timer 1 s cung cp tc baud
cho cng ni tip ng truyn.

T2CON.3

EXEN2

CBH

Bit iu khin hot ng ca Timer 2, khi


EXEN2=1 vic np li hoc thu nhn (capture)
din ra khi c s chuyn trng thi t 1 sang 0
chn T2EX nu T2 khng s dng cung cp
tc baud cho cng ni tip

T2CON.2

TR2

SVTH: Trn Th Cnh

CAH

Bit iu khin hot ng ca Timer 2 (tng t

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

26
TR0,TR1)

T2CON.1

C/#T2

C9H

Bit chn ch m hoc nh thi ca Timer 2

T2CON.0

CP/#RL2

C8H

Bit chn ch thu nhn hay np li ca Timer


2.
- Khi CP/#RL2=1, vic thu nhn c thc hin
khi c sn xung chn T2EX v bit
EXEN2=1.
- Khi CP/#RL2=0, vic np li c thc hin
khi Timer 2 trn hoc l khi c sn xung
chn T2EX v bit EXEN2=1. Nu RCLK
(TCLK) bng 1, bit ny c b qua, Timer 2 t
np li khi trn

- Thanh ghi T2MOD


T2MOD c a ch 0C9H.
Bng 1.12 Thanh ghi chc nng T2MOD
Bit

K hiu

M t

T2MOD.7

Khng s dng

T2MOD.6

Khng s dng

T2MOD.5

Khng s dng

T2MOD.4

Khng s dng

T2MOD.3

Khng s dng

T2MOD.2

Khng s dng

T2MOD.1

T2OE

Cho php u ra khi s dng Timer 2 to xung

T2MOD.0

DCEN

Bit cho php Timer 2 hot ng nh b m tin/li

* Thanh ghi ny khng nh a ch bit .


- Thanh ghi TH2 v TL2, RCAP2H v RCAP2L.
Cng ging nh TH0, TH1 v TL0, TL1, TH2 v TL2 cha gi tr m ca Timer
2, tuy nhin khc nhau l Timer 0, Timer 1 c th dng THx cha gi tr np li
cn Timer 2 dng RCAP2H v RCAP2L cha gi tr cn np li.
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

27

Khoa in t

1.7.3 Cc ch ca b nh thi
- Ch 0

Hnh 1.3 Hot ng ca Timer 0 v Timer 1 ch 0


Ch 0 l ch nh thi 13 bit, ch ny tng thch vi cc b vi iu
khin trc , trong cc ng dng hin nay ch ny khng cn thch hp.
- Ch 1
Trong ch 1, b Timer dng c hai thanh ghi TH v TL cha gi tr m, v
vy ch ny cn c gi l ch nh thi 16 bit. Bit MSB s l bit D7 ca
TH cn bit LSB l D0 ca TL.

Hnh 1.4 Hot ng ca Timer0 v Timer1 ch 1


Hnh 1.4 m t hot ng ca cc Timer ch 1: Ngun xung clock c a
ti Timer t mt trong cch ph thuc vo bit C/#T trong thanh ghi TMOD.
+ Nu C/#T=1, xung clock s c ly t bn ngoi qua chn Tx (T0, T1, T2).
+ Nu C/#T=0, xung clock s c ly t b chia tn trong chip, tn s ca xung
y l 1/12 tn s ca dao ng thch anh.

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

28

Khoa in t

Ngun xung clock trn s c iu khin a ti cc Timer bng cc bit: TR,


GATE v mc logic trn cc chn INTx.
+ Nu TRx= 0, cc Timer s b cm m khng cn quan tm ti GATE v mc
logic trn cc chn INTx (th hin bng cng AND).
+ Nu TRx= 1, cc Timer s hot ng khi hoc l bit GATE=0 hoc l bit
GATE=1 v trn chn /INTx c mc logic 1.
Vi ch 1, gi tr ln nht m cc Timer cha c l 65535, khi m qu gi tr
ny s xy ra trn, khi c trn TF s c t =1. Sau khi xy ra trn, nu mun
Timer tip tc m, chng trnh phi c cu lnh np li gi tr khi to sau khi
dng Timer bng cch xa bit TR.
- Ch 2
Trong ch 2, b Timer dng TL cha gi tr m v TH cha gi tr np
li v vy ch ny c gi l ch t np li 8 bit. Sau khi m qu 255 s xy
ra trn, khi TF c t bng 1 ng thi gi tr ca Timer t ng c np li
bng ni dung ca TH.

Hnh 1.5 Hot ng ca Timer0 v Timer1 ch 2

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

29

- Ch 3

Hnh 1.6 Hot ng ca Timer0 ch 3


Trong ch 3, Timer 0 c tch thnh hai b Timer hot ng c lp (Hnh
1.6), ch ny s cung cp cho b vi iu khin thm b Timer na.
B Timer th nht vi ngun xung clock c ly t b chia tn trn chip hoc t
b to xung bn ngoi qua chn T0 ty thuc vo gi tr ca bit C-/T0. Vic iu
khin hot ng ca b th nht do bit GATE, bit TR0 v mc logic trn chn INT0
( ging ch 0, 1, 2).
Gi tr m ca Timer c cha trong TL0, khi xy ra trn, c TF0=1 v gy ra
ngt do Timer 0 (nu c t).
B Timer th hai vi ngun xung clock c ly t b chia tn trn chip. Vic
iu khin hot ng ca b th hai ch l vic t gi tr ca bit TR0. Gi tr m
ca Timer c cha trong TH0, khi xy ra trn, c TF1=1 v gy ra ngt do Timer
1 ( nu c t).
Khi Timer 0 c tch thnh hai Timer 8 bit th Timer 1 vn c th hot ng
bnh thng cc ch 0, 1, 2, tuy nhin khi xy ra trn c TF1 khng c thit
lp bng 1. Nh vy trong trng hp ny Timer 1 ch c th s dng cho cc ng
dng khng cn n ngt (TF1=1), chng hn nh to tc baud cho port ni tip.

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

30

1.7.4 Cc ngun xung Clock


C hai ngun xung clock c th m gi l s m gi bn trong v s m s
kin bn ngoi. Bit C/T trong TMOD cho php chn 1 trong 2 khi Timer khi ng.
- S bm gi bn trong
Nu bit C/T = 0 th hot ng ca Timer lin tc c chn vo b Timer c
ghi gi t dao ng trn chip. Mt b chia 12 c thm vo gim tn s clock
n mt gi tr ph hp hu ht cc ng dng. Cc thanh ghi THx v TLx tng tc
1/12 ln tn s dao ng trn chip. Nu dng thch anh 12MHz th a n tc
clock l 1MHz.
Cc s trn Timer sinh ra sau khi con s c nh ca nhng xung clock, n ph
thuc vo gi tr khi to c load vo cc thanh ghi THx v TLx.
- S m cc s kin
Nu bit C/T = 1 th b Timer c ghi gi t b ngun bn ngoi trong nhiu ng
dng, b ngun bn ngoi ny cung cp 1 s nh gi vi 1 xung trn s xy ra ca
s kin. S nh gi l s m s kin. Con s s kin c xc nh trong phn
mm bi vic c cc thanh ghi Timer TLx/THx, bi v gi tr 16 bit trong cc
thanh ghi ny tng ln cho mi s kin.
Ngun xung clock bn ngoi a chn P3.4 l ng nhp ca xung clock bi Timer
0 (T0) v P3.5 l ng nhp ca xung clock bi Timer 1 (T1).
Trong cc ng dng m, cc thanh ghi Timer c tng trong p ng ca s
chuyn trng thi t 1 sang 0 ng nhp Tx. Ng nhp bn ngoi c th trong
sut S5P2 ca mi chu k my. Do khi ng nhp a ti mc cao trong mt chu
k v mc thp trong mt chu k k tip th b m tng ln 1. Gi tr mi xut hin
trong cc thanh ghi Timer trong sut S5P1 ca chu k theo sau mt s chuyn c
khm thy. Bi v n chim 2 chu k my (2s) nhn ra s chuyn i t 1 sang
0, nn tn s bn ngoi ln nht l 500kHz nu dao ng thch anh 12MHz.

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

31

1.8 Cng ni tip


1.8.1 Gii thiu
AT89S52 c mt cng ni tip trn chp c th hot ng nhiu ch
khc nhau vi cc tc khc nhau. Chc nng ch yu ca cng ni tip l thc
hin chuyn i song song sang ni tip vi d liu xut v chuyn i ni tip
sang song song vi d liu nhp c th giao tip vi my tnh.
Phn cng truy xut ti Port ni tip qua cc chn TXD (P3.1) v RXD (P3.0)
Cng ni tip c th hot ng song cng (full duplex:thu v pht ng thi) v
m lc thu ( receiver buffering ) cho php mt k t s c thu v c gi trong
khi k t th hai c nhn. Nu CPU c k t th nht trc khi k t th hai
c thu y th d liu s khng b mt.
Hai thanh ghi chc nng c bit cung cp cho phn mm truy xut n Port ni
tip l SBUF v SCON. S m Port ni tip ( SBUF ) a ch 99H l hai s m
thc s: ghi ln SBUF load d liu pht v c SBUF truy xut d liu nhn.
y l hai thanh ghi ring bit v r rt, m thanh ghi pht ch ghi cn thanh ghi thu
ch c. Thanh ghi Port ni tip SCON (98H) l thanh ghi c c nh v bit
bao gm cc trng thi v cc bit iu khin. Cc bit iu khin Set Mode ca Port
ni tip, cn cc bit trng thi cho bit s kt thc vic thu pht 1 k t. Cc bit
trng thi c th c kim tra trong phn mm hoc c th lp trnh sinh ra s
ngt.
Tn s hot ng ca Port ni tip hoc tc Baud c th c ly dao ng
trn chip 8051 hoc thay i.

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

32

S ca Port ni tip nh sau:

Hnh 1.7 S khi cng ni tip ca 8051


1.8.2 Cc thanh ghi ca cng ni tip
C hai thanh ghi chc nng c bit cho php phn mm truy xut n cng
ni tip l SBUF v SCON.
- Thanh ghi iu khin cng ni tip ( SCON-Serial Controller ).
Thanh ghi iu khin cng ni tip (SCON) a ch 98H l thanh ghi 8 bit c
dng lp trnh vic ng khung bit bt u Start, bit dng Stop, cc bit d liu
cng vi vic khc v cha cc bit trng thi v cc bit iu khin lin quan ti
cng ni tip. Cc bit iu khin t ch hot ng cho cng ni tip, cc bit
trng thi bo co kt thc vic pht hoc thu mt k t. Cc bit trng thi c th
c kim tra bng phn mm hoc c th c lp trnh to ngt.

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

33

Bng 1.13 V tr v ngha cc bit ca thanh ghi SCON


SM0

SM1

SM2

REN

Bit

TB8

RB8

TI

RI

ngha

REN

Bit cho php cng c php nhn d liu

TB8

Bit d liu truyn th 9 khi cng lm vic ch truyn v


nhn 9 bit
Bit d liu nhn th 9 khi cng lm vic ch truyn v nhn

RB8

9 bit
C bo ngt khi hon thnh qu trnh truyn 1 byte d liu, c

TI

phi c xa bi phn mm
C bo ngt khi 1 byte d liu c nhn v y , c phi c

RI

xa bi phn mm
Bit cho php ch truyn thng gia nhiu vi iu khin vi

SM2

nhau (Mode2 v 3)

Bng 1.14 Cc ch ca cng ni tip ph thuc SM1, SM0

* Trc khi s dng cng, phi khi ng SCON chn ch hot ng cho
cng ni tip.
* Thanh ghi ny c nh a ch theo bit.
- Thanh ghi m truyn nhn cng ni tip (SBUF-Serial Buffer).
SBUF l thanh ghi 8 bit c dng ring cho truyn thng ni tip ca 8051.
Thanh ghi ny c chc nng m cc k t khi chng c nhn v t cng ni tip
hoc c truyn i t cng ni tip, vic truyn nhn qua cng ni tip thc cht l
vic truy xut thanh ghi ny.

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

34

1.8.3 Cc ch hot ng
- Ch 0
Ch 0 l ch m cng ni tip c dng nh mt thanh ghi dch 8 bit. D
liu c truyn/nhn ni tip trn chn RXD, chn TXD c dng pht xung
clock dch bit. Khi truyn/nhn cc byte d liu 8bit,bit c gi tr thp nht(LSB)
c truyn/nhn trc tin v bit MSB c truyn/nhn sau cng.Vic truyn d
liu c bt u bng vic ghi mt byte d liu vo SBUF cn vic nhn d liu
c bt u khi bit REN c t mc 1 v c thu RI= 0. Tc baud ch
0 c nh bng Fosc/12.

Hnh 1.8 Gin truyn nhn d liu ch 0


Tc baud ca ch 0:

Hnh 1.9 Tc baud ch 0


- Ch 1
Trong ch 1, cng ni tip hot ng nh mt b UART 8 bit c tc thay
i.
D liu c truyn ni tip trn chn TXD v nhn ni tip trn chn RXD,
ch ny cung cp cho AT89S52 mt cng c giao tip vi my tnh qua cng
Com.
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

35

Hnh 1.10 Gin truyn nhn d liu ca ch 1


Vi ch 1, 1 khung truyn s gm 10 bit, ngoi 8 bit d liu ra cn mt bit start
( mc thp) v 1 bit stop ( mc cao), LSB cng c truyn trc, MSB c
truyn sau.
Tc baud ca cng ni tip trong ch 1 c th c cung cp bi Timer 1
v Timer 2 hoc ng thi c hai nu mun tc truyn v nhn khc nhau.
AT89S52 truyn v nhn d liu ni tip theo nhiu tc khc nhau. Tc
truyn ca n c th lp trnh c. Khi s dng cc b Timer cung cp tc baud
cho cng ni tip th thch anh c tn s 11,0592 MHz c khuyn co nn dng
v vi tn s ny s to c tc baud chun sai s 0%.
Bng 1.15 Bng tc baud khc nhau

Hnh 1.11 Dng Timer 1 v Timer 2 cung cp tc baud cho cng ni tip
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

36

Khoa in t

Trn hnh 1.11, khi TCLK= RCLK= 1 tc baud ca cng ni tip c cung
cp bi Timer 2. Khc vi Timer 1, Timer 2 c cung cp xung clock c tn s
tn s ca b dao ng thch anh.
Khi cn tc baud khc nhau cho ng truyn v c nhn th c th s dng
c hai b Timer. Nu t TCLK= 1 v RCLK=0 th tc baud ca ng truyn
s c cung cp bi Timer 2, tc baud ca ng nhn s c cung cp bi
Timer 1.
Nu t TCLK=0 v RCLK=1 th tc baud ca ng truyn s c cung cp
bi Timer 1, tc baud ca ng nhn s c cung cp bi Timer 2.
Tc baud ca ch 1:

Hnh 1.12 Tc baud ch 1


- Ch 2
Ch ny, cng ni tip hot ng nh mt b UART 9 bit, mt khung truyn
gm 11 bit, trong bt u bng bit Start, tip theo l 8 bit d liu, tip theo l bit
d liu th 9 ( l bit TB8 nu l khung truyn, l bit RB8 nu l khung nhn ), cui
cng l bit Stop. Ch ny thng c dng khi cn chn thm bit kim tra chn
l vo trong khung truyn gim bt bit li ng truyn.
Tc baud trong ch 2 :

Hnh 1.13 Tc baud ch 2

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

37

- Ch 3
Ch 3 l s kt hp ca ch 1 v ch 2, ngha l cng ni tip hot ng
nh 1 b UART 9 bit v tc baud ca UART thay i ging nh ch 1 ( c
cung cp bi Timer1 v Timer2).

Tc baud ca ch 3:

Hnh 1.14 Tc baud ch 3


1.8.4 Tc baud ca Port ni tip
- Dng Timer 1 lm xung clock to tc baud.
Thng thng khi ng thanh ghi TMOD ch t ng np li 8 bit
(mode 2) v t gi tr np li thch hp vo thanh ghi TH1 c tc trn ng,
t to ra tc baud
TMOD=0x20;
Baud rate=Timer1 overflow/32 hay /16 ty theo gi tr bit SMOD
- Tnh ton cc gi tr np li cho thanh ghi TH1 i vi cc tc baud 9600,
4800, 2400, 1200 (XTAL=11.0592MHz)

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

38

Khoa in t

Bng 1.16 Cc gi tr ca thanh ghi TH1 to tc baud

1.9 Ngt v x l ngt


1.9.1 Gii thiu
Interrupt l mt s c c iu kin m n gy ra s ngng li tm thi ca
chng trnh phc v mt chng trnh khc. Cc Interrupt vn hnh mt Relay
rt quan trng trong thit b v s cung cp y cc ng dng vi iu khin.
Chng cho php mt h thng p ng ng b n s kin quan trng v gii
quyt s kin trong khi chng trnh khc ang thc thi. Mt h thng c li
bi Interrupt cho mt k xo lm nhiu cng vic cng mt lc. Tt nhin CPU
khng th thc thi nhiu lnh ti mt thi im, nhng n c th tm thi treo cng
vic thc thi ca chng trnh chnh thc thi chng trnh khc v sau quay
li chng trnh chnh.
Khi chng trnh chnh ang thc thi m c mt s ngt xy n th chng trnh
chnh ngng thc thi v r nhnh n th tc phc v ngt ISR. ISR thc thi thc
hin hot ng v kt thc vi lnh tr li t s ngt. Chng trnh tip tc ni
m n dng li.

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

39

Hnh 1.15 Chng trnh trc (a) v sau (b) khi c ngt xy ra
1.9.2 T chc ngt
AT89S52 c 6 ngun ngt:
- Ngt ngoi n t chn #INT0.
- Ngt ngoi n t chn #INT1.
- Ngt do b Timer 0.
- Ngt do b Timer 1.
- Ngt do b Timer 2.
- Ngt do Port ni tip.
6 ngun ngt ny c xa khi reset v c t ring bng phn mm bi cc bit
trong thanh ghi cho php ngt (IE), thanh ghi u tin ngt (IP).
* Thanh ghi cho php ngt IE (Interrupt Enable):
EA

SVTH: Trn Th Cnh

ET2

ES

ET1

EX1

ET0

EX0

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

40

Bng 1.17 V tr v cng dng cc bit ca thanh ghi IE

* Thanh ghi u tin ngt IP:


Mi ngun ngt c lp trnh ring t vo mt trong hai mc u tin qua
thanh ghi chc nng c bit c a ch bit IP a ch B8H.
-

PT2

PS

PT1

PX1

PT0

PX0

Bng 1.18 V tr v cng dng cc bit ca thanh ghi IP

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

41

Khoa in t

1.9.3 X l ngt
- Khi c mt ngt xut hin v c CPU chp nhnc cc thao tc sau:
+ Hon tt lnh thc thi hin hnh.
+ PC c ct vo Stack.
+ (Trng thi ca ngt hin hnh c lu gi li)
+ Cc ngt c chn li mc ngt.
+ PC np a ch vector ngt ca ISR.
+ Thc thi ISR.
-

Cc c gy ngt.
Bng 1.19 Cc c gy ngt

- Cc vector ngt.

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

42

Khoa in t

Bng 1.20 Cc Vector ngt

- Cc ngt do Port ni tip.


+ Cc ngt ny xut hin khi c ngt pht TI hoc c ngt thu RI c set bng 1.
+ C gy ra ngt port ni tip khng c xa bi phn cng khi CPU tr ti
ISR.
- Cc ngt ngoi.
+ Xy ra khi c mc thp hoc c cnh m trn chn /INT0 v /INT1.
+ Cc c gy ra ngt ny l cc bit IE0, IE1 ca TCON.
+ Vic chn cc ngt loi tc ng mc hay cnh c lp trnh thng qua cc bit
IT0 v IT1 ca TCON.
+ Cc c gy ngt IE0, IE1 t ng c xa khi CPU tr ti ISR tng ng.

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

43

CHNG 2. CC LINH KIN LIN QUAN

2.1 Tm hiu v IC thi gian thc DS1307


2.1.1 Gii thiu
DS1307 l chip ng h thi gian thc ( RTC: Real-time clock ), khi nim
thi gian thc y c dng vi ngha thi gian tuyt i m con ngi ang
s dng tnh bng giy, pht, gi DS1307 l sn phm ca Dallas Semiconductor
(mt cng ty thuc Maxim Integrated Products ). Chip ny c 7 thanh ghi 8 bit cha
thi gian l: giy, pht, gi, th (trong tun), ngy, thng, nm. Ngoi ra chip ny
cn c mt thanh ghi iu khin ng ra ph v 56 thanh ghi trng c th dng nh
Ram. DS1307 c c v ghi thng qua giao tip ni tip I2C nn cu to bn
ngoi rt n gin. DS1307 xut hin hai gi SIOC v DIP c 8 chn.

Hnh 2.1 Cc dng ng gi ca chip DS1307


2.1.2 S v chc nng cc chn

Hnh 2.2 S chn ca DS1307


- X1 v X2: l hai ng kt ni vi 1 thch anh 32.768kHz lm ngun to dao ng
cho chip.
- Vbat: cc dng ca mt ngun Pin 3V nui chip.
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

44

- GND: chn mass chung cho c Pin 3V v Vcc.


- Vcc: ngun cho giao din I2C, thng l 5V dng chung vi vi iu khin.
- SQW/OUT: mt ng ph to xung vung ( Square Ware / Output Driver ), tn s
ca xung c to c th c lp trnh. Chn ny c th pht i 1 trong 4 tn s
(1Hz, 4kHz , 8kHz, 32kHz). Nh vy chn ny hu nh khng lin quan n chc
nng ca DS1307 l ng h thi gian thc, c th b trng chn ny khi ni mch.
- SCL v SDA : l hai ng giao xung nhp v d liu ca giao din I2C.
* Nu Vcc khng c cp ngun nhng Vbat c cp th DS1307 vn hot ng
(nhng khng ghi v c c).
* Chn SQW/OUT hot ng c khi c Vcc v Vbat c cp.
C th kt ni DS1307 bng mt mch in n gin nh sau:

Hnh 2.3 S mc c bn ca DS1307


2.1.3 Ti nguyn v cch xut nhp d liu vo DS1307
Cu to bn trong ca DS1307 bao gm mt s thnh phn nh mch ngun,
mch dao ng, mch iu khin logic, mch giao din I2C, con tr a ch v cc
thanh ghi (hay Ram ). Do a s cc thnh phn bn trong DS1307 l thnh phn
cng nn chng ta khng c qu nhiu vic khi s dng DS1307. S dng DS1307
ch yu l vic c v ghi cc thanh ghi ca chip ny. V th cn hiu r hai vn
c bn l cu trc cc thanh ghi v cch truy xut cc thanh ghi ny thng qua
giao din I2C.
B nh DS1307 c tt c 64 thanh ghi 8 bit c nh a ch t 0 n 63 ( t 0x00
n 0x3f). Tuy nhin, thc cht ch c 8 thanh ghi u l dng cho chc nng ng
h ( RTC ) cn li 56 thanh ghi b trng c th c dng cha bin tm nh Ram
nu mun. By thanh ghi u tin cha thng tin v thi gian ca ng h bao gm

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

45

Khoa in t

giy (SECONDS), pht (MINUETS), gi (HOURS), th (DAY), ngy (DATE),


thng (MONTH), Nm (YEAR). Vic ghi gi tr vo 7 thanh ghi ny tng ng
vi vic ci t thi gian khi ng cho RTC. Vic c gi tr t 7 thanh ghi l
c thi gian thc m chip to ra.
T chc b nh ca DS1307 c trnh by nh sau:

Hnh 2.4 S cu trc ca cc thanh ghi trong DS1307


V 7 thanh ghi u tin quan trng nht trong hot ng ca DS1307, nn kho st
cc thanh ghi ny mt cch chi tit.
iu u tin cn ch l gi tr thi gian lu trong cc thanh ghi theo dng
BCD. BCD l vit tt ca cm t Binary-Coded Decimal, tm dch l cc s thp
phn theo m nh phn.
V d: mun ci t cho thanh ghi MINUTES gi tr 42. Nu quy i 42 sang m
thp lc phn th thu c 42= 0x2A . Theo cch hiu thng thng th cn gn gi
tr MINUTES= 42. Nhng v cc thanh ghi ny cha cc gi tr BCD ln mi
chuyn s khc .

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

46

Hnh 2.5 Cch cp nht d liu cho DS1307


Vi s 42, trc ht n tch thnh hai ch s 4 v 2. Mi ch s sau c i
thnh m nh phn 4 bit. Ch s 4 c i thnh m nh phn 4 bit l 0100 trong
khi 2 i thnh 0010. Ghp m nh phn ca hai ch s li thu c mt s 8 bit,
l s BCD. Vi trng hp ny, s BCD thu c l 01000010 ( nh phn )=66.
Nh vy, t s pht 42 cho DS1307 cn ghi vo thanh ghi MINUTES gi tr 66
( m BCD ca 42 ). Tt c cc phn mm lp trnh hay cc thanh ghi ca chip iu
khin u s dng m nh phn thng thng, khng phi m BCD, do cn phi
vit cc chng trnh con quy i t s thp lc phn (hoc thp phn thng)
sang BCD.

Hnh 2.6 T chc theo bit ca cc thanh ghi

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

47

Khoa in t

T chc cc thanh ghi thi gian:


- Thanh ghi giy ( SECONDS ): thanh ghi ny l thanh ghi u tin trong b nh
ca DS1307, a ch ca n l 0x00. Bn bit thp ca thanh ghi ny cha m BCD
4-bit ca ch s hng n v ca gi tr giy. Do gi tr cao nht ca ch s hng
chc l 5 (khng c giy 60) nn ch cn 3 bit (cc bit SECONDS 6:4) l c th m
ha c (s 5 =101, 3 bit). Bit cao nht, bit 7, trong thanh ghi ny l 1 iu khin
c tn CH (Clock halt treo ng h ), nu bit ny c set bng 1 b dao ng
trong chip b v hiu ha, ng h khng hot ng. Vy, nht thit phi reset bit
ny xung 0 ngay t u.
- Thanh ghi pht (MINUTES): c a ch 01H, cha gi tr pht ca ng h.
Tng t thanh ghi SECONDS, ch c 7 bit ca thanh ghi ny c dng lu m
BCD ca pht, bit 7 lun lun bng 0.
- Thanh ghi gi (HOURS): c th ni y l thanh ghi phc tp nht trong DS1307.
Thanh ghi ny c a ch 02H. Trc ht 4-bit thp ca thanh ghi ny c dng
cho ch s hng n v ca gi. Do DS1307 h tr 2 loi h thng hin th gi (gi
l mode) l 12h (1h n 12h) v 24h (1h n 24h), bit 6 (hnh 2.6) xc lp h thng
gi. Nu bit 6= 0 th h thng 24h c chn, khi 2 bit cao 5 v 4 dng m ha
ch s hng chc ca gi tr gi. Do gi tr ln nht ca ch s hng chc trong
trng hp ny l 2 ( = 10, nh phn) nn 2 bit 5 v 4 l m ha. Nu bit 6= 1
th h thng 12h c chn, vi trng hp ny ch c bit 4 dng m ha ch s
hng chc ca gi, bit 5 (mu orange trong hnh 2.6) ch bui trong ngy, AM hoc
PM. Bit 5=0 l AM v bit 5=1 l PM. Bit 7 lun bng 0.
- Thanh ghi th ( DAY ngy trong tun ): nm a ch 03H. Thanh ghi DAY ch
mang gi tr t 1 n 7 tng ng t Ch nht n th 7 trong 1 tun. V th, ch c
3 bit thp trong thanh ghi ny c ngha.
- Cc thanh ghi cn li c cu trc tng t, DATE cha ngy trong thng (1 n
31), MONTH cha thng (1 n 12) v YEAR cha nm (00 n 99). Ch ,
DS1307 ch dng cho 100 nm, nn gi tr nm ch c 2 ch s , phn u ca nm
do ngi dng t thm vo (v d 20xx). Ngoi cc thanh ghi trong b nh, DS1307
cn c mt thanh ghi khc nm ring gi l con tr a ch hay thanh ghi a ch

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

48

(Address Register). Gi tr ca thanh ghi ny l a ch ca thanh ghi trong b nh


m ngi dng mun truy cp.
Cu trc ca DS1307 nh sau:

Hnh 2.7 S cu trc bn trong ca DS1307

2.1.4 Thut ton giao tip I2C vi Vi iu khin AT89S52


2.1.4.1 iu kin Start v Stop
iu kin START v STOP START v STOP l nhng iu kin bt buc phi
c khi mt thit b ch mun thit lp giao tip vi mt thit b no trong mng
I2C. START l iu kin khi u, bo hiu bt u ca giao tip, cn STOP bo
hiu kt thc mt giao tip. Hnh 2.8 m t iu kin START v iu kin STOP
khi giao tip I2C gia DS1307 vi Vi iu khin.

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

49

Hnh 2.8 iu kin Start v Stop


Ban u khi cha thc hin qu trnh giao tip, c hai ng SDA v SCL u
mc cao (SDA = SCL = HIGH). Lc ny bus I2C c coi l ri ( bus free ),
sn sng cho mt giao tip. Hai iu kin START v STOP l khng th thiu trong
vic giao tip gia cc thit b I2C, tt nhin l trong giao tip ny cng khng
ngoi l.
iu kin START: mt s chuyn i trng thi t cao xung thp trn ng
SDA trong khi ng SCL ang mc cao (cao = 1, thp = 0) bo hiu mt iu
kin START.
iu kin STOP: Mt s chuyn i trng thi t mc thp ln cao trn ng
SDA trong khi ng SCL ang mc cao.
C hai iu kin START v STOP u c to ra bi thit b ch. Sau tn hiu
START, bus I2C coi nh ang trong trng thi lm vic (busy). Bus I2C s ri , sn
sng cho mt giao tip mi sau tn hiu STOP t pha thit b ch.
Sau khi c mt iu kin START, trong qu trnh giao tip, khi c mt tn hiu
START c lp li thay v mt tn hiu STOP th bus I2C vn tip tc trong trng
thi bn. Tn hiu START v lp li START u c chc nng ging nhau l khi
to mt giao tip.

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

50

2.1.4.2 Ch hot ng

Hnh 2.9 Qu trnh c v ghi d liu ca DS1307


Ch hot ng ca I2C DS1307 c th hot ng 2 ch sau:
Ch slave nhn ( ch DS1307 ghi): chui d liu v chui xung
clock s c nhn thng qua SDA v SCL. Sau mi byte c nhn th 1 bit
acknowledge s c truyn. Cc iu kin START v STOP s c nhn dng
khi bt u v kt thc truyn 1 chui. Nhn dng a ch c thc hin bi phn
cng sau khi chp nhn a ch ca slave v bit chiu. Byte a ch l byte u tin
nhn c sau khi iu kin START c pht ra t master. Byte a ch c cha 7
bit a ch ca DS1307, l 1101000, tip theo l bit chiu (R/ W) cho php ghi
khi n bng 0. Sau khi nhn v gii m byte a ch th thit b s pht i 1 tn hiu
acknowledge ln ng SDA. Sau khi DS1307 nhn dng c a ch v bit ghi
th master s gi mt a ch thanh ghi ti DS1307, to ra mt con tr thanh ghi trn
DS1307 v master s truyn tng byte d liu cho DS1307 sau mi bit
acknowledge nhn c. Sau master s truyn iu kin STOP khi vic ghi hon
thnh.
Ch slave pht ( ch DS1307 c): byte u tin slave nhn c
tng t nh ch slave ghi. Tuy nhin trong ch ny th bit chiu li ch chiu
truyn ngc li. Chui d liu c pht i trn SDA bi DS1307 trong khi chui
xung clock vo chn SCL. Cc iu kin START v STOP c nhn dng khi bt
u hoc kt thc truyn mt chui. Byte a ch nhn c u tin khi master pht
i iu kin START. Byte a ch cha 7 bit a ch ca slave v 1 bit chiu cho
php c l 1. Sau khi nhn v gii m byte a ch th thit b s nhn 1 bit
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

51

acknowledge trn ng SDA. Sau DS1307 bt u gi d liu ti a ch con


tr thanh ghi thng qua con tr thanh ghi. Nu con tr thanh ghi khng c vit
vo trc khi ch c c thit lp th a ch u tin c c s l a ch
cui cng cha trong con tr thanh ghi. DS1307 s nhn c mt tn hiu Not
Acknowledge khi kt thc qu trnh c. c d liu - ch slave pht.
2.1.4.3 Cch thc giao tip vi DS1307
lm vic vi DS1307, thc hin cc bc nh sau:
START I2C
Ghi: 0DxH ( y l a ch ca DS1307 do nh sn xut quy nh trong giao tip
I2C ) vi: x=0: Ghi d liu vo DS1307, x=1: c d liu vo DS1307.
Ghi tham s x ny vo, c ngha l vic tip theo chng ta ghi hay c d liu t
con DS1307 ty vo gi tr x=0 (ghi d liu) hay x=1 (c d liu).
Ghi vo a ch thanh ghi cn ghi hoc cn c.
Ghi hoc c d liu.
STOP I2C

Nu mun ghi vo a ch 01H ri k tip ghi vo a ch 04H chng hn th


chng ta phi START li t uGhi vo 0D0H ( xc nh s Ghi vo DS1307
_ hng giao tip l Ghi vo ) Ghi tip 04HGhi d liu ca thanh ghi cn ci
tSTOP I2C.
Tng t, nu mun c th trc ht phi ghi vo a ch cn c : tc l vn tip
tc tin hnh 3 th tc STARTGhi 0D0HGhi vo a ch ( a ch ca thanh
ghi m mun c d liu ). Sau , mi START li ri ghi li 0D1H (lc ny mi
thng bo l s c t DS1307 ), tip theo c c bnh thng ( thanh ghi c c
s l thanh ghi c a ch mi va ghi vo), tip tc c th a ch cn c s t
ng tng ln cho n khi STOP I2C.
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

52

S tng qut ca mch ng h:

Hnh 2.10 S tng qut ca ng h


2.1.4.4 Thut ton thit k phn mm
Nh trnh by trong phn thut ton giao tip v s khi tng qut, th
chng trnh MAIN s gm 3 mc chnh c m t c th trong lu ca
chng trnh MAIN hnh 2.11

Hnh 2.11 Thut ton giao tip ca DS1307 vi Vi iu Khin

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

53

Khoa in t

Gii thch lu chnh ny: Bt u, chng trnh s gi chng trnh con c


d liu t con DS1307 vi chun giao tip I2C, sau s gi chng trnh con
qut Led 7 on hin th 15 s: 2 s hin th gi tr ca Gi, 2 s hin th gi tr ca
Pht, 2 s hin th gi tr ca Giy, 1 s hin th th, 2 s hin th ngy, 2 s hin th
thng, 4 s hin th nm. Nu phm MODE (chn ch ci t) khng c nhn
th vng lp ca chng trnh ny s chy v tn. Nu phm MODE c nhn, n
s nhy ti chng trnh con ci t gi hay pht cn ty thuc vo s ln nhn
phm MODE. Sau y ta i vo chi tit ca tng khi nh:
C D LIU T DS1307 LU VO TRONG RAM CA 89S52. Xem lu
chng trnh nh hnh di. y, cc chng trnh con nh hn, chng hn nh :
CTC Start, Stop

Hnh 2.12 Qu trnh c d liu t DS1307 c lu vo Ram AT89S52

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

54

Khoa in t

- Ci t thi gian.

Hnh 2.13 Thut ton ci t gi


Trong lu gii thut trn hnh 2.13 cho thy, vng lp ca chng trnh s chy
v tn cho n khi c phm MODE c n xung. Khi , n nhy n CTC
gii quyt vic ci t thi gian.
Lu CTC ci t gi CTC ci t pht cng c nguyn tc tng t nh ci t
gi nn khng c ni ra y. Nhn vo lu chng ta thy, thanh ghi= 02H, l
a ch ca thanh ghi gi trong con DS1307, nh vy, mc ch ca vic nh ngha
nh thanh ghi l xc nh a ch thay i gi tr trong nh RAM ca
DS1307. CTC ci t gi s lp v tn v CTC hin th gi s ch cho hin th 2 Led
7 on, ch hin th gi trong khi ci t, tt c cc n Led cn li u tt ht.
Trong khi CTC ci t ang chy v tn, nu c phm INC hoc DEC c nhn th
n s nhy n CTC tng hoc gim ty vo phm c nhn.

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

55

Hnh 2.14 Thut ton cp nht d liu cho DS1307


2.2 B bin i tng t sang s (ADC0804)
2.2.1 Gii thiu
Chp ADC0804 l b chuyn i tng t sang s thuc h ADC800 ca
hng National Semiconductor. Chp ny cng c nhiu hng khc sn xut. Chp
c in p nui +5V v phn gii 8 bit. Ngoi phn gii th thi gian chuyn
i cng l mt tham s quan trng khi nh gi b ADC. Thi gian chuyn i
c nh ngha l thi gian m b ADC cn chuyn mt u vo tng t thnh
mt s nh phn. i vi ADC 0804 th thi gian chuyn i ph thuc vo tn s
ng h c cp chn CLK v CLK IN v khng b hn 110s.

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

56

2.2.2 S v chc nng cc chn ADC0804


2.2.2.1 S chn

Hnh 2.15 S chn thc t ca ADC0804


2.2.2.2 Chc nng cc chn
Chn CS (Chip select).
Chn s 1, l chn chn chip, u vo tch cc mc thp c s dng kch
hot chip ADC0804. truy cp ADC0804 th chn ny phi mc thp.
Chn RD (Read).
Chn s 2 l mt tn hiu vo, tch cc mc thp. Cc b chuyn i u vo
tng t thnh s nh phn v gi n mt thanh ghi trong. RD c s dng
c d liu c chuyn i ti u ra ca ADC0804.
Khi CS = 0 nu c mt xung cao xung thp n chn RD th d liu ra dng
s 8 bit c a ti cc chn d liu (DB0-DB7).
Chn WR (Write).
Chn s 3, y l chn tch cc mc thp c dng bo cho ADC bit bt
u qu trnh bin i. Nu CS=0 khi WR to ra xung cao xung thp th b
ADC0804 bt u qu trnh chuyn i gi tr u vo tng t Vin v s nh
phn 8 bit. Khi vic chuyn i hon tt th chn INTR c ADC h xung
thp.
Chn CLKIN v CLKR.
CLKIN (chn s 4), l chn vo ni ti ng h ngoi c s dng to thi
gian. Tuy nhin ADC0804 cng c mt b to ng h ring. dng ng h
ring th cc chn CLKIN v CLKR (chn 19) c ni vi mt t in v mt
in tr (nh hnh 2.16). Khi tn s c xc nh bng biu thc:
f=1/(RC)

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

57

Khoa in t

Vi R=15k, C=151pF

Hnh 2.16 Cch mc to xung ng h cho chp ADC0804


Chn Ngt INTR (Interrupt).
Chn s 5 l chn ra tch cc mc thp. Bnh thng chn ny trng thi cao
v khi vic chuyn i hon tt th n xung thp bo cho CPU bit d liu
chuyn i sn sng ly i. Sau khi INTR xung thp, cn t CS = 0 v gi
mt xung cao xung thp ti chn RD a d liu ra.
Chn Vin(+) v Vin(-).
Chn s 6 v chn s 7, y l hai u vo tng t vi sai, trong Vin =
Vin(+) - Vin(-). Thng thng Vin(-) c ni vi t v Vin(+) c dng
lm u vo tng t v s c chuyn i v dng s.
Chn Vcc.
Chn s 20 l chn ngun nui +5V. Chn ny cn c dng lm in p
tham chiu khi u vo Vref/2 h.
Chn Vref/2.
Chn s 9 l chn in p u vo c dng lm in p tham chiu. Nu
chn ny h th in p u vo tng t cho ADC0804 nm trong di 0 - +5V.

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

58

Tuy nhin, c nhiu ng dng m u vo tng t n Vin khc vi di 0-5V.


Chn Vref/2 c dng thc hin cc in p u ra khc 0-5V.
Bng 2.1 Bng so snh in p

Vref/2 (V)
H
2.0
1.5
1.28
1.0
0.5

Vin (V)
0-5
0-4
0-3
0 - 2.56
0-2
0-1

Kch thc bc (mV)


5/256 = 19.53
4/256 = 15.62
3/256 = 11.71
2.56/256 = 10
2/256 = 7.81
1/256 = 3.90

Chn d liu (DB0-DB7).


D0-D7, chn 18-11, l cc chn ra d liu s (D7 l bit cao nht MSB v D0 l
bit thp nht LSB). Cc chn ny c m ba trng thi v d liu c
chuyn i ch c truy cp khi chn CS = 0 v chn RD a xung mc
thp. tnh in p u ra ta tnh theo cng thc sau.
Dout=Vin /(kch thc bc).

2.3 Vi iu khin AT89S52


2.3.1 Gii thiu
AT89S52 cung cp nhng c tnh chun nh: 8 KByte b nh ch c c
th xa v lp trnh nhanh (EPROM), 128 Byte RAM, 32 ng I/O, 3
TIMER/COUNTER 16 Bit, 6 vect ngt c cu trc 2 mc ngt, mt Port ni tip
bn song cng, 1 mch dao ng to xung Clock v b dao ng ON-CHIP.
Cc c im ca chip AT89S52 c tm tt nh sau:
8 KByte b nh c th lp trnh nhanh, c kh nng ti 1000 chu k
ghi/xo
Tn s hot ng t: 0Hz n 24 MHz
3 mc kha b nh lp trnh

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

59

3 b Timer/counter 16 Bit
128 Byte RAM ni.
4 Port xut /nhp I/O 8 bit.
Giao tip ni tip.
64 KB vng nh m ngoi
64 KB vng nh d liu ngoi.
4 s cho hot ng nhn hoc chia.
2.3.2 S chn v chc nng cc chn ca AT89S52
2.3.2.1 S chn ca AT89S52

Hnh 2.17 S chn ca AT89S52


Mc d cc thnh vin ca h 8051 (v d 8751, 89S52, 89C51, DS5000)
u c cc kiu ng v khc nhau, chng hn nh hai hng chn DIP (Dual InLine Pakage), dng v dt vung QPF (Quad Flat Pakage) v dng chip khng c
chn LLC (Leadless Chip Carrier) th chng u c 40 chn cho cc chc nng
khc nhau nh vo ra I/O, c RD , ghi WR , a ch, d liu v ngt. Cn phi lu
mt s hng cung cp mt phin bn 8051 c 20 chn vi s cng vo ra t hn
cho cc ng dng yu cu thp hn. Tuy nhin v hu ht cc nh pht trin s dng
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

60

chp ng v 40 chn vi hai hng chn DIP nn ta ch tp trung m t phin bn


ny.
2.3.2.2 Chc nng cc chn ca AT89S52
* Port 0 (P0.0-P0.7)
Port 0 gm 8 chn (t chn 32 n chn 39), c hai cng dng. Trong cc
thit k c ti thiu thnh phn, Port 0 c s dng lm nhim v xut nhp.
Trong cc thit k ln hn c b nh ngoi, Port 0 tr thnh bus a ch v bus d
liu a hp ( byte thp ca bus a ch ).

Hnh 2.18 Cu trc ca cc chn trn Port0

* Khi mun s dng Port 0 cho vic xut nhp d liu ta cn ko mt hng in tr
vo Port 0 v ni ln Vcc.
* Port 1 (P1.0-P1.7)
i vi 8051, chc nng duy nht ca Port 1 l chc nng xut nhp cng
Port khc, Port 1 c th xut nhp theo bit v theo byte. Port 1 c dng giao
tip vi thit b ngoi khi c yu cu. Khng c chc nng no khc na gn cho
Port 1, ngoi hai vic trn.
* Ring dng 89Sxx, ba chn P1.5, P1.6, P1.7 c dng np Rom theo chun
ISP 2 chn P1.0, P1.1 c dng cho Timer 2.

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

61

Hnh 2.19 Cu trc ca cc chn trn Port 1 v Port 3

* Port 2 (P2.0-P2.7)
Port 2 (cc chn t 21 n 28) c hai cng dng hoc lm nhim v
xut/nhp hoc l byte a ch cao ca bus a ch 16 bit cho cc thit k c b nh
chng trnh ngoi hoc cc thit k c nhiu hn 256 byte b nh d liu ngoi.

Hnh 2.20 Cu trc ca cc chn trn Port2

* Port 3 (P3.0-P3.7)
Mi chn trn Port 3 ngoi chc nng xut nhp cn c mt s chc nng
ring, c th nh sau:

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

62

Bng 2.2 Tn chn v chc nng cc chn ca Port 3

Bit

Tn

Chc nng

P3.0

RXD

D liu nhn cho port ni tip

P3.1

TXD

D liu truyn cho port ni tip

P3.2

INT0

Ngt ngoi 0

P3.3

INT1

Ngt ngoi 1

P3.4

T0

Ng vo ca Timer/Counter 0

P3.5

T1

Ng vo ca Timer/Counter 1

P3.6

/WR

Xung ghi b nh d liu ngoi

P3.7

/RD

Xung c b nh d liu ngoi

* Chn /PSEN (Program Store Enable)


/Psen l chn iu khin c chng trnh b nh ngoi, n c ni vi
chn /OE cho php c cc byte m lnh trn Rom ngoi. /Psen s mc thp
trong thi gian c m lnh. M lnh c c t b nh ngoi bus d liu (Port 0)
thanh ghi lnh c gii m.
Khi thc hin chng trnh trong Rom ni th /Psen mc cao.
* Chn ALE (Address Latch Enable)
ALE l tn hiu iu khin cht a ch c tn s bng 1/6 tn s dao ng
ca vi iu khin. Tn hiu ALE c dng cho php vi mch cht bn ngoi
nh 74373 , 74573 cht byte a ch thp ra khi bus a hp a ch/d liu (Port 0).
* Chn /EA (External Access)
Tn hiu /EA cho php chn b nh chng trnh l b nh trong hay ngoi
vi iu khin. Nu /EA mc cao (ni Vcc), th vi iu khin thi hnh chng trnh
trong Rom ni. Nu /EA mc thp ( ni GND ) th vi iu khin thi hnh chng
trnh t b nh ngoi.
* Chn RST (Reset)
Ng vo RST trn chn 9 l ng reset ca 8051. Khi tn hiu ny c a
ln mc cao trong t nht 2 chu k my, cc thanh ghi trong b nh vi iu khin
c ti nhng gi tr thch hp khi ng li h thng. Qu trnh ny din ra
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

63

Khoa in t

nh ni mt t in (c gi tr 1-10 micro fara) v mt in tr khong 10k vo


chn ny.

Hnh 2.21 Mch reset AT89S52


* Chn XTAL1, XTAL2
AT89S52 c mt b dao ng trn chp, n thng c ni vi b dao ng
thch anh c tn s ln nht l 33MHz, thng thng l 12MHz. Thng c thm
hai t in loi 33pF c ni vi b dao ng thch anh.

Hnh 2.22 Mch to dao ng


ln ca mt chu k my c th nhn c bng cch chia tn s ca b
cng hng thch anh cho 12. Nh vy chu k my s bng 2 micro giy nu tn s
b cng hng thch anh 12MHz. Hu ht cc lnh c thc hin trong mt chu k
my.

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

64

Hnh 2.23 Mch to xung cho Vi iu khin


* Chn Vcc, GND
AT89S52 dng ngun mt chiu c di in p t 4V n 5,5V c cp qua
chn 40 v 20.
2.4 IC ghi dch 74HC595
2.4.1 Gii thiu
L IC ghi dch 8 bit kt hp cht d liu, u vo ni tip u ra song song.
Chc nng: thng dng trong cc mch qut led 7 thanh, led matrix
tit kim s chn VK ti a (3 chn). C th m rng s chn VK bao nhiu ty
thch m khng IC no c th lm c bng vic mc ni tip u vo d liu cc
IC vi nhau.
2.4.2 S chn v chc nng cc chn
2.4.2.1 S chn

Hnh 2.24 S chn thc t 74HC595

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

65

Khoa in t

2.4.2.2 Chc nng cc chn


Chn 14: u vo d liu ni tip. Ti mt thi im xung clock ch a
vo 1 bit.
Chn (15, 1, 2, 3, 4, 5, 6, 7): xut d liu khi chn 13 tch cc mc thp
v c mt xung tch cc sn m ti chn cht 12.
Chn 13: chn cho php tch cc mc thp. Khi mc cao, tt c cc u
ra ca 74HC595 tr v trng thi cao tr, khng c u ra no c cho
php.
Chn 9: chn d liu ni tip. Nu dng nhiu 74HC595 mc ni tip nhau
th chn ny a vo u vo ca con tip theo khi dch 8 bit.
Chn 11: chn vo xung clock. Khi c mt xung clock tch cc sn
dng (t 0 ln 1)th 1 bit c dch vo IC.
Chn12: xung clock cht d liu. Khi c mt xung clock tch cc sn
dng th cho php xut d liu trn cc chn output.
Chn 10: khi chn ny mc thp (mc 0) th d liu s b xa trn chip.
2.5 Led 7 on
2.5.1 Gii thiu
Trong cc thit b, bo trng thi hot ng ca thit b cho ngi s
dng vi thng s ch l cc dy s n thun, thng ngi ta s dng led 7
on. Led 7 on c s dng khi cc dy s khng i hi qu phc tp, ch cn
hin th s l , chng hn led 7 on c dng hin th nhit phng, trong
cc ng h treo tng bng in t, hin th s lng sn phm c kim tra sau
mt cng on no
Led 7 on c cu to bao gm 7 led n c dng thanh xp theo hnh v c
thm mt led n hnh trn nh th hin du chm trn gc di, bn phi ca led
7 on.
7 led n trn led 7 on c Anode (cc +) hoc Cathode (cc -) c ni
chung vi nhau vo mt im, c a chn ra ngoi kt ni vi mch in. 8
cc cn li trn mi led n c a thnh 8 chn ring, cng c a ra ngoi
kt ni vi mch in. Nu led 7 on c Anode (cc +) chung, u chung ny
c ni vi +Vcc, cc chn cn li dng iu khin trng thi sng tt ca cc

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

66

Khoa in t

led n, led ch sng khi tn hiu t vo cc chn ny mc 0. Nu led 7 on c


Cathode (cc -) chung, u chung ny c ni xung Ground (hay Mass), cc
chn cn li dng iu khin trng thi sng tt ca cc led n, led ch sng khi
tn hiu t vo cc chn ny mc 1.
V led 7 on cha bn trong n cc led n, do khi kt ni cn m bo
dng qua mi led n trong khong 10mA-20mA bo v led. Nu kt ni vi
ngun 5V c th hn dng bng in tr 330 trc cc chn nhn tn hiu iu
khin.

Hnh 2.25 S chn 7 SEG-COM-ANODE v hnh nh minh ha


2.5.2 Kt ni vi vi iu khin
Ng nhn tn hiu iu khin ca led 7 on c 8 ng, v vy c th dng
1 Port no ca Vi iu khin iu khin led 7 on. Nh vy led 7 on nhn
mt d liu 8 bit t Vi iu khin iu khin hot ng sng tt ca tng led n
trong n, d liu c xut ra iu khin led 7 on thng c gi l "m hin th
led 7 on". C hai kiu m hin th led 7 on: m dnh cho led 7 on c Anode
(cc +) chung v m dnh cho led 7 on c Cathode (cc -) chung. Chng hn,
hin th s 1 cn lm cho cc led v tr b v c sng, nu s dng led 7 on c
Anode chung th phi t vo hai chn b v c in p l 0V (mc 0) cc chn cn li
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

67

c t in p l 5V (mc 1), nu s dng led 7 on c Cathode chung th in


p (hay mc logic) hon ton ngc li, tc l phi t vo chn b v c in p l
5V (mc 1).
Phn cng c kt ni vi 1 Port bt k ca Vi iu khin, thun tin cho
vic x l v sau phn cng nn c kt ni nh sau: Px.0 ni vi chn a, Px.1ni
vi chn b, ln lt theo th t cho n Px.7 ni vi chn h.
2.5.3 Bng m ca Led Anode chung (cc led n sng mc 0)
Bng 2.3 Bng m cho Led Anode chung (a l MSB, dp l LSB)
S

dp

M Hex

03h

9Fh

25h

0Dh

99h

49h

41h

1Fh

01h

09h

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

68

Bng 2.4 Bng m cho Led Anode chung (a l LSB, dp l MSB)

Dp

M Hex

C0h

F9h

A4h

B0h

99h

92h

82h

F8h

80h

90h

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

69

2.5.4 Bng m ca Led Cathode chung (cc led n sng mc 1)


Bng 2.5 Bng m ca Led Cathode chung

Dp

M Hex

3Fh

06h

5Bh

4Fh

66h

6Dh

7Dh

07h

7Fh

6Fh

2.5.5 Giao tip Vi iu khin vi led 7 on (minh ha v thc hnh vi 8


led 7 on)
Nu kt ni mi mt Port ca Vi iu khin vi 1 led 7 on th ti a kt
ni c 4 led 7 on. Mt khc nu kt ni nh trn s hn ch kh nng thc hin
cc cng vic khc ca Vi iu khin. Cho nn cn phi kt ni, iu khin nhiu
led 7 on vi s lng chn iu khin t Vi iu khin cng t cng tt. C hai
gii php: mt l s dng cc IC chuyn dng cho vic hin th led 7 on, hai kt
ni nhiu led 7 on vo cng mt ng xut tn hiu hin th. Ni dung phn ny
s cp n cch kt ni nhiu led 7 on theo gii php th hai.
Mt ngi c c im sinh l l ch thu nhn 24 hnh/giy tng hp cc
hnh nh v th gii xung quanh. Nu mt tn hiu nh sng c chu k sng tt hn
24 ln trong 1 giy, mt ngi lun cm nhn l mt ngun sng lin tc.
minh ha cho iu ny, bn hy ly cc chng trnh thc hin vi led n v
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

70

Khoa in t

lm ngn thi gian delay li, n mt gi tr no bn s thy cc led u sng lin


tc.
kt ni nhiu led 7 on vo vi iu khin thc hin nh sau: ni tt c
cc chn nhn tn hiu ca tt c cc led 7 on (chn abcdefgh) cn s dng vo
cng 1 Port, trong v d, 8 led 7 on c cc chn nhn tn hiu cng c ni vi
P0. Dng cc ng ra cn li ca vi iu khin iu khin ON/OFF cho led 7 on,
mi ng ra iu khin ON/OFF cho 1 led 7 on (ON: led 7 on c cp ngun
hin th, OFF: led 7 on b ngt ngun nn khng hin th c).
S kt ni thc t nh hnh di:

Trong s trn, led 7 on c s dng l loi c Anode chung vi tt c


cc chn nhn tn hiu c kt ni vi Port 0 qua in tr hn dng. iu
khin ON/OFF cho cc led 7 on, s dng transitor loi PNP, transitor ny nhn
dng iu khin t mt ng ra ca Vi iu khin, led 7 on s c ON khi tn
hiu t vi iu khin n transitor mc 0. C th s dng transitor loi A564 hoc
2N3905 hoc mt transitor PNP khc c thng s ph hp. Cc in tr 4.7K v
in tr treo 4.7K m bo transitor lun hot ng ch ngt/dn (m bo khi
led 7 on ang trng thi OFF s b tt hon ton, khng b sng m m).

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

71

Khoa in t

Ti mi thi im , ch nn cho Vi iu khin iu khin cho 1 led 7 on


hot ng, do ti mi thi im ch nn c 1 ng ra duy nht ni vi transitor
mc 0.
Ti mi thi im ch c mt led 7 on c ON nn s khng xy ra tnh trng
qu ti cho ti v qu ti cho vi iu khin khi iu khin nhiu led 7 on.
Trong s kt ni trn, chng hn cn hin th s 451, quy c th t cc
led 7 on c m t phi sang tri, nh vy cn lm cho led 7 on th nht
hin th s 1, led 7 on th hai hin th s 5, led 7 on th ba hin th s 4, cc led
cn li khng hin th. u tin OFF tt c cc led 7 on. K tip l xut m hin
th led 7 on hin th s 1, ON led 7 on th nht, lc ny dng in ch i qua
led 7 on th nht, lm cho led 7 on th nht hin th s 1, thi gian ON trong
khong vi chc s (1s= 1/10 -6s). K tip xut m hin th lad 7 on hin th s 5,
OFF led 7 on th nht v ng thi ON led 7 on th hai, lc ny ch c led 7
on th hai hin th v hin thi s 5. Tip theo xut m hin th led 7 on hin th
s 4, OFF led 7 on th hai v ON led 7 on th ba, lc ny ch duy nht led 7
on th ba hin th s 4. C th lp li qu trnh trn lin tc. Thi gian ON/OFF
ch trong khong vi chc s, v ti mi thi im ch c mt led 7 on hin th s
ca chnh n, v vy mt ngi thy 3 led 7 on khng sng t qung, m sng
lin tc, mi led hin th 1 s ring ca n. Thc hin tng t m rng s lng
led 7 on cn s dng.

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

72

CHNG 3. THIT K M HNH

3.1 S nguyn l
Cc linh kin dng trong mch gm: IC AT89S52, IC DS1307, IC 74HC595,
Led 7 thanh, Pin 3V, T 10F, T 33pF, Thch anh 12MHz, Thch anh 32.768kHz,
in tr 10k, Con 3, Con 2, Nt nhn hai chn,v cc linh kin vt t ph tr.

Hnh 3.1 Mch iu khin

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

73

Khoa in t

Hnh 3.2 Mch o nhit

Hnh 3.3 Mch hin th

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

74

Khoa in t

Hnh 3.4 Mch hin th 1

Hnh 3.5 Mch ngun 5V

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

75

Khoa in t

Hnh 3.6 Mch qut phm

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

76

Khoa in t

3.2 S mch in

Hnh 3.7 Mch iu khin

Hnh 3.8 Mch o nhit

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

77

Khoa in t

Hnh 3.9 Mch hin th

Hnh 3.10 Mch hin th 1

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

78

Khoa in t

Hnh 3.11 Mch ngun 5V

Hnh 3.12 Mch qut phm

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

79

3.3 M hnh thc t

Hnh 3.13 M hnh ng h thc t

3.4 ng dng
Mch ng h thi gian thc hin th trn led 7 thanh c s dng rng ri
trong cuc sng hng ngy, chng ta c th thy n rt nhiu ni nh trong nh,
trng hc, trong cc cng ty, x nghip. ng dng ch yu l:
+ Dng xem thi gian hng ngy
+ Dng hn gi, bo thc
+ o thi gian trong th thao

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

80

KT LUN
Sau mt thi gian lm n tt nghip cng vi vic thit k, thi cng mch
v m hnh m phng theo thc t. Kt qu thu c ca em gn nh p ng c
yu cu ra.V mt n nh v hiu qu lm vic ca mch l mch hot ng tt
tuy nhin vn cn mt s im mc phi do yu t v mt thi gian, kinh nghim
ca em lm ti v mc tin cy trong hot ng v n nh ca linh kin.
Trong thi gian lm n v thc hin nhng cng vic em nhn c s
gip tn tnh ca Thy Hong Vn Quang cng nh cc thy c trong khoa in
T. V vy gip em hon thnh n tt nghip mt cch c hiu qu v gip
em c thm nhiu kin thc, kinh nghim trong cc cng vic sau ny.
Do thi gian c hn, kinh nghim cha c nhiu nn vic hon thnh n
khng th trnh khi thiu st. Kt qu t c ca n l:
u im:
+ Mang tnh thc t, ng dng cao trong i sng.
+ Gi thnh hp l.
Nhc im:
+ Tc iu khin ca 8051 cn hn ch.
+ Tnh thm m cha cao.
Hng Pht Trin Ti:
+ Dng cc dng vi iu khin khc nh PIC, AVR thit k ra ng h vn
nin tng t.
+ Ln hn chng ta c th to ln cc ng dng ln hn ca Vi iu Khin vo
vic phc v mc ch ca con ngi.
+ Thit k thm chng trnh i lch dng sang lch m.
+ Thay i ting chung bo thc bng bn nhc mnh yu thch.

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

81

Khoa in t

TI LIU THAM KHO


[1]. Tng Vn On, H vi iu khin 8051, NXB Lao ng X Hi, 2005.
[2]. V Th Thu Hng, Kiu Xun Thc, Vi iu khin cu trc lp trnh v ng
dng, NXB Gio Dc.
[3]. Nguyn Linh Giang, Gio trnh K thut lp trnh C, NXB Gio Dc, 2007.
[4]. Ti liu t Internet :
www.picvietnam.com
www.codientu.info
www.dientuvietnam.net
www.tailieu.vn

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

82

Khoa in t

PH LC
TRNH DCH KEILC V CHNG TRNH NP PROLOAD V4.1 CHO
8051
1 Gii thiu
Trong k thut lp trnh vi iu khin ni chung, ngn ng lp trnh c s dng
thng chia lm 2 loi: Ngn ng bc thp v Ngn ng bc cao. Ngn ng bc cao
l cc ngn ng gn vi ngn ng con ngi hn, do vic lp trnh bng cc
ngn ng ny tr nn d dng v n gin hn. C th k n mt s ngn ng lp
trnh bc cao nh C, Basic, Pascal trong C l ngn ng thng dng hn c
trong k thut vi iu khin. V bn cht, s dng cc ngn ng ny thay cho ngn
ng bc thp l gim ti cho lp trnh vin trong vic nghin cu cc tp lnh v xy
dng cc cu trc gii thut. Chng trnh vit bng ngn ng bc cao cng s
c mt phn mm trn my tnh gi l trnh bin dch (Compiler) chuyn sang
dng hp ng trc khi chuyn sang m my. Khi s dng ngn ng C ngi lp
trnh khng cn hiu su sc v cu trc ca b vi iu khin. C ngha l vi mt
ngi cha quen vi mt vi iu khin cho trc s xy dng c chng trnh
mt cch nhanh chng hn, do khng phi mt thi gian tm hiu kin trc ca vi
iu khin . V vic s dng li cc chng trnh xy dng trc cng d
dng hn, c th s dng ton b hoc sa cha mt phn.
Cc bn c th vo trang wed: http://www.mediafire.com/?nwdgtdlj1ln

download.
Phn mm m phng hu hiu Protues 7.5: http://www.mediafire.com/?kjniri54zzj
2 Hng dn s dng KeilC V3.0
Sau khi ci t xong th c ng dn sau: C:\Keil\UV3.v c Icon trn Destop:

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

83

Khoa in t

Sau khi khi ng chng trnh c giao din nh sau:

To mt Project mi__chn Project New Project:

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

84

Khoa in t

Trong a C c sn Folder tn UV3 dng lu d n C trong . Sau


khi chn New Projectth ca s Create New Project xut hin. Nhp tn d n,
ri nhn nt Save.

Sau ca s Select Device For Target Target 1, mc Data base chn


Atmel ri tm chn vi iu khin AT89S52 ri nhn OK .

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

85

Khoa in t

My tnh s hi c mun copy on m khi ng khng th nhn nt YES.

Tip theo kch chut vo File chn New m ca s son tho lp trnh. Sau
khi chn s c giao din nh sau:

Tip theo kch chut vo File chn Save As th thy ca Save As hin ra. Hy
t tn cho file lp trnh (nh t l *.C). Ri chn Save.

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

86

Khoa in t

Tip theo trong ca s Project Workspace, nhn p chut vo Target1 ri


nhp chut phi vo Source Group 1, chn Add File to Group Source Group
1.

Trong ca s Pop up hin ra sau kch chut chn tn file lp trnh lu lc


ny, ri nhn nt Add.

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

87

Khoa in t

Lc ny ca s Project Workspace c thm th mc con xut hin file


.c.By gi c th kch p chut vo file .c, lp trnh.

Sau khi lp trnh xong, lc ny mn hnh son tho c giao din nh sau:

Sau khi son tho code xong hy ch k bn ca s Target 1 c nt nh


hnh cy a. Kch chut vo .

Sau khi nhn th ca s Options for Targe Target 1, s hin ra. Ti th


Target th hy sa thng s Xtal(MHz) t 33 thnh 12.
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

88

Khoa in t

Tip theo bt sang th Output ri nh du vo ch Create Hex File, ri nhn


nt OK.

Sau khi hon tt cng vic chnh cc thng s th nhp chut phi vo file .c,
ri chn Build target (phm tt l F7) bt u qu trnh bin dch.

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

89

Khoa in t

Nu nh chng trnh lp trnh sai hoc thiu th lc bin dch chng trnh s
bo li. Sau khi sa li thnh cng th khi bin dch thnh cng. Lc ny tm
ng link: C:\Keil\UV3 ly file.hex. By gi dng mch np, np cho
AT89S52 hoc c th a vo Protues chy m phng.

3 M lp trnh
#include<regx52.h>
sbit SDA=P1^0;
sbit SCL=P1^1;
sbit mode1=P3^3;
sbit up=P3^4;
sbit down=P3^5;
sbit h_g=P3^6;
sbit mode2=P3^7;
sbit dulieu=P3^0;
sbit chot=P3^1;
sbit dich=P3^2;
sbit dich1=P2^2;
sbit dulieu1=P2^0;
sbit chot1=P2^1;

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

90

Khoa in t

sbit dich2=P2^5;
sbit dulieu2=P2^3;
sbit chot2=P2^4;
sbit dulieu3=P1^2;
sbit chot3=P1^3;
sbit dich3=P1^4;
sbit dulieu4=P1^5;
sbit chot4=P1^6;
sbit dich4=P1^7;
sbit coi=P0^0;
int idata
chuc_giay,don_vi,chuc_phut,don_vi_phut,chuc_gio,don_vi_gio,hg=0,hp=0,mo=0,ti
et=0;
int idata
thu_tuan,don_vi_ngay,chuc_ngay,don_vi_thang,chuc_thang,don_vi_nam,chuc_nam
;
int idata
sec1,sec2,h,p,s,t=0,b=0,k=0,g=0,n=0,d=0,mode=0,ht_thu,ht_ngay,ht_thang,ht_nam,
set1=0,tuan;
code unsigned int M[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void che_do();
void hien_thi4();
void delay(unsigned int t)
{
unsigned int i;
for(i=0;i<=t;i++);
}
unsigned char bcd_to_dec(unsigned char bien)
{
unsigned char chuc,don_vi,so;
chuc=bien>>4;
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

91

Khoa in t

don_vi=bien&0x0f;
so=chuc*10+don_vi;
return so;
}
unsigned char dec_to_bcd(unsigned char x)
{
unsigned char chuc,don_vi,so;
chuc=x/10;
don_vi=x%10;
so=(chuc<<4)|don_vi;
return so;
}
void start()
{
SCL=0;
SDA=1;
SCL=1;
SDA=0;
SCL=0;
}
void stop()
{
SCL=0;
SDA=0;
SCL=1;
SDA=1;
SCL=0;
}
void write_data(unsigned char da_ta)
{
int i;
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

92

Khoa in t

bit bitdata;
for(i=0;i<=7;i++)
{
bitdata=da_ta&0x80;
SDA=bitdata;
da_ta<<=1;
SCL=1;
SCL=0;
}
SDA=1;
SCL=1;
bitdata=SDA;
SCL=0;
}
unsigned char read_data(unsigned char x)
{
int i;
unsigned char da_ta;
bit bitdata;
SDA=1;
da_ta=0;
for(i=0;i<=7;i++)
{
SCL=1;
bitdata=SDA;
da_ta<<=1;
da_ta=da_ta|bitdata;
SCL=0;
}
SDA=x;
SCL=1;
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

93

Khoa in t

SCL=0;
SDA=1;
return da_ta;
}
void hien_thi1(int a,int b,int c,int d)
{
int j,y;
for(j=0;j<=7;j++)
{
y=a;
y=y&0x80;
if(y==0x80)
dulieu=1;
else
dulieu=0;
dich=0;
delay(1);
dich=1;
a=a*2;
}
for(j=0;j<=7;j++)
{
y=b;
y=y&0x80;
if(y==0x80)
dulieu=1;
else
dulieu=0;
dich=0;
delay(1);
dich=1;
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

94

Khoa in t

b=b*2;
}
for(j=0;j<=7;j++)
{
y=c;
y=y&0x80;
if(y==0x80)
dulieu=1;
else
dulieu=0;
dich=0;
delay(1);
dich=1;
c=c*2;
}
for(j=0;j<=7;j++)
{
y=d;
y=y&0x80;
if(y==0x80)
dulieu=1;
else
dulieu=0;
dich=0;
delay(1);
dich=1;
d=d*2;
}
chot=0;
delay(1);
chot=1;
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

95

}
void hien_thi2(int a,int b,int c,int d,int e,int f,int g,int h,int k,int l)
{
int j,y;
for(j=0;j<=7;j++)
{
y=a;
y=y&0x80;
if(y==0x80)
dulieu1=1;
else
dulieu1=0;
dich1=0;
delay(1);
dich1=1;
a=a*2;
}
for(j=0;j<=7;j++)
{
y=b;
y=y&0x80;
if(y==0x80)
dulieu1=1;
else
dulieu1=0;
dich1=0;
delay(1);
dich1=1;
b=b*2;
}
for(j=0;j<=7;j++)
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

96

Khoa in t

{
y=c;
y=y&0x80;
if(y==0x80)
dulieu1=1;
else
dulieu1=0;
dich1=0;
delay(1);
dich1=1;
c=c*2;
}
for(j=0;j<=7;j++)
{
y=d;
y=y&0x80;
if(y==0x80)
dulieu1=1;
else
dulieu1=0;
dich1=0;
delay(1);
dich1=1;
d=d*2;
}
for(j=0;j<=7;j++)
{
y=e;
y=y&0x80;
if(y==0x80)
dulieu1=1;
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

97

Khoa in t

else
dulieu1=0;
dich1=0;
delay(1);
dich1=1;
e=e*2;
}
for(j=0;j<=7;j++)
{
y=f;
y=y&0x80;
if(y==0x80)
dulieu1=1;
else
dulieu1=0;
dich1=0;
delay(1);
dich1=1;
f=f*2;
}
for(j=0;j<=7;j++)
{
y=g;
y=y&0x80;
if(y==0x80)
dulieu1=1;
else
dulieu1=0;
dich1=0;
delay(1);
dich1=1;
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

98

Khoa in t

g=g*2;
}
for(j=0;j<=7;j++)
{
y=h;
y=y&0x80;
if(y==0x80)
dulieu1=1;
else
dulieu1=0;
dich1=0;
delay(1);
dich1=1;
h=h*2;
}
for(j=0;j<=7;j++)
{
y=k;
y=y&0x80;
if(y==0x80)
dulieu1=1;
else
dulieu1=0;
dich1=0;
delay(1);
dich1=1;
k=k*2;
}
for(j=0;j<=7;j++)
{
y=l;
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

99

Khoa in t

y=y&0x80;
if(y==0x80)
dulieu1=1;
else
dulieu1=0;
dich1=0;
delay(1);
dich1=1;
l=l*2;
}
chot1=0;
delay(1);
chot1=1;
}
void hien_thi3(int a,int b,int c,int d)
{
int j,y;
for(j=0;j<=7;j++)
{
y=a;
y=y&0x80;
if(y==0x80)
dulieu2=1;
else
dulieu2=0;
dich2=0;
delay(1);
dich2=1;
a=a*2;
}
for(j=0;j<=7;j++)
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

100

Khoa in t

{
y=b;
y=y&0x80;
if(y==0x80)
dulieu2=1;
else
dulieu2=0;
dich2=0;
delay(1);
dich2=1;
b=b*2;
}
for(j=0;j<=7;j++)
{
y=c;
y=y&0x80;
if(y==0x80)
dulieu2=1;
else
dulieu2=0;
dich2=0;
delay(1);
dich2=1;
c=c*2;
}
for(j=0;j<=7;j++)
{
y=d;
y=y&0x80;
if(y==0x80)
dulieu2=1;
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

101

Khoa in t

else
dulieu2=0;
dich2=0;
delay(1);
dich2=1;
d=d*2;
}
chot2=0;
delay(1);
chot2=1;
}
void hien_thi4(int a,int b)
{
int j,y;
for(j=0;j<=7;j++)
{
y=a;
y=y&0x80;
if(y==0x80)
dulieu3=1;
else
dulieu3=0;
dich3=0;
delay(1);
dich3=1;
a=a*2;
}
for(j=0;j<=7;j++)
{
y=b;
y=y&0x80;
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

102

Khoa in t

if(y==0x80)
dulieu3=1;
else
dulieu3=0;
dich3=0;
delay(1);
dich3=1;
b=b*2;
}
chot3=0;
delay(1);
chot3=1;
}
void hien_thi5(int a,int b)
{
int j,y;
for(j=0;j<=7;j++)
{
y=a;
y=y&0x80;
if(y==0x80)
dulieu4=1;
else
dulieu4=0;
dich4=0;
delay(1);
dich4=1;
a=a*2;
}
for(j=0;j<=7;j++)
{
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

103

Khoa in t

y=b;
y=y&0x80;
if(y==0x80)
dulieu4=1;
else
dulieu4=0;
dich4=0;
delay(1);
dich4=1;
b=b*2;
}
chot4=0;
delay(1);
chot4=1;
}
void update()
{
int du_lieu=0;
start();
write_data(0xd0);
write_data(0x00);
du_lieu=sec1+(sec2<<4);
du_lieu=du_lieu&0x7f;
write_data(du_lieu);
du_lieu=dec_to_bcd(t);
write_data(du_lieu);
du_lieu=dec_to_bcd(b);
write_data(du_lieu);
du_lieu=dec_to_bcd(k);
write_data(du_lieu);
du_lieu=dec_to_bcd(g);
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

104

Khoa in t

write_data(du_lieu);
du_lieu=dec_to_bcd(n);
write_data(du_lieu);
du_lieu=dec_to_bcd(d);
write_data(du_lieu);
stop();
}
void updatetime()
{
start();
write_data(0xd0);
write_data(0x00);
start();
write_data(0xd1);
s=read_data(0);
p=read_data(0);
h=read_data(0);
ht_thu=read_data(0);
ht_ngay=read_data(0);
ht_thang=read_data(0);
ht_nam=read_data(1);
stop();
s=bcd_to_dec(s);
p=bcd_to_dec(p);
h=bcd_to_dec(h);
ht_thu=bcd_to_dec(ht_thu);
ht_ngay=bcd_to_dec(ht_ngay);
ht_thang=bcd_to_dec(ht_thang);
ht_nam=bcd_to_dec(ht_nam);
chuc_giay=s/10;
don_vi=s%10;
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

105

Khoa in t

chuc_phut=p/10;
don_vi_phut=p%10;
chuc_gio=h/10;
don_vi_gio=h%10;
thu_tuan=ht_thu%10;
tuan=ht_thu/10;
don_vi_ngay=ht_ngay%10;
chuc_ngay=ht_ngay/10;
don_vi_thang=ht_thang%10;
chuc_thang=ht_thang/10;
don_vi_nam=ht_nam%10;
chuc_nam=ht_nam/10;
}
void set_min()
{
int min1,min2;
do
{
che_do();
if(up==0)
{
while(up==0);
t++;
if(t==60)
t=0;
}
if(down==0)
{
while(down==0);
t--;
if(t==-1)
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

106

Khoa in t

t=59;
}
min1=t%10;
min2=t/10;
hien_thi2(0xff,0xff,0xff,0xff,0xff,0xff,M[min2],M[min1],0xff,0xff);
hien_thi3(0xff,0xff,0xff,0xff);
hien_thi5(0xff,0xff);
delay(30000);
}
while(mode==1);
}
void set_hour()
{
int hour1,hour2;
do
{
che_do();
if(up==0)
{
while(up==0);
b++;
if(b==24)
b=0;
}
if(down==0)
{
while(down==0);
b--;
if(b==-1)
b=23;
}
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

107

Khoa in t

hour1=b%10;
hour2=b/10;
hien_thi2(0xff,0xff,0xff,0xff,M[hour2],M[hour1],0xff,0xff,0xff,0xff);
hien_thi3(0xff,0xff,0xff,0xff);
hien_thi5(0xff,0xff);
delay(30000);
}
while(mode==2);
}
void set_thu()
{
int thu,chuc;
do
{
che_do();
if(up==0)
{
while(up==0);
k++;
if(k==8)
k=1;
}
if(down==0)
{
while(down==0);
k--;
if(k==0)
k=7;
}
chuc=k/10;
thu=k%10;
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

108

hien_thi2(0xff,0xff,M[chuc],M[thu],0xff,0xff,0xff,0xff,0xff,0xff);
hien_thi3(0xff,0xff,0xff,0xff);
hien_thi5(0xff,0xff);
delay(30000);
}
while(mode==3);
}
void set_day()
{
int day1,day2;
do
{
che_do();
if(up==0)
{
while(up==0);
g++;
if(g==32)
g=1;
}
if(down==0)
{
while(down==0);
g--;
if(g==0)
g=31;
}
day1=g%10;
day2=g/10;
hien_thi2(M[day2],M[day1],0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff);
hien_thi3(0xff,0xff,0xff,0xff);
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

109

Khoa in t

hien_thi5(0xff,0xff);
delay(30000);
}
while(mode==4);
}
void set_thang()
{
int thang1,thang2;
do
{
che_do();
if(up==0)
{
while(up==0);
n++;
if(n==13)
n=1;
}
if(down==0)
{
while(down==0);
n--;
if(n==0)
n=12;
}
thang1=n%10;
thang2=n/10;
hien_thi5(M[thang2],M[thang1]);
hien_thi2(0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff);
hien_thi3(0xff,0xff,0xff,0xff);
delay(33000);
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

110

Khoa in t

}
while(mode==5);
}
void set_nam()
{
int nam1,nam2;
do
{
che_do();
if(up==0)
{
while(up==0);
d++;
if(d==100)
d=0;
}
if(down==0)
{
while(down==0);
d--;
if(d==-1)
d=99;
}
nam1=d%10;
nam2=d/10;
hien_thi2(0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff);
hien_thi3(M[nam1],M[nam2],0xff,0xff);
hien_thi5(0xff,0xff);
delay(30000);
}
while(mode==6);
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

111

Khoa in t

}
void set_time()
{
set_min();
if(mode==2)
set_hour();
if(mode==3)
set_thu();
if(mode==4)
set_day();
if(mode==5)
set_thang();
if(mode==6)
set_nam();
if(mode==7)
update();
}
void update_thu(int da_ta1)
{
int du_lieu;
start();
write_data(0xd0);
write_data(0x03);
du_lieu=dec_to_bcd(da_ta1);
write_data(du_lieu);
stop();
}
void che_do()
{
if(mode1==0)
{
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

112

Khoa in t

while(mode1==0);
mode++;
if(mode==8)
mode=0;
}
}
void hen_gio()
{
int chuc_gio=0,donvi_gio=0,chuc_phut=0,donvi_phut=0;
if(mode2==0)
{
while(mode2==0);
mo++;
}
if(mo==1)
{
if(up==0)
{
while(up==0);
hp++;
if(hp==60)
hp=0;
}
if(down==0)
{
while(down==0);
hp--;
if(hp==-1)
hp=59;
}
chuc_phut=hp/10;
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

113

Khoa in t

donvi_phut=hp%10;
hien_thi1(M[donvi_phut],M[chuc_phut],0xff,0xff);
}
if(mo==2)
{
if(up==0)
{
while(up==0);
hg++;
if(hg==24)
hg=0;
}
if(down==0)
{
while(down==0);
hg--;
if(hp==-1)
hg=23;
}
chuc_gio=hg/10;
donvi_gio=hg%10;
hien_thi1(0xff,0xff,M[donvi_gio],M[chuc_gio]);
}
if(mo>=3)
{
chuc_phut=hp/10;
donvi_phut=hp%10;
chuc_gio=hg/10;
donvi_gio=hg%10;
hien_thi1(M[donvi_phut],M[chuc_phut],M[donvi_gio],M[chuc_gio]);
if((hg==h)&&(hp==p))
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

114

Khoa in t

coi=0;
else
coi=1;
}
}
void ht_tiet()
{
int chuc_tiet,donvi_tiet;
chuc_tiet=tiet/10;
donvi_tiet=tiet%10;
hien_thi4(M[chuc_tiet],M[donvi_tiet]);
}
void tiet_hoc()
{
if(h<=6)
{
coi=1;
hien_thi4(0xff,0xff);
}
if((h==6)&&(p<45))
{
coi=1;
hien_thi4(0xff,0xff);
}
if((h==6)&&(p==45)&&(s<5))
coi=0;
if(((h==6)&&(p>=45))||((h==7)&&(p<30)))
{
coi=1;
tiet=1;
ht_tiet();
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

115

Khoa in t

}
if((h==7)&&(p==30)&&(s<5))
coi=0;
if((h==7)&&(((p>=30))&&(p<35)))
{
coi=1;
hien_thi4(0x82,0xc7);
}
if((h==7)&&(p==35)&&(s<5))
coi=0;
if(((h==7)&&(p>=35))||((h==8)&&(p<20)))
{
coi=1;
tiet=2;
ht_tiet();
}
if((h==8)&&(p==20)&&(s<5))
coi=0;
if((h==8)&&((p>=20)&&(p<25)))
{
coi=1;
hien_thi4(0x82,0xc7);
}
if((h==8)&&(p==25)&&(s<5))
coi=0;
if(((h==8)&&(p>=25))||((h==9)&&(p<10)))
{
coi=1;
tiet=3;
ht_tiet();
}
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

116

Khoa in t

if((h==9)&&(p==10)&&(s<5))
coi=0;
if((h==9)&&((p>=10)&&(p<20)))
{
coi=1;
hien_thi4(0x82,0xc7);
}
if((h==9)&&(p==20)&&(s<10))
coi=0;
if(((h==9)&&(p>=20))||((h==10)&&(p<5)))
{
coi=1;
tiet=4;
ht_tiet();
}
if((h==10)&&(p==5)&&(s<5))
coi=0;
if((h==10)&&((p>=5)&&(p<10)))
{
hien_thi4(0x82,0xc7);
coi=1;
}
if((h==10)&&(p==10)&&(s<10))
coi=0;
if((h==10)&&((p>=10)&&(p<55)))
{
coi=1;
tiet=5;
ht_tiet();
}
if((h==10)&&(p==55)&&(s<5))
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

117

Khoa in t

coi=0;
if(((h==10)&&(p>=55))||((h==11)&&(p==0)))
{
coi=1;
hien_thi4(0x82,0xc7);
}
if((h==11)&&(p==0)&&(s<10))
coi=0;
if((h==11)&&((p>=0)&&(p<45)))
{
coi=1;
tiet=6;
ht_tiet();
}
if((h==11)&&(p==45)&&(s<5))
coi=0;
if(((h==11)&&(p>=45))||((h==12)&&(p<30)))
{
coi=1;
hien_thi4(0x82,0xc7);
}
if((h==12)&&(p==30)&&(s<10))
coi=0;
if(((h==12)&&(p>=30))||((h==13)&&(p<15)))
{
coi=1;
tiet=7;
ht_tiet();
}
if((h==13)&&(p==15)&&(s<5))
coi=0;
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

118

Khoa in t

if((h==13)&&(p>=15)&&(p<20))
{
coi=1;
hien_thi4(0x82,0xc7);
}
if((h==13)&&(p==20)&&(s<10))
coi=0;
if(((h==13)&&(p>=20))||((h==14)&&(p<5)))
{
coi=1;
tiet=8;
ht_tiet();
}
if((h==14)&&(p==5)&&(s<5))
coi=0;
if((h==14)&&((p>=5)&&(p<10)))
{
coi=1;
hien_thi4(0x82,0xc7);
}
if((h==14)&&(p==10)&&(s<10))
coi=0;
if((h==14)&&((p>=10)&&(p<55)))
{
coi=1;
tiet=9;
ht_tiet();
}
if((h==14)&&(p==55)&&(s<5))
coi=0;
if(((h==14)&&(p>=55))||((h==15)&&(p<5)))
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

119

Khoa in t

{
coi=1;
hien_thi4(0x82,0xc7);
}
if((h==15)&&(p==5)&&(s<10))
coi=0;
if((h==15)&&((p>=5)&&(p<50)))
{
coi=1;
tiet=10;
ht_tiet();
}
if((h==15)&&(p==50)&&(s<5))
coi=0;
if((h==15)&&((p>=50)&&(p<55)))
{
coi=1;
hien_thi4(0x82,0xc7);
}
if((h==15)&&(p==55)&&(s<10))
coi=0;
if(((h==15)&&(p>=55))||((h==16)&&(p<40)))
{
coi=1;
tiet=11;
ht_tiet();
}
if((h==16)&&(p==40)&&(s<5))
coi=0;
if((h==16)&&((p>=40)&&(p<45)))
{
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

120

Khoa in t

coi=1;
hien_thi4(0x82,0xc7);
}
if((h==16)&&(p==45)&&(s<10))
coi=0;
if(((h==16)&&(p>=45))||((h==17)&&(p<30)))
{
coi=1;
tiet=12;
ht_tiet();
}
if((h==17)&&(p==30)&&(s<5))
coi=0;
if((h==17)&&(p>30))
{
coi=1;
hien_thi4(0xff,0xff);
}
if(h>=18)
{
coi=1;
hien_thi4(0xff,0xff);
}
}
void main()
{
coi=1;
while(1)
{
updatetime();

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

121

Khoa in t

hien_thi2(M[chuc_ngay],M[don_vi_ngay],M[tuan],M[thu_tuan],M[chuc_gio],M[do
n_vi_gio],M[chuc_phut],M[don_vi_phut],M[chuc_giay],M[don_vi]);
hien_thi3(M[don_vi_nam],M[chuc_nam],M[0],M[2]);
hien_thi5(M[chuc_thang],M[don_vi_thang]);
if(ht_thu==0)
{
ht_thu=1;
update_thu(ht_thu);
}
che_do();
if(mode==1)
set_time();
if(mode==7)
{
updatetime();
hien_thi2(M[chuc_ngay],M[don_vi_ngay],M[tuan],M[thu_tuan],M[chuc_gio],M[do
n_vi_gio],M[chuc_phut],M[don_vi_phut],M[chuc_giay],M[don_vi]);
hien_thi3(M[don_vi_nam],M[chuc_nam],M[0],M[2]);
hien_thi5(M[chuc_thang],M[don_vi_thang]);
}
if(h_g==0)
hen_gio();
if(h_g==1)
{
hien_thi1(0xff,0xff,0xff,0xff);
mo=0;
}
if((ht_thu>1)&&(ht_thu<7))
tiet_hoc();
if((ht_thu==1)||(ht_thu==7))
{
SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

Khoa in t

122

hien_thi4(0xff,0xff);
coi=1;
}
}
}
4 Chng trnh np Proload V4.1.
Download http://www.dung80.com/index_files/page0015.htm
- Bc 1 : Sau khi download v v ci t chng trnh ln h thng my tnh.
- Bc 2 : Chnh thng s ca cng COM ca my tnh nh sau.

+Nhn chut phi vo My ComputerManage, ca s Computer Management


xut hin.

+ Tip theo kch chut vo Device Manager v nhn sang bn phi mn hnh ta
nhn p chut vo Port (COM&LPT), ri kch chut phi vo Plolific USB-toSerial Bridge(COM3), bn chn Properties mt ca s xut hin.

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

123

Khoa in t

Ti mc Port Settings hy ci t cc thng s cn thit lp, sau khi chnh xong


kch chut vo mc Advanced, mt ca s xut hin.
Ti mc COM Port Number nn chn COM2, v cc cng COM khc c
s dng cho cc mc ch khc. Ri chn OK.

Sau khi thit lp xong thng s cho cng COM, kch p chut vo biu

tng
trn mn hnh Deskop, nu mch kt ni thnh cng chng trnh s bo.

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

124

Khoa in t

By gi hy gn chp thuc h AT89xxx vo c sn trn mch (40 chn) theo


hng chn 1 v chn ngun ca chip hng v trn (v tr c cn gt).
Chng trnh s t ng np chip.

Nhn nt Send chn file .hex cn np cho chip.


Nu qu trnh np thnh cng th chng trnh s bo.

Trong trng hp np khng thnh cng, cn kim tra vn sau:


+ chip c ng loi mch np h tr khng.
+ chip c b hng khng.
+ kim tra ngun USB.
+ chip c c gn ng chiu hay khng.
+ cc chn ca chip c tip xc vi mch np qua cc khe c tt khng.

SVTH: Trn Th Cnh

Lp: C T6 K11

Trng HCN H Ni

125

Khoa in t

72-79
1-70,80-124

SVTH: Trn Th Cnh

Lp: C T6 K11

You might also like