Professional Documents
Culture Documents
KHOA IN T
B MN: K THUT MY TNH
N MN HC
MN HC
H THNG NHNG
Nhm sinh vin
: Trn Quang Hp
Nguyn Vit Hin
Nguyn Vn Hng
Lp
: K43K
Gio vin hng dn : Ths.Nguyn Vn Huy
B mn K Thut My Tnh
Nghip
i hc K Thut Cng
Thi Nguyn 2011
Thng
Nm 2011
(K ghi r h tn)
(K ghi r h tn)
n H Thng Nhng
Trang 2
B mn K Thut My Tnh
Nghip
i hc K Thut Cng
MC LC
MC LC.........................................................................................................3
LI NI U..................................................................................................5
CHNG 1 . PHN TCH BI TON..........................................................6
1.1.Kho st v phn tch bi ton.........................................................6
1.1.1.Cch hin th thi gian......................................................................6
1.1.2.Mc ch............................................................................................7
1.1.3.Cc cng ngh chip ng dng trong thit k thi gian thc c mt
trn th trng.......................................................................................................8
n H Thng Nhng
Trang 3
B mn K Thut My Tnh
Nghip
i hc K Thut Cng
2.6.6.in tr...........................................................................................36
2.6.7.Nt bm button...............................................................................36
2.6.8.Bin tr...........................................................................................36
2.6.9.Thch anh.......................................................................................37
2.6.10.Pin CMOS 3V.................................................................................37
n H Thng Nhng
Trang 4
B mn K Thut My Tnh
Nghip
i hc K Thut Cng
Li ni u
Ngy nay, cc h thng nhng tr nn ph bin v ng vai tr
quan trng trong i sng con ngi. V d quanh ta c rt nhiu sn
phm nhng nh l vi sng, ni cm in, iu ha, in thoi di ng,
t, my bay, tu thy, cc u o, c cu chp hnh thng minh, robot
v.v... ta c th thy hin nay h thng nhng c mt mi lc mi ni
trong cuc sng ca chng ta.
Qua mn hc h thng nhng, chng em hiu thm v cc h
thng nhng trong thc t, v c im, tnh u vit cng nh tnh ng
dng ca chng i vi con ngi. Vi mong mun lm r cc kin thc
hc v gii thiu cc ng dng c bn ca h thng nhng, nhm
chng em a ra m hnh thit k ng h thi gian thc mt sn phm
rt quen thuc v cn thit trong i sng.
Do thi gian thc hin v kin thc cn hn ch nn cn nhiu sai
st trong qu trnh thc hin ti, rt mong c s b sung ng gp
ca cc thy c v cc bn.
Chng em xin chn thnh cm n cc thy c trong khoa in t b mn k thut my tnh, cm n thy Ths. Nguyn Vn Huy tn tnh
hng dn v gip chng em thc hon thnh ti ny.
n H Thng Nhng
Trang 5
B mn K Thut My Tnh
Nghip
i hc K Thut Cng
n H Thng Nhng
Trang 6
B mn K Thut My Tnh
i hc K Thut Cng
Nghip
1.1.2.Mc ch
ng h treo tng c dng trong nh v vn phng, ng h eo
tay c mang trn tay, v nhng loi ng h ln c t nhng
ni cng cng (nh th hay bn xe). Hu ht nhng my tnh v in
thoi di ng u c gc di mn hnh hin th gi.
Tuy nhin, ng h khng phi lc no cng c s dng hin
th thi gian. N cn c th s dng iu khin mt vt theo thi
gian. V d nh ng h chung c th c dng lm chung bo
tit hc. N c th c gi chnh xc hn l mt h thng m gi.
My tnh s dng nhng tn hiu ng h ng b qu trnh x l
(mc du c mt s nghin cu v b x l khng ng b). My tnh
lu tr thi gian bo hiu hay ch l hin th thi gian. Bn
trong my tnh c mt ng h c nui bng pin. My tnh vn c
th hot ng ngay c khi ng h trong my b cht nhng khi khi
ng my li, ng h ca my tnh s c khi ng li.
Thi gian l mt khi nim c bn trong mn vt l. Do , ch to
dng c o thi gian chnh xc c ngha quan trng trong cc th
nghim.
ng h in t
ng h in t trn mt l vi sng
n H Thng Nhng
Trang 7
B mn K Thut My Tnh
i hc K Thut Cng
Nghip
1.1.3.Cc cng ngh chip ng dng trong thit k thi gian thc c mt
trn th trng
Do yu cu v thi gian thc nn chng ta s khng xt ti cc mch
in thit k ng h s dng cc mch in tng t v cc IC s thng
thng, chng ta s xt ti vic s dng IC thi gian thc, vi iu khin, cch
thc hin th thi gian thc.
IC thi gian thc:
Hin nay trn th trng c 2 loi IC thi gian thc ph bin l
DS1307 v DS12887.
Cc IC ny u c chc nng chy thi gian thc v lu gi khi mt
in, vi DS1307 cn c thm ngun nui l mt pin cmos 3V, vi
DS12887 c sn pin tch hp bn trong.
Thc hin giao tip vi vi iu khin hin th thi gian v ci t
gi
Trn c s th chng ta c th s dng c 2 loi IC ny, nhng vi
nhm em th vic la chn s l DS1307 v n cng thc hin c
yu cu m gi thnh th r hn.
Vi iu khin:
C rt nhiu loi vi iu khin khc nhau c th s dng trong mch
ng h ny nh vi iu khin pic, avr, 8051
Cc loi vi iu khin pic hay avr c nhiu u im hn so vi 8051
nh h tr kt ni ngoi vi tt hn, tc x l nhanh hn, lp trnh
n gin hn. Nhng gi thnh th li cao hn nhiu so vi 8051 m
trong mch ny chng em s dng AT89C51. Vic s dng qu tn
km cho 1 mch l khng cn thit trong khi mt chip cng c th
lm c iu ny m gi thnh r hn th l la chn ti u hn.
Hin th:
Chng ta c 2 cch hin th l : s dng led 7 thanh v s dng lcd.
Led 7 thanh :
u im: hin th r rng v thu ht c s ch v c th
nhn xa.
Nhc im: mch in phc tp cn thm cc IC cht.
LCD 16x2:
u im: hin th d dng, c th linh ng hn trong vic hin
th thi gian,kt ni n gin mch in khng phc tp
Nhc im: khng thu ht c s ch bng led 7 thanh,gi
thnh cao
Xt trn iu kin lm mch ny th s led 7 thanh tng i nhiu
v cn thm cc IC cht do v gi c th s tng ng vi mt
n H Thng Nhng
Trang 8
B mn K Thut My Tnh
i hc K Thut Cng
Nghip
LCD 16x2. Thm na khi s dng LCD chng ta s khng phi mc
phc tp. Vi ng h s dng cho c nhn ny th chng ta c th
cn dng LCD l .
1.2. La chn gii php
1.2.1.Gii php cng ngh
Qua phn tch trn, nhm chng em a ra gii php xy dng ng
h da trn IC thi gian thc. c gi t IC thi gian thc, hin th thi gian
lin tc v c th ci t c gi, lu gi khi mt in v sai lch thi gian
l t nht (theo qung co ca nh sn xut : vi mt pin lithium 48mAh hoc
ln hn s lu gi cho DS1307 khong hn 10 nm khi khng c ngun in
cung cp cho mch iu kin +25C ).
1.2.2 .Gii php thit k
Vic la chn gii php thng c xem xt trn nhiu phng din
nhng quan trng l gii php c kh thi khng? C ph hp vi vi thc t
v tha mn yu cu v kinh t?
ng h thi gian thc vi b no iu khin l AT89C51 v cc linh
kin khc: LCD hin th, IC n p7805, IC thi gian thc DS1307.
AT89C51 c cc u im: tnh nng v tc p ng c yu cu k
thut trong ng dng khng i hi cao;gi thnh thp hn h vi iu
khin khc; c h tr lp trnh iu khin bng c hp ng v C...
IC DS1307 l IC chuyn dng, cho kh nng chnh xc v thi gian.
LCD hin th mt cch r rng, linh ng.
IC n p 7805 c s dng rng ri trong cc b ngun.
V vy gii php thit k ng h thi gian thc dng cc linh kin
trn c nhiu u th hn so vi nhng gii php khc. ng thi m bo
c yu cu v kinh t.
Trong thc t hin nay lch vn nin l mt sn phm tng t ng
h thi gian thc v rt gn gi vi mi ngi.
1.2.3.Cc yu cu
Vi sn phm ng h thi gian thc i hi cc yu cu:
Hin th ng thi gian:ngy, thng, nm, gi, pht, giy.
iu chnh v thay i c thi gian.
m bo ng v thi gian sau khi mt in.
Kh nng thc thi:Thi gian p ng, chnh xc
m bo v kch thc v trng lng cho php.
an ton, kh nng chng li s ph hoi hay xm nhp
1.2.4.Gii hn cho h thng
S dng ngun in 5V.
n H Thng Nhng
Trang 9
B mn K Thut My Tnh
i hc K Thut Cng
Nghip
Lm vic lin tc.
Kch thc ph hp vi ngi s dng.
H thng nh gn.
H thng lu c thi gian khi mt ngun cp (c ngun d tr).
Ngun nui (pin CMOS) cho IC thi gian thc m bo.
Lm vic trong iu kin mi trng bnh thng.
Khi ngun
Khi
thi
gian
thc
Khi hin
th
Khi X
l
n H Thng Nhng
10
Trang
B mn K Thut My Tnh
Nghip
i hc K Thut Cng
Module x
l thi gian
thc
IC thi gian
thc
Chng
trnh iu
khin
chnh
Module x
l chng
trnh
Hin th
Bn phm
2.3. S c t
Ci
t
C ngt &
n phm
c
Kim tra
ngt ngoi 0
X l
Thi gian
trong
RTC
Ghi
Hi
n
th
n H Thng Nhng
11
Trang
B mn K Thut My Tnh
Nghip
2.4. S thut ton
i hc K Thut Cng
Bt
u
Khi to LCD
t thi gian
mc nh
X l d liu t rtc
Hin th gi bnh
thng LCD
C ngt ngoi
0
(1)
Ci t + hin th thi
gian ci t trn LCD
(2)
n H Thng Nhng
12
Trang
B mn K Thut My Tnh
i hc K Thut Cng
Nghip
Khi ci t +hin th thi gian ci t trn LCD:
(1)
:
menu
=0
S
con tr LCD ti
v tr gi
Thay i gi
con tr LCD ti
v tr pht
menu
=0
Thay i pht
tng =0
gi+1
tng =0
pht+1
S
con tr LCD ti
v tr giy
S
menu
=0
gim =0
con tr LCD ti
v tr ngy
Thay i giy
Thay i ngy
tng =0
ngy+1
tng =0
con tr LCD ti
v tr nm
menu
=0
S
Kim tra tng
Thay i thng
tng =0
nm+1
tng =0
thng-1
menu
=0
S
Thay i nm
thng+1
S
gim =0
ngy-1
con tr LCD ti
v tr thng
S
gim =0
giy-1
menu
=0
S
giy+1
pht-1
gim =0
gi-1
S
gim =0
gim =0
nm-1
con tr LCD ti
v tr th
menu
=0
(2)
S
Kim tra tng
Thay i th
tng =0
th+1
th-1
n H Thng Nhng
13
Trang
B mn K Thut My Tnh
Nghip
i hc K Thut Cng
n H Thng Nhng
14
Trang
B mn K Thut My Tnh
Nghip
i hc K Thut Cng
n H Thng Nhng
15
Trang
B mn K Thut My Tnh
i hc K Thut Cng
Nghip
2.5.4.Khi hin th
S dng LCD 16x2, hin th thi gian linh hot, hin th c nhiu k
t, gip cho vic quan st thi gian khi ng h chy bnh thng cng
nh lc ci t trc quan v linh hot hn.
Trang
B mn K Thut My Tnh
i hc K Thut Cng
Nghip
+ 2 b nh thi 16 bit.
+ C port ni tip.
+ C th m rng b nh chng trnh ngoi 64 K Byte.
+ B x l bit.
AT89C51 l mt b vi x l 8 bit, loi CMOS, c tc cao v cng
sut thp vi b nh Flash c th lp trnh c. N c sn xut vi
cng ngh b nh khng bay hi mt cao ca hng Atmel, v tng
thch vi h MCS-51TM v chn ra v tp lnh.
AT89C51 c cc c trng c bn nh sau: 4 K byte Flash, 128 byte
RAM, 32 ng xut nhp, hai b nh thi/m 16-bit, mt cu trc
ngt hai mc u tin v 5 nguyn nhn ngt, mt port ni tip song
cng, mch dao ng v to xung clock trn chip.
AT89C51 c thit k vi logic tnh cho hot ng c tn s gim
xung 0 v h tr hai ch tit kim nng lng c la chn bng
phn mm. Ch ngh dng CPU trong khi vn cho php RAM, cc
b nh thi/m, port ni tip v h thng ngt tip tc hot ng.
Ch ngun gim duy tr ni dung ca RAM nhng khng cho mch
dao ng cung cp xung clock nhm v hiu ho cc hot ng khc
ca chip cho n khi c reset cng tip theo.
Hnh nh AT89C51
n H Thng Nhng
17
Trang
B mn K Thut My Tnh
Nghip
i hc K Thut Cng
S khi ca AT89C51
2.6.1.1. M t cc chn
n H Thng Nhng
18
Trang
B mn K Thut My Tnh
Nghip
i hc K Thut Cng
S cc chn
AT89C51 c tt c 40 chn vi cc chc nng nh sau:
Vcc (40): Chn cung cp in (5V).
GND (20): Chn ni t (0V).
Port 0 (32-39):
Port 0 l port xut nhp 8-bit hai chiu.
Port 0 cn c cu hnh lm bus a ch (byte thp) v bus d liu a
hp trong khi truy xut b nh d liu ngoi v b nh chng trnh
ngoi.
Port 0 cng nhn cc byte m trong khi lp trnh cho Flash v xut cc
byte m trong khi kim tra chng trnh (Cc in tr ko ln bn ngoi
c cn n trong khi kim tra chng trnh).
Port 1(1-8) :
Port 1 l port xut nhp 8-bit hai chiu. Port 1 cng nhn byte a ch
thp trong thi gian lp trnh cho Flash.
Port 2 (21-28):
Port 2 l port xut nhp 8-bit hai chiu.
Port 2 to ra cc byte cao ca bus a ch trong thi gian tm np lnh
t b nh chng trnh ngoi v trong thi gian truy xut b nh d liu
ngoi s dng cc a ch 16-bit. Trong thi gian truy xut b nh d
liu ngoi s dng cc a ch 8-bit, Port 2 pht cc ni dung ca thanh
ghi chc nng c bit P2. Port 2 cng nhn cc bt a ch cao v vi
n H Thng Nhng
19
Trang
B mn K Thut My Tnh
i hc K Thut Cng
Nghip
tn hiu iu khin trong thi gian lp trnh cho Flash v kim tra
chng trnh.
Port 3 (10-17) :
Port 3 l Port xut nhp 8-bit hai chiu. Port 3 cng cn lm cc chc
nng khc ca AT89C51. Cc chc nng ny c lit k nh sau:
Chn
3.0
3.1
3.2
3.3
3.4
3.5
3.6
3.7
Tn
RxD
TxD
INT0
INT1
T0
T1
WR
RD
Chc nng
Ng vo Port ni tip
Ng ra Port ni tip
Ng vo ngt ngoi 0
Ng vo ngt ngoi 1
Ng vo bn ngoi ca b nh thi 1
Ng vo bn ngoi ca b nh thi 0
iu khin ghi b nh d liu ngoi
iu khin c b nh d liu ngoi
ST
(30):
Trang
B mn K Thut My Tnh
i hc K Thut Cng
Nghip
ch tch cc trong thi gan thc hin lnh MOVX hoc MOVC. Ngc
li, chn ny s c ko ln cao. Vic set bit khng cho php hot
ng cht byte thp ca a ch s khng c tc dng nu b vi iu
khin ang ch thc thi chng trnh ngoi.
(29):
PSEN (Program Store Enable) l xung iu khin truy xut b nh
chng trnh ngoi. Khi AT89C52 ang thc thi chng trnh t b
nh chng trnh ngoi, PSEN c kch hot hai ln mi chu k my,
nhng hai hot ng PSEN s b b qua mi khi truy cp b nh d
liu ngoi.
/Vpp (31):
EA (External Access Enable) l chn cho php truy xut b nh
chng trnh ngoi (bt u t a ch t 0000H n FFFFH).
EA = 0 cho php truy xut b nh chng trnh ngoi, ngc li EA
=1 s thc thi chng trnh bn trong chip.
Tuy nhin, lu rng nu bit kho 1 (lock-bit 1) c lp trnh, EA s
c cht bn trong khi reset.
Chn ny cng nhn in p cho php lp trnh Vpp=12V khi lp trnh
Flash (khi in p lp trnh 12V c chn).
PSEN
EA
XTAL1 v XTAL2:
XTAL1 v XTAL2 l hai ng vo v ra ca mt b khuch i o ca
mch dao ng, c cu hnh dng nh mt b dao ng trn chip.
Trang
B mn K Thut My Tnh
i hc K Thut Cng
Nghip
phn mm. Ni dung ca RAM trn chip v ca tt c cc thanh ghi chc
nng c bit vn khng i trong khi thi gian tn ti ch ny. Ch
ngh c th c kt thc bi mt ngt bt k no c php hoc
bng cch reset cng.
Ta cn lu rng khi ch ngh c kt thc bi mt reset cng, chip
vi iu khin s tip tc bnh thng vic thc thi chng trnh t ni
chng trnh b tm dng, trong vng 2 chu k my trc khi gii thut
reset mm nm quyn iu khin.
ch ngh, phn cng trn chip cm truy xut RAM ni nhng cho
php truy xut cc chn ca cc port. trnh kh nng c mt thao tc
ghi khng mong mun n mt chn port khi ch ngh kt thc bng
reset, lnh tip theo yu cu ch ngh khng nn l lnh ghi n chn
port hoc n b nh ngoi.
2.6.1.2.2. Ch ngun gim
Trong ch ny, mch dao ng ngng hot ng v lnh yu cu ch
ngun gim l lnh sau cng c thc thi. RAM trn chip v cc
thanh ghi chc nng c bit vn duy tr cc gi tr ca chng cho n khi
ch ngun gim kt thc. Ch c mt cch ra khi ch ngun gim,
l reset cng.
Vic reset s xc nh li cc thanh ghi chc nng c bit nhng khng
lm thay i RAM trn chip. Vic reset khng nn xy ra (chn reset
mc tch cc) trc khi Vcc c khi phc li mc in p bnh thng
v phi ko di trng thi tch cc ca chn reset lu cho php
mch dao ng hot ng tr li v t trng thi n nh.
Trng thi ca cc chn trong thi gian tn ti ch ngh va ch
ngun gim c cho trong bng sau:
Ngh
B nh
chng
trnh
Bn trong
Ngh
Ch
ALE
PSEN PORT 0
PORT
1
D liu
D liu
Bn ngoi
Th ni
D liu
Ngun Bn trong
gim
Bn ngoi
D liu
D liu
Th ni
D liu
n H Thng Nhng
22
PORT
PORT 3
2
D
liu
D
liu
D
liu
D
liu
D liu
D liu
D liu
D liu
Trang
B mn K Thut My Tnh
Nghip
2.6.1.3. Cc bt kho b nh chng trnh
i hc K Thut Cng
1
U
U
U
2
P
U
U
Loi bo v
Trang
B mn K Thut My Tnh
i hc K Thut Cng
Nghip
+ Khi x l d liu t DS1307, h t chuyn cho ta v dng
s BCD, v d nh ta c c d liu t a ch 0x04 (tng ng vi
Day- ngy trong thng) v ti 0x05 (thng) l 0x15, 0x11.
+ Lu n vai tr ca chn SQW/OUT. y l chn cho xung
ra ca DS1307 c 4 ch 1Hz, 4.096HZ, 8.192Hz, 32.768Hz... cc ch
ny uc quy nh bi cc bt ca thanh ghi Control Register (a ch
0x07 ).
+ a ch ca DS1307l 0xD0.
C ch hot ng : DS1307 hot ng vi vai tr slave trn ng bus
ni tip.Vic truy cp c thi hnh vi ch th start v mt m thit b
nht nh c cung cp bi a ch cc thanh ghi. Tip theo cc
thanh ghi s c truy cp lin tc n khi ch th stop c thc thi.
Trang
B mn K Thut My Tnh
i hc K Thut Cng
Nghip
SDA: chui data , SCL: dy xung clock
SQW/OUT: xung vung/u ra driver
DS1307 l mt IC thi gian thc vi ngun cung cp nh, dng cp
nht thi gian v ngy thng vi 56 bytes SRAM. a ch v d liu
c truyn ni tip qua 2 ng bus 2 chiu. N cung cp thng tin
v gi, pht, giy, th, ngy, thng, nm. Ngy cui thng s t ng
c iu chnh vi cc thng nh hn 31 ngy, bao gm c vic t
ng nhy nm. ng h c th hot ng dng 24h hoc 12h vi
ch th AM/PM. DS1307 c mt mch cm bin in p dng d
cc in p li v t ng ng ngt vi ngun pin cung cp.
DS 1307 hot ng vi vai tr slave trn ng bus ni tip. Vic truy
cp c thi hnh vi ch th START v mt m thit b nht nh
c cung cp bi a ch cc thanh ghi. Tip theo cc thanh ghi s
c truy cp lin tc n khi ch th STOP c thc thi.
S khi ca DS1307:
*M t hot ng ca cc chn:
Vcc, GND: ngun mt chiu c cung cp ti cc chn ny. Vcc l
u vo 5V. Khi 5V c cung cp th thit b c th truy cp hon
chnh v d liu c th c v vit. Khi pin 3 V c ni ti thit b ny
v Vcc nh hn 1,25Vbat th qu trnh c v vit khng c thc thi,
tuy nhin chc nng timekeeping khng b nh hng bi in p vo
n H Thng Nhng
25
Trang
B mn K Thut My Tnh
i hc K Thut Cng
Nghip
thp. Khi Vcc nh hn Vbat th RAM v timekeeper s c ngt ti
ngun cung cp trong (thng l ngun 1 chiu 3V).
Vbat: u vo pin cho bt k mt chun pin 3V. in p pin phi c
gi trong khong t 2,5 n 3V m bo cho s hot ng ca thit
b.
SCL(serial clock input): SCL c s dng ng b s chuyn d
liu trn ng dy ni tip.
SDA(serial data input/out): l chn vo ra cho 2 ng dy ni tip.
Chn SDA thit k theo kiu cc mng h, i hi phi c mt in
tr ko trong khi hot ng.
SQW/OUT(square wave/output driver) - khi c kch hot th bit
SQWE c thit lp 1 chn SQW/OUT pht i 1 trong 4 tn s (1Hz,
4kHz, 8kHz, 32kHz). Chn ny cng c thit k theo kiu cc mng
h v vy n cng cn c mt in tr ko trong. Chn ny s hot
ng khi c Vcc v Vbat c cp.
X1,X2: c ni vi mt thch anh tn s 32,768kHz. L mt mch
to dao ng ngoi, hot ng n nh th phi ni thm 2 t 33pF .
Cng c DS1307 vi b to dao ng trong tn s 32,768kHz, vi cu
hnh ny th chn X1 s c ni vo tn hiu dao ng trong cn chn
X2 th h.
2.6.2.3.S a ch RAM v RTC:
B mn K Thut My Tnh
i hc K Thut Cng
Nghip
decreaseimal). Bit 7 ca thanh ghi seconds l bit clock halt (CH), khi
bit ny c thit lp 1 th dao ng disable, khi n c xo v 0 th
dao ng c enable.
Ch : enable dao ng trong sut qu trnh cu hnh thit lp
(CH=0).Thanh ghi thi gian thc c m t nh sau:
Trang
B mn K Thut My Tnh
Nghip
i hc K Thut Cng
B mn K Thut My Tnh
i hc K Thut Cng
Nghip
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.
n H Thng Nhng
29
Trang
B mn K Thut My Tnh
Nghip
n H Thng Nhng
30
i hc K Thut Cng
Trang
B mn K Thut My Tnh
Nghip
i hc K Thut Cng
K Hiu
n H Thng Nhng
31
Mc Logic
I/O
Chc Nng
Trang
B mn K Thut My Tnh
Nghip
i hc K Thut Cng
Vss
Ngun (GND)
Vcc
Ngun (+5V)
Vee
RS
0/1
0=Nhp lnh
1=Nhp d liu
R/W
0/1
0=Ghi d liu
1=c d liu
DB0
1,1
0/1
I/O
Bt d liu 0
DB1
0/1
I/O
Bt d liu 1
DB2
0/1
I/O
Bt d liu 2
10
DB3
0/1
I/O
Bt d liu 3
11
DB4
0/1
I/O
Bt d liu 4
12
DB5
0/1
I/O
Bt d liu 5
13
DB6
0/1
I/O
Bt d liu 6
14
DB7
0/1
I/O
Bt d liu 7
15
Lamp-
n LCD
16
Lamp+
n LCD
n H Thng Nhng
32
Trang
B mn K Thut My Tnh
i hc K Thut Cng
Nghip
d liu c c t LCD. Nu chng ta ch cn ghi d liu ln LCD th
chng ta c th ni chn ny xung GND tit kim chn.
E (Enable):
Cho php ta truy cp/xut n LCD thng qua chn RS v R/W. Khi chn
E mc cao (1) LCD s kim tra trng thi ca 2 chn RS v R/W v
p ng cho ph hp. Khi d liu c cp n chn d liu th mt
xung mc cao xung thp phi c p n chn ny LCD cht d
liu trn cc chn d liu. Xung ny phi rng ti thiu l 450ns. Cn khi
chn E mc thp (0), LCD s b v hiu ho hoc b qua tn hiu ca 2
chn RS v R/W.
Cc chn D0 - D7:
y l 8 chn d liu 8 bt, c dng gi thng tin ln LCD hoc c
ni dung ca cc thanh ghi trong LCD. Cc k t c truyn theo m
tng ng trong bng m ascii. Cng c cc m lnh m c th c gi
n LCD xo mn hnh hoc a con tr v u dng hoc nhp nhy
con tr.
LCD c 2 ch giao tip:
Ch 4 bit (ch dng 4 chn D4 n D7 truyn d liu) v ch 8
bit (dng c 8 chn d liu t D0 n D7), ch 4 bit, khi truyn 1
byte, chng ta s truyn na cao ca byte trc, sau mi truyn na
thp ca byte.
Trc khi truyn cc k t ra mn hnh LCD ta cn thit lp cho LCD
nh chn ch 4 bit hoc 8 bit, 1 dng hay 2 dng ,bt/tt con tr
Di y l bng tp lnh ca LCD :
Xa mn hnh hin th
Tr v u dng
n H Thng Nhng
33
Trang
B mn K Thut My Tnh
Nghip
i hc K Thut Cng
10
14
18
1C
80
C0
38
n H Thng Nhng
34
Trang
B mn K Thut My Tnh
Nghip
i hc K Thut Cng
n H Thng Nhng
35
Trang
B mn K Thut My Tnh
Nghip
i hc K Thut Cng
T gm
T ha
2.6.6.in tr
Trong thit b in t in tr l mt linh kin quan trng, chng c
Nt bm
2.6.8.Bin tr
Trong mch ta s s dng mt bin tr 10k iu chnh tng phn
ca LCD.
n H Thng Nhng
36
Trang
B mn K Thut My Tnh
Nghip
i hc K Thut Cng
Bin tr
2.6.9.Thch anh
Trong mch ta s s dng hai thch anh, mt loi 12Mhz to dao ng
cho AT89C51, mt loi 32,768 Mhz to dao ng cho DS1307.
2.6.10.Pin CMOS 3V
Ta s s dng mt v pin CMOS 3V lm ngun nui cho DS1307
n c th lu c gi khi mt in ngun cung cp cho mch.
Pin CMOS
n H Thng Nhng
37
Trang
B mn K Thut My Tnh
Nghip
i hc K Thut Cng
n H Thng Nhng
38
Trang
B mn K Thut My Tnh
Nghip
i hc K Thut Cng
Mch in mt lp
n H Thng Nhng
39
Trang
B mn K Thut My Tnh
i hc K Thut Cng
Nghip
3.2.Thit k phn mm
Phn mm cn thc hin cc chc nng chnh nh sau :
Hin th thi gian bnh thng: khi khi to, vi iu khin kim tra xem
trong IC thi gian thc c thi gian hay cha, nu cha c thi gian
ci t trc th hin th gi tr thi gian mc nh m ta thit lp sn;
cn bnh thng c thi gian ci t trc vi iu khin c d liu
thi gian t IC thi gian thc, x l v hin th kt qu ln mn hnh
LCD.
Ci t thi gian: khi xut hin ngt ngoi 0, vi iu khin bt u thc
hin ci t ngy gi. Trn LCD, theo ln xut hin ngt ngoi 0 m ln
lt v tr con tr ca n s nhy ti gi tr thi gian ln lt l gi, pht,
giy, ngy, thng, nm; ty vo yu cu ci t m tng gim gi tr thi
gian sau ghi d liu vo IC thi gian thc; km theo mt c vo thanh
ghi ram u tin nhn bit l c ci t thi gian.
Chng trnh
#include <AT89X51.H>
#include <intrins.h>
// DINH NGHIA 1 SO CONG
#define sda P1_1
#define scl P1_0
#define rs P3_7
#define rw P3_6
#define en P3_5
#define menu P3_2
#define tang P3_1
#define giam P3_0
#define congLCD P2
#define D7 P2_7
unsigned char *rtc[]={"0","1","2","3","4","5","6","7","8","9"}
unsigned char *day[]={"CNhat","Thu 2","Thu 3","Thu 4","Thu
5","Thu 6","Thu 7"};
unsigned char giatrikhoitao_rtc[8];
/******************************************************/
//
CAC CHUONG TRINH CON GIAO TIEP VOI LCD
//
void busy()
{ D7=1;
rs=0; rw=1;
while(D7!=0) {en=0; en=1;
}
n H Thng Nhng
Trang
40
B mn K Thut My Tnh
Nghip
}
i hc K Thut Cng
Trang
B mn K Thut My Tnh
i hc K Thut Cng
Nghip
// ca 2 dk start va stop dc tao ra boi
thiet bi chu
void start_rtc(void) //dk start: 1 su cdoi tthai tu cao xuong thap tren
duong sda trong khi duong scl dang o muc cao
{scl=1; sda=1;
_nop_();_nop_();
sda=0; scl=0; }
void stop_rtc(void) //dk stop: 1 su cdoi trang thai tu muc thap len cao
tren duong sda trong khi duong slc dang o muc cao
{ sda=0; scl=1;
_nop_();_nop_();
sda=1; }
void gui_rtc(unsigned char x)
{ unsigned char i;
for(i=0;i<8;i++){
sda=(x&0x80)? 1:0; //dua bit du lieu ra chan SDA
scl=1;
_nop_();_nop_();
scl=0;
x<<=1; //bit co trong so lon hon dc truyen truoc
}
scl=1;//nhan bit ACK tu SLAVER
_nop_();_nop_();
scl=0; }
unsigned char nhan_rtc(void)
{
unsigned char Data,i;
for(i=0;i<8;i++) // nhan vao 8 bit
{
scl=1;
Data<<=1;
Data=Data|sda;
scl=0; }
sda=1;
scl=1; //master nhan/gui bit du lieu(sda) khi scl o muc cao
_nop_();
scl=0;
_nop_(); //du lieu(sda) thay doi khi scl muc thap
return Data; //tra gia tri cho ham
}
unsigned char docdulieu(unsigned char diachi)
{
unsigned char Data;
n H Thng Nhng
42
Trang
B mn K Thut My Tnh
i hc K Thut Cng
Nghip
start_rtc();
gui_rtc(0xd0);
gui_rtc(diachi); //bat dau doc du lieu tu thanh ghi co dia chi
0x00
start_rtc();
gui_rtc(0xd1);
Data=nhan_rtc();
stop_rtc();//Stop I2C
return Data; }
void ghidulieu(void)
{ unsigned char t;
for(t=0;t<9;t++){start_rtc();
gui_rtc(0xd0);
gui_rtc(t);
gui_rtc(giatrikhoitao_rtc[t]);
stop_rtc();}
}
/
**************************************************************
*/
// HIEN THI GIO , NGAY THANG TREN LCD
//
void hienthi_rtc(void)
{ ghilenhLCD(0xca); // ep con tro den vi tri thu 11 dong thu 2
hienthi_dulieu_rtc(docdulieu(0)); //hien thi giay
ghilenhLCD(0xc7); // ep con tro den vi tri thu 8 dong thu 2
hienthi_dulieu_rtc(docdulieu(1)); // hien thi phut
ghi_kytu(':');
ghilenhLCD(0xc4); // ep con tro den vi tri thu 5 dong thu 2
hienthi_dulieu_rtc(docdulieu(2)); //hien thi gio
ghi_kytu(':');
ghilenhLCD(0x80); //ep con tro den dau dong thu 1
ghi_chuoi(day[docdulieu(3)-1]); ghi_kytu(',');
//hien thi thu
ghilenhLCD(0x86); //ep con tro den vi tri thu 7 dong thu 1
hienthi_dulieu_rtc(docdulieu(4));//hien thi ngay
ghi_kytu('-'); hienthi_dulieu_rtc(docdulieu(5));//hien thi thang
ghi_chuoi("-20"); hienthi_dulieu_rtc(docdulieu(6)); //nam
}
/
**************************************************************/
//
TAO THOI GIAN TRE DUNG TIMER 0
//
void delay(long time)//tre time ms
{
while(time--){
n H Thng Nhng
43
Trang
B mn K Thut My Tnh
i hc K Thut Cng
Nghip
TMOD=0x01;// che do 16 bit khong tu nap lai
TH0=0xFC;TL0=0x67;
//6*(65536- FC67+1)*(1/12000)=1000us =1ms
TR0=1;
while(TF0!=1){};
TF0=0; TR0=0;}
}
/
**************************************************************
*/
// CHUONG TRINH CON THUC HIEN VIEC CAI DAT NGAY GIO, THANG
NAM
//
unsigned char bcd_dec(unsigned char bcd)
{return((bcd/16)*10+(bcd%16)); //vd bcd=66 -> dec =42}
unsigned char dec_bcd(unsigned char dec)
{return((dec/10)*16+(dec%10)); }
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
void caidat_rtc()
{
unsigned char giay,phut,gio,thu,ngay,thang,nam;
giay = bcd_dec(docdulieu(0)&0x7f); // de bit 7 (bit clock halt)
cua
thanh ghi giay = 0 => ko bi treo)
phut = bcd_dec(docdulieu(1));
gio = bcd_dec(docdulieu(2)& 0x3f); //che do 24 h
thu = bcd_dec(docdulieu(3));
ngay = bcd_dec(docdulieu(4));
thang = bcd_dec(docdulieu(5));
nam = bcd_dec(docdulieu(6));
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
// CAI DAT GIO
ghilenhLCD(1);
ghi_chuoi("CHINH GIO:");
ghilenhLCD(0x0e);
ghilenhLCD(0xc4);
ghiso(gio); ghi_kytu(':');ghiso(phut);ghi_kytu(':'); ghiso(giay);
/////////////////////////////////////////
ghilenhLCD(0xC5);
while(menu==0);
caidatgio:while(tang!=0 && giam!=0 && menu!=0);
if(tang==0) {gio++;
if(gio==24) gio=0;
ghilenhLCD(0xC4);
ghiso(gio);
n H Thng Nhng
44
Trang
B mn K Thut My Tnh
i hc K Thut Cng
Nghip
ghilenhLCD(0xC5);
delay(300);
goto caidatgio;
}
if(giam==0) {gio--;
if(gio==0xff)gio=23;
ghilenhLCD(0xC4);
ghiso(gio);
ghilenhLCD(0xC5);
delay(300);
goto caidatgio;}
///////////////////////////////////////////////////
while(menu==0);
ghilenhLCD(0xC8);
caidatphut: while(tang!=0 && giam!=0 && menu!=0);
if(tang==0) {phut++;
if(phut==60) phut=0;
ghilenhLCD(0xC7);
ghiso(phut);
ghilenhLCD(0x10);
delay(300);
goto caidatphut;}
if(giam==0){phut--;
if(phut==0xff)phut=59;
ghilenhLCD(0xC7);
ghiso(phut);
ghilenhLCD(0x10);
delay(300);
goto caidatphut; }
///////////////////////////////////////////////////
while(menu==0);
ghilenhLCD(0xCB);
caidatgiay: while(tang!=0 && giam!=0 && menu!=0);
if(tang==0) {giay++;
if(giay==60) giay=0;
ghilenhLCD(0xCA);
ghiso(giay);
ghilenhLCD(0xCB);
delay(100);
goto caidatgiay; }
if(giam==0) {giay--;
if(giay==0xff) giay=59;
ghilenhLCD(0xCA);
ghiso(giay);
n H Thng Nhng
45
Trang
B mn K Thut My Tnh
i hc K Thut Cng
Nghip
ghilenhLCD(0xCB);
delay(100);
goto caidatgiay; }
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
// CAI DAT NGAY - THANG - NAM
while(menu==0);
ghilenhLCD(1);
ghi_chuoi("CHINH NGAY :");
ghilenhLCD(0xc4);
ghiso(ngay); ghi_kytu('-'); ghiso(thang);
ghi_chuoi("-20"); ghiso(nam);
///////////////////////////////////////////////////
ghilenhLCD(0xc5);
caidatngay:while (tang!=0 && giam!=0 && menu!=0);
if(tang==0){ ngay++;
if(ngay==32) ngay=1;
ghilenhLCD(0xC4);
ghiso(ngay);
ghilenhLCD(0x10);
delay(300);
goto caidatngay; }
if(giam==0) {ngay--;
if(ngay==0) ngay=31;
ghilenhLCD(0xC4);
ghiso(ngay);
ghilenhLCD(0x10);
delay(300);
goto caidatngay; }
////////////////////////////////////////////////////
while(menu==0);
ghilenhLCD(0xC8);
caidatthang:while(tang!=0 && giam!=0 && menu!=0);
if(tang==0) { thang++;
if(thang==13)
thang=1;
ghilenhLCD(0xC7);
ghiso(thang);
ghilenhLCD(0x10);
delay(300);
goto caidatthang; }
if(giam==0){ thang--;
if(thang==0) thang=12;
ghilenhLCD(0xC7);
ghiso(thang);
n H Thng Nhng
46
Trang
B mn K Thut My Tnh
i hc K Thut Cng
Nghip
ghilenhLCD(0x10);
delay(300);
goto caidatthang; }
////////////////////////////////////////////////////////
while(menu==0);
ghilenhLCD(0xCD);
caidatnam:while(tang!=0 && giam!=0 && menu!=0);
if(tang==0)
{
nam++;
if(nam==100)
nam=0;
ghilenhLCD(0xCC);
ghiso(nam);
ghilenhLCD(0xCE);
delay(300);
goto caidatnam; }
if(giam==0)
{
nam--;
if(nam==0) nam=99;
ghilenhLCD(0xCC);
ghiso(nam);
ghilenhLCD(0xCE);
delay(300);
goto caidatnam; }
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
// CAI DAT THU
while(menu==0);
ghilenhLCD(1);
ghi_chuoi("CHINH THU :");
ghilenhLCD(0xc4);
ghi_chuoi(day[thu-1]);
caidatthu:while(tang!=0 && giam!=0 && menu!=0);
if(tang==0)
{
thu++;
if(thu==8) thu=1;
ghilenhLCD(0xC4);
ghi_chuoi(day[thu-1]);
delay(300);
goto caidatthu; }
if(giam==0)
{ thu--;
if(thu==0) thu=7;
ghilenhLCD(0xC4);
ghi_chuoi(day[thu-1]);
n H Thng Nhng
47
Trang
B mn K Thut My Tnh
Nghip
delay(300);
goto caidatthu; }
i hc K Thut Cng
while(menu==0);
// ket thuc cai dat
ghilenhLCD(1);
//thi thuc hien xoa man hinh
ghilenhLCD(0x0C);
//bat hien thi tat con tro
//CAP NHAT THOI GIAN VAO RTC
giatrikhoitao_rtc[0] = dec_bcd(giay);
giatrikhoitao_rtc[1] = dec_bcd(phut);
giatrikhoitao_rtc[2] = dec_bcd(gio);
giatrikhoitao_rtc[3] = dec_bcd(thu);
giatrikhoitao_rtc[4] = dec_bcd(ngay);
giatrikhoitao_rtc[5] = dec_bcd(thang);
giatrikhoitao_rtc[6] = dec_bcd(nam);
giatrikhoitao_rtc[7] = 0x00;
giatrikhoitao_rtc[8] = 'c';
//ghi vao vi tri dau tien cua ram1 co
flag
ghidulieu();
ghilenhLCD(1);
}
/**********************************************************/
//
CHUONG TRINH CON KIEM TRA DU LIEU TU DS1307 KHI KHOI
DONG
//
void kiemtra_rtc(void)
{
unsigned char temp;
start_rtc(); gui_rtc(0xd0);
gui_rtc(0x08);
//doc du lieu tu vi tri ram dau tien
start_rtc(); gui_rtc(0xd1);
temp=nhan_rtc() ; //con tro dang tro toi dia chi 0x08 chua du
lieu flag (co?`) xem da cai dat hay chua
stop_rtc();
if(temp!='c') // neu gia tri thu 8 nhan duoc khac voi co 'c' cap
nhat khi cai dat gio thi tuc la lan dau duoc khoi tao,
ta se chon gia tri ghi vao ban dau theo y minh
{
giatrikhoitao_rtc[0]=0x50;
giatrikhoitao_rtc[1]=0x59;
giatrikhoitao_rtc[2]=0x09;
giatrikhoitao_rtc[3]=0x04;
giatrikhoitao_rtc[4]=0x04;
giatrikhoitao_rtc[5]=0x05;
giatrikhoitao_rtc[6]=0x11;
n H Thng Nhng
48
Trang
B mn K Thut My Tnh
i hc K Thut Cng
Nghip
giatrikhoitao_rtc[7]=0x00;
giatrikhoitao_rtc[8]='c';
ghidulieu();}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
void doccacdulieu(void){
int i;
for(i=0;i<=6;i++){docdulieu(i);} }
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
//
CHUONG TRINH CHINH
//
bit co=0;
void caidatco() interrupt 0 //ngat ngoai 0 thi co =1
{co=1; }
void main()
{
khoitaoLCD();
ghilenhLCD(1);
ghilenhLCD(0x80);
ghi_chuoi("GVHD: THAY HUY");
ghilenhLCD(0xc0);
ghi_chuoi("SV:HOP-HIEN-HONG");
ghilenhLCD(1);
kiemtra_rtc();
IE=0x81;// EA_ET2.ES.ET1.EX1.ET0.EX0 cho phep ngat ngoai
0
doccacdulieu();
while(1)
{
doccacdulieu();
hienthi_rtc();
if(co==1) //co =1 ngat 0 xay ra => cai dat gio
{ caidat_rtc();
co=0; }
}
}
n H Thng Nhng
49
Trang
B mn K Thut My Tnh
Nghip
i hc K Thut Cng
3.3.Kt qu m phng
n H Thng Nhng
50
Trang
B mn K Thut My Tnh
Nghip
i hc K Thut Cng
KT LUN
Sau mt thi gian tm hiu, di s hng dn nhit tnh ca thy
Ths.Nguyn Vn Huy, nhm chng em hon thnh ti Thit k ng
h thi gian thc hin th trn LCD.
ng h hin th c th, ngy, thng, nm, gi, pht, giy, c th ci
t c thi gian thng qua giao tip phm n.
Qua chng em c cng c kin thc hc, kt hp c vi
thc tin, phc v cho cng vic tng lai rt nhiu.
Chng em c gng ht sc thc hin ti mt cch hon thin
v nhanh nht c th, nhng do trnh cn hn ch nn cn nhiu thiu st,
ti mi dng li vic lm mt chic ng h hin th thi gian n gin.
Cng vi ti ny, trong tng lai chng em s pht trin n mc
cao hn, c th kt hp chng vi cc thit b khc s dng trong thc tin
cuc sng nh ng h km o nhit , hn gi, chung bo, lch lm vic
c nhn hay tp th,
Trang