You are on page 1of 42

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

1/42

Report no 03.01
Gi n:

picvietnam@googlegroups.com

Ni dung:

Real Time Clock Version 1.0


MICROSOFT WORD

Tm tt:
Bo co qu trnh thit k v thi cng ng h thi gian thc RTC (Real Time Clock) vi cc ni
dung:
- S lc v RTC (cc chc nng v ng dng).
- S nguyn l RTC.
- Cu to v chc nng cc linh kin s dng cho RTC.
- Gii thut v chng trnh ng dng vit cho RTC.
Cc file nh km: File chng trnh, s nguyn l v s mch in ca RTC.

1.

S lc v RTC

y l ng dng s dng vi iu khin PIC thit k mt ng h in t treo tng


hoc bn. Sau y l mt vi im gii thiu s lc:
-

S dng LED 7 on hin th. Thit b ny thch hp hn cho mc ch hin th ca


RTC khi dng lm ng h treo tng hoc bn.

S dng IC thi gian thc DS12C887. IC ny c tc dng to ra thi gian thc chnh
xc tuyt i, bao gm gi, pht, giy, th, ngy, thng, nm. Bn cnh l cc ngt
lp trnh c phc v cho vic cp nht thi gian thc v hn gi.

S dng IC ghi dch 74HC595 tng s lng chn iu khin cho vi iu khin.

S dng vi iu khin PIC16F877A cho cc thao tc truy cp thi gian thc, hin th
gi v chnh gi. Thc cht vic s dng PIC16F877A cho ng dng ny l ph phm,
v ng dng khng yu cu thm mt chc nng ph no ca vi iu khin ngoi chc
nng I/O.

RTC Version 1.0 l bn nhp v bao gm cc chc nng c th sau:


-

Hin th gi, pht, giy, ngy, thng, nm. Khng hin th th (qun mt tiu ).

iu chnh c gi, pht, giy.

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

2/42

2.

S nguyn l mch RTC

thun tin cho vic b tr gc nhn, thit k mu m sn phm v mc ch s dng,


ng dng RTC s bao gm 3 mch: mch iu khin, mch hin th v mch cho cc nt bm.

2.1.

S nguyn l mch iu khin

Mch iu khin bao gm cc thnh phn iu khin chnh nh:


-

Vi iu khin PIC16F877A v cc b phn h tr (thch anh, reset, np chng


trnh dng Tiny Bootloader, cc Jumper cho cc chn cn d).

IC thi gian thc DS12C887 v cc thnh phn h tr (in tr ko ln cho chn


IRQ, reset).

IC ghi dch 74HC595.

Cc kha in t dng Transistor A1015 phc v cho vic qut LED.

Cc Bus iu khin v Bus d liu ni sang cc Board hin th v Board nt bm.

Ngun cung cp cho ton b cc Board. in p a vo ngun l in p 9V ly t


Adapter loi 9V/500mA.

Sau y l s nguyn l c th cho Board iu khin:

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

3/42

Hnh 1: S nguyn l Board iu khin.

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

4/42

2.2.

S nguyn l Board hin th

5
B
DP

VCC
VC C

C
7

NTC14

10

5
B
DP
6

A
C
7

1
G

VCC

F
D

VC C
8

NTC13

10

B
DP
6

VCC
VC C

C
7

10

5
B
DP

A
C

NTC12

VCC

VC C
8

NTC11

10

B
DP
6

VCC
VC C

C
7

10

5
B
DP

A
C

NTC10

1
G

VCC

F
D

VC C
8

NTC9

10

B
DP
6

A
C
7

VCC

VC C
8

10

5
B
DP

A
C

NTC8

1
G

VCC

F
D

VC C
8

10

B
DP

NTC7

A
C
7

1
G

VCC

F
D

VC C
8

NTC6

10

5
B

A
C

DP
6

1
G

VCC

F
D

VC C
8

NTC5

10

B
DP
6

A
C
7

1
G

VCC

F
D

VC C
8

10

5
B
DP

NTC4

VCC
VC C

C
7

10

5
B

A
C

VCC
VC C

NTC3

DP
6

NTC2

10

5
B
DP
6

A
C
7

VCC

F
D
9

10

CON8

VC C

8
7
6
5
4
3
2
1

NTC1

J2

Board hin th bao gm cc LED 7 on. S nguyn l c th nh sau:

J7
1
2
3
4
5
6
J6
1
2
3
4
5
6
7
8

Hnh 2: S nguyn l Board hin th.


Cc gi tr gi, pht, giy, ngy, thng dng 2 LED hin th. Gi tr nm dng 4 LED
hin th. Tng cng ta cn s dng 14 LED.

2.3.

S nguyn l Board nt bm

Board nt bm gm 3 nt dng chnh gi. S nguyn l nh sau:

R28
R

SW3
ALARMSET

R29
R

J2

HI

SW2
TIMESET

HI

HI

HI

R27
R

1
2
3
4
5
6

SW4
INC

CON6

Hnh 3: S nguyn l Board nt bm.

3.

Cu to v chc nng cc linh kin s dng trong RTC

Phn ny s i su vo cu to bn trong ca cc linh kin s dng cho RTC v cch iu


khin chng s dng vi iu khin PIC.

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

5/42

3.1.

LED 7 on

3.1.1 Cu to ca LED 7 on
LED 7 on l mt cng c thng dng c dng hin th cc thng s di dng
cc s t 0 n 9. Mc d cng c LCD gip ta th hin cc thng s mt cch linh ng
hn nhng LED 7 on vn c s dng nhiu trong cng nghip do cc u th ca n
nh: t chu nh hng ca nhit , d to s ch v gc nhn rng.
LED 7 on bao gm 7 on LED c nh du l cc k t a, b, c, d, e, f, g v mt du
chm thp phn k hiu l dp. Ta c th xem LED 7 on l mt t hp gm 8 LED. 8 LED
ny c mt u (Anode hoc Cathode) c ni chung v c b tr theo mt qui tc nht
nh dng hin th cc ch s thp phn.
C hai loi LED 7 on, l loi Anode chung (cc Anode ca cc LED c ni
chung vi nhau) v loi Cathode chung (cc Cathode ca cc LED c ni chung vi
nhau). Ty theo tng loi LED m ta c cc phng php iu khin cc LED trong t hp
sng tt mt cch thch hp. i vi loi Anode chung, mt LED s c bt sng nu
mc logic a vo chn iu khin on LED l mc logic 0. i vi loi Cathode
chung, mt LED s c bt sng nu mc logic a vo chn iu khin on LED l
mc logic 1.

Hnh 4: LED 7 on
Hnh v trn l mt LED 7 on loi Cathode chung. Thc ra cu trc cc chn ca LED
7 on c th thay i ch khng c nh. Mt phng php xc nh chnh xc cc
chn iu khin ca LED 7 on l kim tra tng chn ca LED .
Da vo hnh v ta c th hiu c mt phn no phng php hin th ca mt LED
7 on. V d, mun hin th s 6, ta s iu khin cc on LED a, c, d, e, g, f sng ln.
Vic iu khin sng tt c thc hin bng cch a d liu thch hp vo cc chn a-g
v dp (tm gi l cc chn d liu) ca LED 7 on. l cch hin th theo tng LED. Tuy
nhin, trong thc t, tit kim s chn cn thit iu khin cng mt lc nhiu LED 7
on, cc chn d liu ca cc LED s c ni song song vi nhau, cc chn anode chung

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

6/42

(hoc cathode chung) c dng cho php LED sng hay tt (tm gi l cc chn
iu khin). Phng php hin th s da trn nguyn l lu nh ca mt.

3.1.2 Xy dng module hin th trn LED 7 on


Module ng dng sau y c xy dng dng hin th 2 ch s thp phn trn 2
LED 7 on s dng loi LED 7 on Anode chung.
Trc ht ta s tin hnh kt ni phn cng gia vi iu khin v LED 7 on t
xc nh c d liu cn a vo LED 7 on hin th mt ch s thp phn no .
Th t kt ni cc chn nh sau:
-

Chn dp ni vo chn RD7.

Chn g ni vo chn RD6.

Chn f ni vo chn RD5.

Chn e ni vo chn RD4.

Chn d ni vo chn RD3.

Chn c ni vo chn RD2.

Chn b ni vo chn RD1.

Chn a ni vo chn RD0.

Mun iu khin mt on LED no sng ln, ta a vo chn iu khin LED


v mc logic 0. Vi cch ni chn nh vy, ta c bng d liu tng ng vi cc ch s cn
hin th trn LED 7 on nh sau:

Ch
s
0
1
2
3
4
5
6
7
8
9

RB7
(dp)
1
1
1
1
1
1
1
1
1
1

RB6
(g)
1
1
0
0
0
0
0
1
0
0

RB5
(f)
0
1
1
1
0
0
0
1
0
0

RB4
(e)
0
1
0
1
1
1
0
1
0
1

RB3
(d)
0
1
0
0
1
0
0
1
0
0

RB2
(c)
0
0
1
0
0
0
0
0
0
0

RB1
(b)
0
0
0
0
0
1
1
0
0
0

RB0
(a)
0
1
0
0
1
0
0
0
0
0

M
HEX
C0h
F9h
A4h
B0h
99h
92h
82h
F8h
80h
90h

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

7/42

Da vo bng d liu trn, mun hin th mt ch s ln LED 7 on, ta ch vic a


m HEX tng ng vi ch s ra PORT D ca vi iu khin. Bng m trn khng c
nh m c th thay i ty thuc vo cu trc phn cng ca mch iu khin. Ty theo
cch kt ni m ta c th xy dng bng m tng ng.
iu khin vic cho php mt LED no tt hoc sng. Ta ni cc chn RB0 v RB1
vi cc chn iu khin ca LED thng qua cc cng tc. Cng tc ny l cc Transistor
v c cu trc mch nh hnh 5. Khi chn iu khin mc logic 1, transistor ngng dn
v khng c dng vo LED 7 on. Khi chn diu khin mc logic 0, transistor dn bo
ha v xut hin dng in i qua cc LED.
Ta s s dng chn RB0 iu khin LED hng n v v chn RB1 iu khin LED
hng chc.
5V
HI

10 K
RBx
LO

Hnh 5: S nguyn l cng tc iu khin


Sau y l s mch c th:

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

8/42

HI

R13
R

NTC3
HI

NTC2

4
A

3
VC C

2
F

1
G

NTC1

4
A

2
F

VC C

11
32

VSS
VSS

31
12

OSC1/CLKI

Chng trnh vit cho ng dng tri qua cc bc sau:


-

a d liu ca LED 1 vo

Bt LED 1

Delay

a d liu ca LED 2 vo

Bt LED 2

Delay

Lp li bc 1

Sau y l chng trnh c th:

DP
6

VC C
8

DP

Hnh 6 : S nguyn l module hin th cho LED 7 on

10

10

PIC16F877A

30 pF

B
A
F
G
E
D
C
DP

A1015

OSC2/CLKO

4 MHz
13

DP
G
F
E
D
C
B
A

330
330
330
330
330
330
330
330

VC C

14

VDD
VDD

30
29
28
27
22
21
20
19

30 pF

RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
RC2/CCP1
RC3/SCK/SCL
RC4/SDI/SDA
RC5/SD0
RC6/TX/CK
RC7/RX/DT

RD7/PSP7
RD6/PSP6
RD5/PSP5
RD4/PSP4
RD3/PSP3
RD2/PSP2
RD1/PSP1
RD0/PSP0

R2
10K

A1015

15
16
17
18
23
24
25
26

RE0/RD/AN5
RE1/WR/AN6
RE2/CS/AN7

8
9
10

R1
10 K

40
39
38
37
36
35
34
33

2
3
4
5
6
7

RB7/PGD
RB6/PGC
RA0/AN0
RB5
RA1/AN1
RB4
RA2/AN2/VREF-/CVREF RB3/PGM
RA3/AN3/VREF+
RB2
RA4/TOCKI/C1OUT
RB1
RA5/AN4/SS/C2OUT
RB0/INT

HI

SW1

MCLR/VPP

HI

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

9/42

Chng trnh 1:
;========================================================================
title
chuongtrinh1.asm
processor
16f877a
include
<p16f877a.inc>
__CONFIG
_CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON &
_XT_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF
;========================================================================
;-----------------------------------------------------------------; Khai bo bin
;-----------------------------------------------------------------count1
EQU
0x20
counta
EQU
0x21
countb
EQU
0x22
;=========================================================================
;
Chng trnh chnh
ORG
0x000
GOTO
start
;=========================================================================
start
;----------------------------------------------------------------------------------; Khi to cc PORT
;----------------------------------------------------------------------------------BCF
STATUS, RP1
BSF
STATUS,RP0
; BANK1
CLRF
TRISD
; PORTD <- output
CLRF
TRISB
; PORTB <- output
BCF
STATUS,RP0
; BANK0
CLRF
PORTB
CLRF
PORTD
;----------------------------------------------------------------------------------; Vng lp chnh ca chng trnh
;----------------------------------------------------------------------------------loop
MOVLW
0x99
; hin th s 4
MOVWF
PORTD
MOVLW
b'11111101'
; bt LED hng chc
MOVWF
PORTB
CALL
delay_1ms
; delay_1ms

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

10/42

MOVLW
0x92
; hin th s 5
MOVWF
PORTD
MOVLW
b'11111110'
; bt LED hng n v
MOVWF
PORTB
CALL
delay_1ms
; delay_1ms
GOTO
loop
;=========================================================================
;
Chng trnh con
;=========================================================================
;-------------------------------------------------------------; Chng trnh con to thi gian delay 1 ms
;-------------------------------------------------------------delay_1ms
MOVLW
d'1'
MOVWF
count1
d1
MOVLW
0xC7
MOVWF
counta
MOVLW
0x01
MOVWF
countb
delay_0
DECFSZ
counta,1
GOTO
$+2
DECFSZ
countb,1
GOTO
delay_0
DECFSZ
count1,1
GOTO
d1
RETURN
END
;========================================================================

Trong chng trnh trn, mi LED s c bt sng trong mt khong thi gian 1 ms,
sau tt LED v bt LED khc ln. Do thi gian bt tt qu nhanh nn mt s b nh
la l LED sng lin tuc. Hin tng ny c th quan st r hn bng cch tng thi gian
delay ln, khi ta s thy tng LED c bt tt mt cch tun t.
Tng t ta c th m rng s lng LED bng cch ni song song tt c chng li vi
nhau v p dng gii thut trn hin th.

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

11/42

3.2.

IC ghi dch 74HC595

y l IC ghi dch ni tip sang song song. IC c ng dng tng s lng chn
output cho vi iu khin. C nhiu phng php tng s lng chn , v d nh dng
IC gii m, tuy nhin IC ghi dch 74HC595 c la chn nh l mt gii php v cc
nguyn nhn sau:
-

S lng chn iu khin lun c nh l 4 chn: nu dng gii m th s long


chn iu khin s tng theo s lng chn ng ra (khi phi ghp nhiu IC li vi
nhau). Trong khi dng ghi dch th s lng chn iu khin lun l c nh ngay c
khi cn ghp nhiu IC li vi nhau.

Cho php iu khin linh hat v n nh hn: gia cc thanh ghi dch v ng ra
c mt cht. iu ny cho php thay i linh hot d liu trong cc thanh ghi
dch v n nh trng thi logic ng ra.

3.2.1 Cu to ca 74HC595
74HC595 l IC ghi dch ni tip sang song vi 8 ng ra QH:QA v b cht d liu 8 bit.
D liu c a vo cc thanh ghi dch bn trong IC thng qua 1 chn SER (chn 14) v
cc chn iu khin RCK (chn 12, iu khin cht d liu), chn SCK (chn 11, iu khin
qu trnh dch d liu), chn
(chn 10, dng tc ng ln qu trnh xa d liu)
chn QH (chn 9, chn a d liu ni tip ra ngoi dng ghp nhiu IC li vi nhau)
v chn

dng cho php cc ng ra.

Hnh 7: S chn l bng s tht ca 74HC595.

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

12/42

Hnh 8: S khi 74HC595.


Ta c th iu khin c mt hoc nhiu IC 74HC595 ghp vi nhau thng qua 4 chn
SER, RCK, SCK v
. iu ny cho php m rng mt cch v hn s lng chn ng
ra ca vi iu khin. Tuy nhin nhc im ca n l thi gian truy xut cc ng ra chm

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

13/42

hn so vi vi truy xut trc tip, v d liu phi c a tng bt vo IC trc khi cho
xut ra ngoi.
Hnh sau th hin cch ni nhiu IC ghi dch li vi nhau. Cc chn iu khin (RCK,
SCK v
) c ni chung li vi nhau, chn d liu ni tip ng ra (chn 9) ca IC
ny c ni vi chn d liu ni tip ng vo ca IC tip theo. Ta c th m rng s
lng IC ghp vi nhau theo cch tng t m s lng chn iu khin vn khng i.
DATA IN
RCK
SCK

VCC

14

7
6
5
4
3
2
1
15

0
7
6
5
4
3
2
1
15

SDI

11
12

74HC595

QH
QG
QF
QE
QD
QC
QB
QA

GND

SDO

74HC595

SRCLK
RCLK

13
10
G
CLR

11
12

14
SDI

16

SDO

GND

SRCLK
RCLK

VCC

QH
QG
QF
QE
QD
QC
QB
QA

G
CLR

16

HI

HI

13
10

CLR

DATA OUT

Hnh 9: Ni nhiu IC 74HC595 vi nhau.

3.2.2 Xy dng module iu khin IC 74HC595


Cch iu khin IC c th hin thng qua bng s tht hnh 7. Trc tin a 1 bit
d liu vo chn SDI, sau to ra mt xung dng chn SCK dch bit d liu
vo. Trng thi logic ca chn SDI khi kch xung dng quyt nh mc logic ca bit c
dch vo. Qu trnh ny c lp i lp li lin tc cho n khi ton b d liu c dch
vo trong IC. IC tip theo s tip tc dch d liu vo t chn SDO ca ca IC trc .
Khi qu trnh dch d liu hon tt, ta to mt xung dng chn RCK a d liu ra
ngoi cc chn ng ra QH:QA.
ng dng sau c dng a mt byte d liu ra IC ghi dch 74HC595. Kt qu
c kim nh thng qua cc LED c ni vo cc chn QH:QA ca IC.
Cc chn iu khin s c ni vo cc chn RB3:RB0 ca PORT B. C th nh sau:
-

Chn RB0 ni vi chn SDI.

Chn RB1 ni vi chn SCK.

Chn RB2 ni vi chn

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

14/42

Chn RB3 ni vi chn RCK.

Cc th t ny khng bt buc phi tun th mt cch tuyt i.


Sau y l s nguyn l mch ng dng:
HI

10 K

NTC1

15
16
17
18
23
24
25
26
30 pF
14

RE0/RD/AN5
RE1/WR/AN6
RE2/CS/AN7
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
RC2/CCP1
RC3/SCK/SCL
RC4/SDI/SDA
RC5/SD0
RC6/TX/CK
RC7/RX/DT

4 MHz

VDD
VDD

30
29
28
27
22
21
20
19

SDI
RCK
SCK
CLR

11
32

VSS
VSS

14
12
11
10
13
8

OSC2/CLKO

30 pF
13

RD7/PSP7
RD6/PSP6
RD5/PSP5
RD4/PSP4
RD3/PSP3
RD2/PSP2
RD1/PSP1
RD0/PSP0

RCK
CLR
SCK
SDI

16

8
9
10

40
39
38
37
36
35
34
33

HI

2
3
4
5
6
7

RB7/PGD
RB6/PGC
RA0/AN0
RB5
RA1/AN1
RB4
RA2/AN2/VREF-/CVREF RB3/PGM
RA3/AN3/VREF+
RB2
RA4/TOCKI/C1OUT
RB1
RA5/AN4/SS/C2OUT
RB0/INT

U2

VCC

SW1

MCLR/VPP

HI

QA
QB
QC
SER
QD
RCK
QE
SRCK QF
SRCLR QG
QH
G
GND QHP

15
1
2
3
4
5
6
7

330
330
330
330
330
330
330
330

D1
D2
D3
D4
D5
D6
D7
D8

74HC595

31
12

OSC1/CLKI
PIC16F877A

Hnh 10: S nguyn l mch ng dng iu khin IC 74HC595.


Sau y l chng trnh vit cho ng dng:
Chng trnh 2:
;========================================================================
title
chuongtrinh2.asm
processor
16f877a
include
<p16f877a.inc>
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON &
_XT_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF
;========================================================================
;--------------------------------------------------------; Khai bo bin
;--------------------------------------------------------sendreg
EQU
0X20
; cha d liu cn xut ra
count
EQU
0X21
; dng kim sot s lng bit
; gi ra
;---------------------------------------------------------;Khai bo phn cng

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

15/42

;---------------------------------------------------------#define
data PORTB,0
#define
clock PORTB,1
#define
clear PORTB,2
#define
latch PORTB,3
;========================================================================
;
Chng trnh chnh
ORG
0x000
GOTO
start
;========================================================================
start
;-----------------------------------------------------; Khi to cc PORT iu khin
;------------------------------------------------------BCF
STATUS,RP1
BSF
STATUS,RP0
; BANK1
MOVLW
0xF0
; cc chn RB3:RB0 l output
MOVWF
TRISB
; cc chn RB7:RB4 l input
BCF
STATUS,RP0
; BANK0
;--------------------------------------------------------------------; Khi to IC 74HC595
;--------------------------------------------------------------------BCF
clear
; reset d liu trong IC 74HC595
NOP
; clear tc ng cnh xung
BSF
clear
; a chn
tr v mc logic cao
;---------------------------------------------------------------------; on chng trnh xut d liu ra 74HC595
;---------------------------------------------------------------------MOVLW
0xCA
; d liu cn a ra IC 74HC595
CALL
serout
; chng trnh con serout
BSF
latch
; to cnh dng ti chn RCK a
NOP
; d liu ra ng ra IC 74HC595
BCF
latch
; a chn RCK tr v mc logic thp
;-------------------------------------------------------; Vng lp chnh ca chng trnh
;-------------------------------------------------------GOTO
$
;========================================================================
;
Chng trnh con
;========================================================================

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

16/42

;----------------------------------------------------------------------------------------; Chng trnh con serout


; Dng a d liu vo cc thanh ghi dch ca IC 74HC595
;----------------------------------------------------------------------------------------serout
MOVWF
sendreg
; a d liu vo thanh ghi sendreg
MOVLW
0x08
; m 8 bit d liu
MOVWF
count
testbit
BCF
data
; d liu mc nh bng 0
BTFSC
sendreg,7
; sendreg,7 == 0 ??
BSF
data
; nu khng bng 0, set d liu t 0 -> 1
BSF
clock
NOP
; to cnh dng ti chn SCK a
; d liu vo IC
BCF
clock
; a chn SCK v li mc logic thp
RLF
sendreg,0
; dch tri thanh ghi sendreg
MOVWF
sendreg
DECFSZ
count,1
; gim bin count 1 n v
GOTO
testbit
; nu bin count cha bng 0, tip tc
; qu trnh dch d liu
RETURN
; tr v chng trnh chnh nu count = 0
;========================================================================
END

Thut ton c th ca ng dng trn nh sau: ban u d liu c mc nh mang


mc logic 0, sau ta kim tra tng bit d liu mt ( bit th 7 trong thanh ghi sendreg)
xem c thc s bng 0 hay khng. Nu bng 1, ta set ng d liu ln mc logic 1. Sau
to xung dng ti chn SCK a d liu vo IC. D liu trn thanh ghi sendreg
sau c dch tri v qu trnh trn tip tc cho n khi 8 bit d liu c dch xong.
Cn ch khi to 74HC595 bng cch xa cc ng ra v a chn
cao (do chn
(b xa).

ln mc logic

tc ng cnh thp). Nu khng cc ng ra s lun trng thi logic 0

Trong trng hp ni nhiu IC li vi nhau ta ch vic ln lot a d liu vo thanh


ghi sendreg v gi chng trnh con serout cho n khi tt c cc d liu c gi ra
ht.

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

17/42

3.3.

IC thi gian thc DS12C887

y l IC thi gian thc c sn xut bi hng Dallas vi mt vi c tnh s lc sau:


-

Cha cc gi tr thi gian giy, pht, gi, th, ngy, thng, nm vi thi gian hot
ng ng n nm 2100.

B m hot ng vi thi gian 10 nm nu khng c ngun in ngoi cung cp.

Cc h thng bn trong bao gm h thng thi gian thc, ngun ni bng Lithium
v b to dao ng vi b chia tn s nh km cho php lp trnh c. Ngoi ra
cn h tr cc ngt phc v cho qu trnh x l thng tin ca h thng bn ngoi.

Cho php hai dng d liu BCD v Binary.

Cho php ch hin th gi 24 gi hoc 12 gi (vi AM v PM).

Cho php la chn cc ch giao tip BUS ca Intel hoc Motorola.

B nh RAM 128 byte. Trong gm 15 byte cha cc gi tr thi gian v iu


khin, 113 byte cn li c php ty s dng.

Cc c ngt h tr bao gm: ngt ton cc, ngt bo gi, ngt bo hiu cho php/
khng cho php truy xut gi tr thi gian thc.

Sau y l phn cu to v xy dng module iu khin IC DS12C887.

3.3.1 Cu to DS12C887
S chn:
NTC1
1
2
3
4
5
6
7
8
9
10
11
12

MOT
NC
NC
AD0
AD1
AD2
AD3
AD4
AD5
AD6
AD7
GND

VCC
SQW
NC
NC
NC
IRQ
RESET
DS
NC
R/W
AS
CS

24
23
22
21
20
19
18
17
16
15
14
13

DS12C887

Hnh 11: S chn DS12C887


DS12C887 gm 24 chn v c th c chia lm 3 nhm nh sau:

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

18/42

Nhm chn DATA: bao gm cc chn AD7:AD0. y l cc chn m DS12C887


dng a d liu ra hay nhn d liu vo.

Nhm chn iu khin giao tip BUS: bao gm cc chn MOT, AS, DS, R/W vi
cc chc nng ph thuc vo vic la chn ch giao tip BUS theo chun ca
Intel (MOT =1) hay Motorola (MOT = 0).

Nhm chn chc nng: bao gm cc chn RESET (dng reset IC), IRQ (chn tc
dng ca cc ngt trong DS12C887) v chn SQW (chn to sng vung ng ra).

Ngoi ra cn c cc chn dng cp ngun cho IC v cc chn khng cn thit


(NC).

Cc thanh ghi chc nng:

Thanh ghi
SECONDS

a ch
00h

Chc nng
Cha gi tr giy ca thi gian thc

SECOND
ALARM

01h

Cha gi tr giy ca thi gian hn gi

MINUTES

02h

Cha gi tr pht ca thi gian thc

MINUTES
ALARM
HOUR

03h

Cha gi tr pht ca thi gian hn gi

04h

Cha gi tr gi ca thi gian thc

HOUR ALARM
DAY OF THE
WEEK
DAY OF THE
MONTH
MONTH
YEAR
REGISTER A
REGISTER B
REGISTER C

05h
06h

Cha gi tr gi ca thi gian hn gi


Cha gi tr th ca thi gian thc

07h

Cha gi tr ngy thong thng

08h
09h
10h
11h
12h

Cha gi tr thng
Cha gi tr nm
Thanh ghi iu khin
Thanh ghi iu khin
Thanh ghi iu khin

REGISTER D
CENTURY

13h
50h

Thanh ghi iu khin


Thanh ghi cha gi tr th k ca thi gian thc

Cn li

14h->4Dh

Thanh ghi mc ch chung

Ngoi tr cc thanh ghi REGISTER A, B, C, D dng iu khin, cc thanh ghi cn


li u oc dng truy xut d liu.
Sau y l chc nng ca tng bit trong cc thanh ghi iu khin.

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

19/42

THANH GHI REGISTER A


Bit 7

UIP

Bit 6-4
Bit 3-0

DV2DV0
RS3-RS0

Bit 7

SET

Bit 6

PIE

Bit 5

AIE

Bit 4

UIE

Bit 3

SQWE

Bit 2

DM

Bit 1

24/12

Bit 0

DSE

Bit 7

IRQF

Bit 6

PF

Ch th trng thi d liu ca cc thanh ghi cha gi tr thi


gian thc. Bit ny ch c
UIP = 1: d liu cha sn sng truy xut.
UIP = 0: d liu sn sng cho qu trnh truy xut
La chn trng thi hot ng ca IC. Ch c gi tr 010 l
cho php IC hot ng theo ch thi gian thc.
Xc nh t s chia tn s ca b to dao ng
THANH GHI REGISTER B
SET = 0: cho php cp nht thi gian vo cc thanh ghi
SET = 1: khng cp nht thi gian vo cc thanh ghi
Cho php to ngt nh k ti chn IRQ v cho php c ngt
PF. Thi gian nh k c quyt nh bi cc bit RS3-RS0.
PIE =1: cho php
PIE = 0: khng cho php
Cho php ngt bo gi ti chn IRQ v cho php c ngt AF
AIE = 1 : cho php
AIE = 0 : khng cho php
Cho php to ngt khi qu trnh cp nht thi gian hon tt
v cho php c ngt UF.
UIE = 1 : cho php
UIE = 0 : khng cho php
SQWE = 1 : cho php to sng vung ti chn SQW (tn s
c quyt nh bi cc bit RS3:RS0.
SQWE = 0 : khng cho php, chn SQW lun mc 0.
Chn dng d liu cc thanh ghi cha thi gina thc
DM = 1 : dang d liu l Binary
DM = 0 : dng d liu l BCD
nh dng d liu gi
24/12 = 1 : dng 24 gi
24/12 = 0 : dng 12 gi
Daylight Saving Enable.
THANH GHI REGISTER C
Interrupt Request Flag: c ch th trng thi ngt
IRQF = 1 : c ngt xy ra
IRQF = 0 : khng c ngt xy ra
Periodic Interrupt Flag bit: c ch th trng thi ca ngt
nh k.

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

20/42

Bit 5

AF

Bit 4

UF

Bit 3-0

PF = 1 : ngt nh k xy ra
PF = 0 : ngt nh k khng xy ra
Alarm Interrupt Flag bit: c ch th trng thi ca ngt hn
gi.
AF = 1 : ngt hn gi xy ra
AF = 0 : ngt hn gi cha xy ra
Update Ended Interrupt Flag bit: c ch th trng thi d liu
UF = 1 : qu trnh cp nht hon tt
UF = 0 : qu trnh cp nht cha hon tt
Khng quan tm
THANH GHI REGISTER D

Bit 7

Bit 6-0

VRT

Bit ch th trng thi ca ngun ni. VRT lun bng 1. Nu


VRT = 0, ngun ni bng Lithium b cn v d liu trong
RAM l khng xc nh.
Khng quan tm

Cc thng tin khc c lin quan s c tm thy trong datasheet ca nh sn xut.

3.3.2 Xy dng module iu khin IC DS12C887.


Cc thao tc cn thit lm vic vi DS12C887 s l thao tc c v ghi cc gi tr trn
b nh ca IC thng qua qu trnh giao tip BUS.
DS12C887 h tr hai chun giao tip ca Intel v Motorola. Chun giao tip c la
chn bng chn MOT. MOT = 1 s cho php ch giao tip thep chun ca Motorola.
MOT = 0 cho php ch giao tip theo chun ca Intel.
Ta chn chun ca Intel (ni chn MOT xung mass).
ng dng sau dng kim tra cc thao tc c ghi ln RAM ca DS12C887. S
nguyn l ca mch ng dng nh sau :

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

21/42

HI

10 K

NTC1

SW1

2
3
4
5
6
7
AS
8
RW 9
DS 10

14

RE0/RD/AN5
RE1/WR/AN6
RE2/CS/AN7
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
RC2/CCP1
RC3/SCK/SCL
RC4/SDI/SDA
RC5/SD0
RC6/TX/CK
RC7/RX/DT

4 MHz

VDD
VDD

30
29
28
27
22
21
20
19

330
330
330
330
330
330
330
330
AD7
AD6
AD5
AD4
AD3
AD2
AD1
AD0

11
32

VSS
VSS

31
12

OSC1/CLKI
PIC16F877A

D1
D2
D3
D4
D5
D6
D7
D8

OSC2/CLKO

30 pF
13

RD7/PSP7
RD6/PSP6
RD5/PSP5
RD4/PSP4
RD3/PSP3
RD2/PSP2
RD1/PSP1
RD0/PSP0

40
39
38
37
36
35
34
33

NTC1
DS 17
RW 15 DS
AS 14 R/W
AS
AD7 11
AD6 10 AD7
AD5 9 AD6
AD4 8 AD5
AD3 7 AD4
AD2 6 AD3
AD1 5 AD2
AD0 4 AD1
AD0
21
22
3

NC
NC
NC

HI

30 pF

RB7/PGD
RB6/PGC
RA0/AN0
RB5
RA1/AN1
RB4
RA2/AN2/VREF-/CVREF RB3/PGM
RA3/AN3/VREF+
RB2
RA4/TOCKI/C1OUT
RB1
RA5/AN4/SS/C2OUT
RB0/INT

HI

15
16
17
18
23
24
25
26

MCLR/VPP

HI

VCC
SQW
IRQ
RESET

24
23
19
18

10 K

SW2
NC
NC
NC
GND
CS
MOT

20
16
2

12
13
1

DS12C887

Hnh 12: S nguyn l mch ng dng iu khin DS12C887.

Yu cu ca ng dng l ghi mt gi tr no ln mt thanh ghi trong RAM ca


DS12C887, sau c ra v kim tra kt qu bng vic xut ra cc LED PORT B.
Da vo gin xung c cung cp bi datasheet ca nh sn xut, mun ghi mt gi
tr ln RAM ca DS12C887 theo chun giao tip ca Intel ta ln lt tin hnh cc bc sau:
-

Bc 1: a chn DS v RW ln mc logic 1.

Bc 2: Xut a ch cn ghi ln RAM ra cc chn data ca DS12C887.

Bc 3: To cnh xung ti chn AS.

Bc 4: a d liu cn ghi ln RAM ra cc chn data ca DS12C887.

Bc 5: a chn RW v mc logic 0.

Bc 6: To cnh ln ti chn AS.

Do cc chn d liu ca DS12C887 c ni vi PORT D nn khi cn a gi tr a ch


hay d liu vo cc chn data ca DS12C887, ta ch cn xut cc gi tr a ch hoc d liu
ra PORT D ca vi iu khin.
Mun c mt gi tr t mt thanh ghi trong RAM ca DS12C887 ta tin hnh ln lt
cc bc nh sau:

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

22/42

Bc 1: a cc chn DS, RW v AS ln mc logic 1.

Bc 2: a a ch thanh ghi cn c vo cc chn d liu ca DS12C887.

Bc 3: To cnh xung ti chn AS

Bc 4: To cnh xung ti chn DS.

Bc 5: Lc ny d liu cn c xut hin ti cc chn data ca DS12C887. Ta ch


vic khi to li port thnh input v c d liu vo.

Bc 6: a chn AS v mc logic cao.

Chng trnh ng dng c vit nh sau:


Chng trnh 3:

;========================================================================
processor
16f877a
include
<p16f877a.inc>
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON &
_XT_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF
;========================================================================
;--------------------------------------------------------; Khai bao bien
;--------------------------------------------------------DATA_W
EQU
0x26
ADDRESS_W
EQU
0x27
DATA_R
EQU
0x28
ADDRESS_R
EQU
0x29
;------------------------------------------------------; Khai bao phan cung
;-----------------------------------------------------#define
DS
PORTE,
2
#define
RW
PORTE,
1
#define
AS
PORTE,
0
#define
DATAPORT
PORTD
#define
LEDPORT
PORTB
;========================================================================
;
CHUONG TRINH CHINH
;========================================================================
ORG
0x000
GOTO
start
start

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

23/42

;--------------------------------------------------; Khoi tao cac PORT I/O


;--------------------------------------------------BSF
STATUS,RP0
; select BANK1
MOVLW
0x06
; tat ca cac chan I/O deu la dang so
MOVWF
ADCON1
CLRF
TRISB
CLRF
TRISE
BCF
STATUS,RP0
; select BANK0
;-------------------------------------------------------------; Doc va ghi len RAM cua DS12C887
;------------------------------------------------------------MOVLW
b'10101010'
; du lieu can ghi vao thanh ghi
MOVWF
DATA_W
MOVLW
d'14'
; dia chi cua thanh ghi can ghi
MOVWF
ADDRESS_W
CALL
write_12C887
; chuong trinh con "write_12C887"
MOVLW
d'14'
; dia chi thanh ghi can doc
MOVWF
ADDRESS_R
CALL
read_12C887
; chuong trinh con "read_12C887"
MOVF
DATA_R,0
; xuat du lieu vua doc duoc ra LED
MOVWF
LEDPORT
;------------------------------------------------------------------; VONG LAP CHINH CUA CHUONG TRINH
;------------------------------------------------------------------main
GOTO
main
;========================================================================
;
Chuong trinh con
;========================================================================
;------------------------------------------------------------------------------------------------------; Chuong trinh con "write_12C887" dung de ghi du lieu len 12C887
; Du lieu can ghi chua trong thanh ghi DATA
; Dia chi can ghi du lieu vao chua trong thanh ghi ADDRESS
; Giao tiep theo chuan cua INTEL
;------------------------------------------------------------------------------------------------------write_12C887
BSF
STATUS,RP0
CLRF
TRISD
BCF
STATUS,RP0
MOVF
ADDRESS_W,0

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

24/42

MOVWF
DATAPORT
BSF
DS
BSF
RW
NOP
BSF
AS
NOP
BCF
AS
NOP
MOVF
DATA_W,0
MOVWF
DATAPORT
BCF
RW
NOP
BSF
AS
RETURN
;--------------------------------------------------------------------------------------------------; Chuong trinh con "read_12C887" dung de doc du lieu tu 12C887
; Dia chi can doc du lieu vao chua trong thanh ghi ADDRESS_R
; Du lieu sau khi doc chua trong thanh ghi DATA_R
; Giao tiep theo chuan cua INTEL
;--------------------------------------------------------------------------------------------------read_12C887
BSF
STATUS,RP0
CLRF
TRISD
BCF
STATUS,RP0
MOVF
ADDRESS_R,0
MOVWF
DATAPORT
BSF
DS
BSF
RW
NOP
BSF
AS
NOP
BCF
AS
NOP
BCF
DS
NOP
BSF
STATUS,RP0
MOVLW
0xFF
MOVWF
TRISD
BCF
STATUS,RP0
MOVF
DATAPORT,0
MOVWF
DATA_R

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

25/42

BSF
AS
RETURN
;========================================================================
END

Trong trng hp ny, do d liu cn truy xut khng nm trong cc byte cha gi tr
thi gian thc c thng xuyn cp nht nn c th c ghi mt cch t do. Trong
trng hp cn truy xut cc gi tr thi gian thc, ta phi kim tra bit UIP (bit 7 ca thanh
ghi REGISTER A) trc khi tin hnh thao tc truy xut.

4.

Xy dng chng trnh ng dng cho RTC

Cng vic cn li l tp hp tt c cc module trn hon thnh ng dng RTC. Lu


gii thut cho chng trnh chnh nh sau:
START

KHOI TAO

DATA
DS12C887
READY??
Y

CAP NHAT THOI


GIAN MOI

HIEN THI

TIMESET CO
DUOC
NHAN??

Y
CHUYEN QUA
CHE DO CHINH
GIO

Hnh 13: Lu gii thut chng trnh chnh.

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

26/42

Chng trnh hon chnh ca ng dng RTC c vit nh sau:


Chng trnh 4:
;========================================================================
processor
16f877a
include
<p16f877a.inc>
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON &
_XT_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF
;========================================================================
;-----------------------------; Khai bao bien
;-----------------------------count1
EQU
0x20
counta
EQU
0x21
countb
EQU
0x22
hc
EQU
0x23
hdv
EQU
0x24
duphong
EQU
0x25
DATA_W
EQU
0x26
ADDRESS_W
EQU
0x27
DATA_R
EQU
0x28
ADDRESS_R
EQU
0x29
gio
EQU
0x2A
phut
EQU
0x2B
giay
EQU
0x2C
ngay
EQU
0x2D
thang
EQU
0x2E
nam
EQU
0x2F
sendreg
EQU
0X32
count
EQU
0X33
hcgiay
EQU
0x34
hdvgiay
EQU
0x35
hcphut
EQU
0x36
hdvphut
EQU
0x37
hcgio
EQU
0x38
hdvgio
EQU
0x39
hcngay
EQU
0x40
hdvngay
EQU
0x41
hcthang
EQU
0x42
hdvthang
EQU
0x43
hcnam
EQU
0x44

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

27/42

hdvnam
EQU
0x45
;--------------------------------------------; Khai bao phan cung
;--------------------------------------------#define
data PORTA,0
#define
clock PORTA,2
#define
clear PORTA,1
#define
latch PORTA,3
#define
#define
#define
#define
#define

DS
RW
AS
DATAPORT
LEDPORT

PORTE,2
PORTE,1
PORTE,0
PORTB
PORTD

#define
timeset
PORTC,0
#define
decrease
PORTC,1
#define
increase
PORTC,2
;========================================================================
;
CHUONG TRINH CHINH
;========================================================================
ORG
0x000
CLRF
STATUS
MOVLW
0x00
MOVWF
PCLATH
GOTO
start
;----------------------------------------------------------------------------------------------------; Chuong trinh con chuyen doi tu ma thap phan sang ma LED 7 doan
; Ket qua sau khi chuyen doi chua trong thanh ghi W
;----------------------------------------------------------------------------------------------------table
ADDWF
PCL,1
RETLW
0xC0
RETLW
0xF9
RETLW
0xA4
RETLW
0xB0
RETLW
0x99
RETLW
0x92
RETLW
0x82
RETLW
0xF8
RETLW
0x80

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

28/42

RETLW
0x90
;--------------------------------------------------------------------------------------start
;--------------------------------------------------; Khoi tao cac PORT I/O
;--------------------------------------------------BSF
STATUS,RP0
; select BANK1
MOVLW
0x06
MOVWF
ADCON1
MOVLW
b'00100000'
MOVWF
TRISA
CLRF
TRISD
CLRF
TRISE
MOVLW
b'00000111'
MOVWF
TRISC
BCF
STATUS,RP0
; select BANK0
MOVLW
0x02
MOVWF
PORTA
; control word, clear <- 1
CLRF
PORTD
;----------------------------------------------------------------; Khoi tao 74HC595
;----------------------------------------------------------------BCF
clear
; clear shift register
NOP
BSF
clear
; clear tac dong canh xuong -\_
;------------------------------------------------------------------; Khoi tao ca che do cho DS12C887
;------------------------------------------------------------------MOVLW
b'00100000'
; dua gia tri vao thanh ghi "register A"
MOVWF
DATA_W
MOVLW
d'10'
MOVWF
ADDRESS_W
CALL
write_12C887
MOVLW
MOVWF
MOVLW
MOVWF
CALL

b'01010110'
DATA_W
d'11'
ADDRESS_W
write_12C887

; dua gia tri vao thanh ghi "register B"


; dang du lieu 24 gio
; dang du lieu Binary

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

29/42

;-------------------------------------------------------; can chu y doan chuong trinh duoi day


; do chua trang bi chua nang dieu chinh ngay thang nam
; nen tam them doan chuong trinh nay vao de dieu chinh
; khi cho dong ho hoat dong lau dai, can bo doan code nay di
; vi neu mach bi reset, doan chuong trinh nay duoc thuc thi
; khi do, thoi gian hien thi khong con dung nua
;---------------------------------------------------------hello
MOVLW
d'10'
; kiem tra dieu kien de thao tac len
; cac thanh ghi chua gia tri thoi gian thuc
MOVWF
ADDRESS_R
; thuc chat la kiem tra trng thai bit UIP
CALL
read_12C887
; xem lai chuc nang cua bit UIP
BTFSC
DATA_R,7
GOTO
hello
MOVLW
d'23'
; Khoi tao cac gia tri thoi gian cho DS12C887
MOVWF
DATA_W
; ngay 23
MOVLW
d'7'
MOVWF
ADDRESS_W
CALL
write_12C887
MOVLW
d'3'
; thang 3
MOVWF
DATA_W
MOVLW
d'8'
MOVWF
ADDRESS_W
CALL
write_12C887
;-------------------------------------------------------------------------------;
VONG LAP CHINH CUA CHUONG TRINH
;-------------------------------------------------------------------------------main
MOVLW
d'10'
MOVWF
ADDRESS_R
CALL
read_12C887
BTFSC
DATA_R,7
; Du lieu da san sang de truy xuat??
GOTO
quet
; neu chua, nhay den che do hien thi
CALL
update
; neu roi, cap nhat gia tri moi
quet
CALL
hienthigiay
BTFSS
timeset
CALL
time_set
CALL
hienthiphut

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

30/42

BTFSS
timeset
CALL
time_set
CALL
hienthigio
BTFSS
timeset
CALL
time_set
CALL
hienthingay
BTFSS
timeset
CALL
time_set
CALL
hienthithang
BTFSS
timeset
CALL
time_set
CALL
hienthinam
BTFSS
timeset
CALL
time_set
GOTO
main
;========================================================================
;
CHUONG TRINH CON
;========================================================================
;-------------------------------------------------------------------------------------------------------; Chuong trinh con "UPDATE"
; Dung de cap nhat cac gia tri thoi gian moi trong DS12C887
; Cac gia tri thoi gian duoc doc ra va duoc luu trong cac
;
thanh ghi tuong ung
;-------------------------------------------------------------------------------------------------------update
MOVLW
d'0'
; doc gia tri giay
MOVWF
ADDRESS_R
CALL
read_12C887
MOVF
DATA_R,0
MOVWF
giay
; luu vao thanh ghi giay
MOVLW
d'2'
MOVWF
ADDRESS_R
CALL
read_12C887
; doc gia tri phut
MOVF
DATA_R,0
MOVWF
phut
; luu vao thanh ghi phut
MOVLW
d'4'
MOVWF
ADDRESS_R
CALL
read_12C887
; doc gia tri gio
MOVF
DATA_R,0
MOVWF
gio
; luu vao thanh ghi gio
MOVLW
d'7'

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

31/42

MOVWF
ADDRESS_R
CALL
read_12C887
; doc gia tri ngay
MOVF
DATA_R,0
MOVWF
ngay
; luu vao thanh ghi ngay
MOVLW
d'8'
MOVWF
ADDRESS_R
CALL
read_12C887
; doc gia tri thang
MOVF
DATA_R,0
MOVWF
thang
; luu vao thanh ghi thang
MOVLW
d'9'
MOVWF
ADDRESS_R
CALL
read_12C887
; doc gia tri nam
MOVF
DATA_R,0
MOVWF
nam
; luu vao thanh ghi nam
RETURN
;--------------------------------------------------------------------------------; Chuong trinh con "hienthigiay"
; Dung de hien thi gia tri giay ra LED 7 doan
; Cac gia tri hang chuc va hang don vi giay duoc chua trong
; cac thanh ghi "hcgiay" va "hdvgiay "
;----------------------------------------------------------------------------------hienthigiay
MOVF
giay,0
CALL
tach
MOVF
hc,0
CALL
table
MOVWF
LEDPORT
MOVLW
b'11111101'
CALL
serout
MOVLW
b'11111111'
CALL
serout
CALL
out
CALL
delay_150us
MOVF
hdv,0
CALL
table
MOVWF
LEDPORT
MOVLW
b'11111110'
CALL
serout
MOVLW
b'11111111'
CALL
serout
CALL
out

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

32/42

CALL
delay_150us
RETURN
;-----------------------------------------------------------------------------------------; Chuong trinh con "hienthiphut"
; Dung de hien thi gia tri phut ra LED 7 doan
; Cac gia tri hang chuc va hang don vi phut duoc chua trong
;
cac thanh ghi "hcphut" va "hdvphut"
;-----------------------------------------------------------------------------------------hienthiphut
MOVF
phut,0
CALL
tach
MOVF
hc,0
CALL
table
MOVWF
LEDPORT
MOVLW
b'11110111'
CALL
serout
MOVLW
b'11111111'
CALL
serout
CALL
out
CALL
delay_150us
MOVF
hdv,0
CALL
table
MOVWF
LEDPORT
MOVLW
b'11111011'
CALL
serout
MOVLW
b'11111111'
CALL
serout
CALL
out
CALL
delay_150us
RETURN
;----------------------------------------------------------------------------------------------; Chuong trinh con "hienthigio"
; Dung de hien thi gia tri gio ra LED 7 doan
; Cac gia tri hang chuc va hang don vi gio duoc chua trong
;
cac thanh ghi "hcgio" va "hdvgio"
;----------------------------------------------------------------------------------------------hienthigio
MOVF
gio,0
CALL
tach
MOVF
hc,0
CALL
table

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

33/42

MOVWF
LEDPORT
MOVLW
b'11011111'
CALL
serout
MOVLW
b'11111111'
CALL
serout
CALL
out
CALL
delay_150us
MOVF
hdv,0
CALL
table
MOVWF
LEDPORT
MOVLW
b'11101111'
CALL
serout
MOVLW
b'11111111'
CALL
serout
CALL
out
CALL
delay_150us
RETURN
;--------------------------------------------------------------------------------------------; Chuong trinh con "hienthingay"
; Dung de hien thi gia tri gio ra LED 7 doan
; Cac gia tri hang chuc va hang don vi ngay duoc chua trong
; cac thanh ghi "hcngay" va "hdvngay"
;---------------------------------------------------------------------------------------------hienthingay
MOVF
ngay,0
CALL
tach
MOVF
hc,0
CALL
table
MOVWF
LEDPORT
MOVLW
b'11111111'
CALL
serout
MOVLW
b'11111110'
CALL
serout
CALL
out
CALL
delay_150us
MOVF
hdv,0
CALL
table
MOVWF
LEDPORT
MOVLW
b'11111111'
CALL
serout
MOVLW
b'11111101'

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

34/42

CALL
serout
CALL
out
CALL
delay_150us
RETURN
;----------------------------------------------------------------; Chuong trinh con "hienthithang"
; Dung de hien thi gia tri gio ra LED 7 doan
; Cac gia tri hang chuc va hang don vi thang duoc chua trong
; cac thanh ghi "hcthang" va "hdvthang"
;----------------------------------------------------------------hienthithang
MOVF
CALL
MOVF
CALL
MOVWF

thang,0
tach
hc,0
table
LEDPORT

MOVLW
b'11111111'
CALL
serout
MOVLW
b'11111011'
CALL
serout
CALL
out
CALL
delay_150us
MOVF
hdv,0
CALL
table
MOVWF
LEDPORT
MOVLW
b'11111111'
CALL
serout
MOVLW
b'11110111'
CALL
serout
CALL
out
CALL
delay_150us
RETURN
;-----------------------------------------------------------------------------------------; Chuong trinh con "hienthinam"
; Dung de hien thi gia tri nam ra LED 7 doan
; Cac gia tri hang chuc va hang don vi nam duoc chua trong
; Cac thanh ghi "hcnam" va "hdvnam"
; Gia tri "20" trong gia tri nam "20xx" duoc gui co dinh
;-------------------------------------------------------------------------------------------

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

35/42

hienthinam
MOVF
CALL
MOVLW
CALL
MOVWF
MOVLW
CALL
MOVLW
CALL
CALL
CALL
MOVLW
CALL
MOVWF
MOVLW
CALL
MOVLW
CALL
CALL
CALL
MOVF
CALL
MOVWF
MOVLW
CALL
MOVLW
CALL
CALL
CALL
MOVF
CALL
MOVWF
MOVLW
CALL
MOVLW
CALL
CALL
CALL
RETURN

nam,0
tach
d'2'
table
LEDPORT
b'11111111'
serout
b'11101111'
serout
out
delay_150us
d'0'
table
LEDPORT
b'11111111'
serout
b'11011111'
serout
out
delay_150us
hc,0
table
LEDPORT
b'11111111'
serout
b'10111111'
serout
out
delay_150us
hdv,0
table
LEDPORT
b'11111111'
serout
b'01111111'
serout
out
delay_150us

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

36/42

;-----------------------------------------------------------------------------------------; Chuong trinh con "write_12C887" dung de ghi du lieu len 12C887
; Du lieu can ghi chua trong thanh ghi DATA
; Dia chi can ghi du lieu vao chua trong thanh ghi ADDRESS
; Giao tiep theo chuan cua INTEL
;-----------------------------------------------------------------------------------------write_12C887
BSF
STATUS,RP0
CLRF
TRISB
BCF
STATUS,RP0
MOVF
ADDRESS_W,0
MOVWF
DATAPORT
BSF
DS
BSF
RW
NOP
BSF
AS
NOP
BCF
AS
NOP
MOVF
DATA_W,0
MOVWF
DATAPORT
BCF
RW
NOP
BSF
AS
RETURN
;---------------------------------------------------------------------------------------------------; Chuong trinh con "read_12C887" dung de doc du lieu tu 12C887
; Dia chi can doc du lieu vao chua trong thanh ghi ADDRESS_R
; Du lieu sau khi doc chua trong thanh ghi DATA_R
; Giao tiep theo chuan cua INTEL
;---------------------------------------------------------------------------------------------------read_12C887
BSF
STATUS,RP0
CLRF
TRISB
BCF
STATUS,RP0
MOVF
ADDRESS_R,0
MOVWF
DATAPORT
BSF
DS
BSF
RW
NOP
BSF
AS

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

37/42

NOP
BCF
AS
NOP
BCF
DS
NOP
BSF
STATUS,RP0
MOVLW
0xFF
MOVWF
TRISB
BCF
STATUS,RP0
MOVF
DATAPORT,0
MOVWF
DATA_R
BSF
AS
RETURN
;------------------------------------------------------------------------------------; Chuong trinh con dua du lieu can xuat vao 74HC595
;------------------------------------------------------------------------------------serout
MOVWF
sendreg
MOVLW
0x08
MOVWF
count
testbit
BCF
data
; default
BTFSC
sendreg,7
; sendreg,7 == 0 ??
BSF
data
; if not, set dulieu from 0 -> 1
BSF
clock
NOP
; generate 1 clock to shift 74HC595
BCF
clock
; register content
RLF
sendreg,0
; rotate sendreg register to the left
MOVWF
sendreg
DECFSZ
count,1
; decrement bit counter
GOTO
testbit
; if count != 0, continue from "testbit" label
RETURN
;--------------------------------------------------------------------------------------------------; Chuong trinh con tach chu so hang chuc va hang don vi cua thanh ghi
; Du lieu can tach duoc dua vao thanh ghi W
; Ket qua sau khi tach chua trong hai thanh ghi "hc" (chua hang chhuc)
; va "hdv" (chua hang don vi)
; Dang du lieu dua vao la dang HEX
;--------------------------------------------------------------------------------------------------tach
MOVWF
hdv

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

38/42

CLRF

hc

MOVLW
SUBWF
BTFSS
GOTO
MOVWF
INCF
GOTO

d'10'
hdv,0
STATUS,C
exit
hdv
hc,1
next

next

exit
RETURN
;-----------------------------------------------------------------------------------; Cac chuong trinh con delay
; Ho tro cho cac thao tac quet LED va chong doi phim nhan
; chu y thoi gian delay khong thuc su chinh xac
; do yeu cau quet LED, nen phai dieu chinh nhieu lan
; do do thi gian delay thuc te khac voi du kien khi viet chuong trinh
;-----------------------------------------------------------------------------------delay_25ms
MOVLW
d'250'
GOTO
delay
delay_150us
MOVLW
d'5'
delay
MOVWF
count1
d2
MOVLW
0xC7
MOVWF
counta
MOVLW
0x01
MOVWF
countb
delay_1
DECFSZ
counta,1
GOTO
$+2
DECFSZ
countb,1
GOTO
delay_1
DECFSZ
count1,1
GOTO
d2
RETURN
;------------------------------------------------------------------------------------------------

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

39/42

; Chuong trinh con "out"


; Dung de chot du lieu tu bo dem ra cac chan output ra 74HC595
;-----------------------------------------------------------------------------------------------out
BSF
latch
NOP
BCF
latch
RETURN
;----------------------------------------------------------------------------------; Chuong trinh con "timeset" dung de chinh gio
; Nut timeset duoc dung de lua chon doi tuong dieu chinh
; Nut inc dung de tang gia tri can dieu chinh
;-----------------------------------------------------------------------------------time_set
CALL
delay_25ms
CALL
delay_25ms
; nut "timeset" co thuc su duoc an??
BTFSC
timeset
RETURN
; neu khong, quay ve!
CALL
wait
; doi cho nut timeset nha ra
quet_gio
CALL
hienthigio
; bat dau chinh gio truoc
BTFSS
timeset
; neu timeset duoc nhan, tiep tuc
GOTO
exit_set_gio
; chuyen qua chinh phut
BTFSS
increase
; neu nut increase duoc an, tang gio
GOTO
set_gio1
; neu khong, tiep tuc cho cac nut bam
GOTO
quet_gio
set_gio1
CALL
delay_25ms
CALL
delay_25ms
BTFSC
increase
GOTO
quet_gio
INCF
gio,1
MOVLW
d'24'
XORWF
gio,0
BTFSC
STATUS,Z
CLRF
gio
GOTO
quet_gio
exit_set_gio
CALL
delay_25ms
CALL
delay_25ms
BTFSC
timeset

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

40/42

GOTO
CALL
quet_phut
CALL
BTFSS
GOTO
BTFSS
GOTO
GOTO
set_phut1
CALL
CALL
BTFSC
GOTO
INCF
MOVLW
XORWF
BTFSC
CLRF
GOTO
exit_set_phut
CALL
CALL
BTFSC
GOTO
CALL
quet_giay
CALL
BTFSS
GOTO
BTFSS
GOTO
GOTO
set_giay1
CALL
CALL
BTFSC
GOTO
INCF
MOVLW
XORWF

quet_gio
wait
hienthiphut
timeset
exit_set_phut
increase
set_phut1
quet_phut
delay_25ms
delay_25ms
increase
quet_phut
phut,1
d'60'
phut,0
STATUS,Z
phut
quet_phut
delay_25ms
delay_25ms
timeset
quet_phut
wait
hienthigiay
timeset
exit_set_giay
increase
set_giay1
quet_giay
delay_25ms
delay_25ms
increase
quet_giay
giay,1
d'60'
giay,0

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

41/42

BTFSC
CLRF
GOTO
exit_set_giay
CALL
CALL
BTFSC
GOTO
CALL
hey
MOVLW
MOVWF
CALL
BTFSC
GOTO

STATUS,Z
giay
quet_giay
delay_25ms
delay_25ms
timeset
quet_giay
wait
d'10'
ADDRESS_R
read_12C887
DATA_R,7
hey

; du lieu da san sang truy xuat??

; neu chua, tiep tuc cho

MOVF
giay,0
; neu roi, ghi cac gia tri cua dieu chinh
MOVWF
DATA_W
; vao trong cac thanh ghi thoi gian thuc
MOVLW
d'0'
; cua DS12C887
MOVWF
ADDRESS_W
CALL
write_12C887
MOVF
phut,0
MOVWF
DATA_W
MOVLW
d'2'
MOVWF
ADDRESS_W
CALL
write_12C887
MOVF
gio,0
MOVWF
DATA_W
MOVLW
d'4'
MOVWF
ADDRESS_W
CALL
write_12C887
RETURN
;--------------------------------------------------------------------------------------------; Chuong trinh con "wait" ho tro cho chuong trinh con "timeset"
; Dung de cho cho toi khi nut an duoc tha ra
;--------------------------------------------------------------------------------------------wait
CALL
delay_25ms
CALL
delay_25ms
BTFSS
timeset
GOTO
wait

Ngi bo co:

Nguyn Trung Chnh

Ti liu:

REP03.01

Ngy:

9/5/2006

Trang:

42/42

RETURN
;========================================================================
END

5.

Kt lun

RTC s dng IC chuyn dng cho ta chnh xc tuyt i v thi gian thc m khng
cn lo lng n vic c sai s nh khi thc hin RTC bng Timer. y l u im vt tri ca
RTC thi gian thc v da trn , ta c th pht trin rng ri hn cc ng dng cho php s
dng c trong thc t.
nh hng pht trin cho cc phin bn sau ny:
-

Thay i phng php hin th sao cho p v c m thut hn (s dng ma trn LED).

Da vo ngy thng nm dng lch tnh ton ngy thng nm m lch v hin th.

Hon chnh chc nng chnh gi v trang b thm chc nng hen gi.

H gi thnh sn phm (s dng vi iu khin PIC r hn).

Tuy rng LCD cho php cc ch hin th linh hot hn nhng khng c la chn l
gii php nng cp sn phm vi cc l do:
-

Gi thnh cao.

Tm nhn hn ch, khng ph hp vi nh hng sn phm l mt ng h in t


dng treo tng hoc bn.

Nhc im:
-

Gi thnh cao.

Kh nng hin th cn hn ch.

You might also like