Professional Documents
Culture Documents
1788 Pic RTC
1788 Pic RTC
Ti liu:
REP03.01
Ngy:
9/5/2006
Trang:
1/42
Report no 03.01
Gi n:
picvietnam@googlegroups.com
Ni dung:
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
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.
Hin th gi, pht, giy, ngy, thng, nm. Khng hin th th (qun mt tiu ).
Ngi bo co:
Ti liu:
REP03.01
Ngy:
9/5/2006
Trang:
2/42
2.
2.1.
Ngi bo co:
Ti liu:
REP03.01
Ngy:
9/5/2006
Trang:
3/42
Ngi bo co:
Ti liu:
REP03.01
Ngy:
9/5/2006
Trang:
4/42
2.2.
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
J7
1
2
3
4
5
6
J6
1
2
3
4
5
6
7
8
2.3.
S nguyn l Board nt bm
R28
R
SW3
ALARMSET
R29
R
J2
HI
SW2
TIMESET
HI
HI
HI
R27
R
1
2
3
4
5
6
SW4
INC
CON6
3.
Ngi bo co:
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:
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.
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:
Ti liu:
REP03.01
Ngy:
9/5/2006
Trang:
7/42
10 K
RBx
LO
Ngi bo co:
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
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
DP
6
VC C
8
DP
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:
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:
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:
Ti liu:
REP03.01
Ngy:
9/5/2006
Trang:
11/42
3.2.
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:
-
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
Ngi bo co:
Ti liu:
REP03.01
Ngy:
9/5/2006
Trang:
12/42
Ngi bo co:
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
Ngi bo co:
Ti liu:
REP03.01
Ngy:
9/5/2006
Trang:
14/42
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
Ngi bo co:
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:
Ti liu:
REP03.01
Ngy:
9/5/2006
Trang:
16/42
ln mc logic
Ngi bo co:
Ti liu:
REP03.01
Ngy:
9/5/2006
Trang:
17/42
3.3.
Cha cc gi tr thi gian giy, pht, gi, th, ngy, thng, nm vi thi gian hot
ng ng n nm 2100.
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.
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.
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
Ngi bo co:
Ti liu:
REP03.01
Ngy:
9/5/2006
Trang:
18/42
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).
Thanh ghi
SECONDS
a ch
00h
Chc nng
Cha gi tr giy ca thi gian thc
SECOND
ALARM
01h
MINUTES
02h
MINUTES
ALARM
HOUR
03h
04h
HOUR ALARM
DAY OF THE
WEEK
DAY OF THE
MONTH
MONTH
YEAR
REGISTER A
REGISTER B
REGISTER C
05h
06h
07h
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
Cn li
14h->4Dh
Ngi bo co:
Ti liu:
REP03.01
Ngy:
9/5/2006
Trang:
19/42
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
Ngi bo co:
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
Ngi bo co:
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
Bc 1: a chn DS v RW ln mc logic 1.
Bc 5: a chn RW v mc logic 0.
Ngi bo co:
Ti liu:
REP03.01
Ngy:
9/5/2006
Trang:
22/42
;========================================================================
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:
Ti liu:
REP03.01
Ngy:
9/5/2006
Trang:
23/42
Ngi bo co:
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:
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.
KHOI TAO
DATA
DS12C887
READY??
Y
HIEN THI
TIMESET CO
DUOC
NHAN??
Y
CHUYEN QUA
CHE DO CHINH
GIO
Ngi bo co:
Ti liu:
REP03.01
Ngy:
9/5/2006
Trang:
26/42
Ngi bo co:
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:
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
Ngi bo co:
Ti liu:
REP03.01
Ngy:
9/5/2006
Trang:
29/42
Ngi bo co:
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:
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:
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:
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:
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:
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:
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:
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:
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:
Ti liu:
REP03.01
Ngy:
9/5/2006
Trang:
39/42
Ngi bo co:
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:
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
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:
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.
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.
Nhc im:
-
Gi thnh cao.