You are on page 1of 60

BO CO TT NGHIP

TN TI

NG H HIN TH THI GIAN THC TRN LCD C HN GI

Trang: 1

Mc Lc

TN TI: NG H HIN TH THI GIAN THC TRN LCD ...................... 1 NHN XT CA GIO VIN HNG DN ................................................................ 4 NHN XT CA GIO VIN PHN BIN ................................................................... 5 Mc Lc ................................................................................................................................ 1 LI NI U...................................................................................................................... 7 CHNG I: GII THIU TI .................................................................................... 8 1.1. Gii thiu .................................................................................................................. 8 1.2. S khi................................................................................................................... 8 1.3. Chc nng cc khi.................................................................................................. 8 CHNG II: GII THIU PHN CNG ..................................................................... 9 2.1. 2.2. S mch ............................................................................................................. 9 Gii thiu v cc linh kin trong mch ............................................................. 10 Gii thiu chung v vi iu khin AT98C51 ........................................... 10

2.2.1.

2.2.2. LCD .................................................................................................................. 15 2.2.3. IC thi gian thc DS1307 ................................................................................ 19 CHNG III: THIT K CHNG TRNH ................................................................. 25 1.1. 1.2. 3.2. Mch m phng ................................................................................................... 25 Thut ton ........................................................................................................... 26 Chng trnh ....................................................................................................... 32

TNG KT ........................................................................................................................ 59 TI LIU THAM KHO................................................................................................. 60

Trang: 2

TN TI: NG H HIN TH THI GIAN THC TRN LCD C HN GI 1.Yu cu ti: - S dng vi iu khin 89C51 - Chng trnh iu khin c th thay i c. 2. Ni dung cn hon thnh: - Tnh ton, la chn cc thng s k thut cho mch - Ch to m hnh - Sn phm p ng c yu cu m thut ,k thut - Quyn thuyt minh ti ,cc bn v, s ,m t y ni dung ti. 3. Sn phm: - 01 cun thuyt minh. - M hnh phn cng. Gio vin hng dn -Ngy giao ti: -Ngy hon thnh: :ng Vn Khanh.

Trang: 3

NHN XT CA GIO VIN HNG DN Hng Yn, Ngy.thng.nm 2011 Gio vin hng dn

ng Vn Khanh

Trang: 4

NHN XT CA GIO VIN PHN BIN Hng Yn, Ngy.thng.nm 2011 Gio vin phn bin

Trang: 5

Trang: 6

LI NI U Ngy nay vi s pht trin khng ngng cng ngh khoa hc k thut, vic ng dng cc thnh tu khoa hc vo cuc sng ngy cng mnh m dn gii thot lao ng chn tay cho con ngi. Ngng cng ngh k thut in t l mt trong nhng ngnh pht trin vi tc chng mt vi rt nhiu ng dng rng ri trong cuc sng hng ngy. T h thng internet ton cu n nhng dy chuyn sn xut t ng ha hin i v nhng thit b in t dn dng rt tin ch v a dng. Sau mt thi gian hc tp trn ging ng ca trng i Hc S Phm K Thut Hng Yn,chng em c tip cn vi nhng kin thc khoa hc v cng ngh hin i. Cng vi kinh nghim thc t, chng em c c hi chuyn nhng kin thc l thuyt hc c thnh sn phm thc t qua ti n mn hc tch hp mc mt ,vi ni dung l Hin th thi gian thc trn LCD c hn gi,dng vi iu khin. Trong qu trnh thc hin ti nu trn ,chng em nhn c s quan tm v ch bo tn tnh ca thy ng Vn Khanh ,cng vi s gip ca cc thy c gio trong khoa v bn b chng em hon thnh c sn phm ca mnh . Song vi kh nng c hc tp nghin cu v t nghin cu cn hn ch v ni dung v kin thc trong phm vi n ,s khng trnh khi nhng thiu st v hn ch .Thng qua n ny ,chng em rt mong c cc thy c ch bo thm, chng em c iu kin nng cao trnh ,hiu bit cng nh k nng ca bn thn.Chng em rt mong c tip thu nhng kin ng gp ca cc thy c! Chng em xin chn thnh cm n!

Trang: 7

CHNG I: GII THIU TI 1.1. Gii thiu Trong cc ng dng dn dng v cng nghip, cc b vi mch vi iu khin c ng dng rng ri v pht huy c tnh nng u vit ca n v ngy cng c s dng rng ri. Vic s dng cc b vi iu khin iu khin cc cng vic mang tnh lp li c chu k l cn thit thay th s gim st ca con ngi. y em xin trnh by vic ng dng vi iu khin hin th, bo gi thi gian thc trn LCD. 1.2. S khi

KHI HIN TH

KHI HIU CHNH

KHI VI IU KHIN KHI THI GIAN THC

CHUNG BO

1.3. Chc nng cc khi + Khi iu chnh gm 4 nt nhn t, hiu chnh v hn thi gian. + Khi hin th l LCD. + Khi iu khin s dng vi iu khin AT89C51 iu khin ton b cc hot ng chnh ca mch : nhn tn hiu iu khin ca khi iu chnh v tn hiu ca t con thi gian thc xut ra khi hin th v chung bo. + Khi chung bo l mt chung hoc ci in bo hn gi. + Khi thi gian thc l DS1307.
Trang: 8

CHNG II: GII THIU PHN CNG 2.1. S mch Mch ngun

Hnh 2.1: S nguyn l mch ngun Mch iu khin

Hnh 2.2: S nguyn l mch iu khin Mch Hin Th:


Trang: 9

Hnh 2.3: S nguyn l mch hin th

2.2.Gii thiu v cc linh kin trong mch 2.2.1. Gii thiu chung v vi iu khin AT98C51 AT89C51 l vi iu khin do Atmel sn xut, ch to theo cng ngh CMOS c cc c tnh nh sau: -4 KB PEROM (Flash Progarammable and Erasable Read Only Memory), c kh nng ti 1000 chu k ghi xa. -Tn s hot ng t :0Hz n 24 MHZ - 3 mc kha b nh lp trnh -128 Byte RAM ni -4 Port xut /nhp I/O 8 bit -2 b Timer /counter 16 bit -6 ngun ngt
Trang: 10

-Giao tip ni tip vi iu khin bng phn cng -64 KB vng nh m ngoi -64 vng nh d liu ngoi - Cho php x l bit. -210 v tr nh c th nh v bit. -4 chu k my (4 s i vi thch anh 12MHz) cho hot ng nhn hoc chia. - C cc ch ngh (Low-power Idle) v ch ngun gim (Power-down). S khi:

Hnh 2.4: S khi VK 89C51

S chn tn hiu ca 80C51 v 89C51:


P1.0 -P1.1-P1.2-P1.3-P1.4-P1.5-P1.6-1 2 3 4 5 6 7 40 39 38 37 36 35 34 --Vcc --P0.0 (AD0) --P0.1 (AD1) --P0.2 (AD2) --P0.3 (AD3) --P0.4 (AD4) --P0.5 (AD5)

Trang: 11

Hnh 2.5: S chn ca vi iu khin Chc nng ca cc chn nh sau: + Port 0 (chn 32-39) c 2 chc nng: Chc nng IO (xut /nhp): Dng cho cc thit k nh .Tuy nhin ,khi dung chc nng ny th Port 0 phi dung thm cc in tr ko (Pull up), gi tr ca in tr ph thuc vo thnh phn kt ni vi Port 0 Khi dng lm ng ra, Port 0 c th ko c 8 ng TTL. Khi dng lm ng vo, Port 0 phi c set mc logic 1 trc . Chc nng a ch / d liu a hp: khi dng cc thit k ln, i hi phi s dng b nh ngoi th Port 0 va l bus d liu (8 bit) va l bus a ch(8 bit thp). Ngoi ra khi lp trnh cho AT89C51, Port 0 cn dng nhn m khi lp trnh v xut m khi kim tra (qu trnh kim tra i hi phi c in tr ko ln). + Port1 (chn 1 8) ch c mt chc nng l IO, khng dng cho mc ch khc (ch trong 8032/8052/8952 th dng thm P1.0 v P1.1 cho b nh thi th 3). Ti Port 1 c in tr ko ln nn khng cn thm
Trang: 12

in tr ngoi. Port 1 c kh nng ko c 4 ng TTL v cn dng lm 8 bit a ch thp trong qu trnh lp trnh hay kim tra. Khi dng lm ng vo, Port 1 phi c set mc logic 1 trc . + Port 2 (chn 21 28) l port c 2 chc nng: Chc nng IO (xut / nhp): c kh nng ko c 4 ng TTL. Chc nng a ch: dng lm 8 bit a ch cao khi cn b nh ngoi c a ch16 bit. Khi , Port 2 khng c dng cho mc ch IO. Khi dng lm ng vo, Port 2 phi c set mc logic 1 trc . Khi lp trnh, Port 2 dng lm 8 bit a ch cao hay mt s tn hiu iu khin. + Port 3 (chn 10 17) l port c 2 chc nng: Chc nng IO: c kh nng ko c 4 ng TTL. Khi dng lm ng vo, Port 3 phi c set mc logic 1 trc . Chc nng khc: m t nh bng di y

Bng 2.1: Chc nng chn Port 3


Trang: 13

Ngun:

Chn 40: VCC = 5V 20% Chn 20: GND

PSEN (Program Store Enable) (chn 29): Cho php c b nh chng trnh m rng i vi cc ng dng s dng ROM ngoi, thng c ni n chn OC (Out put Control) ca ROM c cc byte m lnh. PSEN s mc logic 0 trong thi gian AT89C51 lylnh.Trong qu trnh ny, PSEN s tch cc 2 ln trong 1 chu k my. M lnh ca chng trnh c c t ROM thng qua bus d liu (Port0) v bus a ch (Port0 + Port2). Khi 8951 thi hnh chng trnh trong ROM ni, PSEN s mc logic 1. ALE/ PROG (Address Latch Enable / Program) (chn 30): Cho php tch cc ng a ch v d liu ti Port 0 khi truy xut b nh ngoi. ALE thng ni vi chn Clock ca IC cht (74373,74573). Cc xung tn hiu ALE c tc bng 1/6 ln tn s dao ng trn chip v c th c dng lm tn hiu clock cho cc phn khc ca h thng. Xung ny c th cm bng cch set bit 0 ca SFR ti a ch 8Eh ln 1. Khi , ALE ch c tc dng khi dng lm ng vo xung lp trnh cho ROM ni ( PROG ). EA/VPP (External Access) (chn 31): Dng cho php thc thi chng trnh t ROM ngoi. Khi ni chn 31 vi Vcc, AT89C51 s thc thi chng trnh t ROM ni (ti a 8KB),ngcli th thc thi t ROM ngoi (ti a 64KB). Ngoi ra chn EA c ly lm chn cp ngun 12V lp trnh cho ROM. RST (chn 9): Cho php reset AT89C51 khi ng vo tn hiu a ln mc 1 trong t nht l 2 chu k my. X1,X2(Chn 18.19): Ng vo v ng ra b dao ng, khi s dng c th ch cn kt ni thm thch anh v cc t nh hnh v trong s . Tn s thch anh thng s dng cho AT89C51 l 12Mhz.

Trang: 14

Hnh 2.6: S kt ni thch anh

2.2.2. LCD Cu trc c bn ca LCD: + Cu To: Tnh cht quang hc ca cc tinh th lng chng c s dng trong cc hin th LCD (Liquid Crystal Display) .Cc tinh th bnh thng chng th rn vi s nh hng c bit . Tuy nhin y cc th lng c cu trc t cc tinh th ng. Cc tinh th ny c th iu chnh bi mt in trng y l mt cch iu khin cht lng thay i t trong sut n trng thi m c(Chn sng). S cu trc c bn ca LCD nh hnh di:

Trang: 15

Hnh 2.7: S cu trc ca LCD + Nguyn L: Tinh th lng th c cha gia hai tm thy tinh.Cc in cc chng c lm bay hi v nng ng ln bn trong ca cc tm thy tinh,cc in cc th c cch li bi tinh th lng.Cc tm lc phn cc sng th nm bn ngoi trn tm thy tinh.C th ph thuc vo v tr ca mt phng phn cc ,m nh sng ti i qua cc in cc c th lt qua t bo hoc khng.Tng ng vi mt phng phn cc, t bo khng c iu khin xut hin hon ton sng hoc ti.Ngy nay,hin th LCD c ch to ch yu l sng khi khng c iu khin. hin th cc h thng ch s hoc ma trn im,th cc in cc phi c ch to theo dng nh vy. Nu mt in p c cung cp cho cc in cc v mt in trng s c to ra gia cc in cc ,cc phn t ca tinh th lng c iu chnh .Nhng nh ti tng ng vi hnh dng ca in cc c to ra trong trng hp mn hnh hon ton
Trang: 16

trong sut ,trong lc nhng nh c to ra trong trng hp mn hnh hin th trng thi cc m(chn sng:nh trng nn en). Mn hnh hin th LCD v vy khng pht sng, do mt ngun sng bn ngoi th lun cn phi c. Vi vn chiu sng ca mn hnh LCD ,c 3 cch khc nhau: -Ch phn chiu(Reflective Mode). Trong ch ny nh sng c chiu ti t pha trc ca mn hnh qua cc tm lc phn cc v in cc ri gp n gng(Mirror) phn x tr li to ngun sng xuyn qua mn hnh n mt ngi.Trong trng hp ny nh sng ban ngy hoc nh sng trong phng cng lm ngun sng. -Ch xuyn thng(Transflective Mode). Trong ch ny nh sng c chiu t pha trc v pha sau ca mn hnh tng hiu qu chiu sng. Gng phn x c s dng y l mt lp bn dn trong sut ch cho nh sng t pha sau i qua v nh sng t pha trc ti. -Ch truyn(Transmission Mode). Trong ch ny nh sng c chiu t pha saucuar mn hnh bng mt ngun sng nhn to c th l mt bng n hoc LED thm ch l mt ming pht sng c bit. Ty theo nh sn xut v loi LCD m ngun cung cp t 3 n 15v. Chng c m t nh hnh v di y:

Trang: 17

Hnh 2.8: Cc kiu cu trc ca mn hnh LCD Chc nng cc chn: Chn Tn Chc Nng

Vss

Chn ni t cho LCD, khi thit k mch ta ni chn ny vi GND ca mch iu khin

Vdd

Chn cp ngun cho LCD, khi thit k mch ta ni chn ny vi Vcc=5V ca mch iu khin Chn ny dng iu chnh tng phn ca LCD Chn chn thanh ghi (Register select). + Logic 0: Bus DB0-DB7 s ni vi thanh ghi lnh IR ca LCD ( ch ghi - write) hoc ni vi b m a ch ca LCD ( ch c -

3 4

Vee

RS

read)
Trang: 18

+ Logic 1: Bus DB0-DB7 s ni vi thanh ghi d liu DR bn trong LCD. 5 RW Chn chn ch c/ghi (Read/Write). Ni chn R/W vi logic 0 LCD hot ng ch ghi, hoc ni vi logic 1 LCD ch c. 6 Chn cho php (Enable). Sau khi cc tn hiu c t ln bus DB0-DB7, cc lnh ch c chp nhn khi c 1 xung cho php ca chn E. + ch ghi: D liu bus s c LCD chuyn vo(chp nhn) thanh ghi bn trong n khi pht E hin mt xung (high-to-low transition) ca tn hiu chn E. + ch c: D liu s c LCD xut ra DB0DB7 khi pht hin cnh ln (low- to-high transition) chn E v c LCD gi bus n khi no chn E xung mc thp. Tm ng ca bus d liu dng trao i thng tin vi MPU. C 2 ch s dng 8 ng bus ny : 7 14 DB0DB7 + Ch 8 bit : D liu c truyn trn c 8 ng, vi bit MSB l bit DB7. + Ch 4 bit : D liu c truyn trn 4 ng t DB4 ti DB7, bit MSB l DB7. 15,16 A,K n ca LCD 2.2.3. IC thi gian thc DS1307 Chc nng cc chn:
Trang: 19

Hnh 2.9: S chn DS1307 X1,X2: ni vi thch anh 32,768 kHz 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 3V 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 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. 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. SCL(serial clock input): SCL c s dng ng b s chuyn d liu trn ng dy ni tip SQW/OUT(square wave/output driver)- khi c kch hot th bit SQWE c thit lp, 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. Mt vi thng s k thut: DS1307 l mt IC thi gian thc vi ngun cung cp nh, dng cp nht thi gianv ngy thng vi 56 bytes NV SRAM. a ch v dliu c
Trang: 20

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:

Hnh 2.10: S khi ca DS1307 a ch Ram v RTC: Thng tin v thi gian v ngy thng c ly ra bng cch c cc byte thanh ghi thch hp. Thi gian v ngy thng c thit lp cng thng qua cc byte thanh ghi ny bng cch vit vo nhng gi tr thch hp. ni dung ca cc thanh ghi di dng m BCD(binary coded decreaseimal). Bit 7 ca thanh ghi seconds l bit clock halt(CH), khi bit ny
Trang: 21

c thit lp 1 th dao ng disable, khi n c xo v 0 th dao ng c enable.

Bng 2.2: Bng a ch RAM DS1307 c th chy ch 24h cng nh 12h. Bit th 6 ca thanh ghi hours l bit chn ch 24h hoc 12h. khi bit ny mc cao th ch 12h c chn. ch 12h th bit 5 l bit AM/PM vi mc cao l l PM. ch 24h th bit 5 l bit ch 20h(t 20h n 23h). + OUT(output control): Bit ny iu khin mc ra ca chn SQW/OUT khi u raxung vung b cm. Nu SQWE=0 th mc logic chn SQW/OUT s l 1 nu OUT=1,v =0 nu OUT=0 + SQWE(square wave enable): Bit ny c thit lp 1 s cho php u ra ca b to dao ng. Tn s ca u ra sng vung ph thuc vo gi tr ca RS1 v RS0. Hot ng: DS1307 h tr truyn d liu bus 2 dy 2 chiu. Mt thit b gi d liu ln ng truyn c nh ngha nh l 1 my pht v mt thit b nhn d liu nh l my nhn. Thit b iu khin thng ip gi l Master. Thit b c iu khin bi Master c gi l Slaver. ng truyn (Bus) phi c iu khin bi thit b master m pht ra xung ni tip (Serial
Trang: 22

Clock_SCL) iu khin s truy cp ng truyn v pht ra iu kin bt u, dng (Start ,Stop condition). DS1307 hot ng nh l Slave trn bus 2 dy.

Hnh 11: Cc hnh bus 2 dy in hnh Vic truyn d liu ch c th c bt u khi bus khng bn Trong lc truyn d liu, ng d liu phi n nh bt c khi no ng Clock l cao (High). Do , cc iu kin v ng truyn sau c nh ngha: Bus not busy:c ng d liu v xung u mc cao (High) Start data transfer: mt s thay i trong trang thi ca ng d liu t HIGH - LOW trong khi xung clock vn cao (H), y l iu kin bt u (Start Condition). Stop data transfer: mt s thay i trong trang thi ca ng d liu t LOW - HIGH trong khi xung clock vn cao (H), y l iu kin dng (Stop Condition) . Data valid: trng thi ca ng d liu biu din d liu hp l khi m : sau iu kin Start ng d liu n nh trong khong thi gian chu k cao (HIGH) ca tn hiu clock. D liu trn ng phi thay i trong chu k thp (LOW) ca tn hiu clock. C 1 xung clock/ 1 bit d liu. Mi d liu truyn i vi iu kin Start v kt thc vi iu kin Stop. S byte d liu

Trang: 23

truyn gia iu kin Start v Stop l khng gii hn v c quyt nh bi thit b master. Sau khi mt byte c truyn th c bo nhn b thu vi bit th 9. Acknowledge: Mi thit b nhn khi c nh a ch th phi pht ra tn hiu bo nhn sau khi nhn mi byte. Thit b master phi phat ra thm 1 xung clock ghp vi bit bo nhn ny. Thit b bo nhn phi ko ng SDA xung trong sut xung clock bo nhn nh l cch m ng SDA n nh thp trong chu k High ca xung clock bo nhn. D nhin, thi gian thit lp v thi gian gi (ch) phi c tnh ton n. Master phi bo hiu kt thc d liu n Slave bng cch khng pht ra mt bit bo nhn trn byte cui cng m c ghi vo Slave. Trong trng hp ny, Slave phi ng d liu mc cao (H) cho php Master pht ra iu kin STOP. Hai ch hot ng ca DS1307: 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 mt 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.

Trang: 24

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 DS 1307 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 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.

CHNG III: THIT K CHNG TRNH 1.1. Mch m phng

Trang: 25

1.2.

Thut ton
Check BF
OUT_CMD

A=[0]

RS=[0] RW=[1]
A=@A+DPTR

LCD_PORT=#0FFH
A=END_SIG

E=[1] E=[0]
CMD

RET

BF=[1]
DPTR++

S RET

CMD

DTA

Trang: 26

BF=[1]

EX1ISR

HEX_DEC STO_COND

B=[10H]

ALARM_FLAG

SDA=[0] No A\B A_RING=[0] ? Yes ALARM_PORT=[1] B=[0AH] ALARM OFF A.B A_RING=[0] ALARM_FLAG=[0] _2W_BUSY=[1] 70H=B SDA=[1]

SCL_HIGH

A=A+70H RET

RET

RET

Trang: 27

STA_COND

DELAY 5Oms

_2W_BUSY=[1]

PUSH ms

ACK=[0]

TIMER 0,MODE 1

SDA=[1]

TH 0=#HIGH(50000) TL 0=#LOW(50000)

TRO=[1] SCL_HIGH

Yes TF0=0? SDA=[0] No TF0=[0] HOLD

ms-SCL=[0] No

ms=0?
Yes RET TRO=[0]

PUSH ms

RET

DISP_VAL

DISP_RTC

Trang: 28
PUSL ACC t V Tr Con tr

Trang: 29

4 Trang: 30

Trang: 31

3.2.

Chng trnh
Trang: 32

$include(reg51.inc) E bit p1.0 RW bit p1.1 RS bit p1.2 SCL bit p3.0 SDA bit p3.1 Time_Key bit p3.2 Alarm_Key bit p3.3 Down bit p3.4 Up bit p3.5 Alarm_Port bit p3.7 ;Noi den coi bip BF bit p2.7 Lcd_Port equ p2 Flag data 20h Last_Read bit Flag.0 Mode_12 bit Flag.1 Mode_AM bit Flag.2 Ack bit Flag.3 _2W_Busy bit Flag.4 OSC bit Flag.5 Time_flag bit Flag.6 Alarm_FLag bit Flag.7 Alarm_On bit 08h Alarm_ring bit 09h Byte_Count data 30h Second data 28h Minute data 29h Hour data 2Ah Day data 2bh Date data 2ch Month data 2dh Year data 2eh Sig data 2Fh A_hour data 50h A_Minute data 31h DS1307W equ 0D0h DS1307R equ 0D1h End_Sig equ 11010000b ;dau hieu bao ket thuc chuoi lenh ;hoac chuoi cac ki tu hien thi Mode8Bit equ 38h ;2 hang, ma tran 5x7 Disp_Off equ 08h ;Tat hien thi, DDR khong bi anh huong Disp_On equ 0Ch ;bat hien thi Cursor_On equ 0Eh ;Bat hien thi, bat con tro
Trang: 33

Disp_All equ 0Fh ;Bat hien thi, bat con tro, bat nhap nhay Clr_Disp equ 01h ;xoa DDR, AC=1, tat hien thi Cursor_Home equ 03h ;AC=0 ;============Thiet lap che do==================== Inc_Ctrl equ 06h ;Tang AC moi khi co hoat dong doc, ghi toi LCD Dec_Ctrl equ 04h ;Giam AC moi khi co hoat dong doc, ghi toi LCD L_Ctrl equ 07h ;Dich trai DDR moi khi co hoat dong doc, ; ghi toi LCD R_Ctrl equ 05h ;Dich phai DDR moi khi co hoat dong doc, ; ghi toi LCD ;========Dich con tro va hien thi==== L_Cur equ 10h ;Giam AC, dich con tro sang trai R_Cur equ 14h ;Tang AC, dich con tro sang phai L_Disp equ 18h ;Dich toan bo DDR, hien thi sang trai, ;con tro cung dich theo R_Disp equ 1Ch ;Dich toan bo DDR, hien thi ; sang phai, con tro cung dich theo Org 00h jmp Main Org 03h Setb Time_Flag ;Ngat ngoai 0, chinh gio reti Org 13h jmp EX1ISR ;----------CHUONG TRINH CHINH--------------------------Org 30h Main: ; Chuong trinh chinh mov ie,#85h ;Cho phep ngat ngoai 0 va ngat ngoai 1 mov r2,#01h call delayms mov dptr,#Ready ;Khoi tao LCD, 8bit, bat hien thi call Out_Cmd mov dptr,#CGRAM call Out_Cg mov r2,#15 mov dptr,#Mes1 call Out_Str call delayms mov a,#0C1h call Cmd mov a,#01h
Trang: 34

call Cmd mov dptr,#Mes2 call Out_Str mov a,#0C1h call Cmd mov dptr,#Mes3 call Out_Str mov r2,#1 call Delayms mov a,#Clr_Disp call Cmd mov r2,#01h clr Time_Flag clr Alarm_Flag clr Alarm_ON clr Alarm_ring setb Alarm_Port mov a_hour,#00h mov a_Minute,#00h call Sta_Cond mov a,#DS1307W call Send mov a,#08h call send call Sto_Cond call Sta_cond mov a,#DS1307R call Send call recv call Sto_Cond cjne a,#'~',done sjmp Read_Clock done: mov a,#01h call Cmd mov Second,#00h mov Minute,#0 mov Hour,#10h mov day,#06h mov date,#12h mov month,#06h mov year,#09h mov sig,#'~'
Trang: 35

mov r1,#second mov r0,#00h kk: mov a,#DS1307W call Send mov a,r0 mov a,@r1 call Send inc r1 inc r0 call Sto_Cond cjne r0,#9,kk call Sto_Cond ;---Doc va hien thi dong ho--------------------------------------------Read_Clock: mov r1,#28h ;bat dau cua vung nho tam ma doc duoc tu DS1307 mov byte_count,#00h ;dem so byte clr Last_Read call Sta_cond mov a,#DS1307W call Send mov a,#00h ;tro den thanh ghi 00h chua DS1307 call Send call Sto_cond call Sta_cond mov a,#DS1307R call Send Read_Loop: mov a,byte_count ;kiem tra xem phai byte cuoi cung chua cjne a,#07h,No_Last setb Last_Read No_Last: call Recv call Sto_Cond mov @r1,a mov a,byte_count cjne a,#00h,Not_First ;nhay neu khong phai dang doc ;thanh ghi dau tien clr OSC mov a,@r1 jnb acc.7,Not_First ;neu bit 7 la 1, co OSC=1 setb OSC clr ACC.7
Trang: 36

mov @r1,a Not_First: inc r1 inc byte_count mov a,byte_count cjne a,#08h,Read_Loop call Sto_Cond call Disp_RTC jnb Time_Flag,Check2 clr EA clr Time_Flag call Set_time clr Time_Flag setb EA jmp Read_Clock Check2: jnb Alarm_Flag,Check3 clr Alarm_Flag setb Alarm_On call Set_Alarm jnb Alarm_on,Check3 mov dptr,#ready call Out_Cmd mov dptr,#D_A_ok call Out_STr mov a,#0C5h call Cmd mov a,a_Hour call Disp_Val mov a,#':' call Dta mov a,A_Minute call Disp_Val push 2 mov r2,#50 call Delayms pop 2 mov a,#01h call Cmd setb ea jmp Read_Clock Check3: ;kiem tra den gio hen thi do chuong jnb Alarm_Ring,aa
Trang: 37

call Alarm_Alarm aa: jmp Read_Clock EX1ISR: Setb Alarm_Flag ;Ngat ngoai 1, chinh gio jnb Alarm_ring,ii setb Alarm_port mov a,#01h call Cmd mov dptr,#D_No_Alarm call Out_Str mov r2,#50 call Delayms mov a,#01 call Cmd mov r2,#01 clr Alarm_on clr alarm_ring clr Alarm_Flag ii: reti ;----Cai dat thoi gian-----------------------------------Set_Time: call Bip jnb Time_Key,$ mov a,#Clr_Disp call Cmd mov r2,#01h mov dptr,#M_Set_Time call Out_Str mov r2,#50 call Delayms Set_Hour: mov a,#Clr_Disp call Cmd mov r2,#01h mov dptr,#M_Set_Hour call Out_Str mov a,#0C7h call Cmd mov a,hour anl a,#3Fh ;che do 24h mov r4,a call Disp_Val L_Set_hour1:
Trang: 38

mov a,#0c7h call cmd mov a,r4 ;lay so gio call hex_dec jb Up,Ch_Down_31 call Bip call De_bounce inc a cjne a,#24,Conti_31 mov a,#00 Conti_31: call Dec_Hex call Disp_Val mov r4,a jmp L_Set_Hour1 Ch_Down_31: ;kiem tra nhan phim DOWN jb Down,Ch_Time_key_31 call Bip call De_bounce dec a cjne a,#0FFh,Conti_31 ;Tiep tuc giam neu gio chua ve 0 mov a,#23 jmp Conti_31 Ch_Time_Key_31: jb Time_Key,Ch_Alarm_Key_31 call Bip call De_bounce call dec_hex ;dua tro ve lai ma BCD de dua vao thanh ghi mov Hour,a jmp Set_Minute Ch_Alarm_Key_31: jb Alarm_Key,L_Set_Hour1 call Bip call De_Bounce call dec_hex ;dua tro ve lai ma BCD de dua vao thanh ghi mov Hour,a jmp Set_Finish ;------------------ Set phut (minute) --------------------------------------------Set_Minute: mov dptr,#Clear call Out_Cmd mov r2,#01h mov dptr,#M_Set_Minute
Trang: 39

call Out_Str mov a,#0c7h call Cmd mov a,Minute push acc call Disp_Val pop acc call Hex_Dec L_Set_Minute: push acc mov a,#0c7h call cmd pop acc jb up,Ch_Down_8 call Bip call De_bounce inc a cjne a,#60,Conti_8 mov a,#00 Conti_8: call Dec_Hex call Disp_Val call Hex_Dec jmp L_Set_Minute Ch_Down_8: jb Down,Ch_Time_Key_8 call Bip call De_bounce dec a cjne a,#0FFh,Conti_8 mov a,#59 jmp Conti_8 ;vi khi da nhan phim tang hoac giam ;thi deu hien thi giong nhau Ch_Time_Key_8: jb Time_Key,Ch_Alarm_Key_8 call Bip call De_Bounce call Dec_Hex mov Minute,a jmp Set_Second Ch_Alarm_Key_8: jb Alarm_Key,L_Set_Minute call Bip
Trang: 40

call De_bounce call Dec_Hex mov Minute,a jmp Set_Finish ;------- Set giay (Second) ---------------------------------------------------Set_Second: mov dptr,#Clear call Out_Cmd mov r2,#01h mov dptr,#M_Set_Second call Out_Str mov a,#0c7h call Cmd mov a,Second push acc call Disp_Val pop acc call Hex_Dec L_Set_Second: push acc mov a,#0c7h call cmd pop acc jb up,Ch_Down_9 call Bip call De_bounce inc a cjne a,#60,Conti_9 mov a,#00 Conti_9: call Dec_Hex call Disp_Val call Hex_Dec jmp L_Set_Second Ch_Down_9: jb Down,Ch_Time_Key_9 call Bip call De_bounce dec a cjne a,#0FFh,Conti_9 mov a,#59 jmp Conti_9 Ch_Time_Key_9:
Trang: 41

jb Time_Key,Ch_Alarm_Key_9 call Bip call De_Bounce call Dec_Hex mov Second,a jmp Set_Day Ch_Alarm_Key_9: jb Alarm_Key,L_Set_Second call Bip call De_bounce call Dec_Hex mov Second,a jmp Set_Finish ;-------------------------Day (thu)-----------------------------------------------Set_Day: mov dptr,#Clear call Out_Cmd mov r2,#01h mov dptr,#M_Set_Day call Out_Str mov a,#0C5h call Cmd mov a,Day call Disp_Day L_Set_Day: Push acc mov a,#0C5h call Cmd pop acc jb Up,Ch_Down_4 call Bip call De_bounce inc a cjne a,#8,Conti_41 mov a,#01 Conti_41: call Disp_Day jmp L_Set_Day Ch_Down_4: jb Down,Ch_Time_Key_4 call Bip call De_Bounce dec a
Trang: 42

jnz Conti_42 ;Neu a #0 thi tiep tuc, con khong thi set a=7 mov a,#07 Conti_42: call Disp_Day jmp L_Set_Day Ch_Time_Key_4: jb Time_Key,Ch_Alarm_Key_4 call Bip call De_bounce call Dec_Hex mov Day,a jmp Set_date Ch_Alarm_Key_4: jb Alarm_Key,L_Set_Day call Bip call De_bounce call Dec_Hex mov Day,a jmp Set_Finish ;------- Set ngay (date) ---------------------------------------------------Set_Date: mov dptr,#Clear call Out_Cmd mov r2,#01h mov dptr,#M_Set_Date call Out_Str mov a,#0c7h call Cmd mov a,date push acc call Disp_Val pop acc call Hex_Dec L_Set_Date: push acc mov a,#0c7h call cmd pop acc jb up,Ch_Down_5 call Bip call De_bounce inc a cjne a,#32,Conti_5
Trang: 43

mov a,#1 Conti_5: call Dec_Hex call Disp_Val call Hex_Dec jmp L_Set_Date Ch_Down_5: jb Down,Ch_Time_Key_5 call Bip call De_bounce dec a jnz Conti_5 mov a,#31 jmp Conti_5 ;vi khi da nhan phim tang hoac giam thi deu ;hien thi giong nhau Ch_Time_Key_5: jb Time_Key,Ch_Alarm_Key_5 call Bip call De_Bounce call Dec_hex mov Date,a jmp Set_month Ch_Alarm_Key_5: jb Alarm_Key,L_Set_Date call Bip call De_bounce call Dec_hex mov Date,a jmp Set_Finish ;---------------------- Set thang (month)---------------------------------Set_Month: mov dptr,#Clear call Out_Cmd mov r2,#01h mov dptr,#M_Set_Month call Out_Str mov a,#0c7h call Cmd mov a,Month push acc call Disp_Val pop acc call Hex_Dec
Trang: 44

L_Set_Month: push acc mov a,#0c7h call cmd pop acc jb up,Ch_Down_6 call Bip call De_bounce inc a cjne a,#13,Conti_6 mov a,#1 Conti_6: call Dec_Hex call Disp_Val call Hex_Dec jmp L_Set_month Ch_Down_6: jb Down,Ch_Time_Key_6 call Bip call De_bounce dec a jnz Conti_6 mov a,#12 jmp Conti_6 ;vi khi da nhan phim tang hoac giam ; thi deu hien thi giong nhau Ch_Time_Key_6: jb Time_Key,Ch_Alarm_Key_6 call Bip call De_Bounce call Dec_Hex mov Month,a jmp Set_year Ch_Alarm_Key_6: jb Alarm_Key,L_Set_Month call Bip call De_bounce call Dec_Hex mov Month,a jmp Set_Finish ;----------------------- Set year-----------------------------------------Set_Year: mov dptr,#Clear call Out_Cmd
Trang: 45

mov r2,#01h mov dptr,#M_Set_Year call Out_Str mov a,#0c7h call Cmd mov a,Year push acc call Disp_Val pop acc call Hex_Dec L_Set_Year: push acc mov a,#0c7h call cmd pop acc jb up,Ch_Down_7 call Bip call De_bounce inc a cjne a,#100,Conti_7 mov a,#0 Conti_7: call Dec_Hex call Disp_Val call Hex_Dec jmp L_Set_Year Ch_Down_7: jb Down,Ch_Time_Key_7 call Bip call De_bounce dec a cjne a,#0FFH,Conti_7 mov a,#99 jmp Conti_7 ;vi khi da nhan phim tang hoac giam ; thi deu hien thi giong nhau Ch_Time_Key_7: jb Time_Key,Ch_Alarm_Key_7 call Bip call De_Bounce call Dec_Hex mov Year,a jmp Set_Finish Ch_Alarm_Key_7:
Trang: 46

jb Alarm_Key,L_Set_Year call Bip call De_bounce call Dec_Hex mov Year,a jmp Set_Finish ;--- khi da thiet lap xong, ghi thoi gian vao cac thanh ghi-Set_Finish: call Sta_Cond mov a,#DS1307W call Send mov a,#00h call Send mov r1,#second Send_Set: mov a,@r1 call Send inc r1 cjne r1,#2Fh,Send_Set call Sto_Cond mov dptr,#clear call Out_cmd mov dptr,#Set_Ok call Out_Str mov r2,#50 call delayms mov r2,#01 mov dptr,#clear call Out_Cmd ret ;----------- SET ALARM --------------------------Set_Alarm: call Bip clr EA ;cam ngat clr Alarm_flag mov dptr,#Ready call Out_Cmd mov r2,#01h mov dptr,#M_Set_Alarm call Out_Str mov r2,#50 call Delayms ;------- Set gio hen ---------------------------------------------------Trang: 47

A_Set_hour: mov A,#Clr_Disp call Cmd mov r2,#01h mov dptr,#M_Set_Hour call Out_Str mov a,#0c7h call Cmd mov a,A_hour call Disp_Val call Hex_Dec A_L_Set_Hour: push acc mov a,#0c7h call cmd pop acc jb up,A_Ch_Down_7 call Bip call De_bounce inc a cjne a,#24,A_Conti_7 mov a,#00 A_Conti_7: call Dec_Hex call Disp_Val call Hex_Dec jmp A_L_Set_Hour A_Ch_Down_7: jb Down,A_Ch_Alarm_Key_7 call Bip call De_bounce dec a cjne a,#0FFh,A_Conti_7 mov a,#23 jmp A_Conti_7 ;vi khi da nhan phim tang hoac giam ; thi deu hien thi giong nhau A_Ch_Alarm_Key_7: jb Alarm_Key,A_Ch_Time_Key_7 call Bip call De_Bounce call Dec_Hex mov A_Hour,a jmp A_Set_Minute
Trang: 48

A_Ch_Time_Key_7: jb time_Key,A_L_Set_Hour call Bip call De_bounce jmp Cancel ;------- Set phut (minute) ---------------------------------------------------A_Set_Minute: mov dptr,#Ready call Out_Cmd mov r2,#01h mov dptr,#M_Set_Minute call Out_Str mov a,#0c7h call Cmd mov a,A_Minute call Disp_Val call Hex_Dec A_L_Set_Minute: push acc mov a,#0c7h call cmd pop acc jb up,A_Ch_Down_8 call Bip call De_bounce inc a cjne a,#60,A_Conti_8 mov a,#00 A_Conti_8: call Dec_Hex call Disp_Val call Hex_Dec jmp A_L_Set_Minute A_Ch_Down_8: jb Down,A_Ch_Alarm_Key_8 call Bip call De_bounce dec a cjne a,#0FFh,A_Conti_8 mov a,#59 jmp A_Conti_8 ;vi khi da nhan phim tang hoac giam ; thi deu hien thi giong nhau A_Ch_Alarm_Key_8:
Trang: 49

jb Alarm_Key,A_Ch_Time_Key_8 call Bip call De_Bounce call Dec_Hex mov A_Minute,a jmp return3 A_Ch_Time_Key_8: jb time_Key,A_L_Set_Minute call Bip call De_bounce ;----------------------- Huy bo thiet lap hen gio--------------------------------Cancel: mov dptr,#ready call Out_cmd mov dptr,#D_No_Alarm call Out_str push 2 mov r2,#50 call delayms pop 2 mov a,#01h call Cmd clr Alarm_on clr Alarm_ring setb ea return3: ret ;-------Chong nay phim------------------------------------------De_bounce: push 2 mov r2,#10 call delayms pop 2 ret ;--------------coi --------------------------------------------------alarm_alarm: ;Alarm Ring clr alarm_port mov r3,#0ffh a_loop: mov r4,#0ffh djnz r4,$ djnz r3,a_loop setb alarm_port
Trang: 50

mov r3,#0ffh a_loop1: mov r4,#0ffh djnz r4,$ djnz r3,a_loop1 clr alarm_port mov r3,#0ffh a_loop2: mov r4,#0ffh djnz r4,$ djnz r3,a_loop2 setb alarm_port mov r3,#0ffh a_loop3: mov r4,#0ffh djnz r4,$ djnz r3,a_loop3 clr alarm_port mov r3,#0ffh a_loop4: mov r4,#0ffh djnz r4,$ djnz r3,a_loop4 setb alarm_port mov r3,#0ffh a_loop5: mov r4,#0ffh djnz r4,$ djnz r3,a_loop5 clr alarm_port mov r3,#0ffh a_loop6: mov r4,#0ffh djnz r4,$ djnz r3,a_loop6 setb alarm_port ret ;-----------Chuyen doi tu hexa sang dec----------------------Hex_Dec: mov b,#10h div ab mov 70h,b mov b,#0ah
Trang: 51

mul ab add a,70h ret ;------Hien thi thu trong tuan----------------Disp_Day: push acc cjne a,#01,D_Mon mov dptr,#Sun call Out_Str jmp exit D_Mon: cjne a,#02h,D_Tue mov dptr,#Mon call Out_Str jmp exit D_Tue: cjne a,#03h,D_Wed mov dptr,#Tue call Out_Str jmp exit D_Wed: cjne a,#04h,D_Thu mov dptr,#Wed call Out_Str jmp exit D_Thu: cjne a,#05h,D_Fri mov dptr,#Thu call Out_Str jmp exit D_Fri: cjne a,#06h,D_Sat mov dptr,#Fri call Out_Str jmp exit D_Sat: mov dptr,#Sat call Out_Str Exit: pop acc ret ;----Hien thi gia tri thap phan voi so dua vao la ma BCD (lay tu DS1307)Disp_Val:
Trang: 52

push acc swap a anl a,#0Fh add a,#30h ;ki tu so tuong ung voi ma BCD call Dta pop acc push acc anl a,#0Fh add a,#30h call Dta pop acc ret ;------Gui du lieu tu VDK den DS1307 --------Send: mov r7,#08 ;dem so bit L_Send: jnb acc.7,SDA_0 ;chuyen bit 7 cua thanh ghi A vao SDA setb SDA jmp Cont SDA_0: Clr SDA Cont: call SCL_High rl A ;chuyen dan bit cao den thap clr SCL djnz r7,L_Send setb SDA ;chot de doc xung bao nhan call SCL_High clr ACK jnb SDA,Ack_0 setb ACK ACK_0: call Hold clr Scl call Hold ret ;-----Nhan du lieu tu DS1307 ------Recv: mov r7,#08h mov a,#00h L_Recv: call SCL_High mov C,SDA ;dua gia tri doc duoc 0 SDA vao co Carry
Trang: 53

rlc a clr SCL djnz r7,L_Recv jb Last_Read,N_Send_ACK ;neu khong phai la lan doc cuoi cung ;thi gui bit bao nhan clr SDA N_Send_ACK: call SCL_High clr SCl ret ;-------Dieu kien bat dau DS1307------Sta_Cond: setb _2W_Busy clr Ack setb SDA call SCL_High clr SDA call Hold clr SCL ret ;-------Dieu kien dung cua DS1307-------Sto_Cond: clr SDA call SCL_High setb SDA clr _2W_Busy ret ;-------thiet lap duong clock len bit cao------------SCL_High: setb SCL jnb SCL,$ ret Out_Str: ;Xuat 1 chuoi ki tu ra man hinh LCD mov a,#00h movc a,@a+dptr cjne a,#End_Sig,Next_Char ;Xuat den khi ket thuc chuoi jmp return ;Tro lai chuong trinh Next_Char: call Dta ;Gui du lieu den LCD push 2 ;Cat gia tri R2, so miligiay call Delayms pop 2 inc dptr
Trang: 54

jmp Out_Str Out_Cmd: ;Xuat 1 chuoi lenh den LCD mov a,#00h movc a,@a+dptr cjne a,#End_Sig,Next_Cmd jmp Return Next_Cmd: call cmd inc dptr jmp Out_Cmd Out_Cg: ;Xay dung ki tu dac biet vao CGRAM mov R6,#40h ;bat dau dia chi cua CGRAM tai 00h CG: mov a,r6 call cmd inc r6 mov a,#00h movc a,@a+dptr cjne a,#End_Sig,Next_Cg jmp return Next_Cg: call dta inc dptr jmp CG Cmd: ;Xuat 1 lenh den LCD call Check_BF clr RS clr RW jmp Out Dta: ;Xuat du lieu den LCD call Check_BF setb RS clr RW Out: mov Lcd_Port,a setb E clr E ret Check_BF: ;Kiem tra co ban BF clr RS setb RW mov Lcd_Port,#0FFh ;Chot de doc co ban L_Check:
Trang: 55

clr E Setb E jb BF,L_Check Return: ret ;-----Delay ms, so ms duoc dua vao R2 o chuong trinh chinh-----------Delayms: push 2 ;Delay 50 ms mov Tmod,#01h L_Delay: mov Th0,#High(50000) mov Tl0,#Low(50000) setb tr0 jnb tf0,$ clr tf0 djnz r2,L_Delay clr tr0 pop 2 ret ;------Thoi gian giu giua cac hoat dong cua DS1307-------------Hold: nop nop nop nop ret ;---Xuat ra man hinh LCD du lieu nhan duoc tu LCD--------Disp_RTC: mov a,#80h ;dua con tro ve dau hang thu 1 call Cmd mov r1,#2Bh ;thu (day) mov a,@r1 call Disp_Day mov a,#88h ;vi tri thu 9, hang 1 call Cmd mov r1,#2Ch ;ngay mov a,@r1 call Disp_Val mov a,#'/' call Dta mov r1,#2Dh ;thang mov a,@r1 call Disp_Val
Trang: 56

mov a,#'/' call Dta mov a,year call Disp_year jnb Alarm_on,D_Next ;hien thi cai chuong neu co hen gio mov a,#0C2h call Cmd mov a,#01h call Dta D_next: mov a,#0C7h ;vi tri thu 8,hang 2 call Cmd mov r1,#2Ah ;gio mov a,@r1 call Disp_Hour mov a,#':' call Dta mov r1,#29h ;phut mov a,@r1 call Disp_Val mov a,#':' call Dta mov r1,#28h ;giay mov a,@r1 call Disp_Val jnb Alarm_on,return4 mov a,A_hour cjne a,hour,return4 mov a,A_minute cjne a,Minute,return5 setb Alarm_ring jmp return4 return5: clr Alarm_ring return4: ret ;--------------Hien thi gio----------------------Disp_hour: anl a,#3Fh call Disp_Val Ret ;------Chuyen doi tu Dec sang HEXA----------------------Dec_Hex:
Trang: 57

mov b,#0ah div ab mov 70h,b mov b,#10h mul ab add a,70h ret ;-----Tao tieng Bip moi khi nhan phim--------------------Bip: push 2 mov r2,#01 clr alarm_port call delayms setb alarm_port pop 2 ret ;-------Chuoi lenh va chuoi hien thi------------------------Ready: db Mode8Bit,Disp_On,Clr_Disp,End_Sig Clear: db Clr_Disp,Disp_On,End_Sig CGRAM: db 00h,0Eh,15h,1dh,11h,0eh,00,00 ;hinh dong ho db 4h,0eh,0eh,0eh,1fh,0h,4h,0h ;hinh cai chuong db 0h,1h,3h,16h,1ch,8h,0h,0h ;OK db 1h,3h,0fh,0fh,0fh,3h,1h,0h ;SPEAKER OFF db 8h,10h,0h,18h,0h,10h,8h,0h ;SPEAKER ON db 0ah,1fh,1fh,1fh,0eh,4h,0h,0h ;hinh trai tim db 2h,3h,2h,0eh,1eh,0ch,0h,0h,End_Sig ;MUSIC Sun: db '<Sun>',End_Sig Mon: db '<Mon>',End_Sig Tue: db '<Tue>',End_Sig Wed: db '<Wed>',End_Sig Thu: db '<Thu>',End_Sig Fri: db '<Fri>',End_Sig Sat: db '<Sat>',End_Sig Mes1: db 'DO AN VDK',End_Sig Mes2: db 'HOANG VAN NGAN',End_Sig Mes3: db 'TRIEU VAN LUC',End_Sig M_Set_time: db 0,'SET TIME !',End_Sig M_Set_Second: db 'SECOND =',End_Sig M_Set_Minute: db 'MINUTE =',End_Sig M_Set_Hour: db 'HOUR =',End_Sig
Trang: 58

M_Set_Day: db 'DAY =',End_Sig M_Set_Date: db 'DATE =',End_Sig M_Set_Month: db 'MONTH =',End_Sig M_Set_Year: db 'YEAR =',End_Sig M_Set_Alarm: db 1,' SET ALARM !',End_Sig Set_ok: db 2,' SET TIME',End_sig D_No_Alarm: db 2,' ALARM OFF',End_Sig D_A_ok: db 2,' ALARM ON :',End_Sig End TNG KT u im: S dng khi hin th LCD lm cho cu trc mch n gin hn, kt li gia cc khi d dng hn so vi hin th trn led 7 thanh. Hin th trn LCD kh nng hin th phong ph v a dng hn. C th hin th s, ch, hnh nh, ha. Sn phm c ng dng rt rng ri trong i sng hng ngy: Trong h thng ng h s,h thng bm nc t ng . . . Hn ch ca ti: Do thi gian c hn v kin thc cn hn ch nn mch ch dng li mc hin th thi gian thc v hn gi. Ga thnh cn cao hn so vi th trng. Hng pht trin ti: To ra sn phm c nhiu tnh nng hn, nh hin th ngy,thng m v nhit phng. Di s hng dn nhit tnh ca thy gio ng Vn Khanh v cc thy c gio trong khoa in _in t, chng em hon thnh n ng tin c giao v c kt c nhiu kinh nghim cho bn thn. Song do nng lc v thi gian c hn khng th trnh khi thiu xt rt mong nhn c nhng ng gp t qu thy c gio v bn c. Chng em xin chn thnh cm n!

Trang: 59

TI LIU THAM KHO 1. Vi iu khin lp trnh v ng dng_ Kiu Xun Thc 2. WWW.dientuvietnam.net 3. WWW.ebook.vn 4. http://pdfl.alldatasheet.com/datasheet-pdf/view/DS1307.html 5. http://pdfl.alldatasheet.com/datasheet-pdf/view/HD44780.html

Trang: 60

You might also like