You are on page 1of 41

LCH VN NIN DNG PIC 16F877A

NGUYN C TR-DV06

Li m u
Hu ht cc ng dng ca vi x l c mt tt c cc ngnh ngh. cc nc pht trin cng ngh x l bng my tnh rt thng dng. Vic xut hin pht trin ca cc b vi x l gip con ngui t c nhng thnh tu vt bc trong thi gian ngn. Tuy nh hng ca cc chip vi x l l v cng to ln i vi cuc sng con ngi v khng c ngi no c th tnh ton vt qua chip vi x l, nhng cc chip vi x l ny vn phi chu s iu khin ca con ngi. Vi ti: ng dng vi iu khin pic 16F877A lm lch vn nin cho thy cc vi iu khin c s dng rng ri, gn gi vi cuc sng hng ngy. Vic thc hin ti mang li nhiu kinh nghim trong vic tip cn vi mt vi iu khin mi, qua m ra nhiu thun li cho vic pht trin ti cng nh lm quen cc vi iu khin hin i hn.

TI:

S dng vi iu khin PIC 16F877A thc hin lch vn nin bao gm hin th gi; pht; giy; ngy; thng; nm. Hiu chnh thi gian thng qua nt bm bn ngoi.

tng thc hin:


Khi thi gian: S dng IC m thi gian thc DS12C887+ thc hin vic m
thi gian. V con RTC (real time counter) chuyn dng m thi gian thc vi sai s thp (iu kin l tng sai s 1 thng l 1 giy). Ngoi ra, RTC cn h tr vic nh thi m rng cc ng dng v sau. c bit DS12C887+ s dng thch anh ni t dao ng thng qua ngun pin c tch hp sn bn trong. iu ny gip gim sai st trong vic thit k mch thach anh
http://www.ebook.edu.vn 1

LCH VN NIN DNG PIC 16F877A

NGUYN C TR-DV06

v pin bn ngoi. Bn cnh vic giao tip song song vi VK to iu kin thun li hn vi giao tip ni tip.

Khi nt bm iu khin: bao gm 3 nt. Nt 1 (SET_TIME) cho php truy cp


vo phn hiu chnh thi gian. Nt 2 (INC): tng gi tr. Nt 3(DEC): gim gi tr. Thit k b nt bm l n gin v d s dng nht. Khi nt 1 bm, ng h ngng v truy cp vo phn hiu chnh v i lnh tip theo. Sau s da vo nt tng v gim x l. Bm bt 1 chuyn qua mc tip theo. Sau khi ht cc 6 mc, vic bm nt 1 s quay li vic chy ng h.

Khi hin th: s dng LCD 16x2. B LCD 16x2 l mt trong nhng cch hin th
thng dng bn cnh dng LED. u im vic dng LCD l rt d hin th v iu khin, bn cnh vic m rng ti cng n gin hn. Vi 2 dng ch, mi dng gm 16 k t l hin th.

B iu khin: vi iu khin PIC 16F877A. Cng vic ch yu ca PIC l iu khin


giao tip vi cc phn khc trong mch, cho nn vic s dng PIC 16F877A l hi ph phm v PIC c nhiu cng dng tt hn. Cc cng dng ny c th dng trong phn m rng li.

KHI HIN TH LCD 16x2

KHI IU KHIN PIC 16F877A KHI THI GIAN THC IC DS12C887 KHI HIU CHNH NT BM

B TNH TON THI CNG V THIT K


B.1) KT NI v THIT K B.1.1) PIC v LCD Giao tip gia PIC v LCD theo s tng qut l n cng. Tc d liu c truyn t PIC ra LCD. Ch ca LCD l ch truyn nhn 4 bit. Cng giao tip vi LCD l port C, vi
http://www.ebook.edu.vn 2

LCH VN NIN DNG PIC 16F877A

NGUYN C TR-DV06

bit 0-3 ca port C ni vi bit D4-D7 ca LCD (D0-D3 khng s dng ni t). Bit 6 ca port C ni chn EN; bit 7 ni RS. Do ta khng c nhu cu ly d liu t LCD nn chn W/R ca LCD coi nh ni t, xc nh ch ghi. Thit k ny l tit kim nht vi s lng bit dng ch l 6 bit giao tip. Mch hin th (LCD): Thit k mch hin th LCD bao gm 1 b LCD 16x2 dng hin th. Mt bin tr iu chnh tng phn cho LCD. V mt in tr h p cho LED n nn ca LCD. B.1.2) PIC v DS12C887 Giao tip gia PIC v DS12C887 l giao tip song song theo kiu bn song cng. Tc l ti mt thi im ch truyn theo mt chiu duy nht. Ta kt ni nh sau: portD ca PIC l port truyn d liu ni vi AD0-AD7 ca RTC. Port E ca PIC l port iu khin ni vi cc chn DS,RW,AS ca RTC. Mch thi gian thc (DS12C887): do tnh u vit hn cc IC thi gian thc khc l tch hp thch anh v ngun pin d tr sn trong IC nn mch thi gian thc rt n gin ch gm 1 IC v t 104 ni chn dng v m ca IC. B.1.3) PIC v nt nhn Giao tip ny thc hin qua port B ca pic vi nt TIME_SET l bit2; INC la bit 5; DEC l bit 4. L do cho vic sp xp ny l p ng vic chy dy trn mch thc t n gin trn mt lp mch. Mch hiu chnh (nt bm): Do PIC hot ng 20mAv 5V trn cc chn. Khi cha bm nt th ngun 5V c ni vi chn ca PIC. Nu trong trng hp no chn input ca PIC chuyn thnh output th yu cu l dng vo phi nh hn hoc bng 20mA. Nh vy trong thit k ta dng R c gi tr 4.7K. Khi I=5/4.7K < 20mA l t u cu thit k. B.1.4) Mch iu khin (PIC): S dng thch anh 4Mhz, ch XT. Theo datasheet ca vi iu khin PIC (trang 2-7) th gi tr t c chn l t 15-30pF. Trong mch ny ta chn gi tr ca t bng 22pF. Bn cnh ta c t 104 ni gia Vss v Vdd ca PIC gim tnh trng sc in.

http://www.ebook.edu.vn

LCH VN NIN DNG PIC 16F877A

NGUYN C TR-DV06

http://www.ebook.edu.vn

LCH VN NIN DNG PIC 16F877A

NGUYN C TR-DV06

B.2) CHNG TRNH IU KHIN B.2.1) Thut ton


B.2.1.1) CHUONG TRINH CHINH

Tat ngat ngoai RB0/INT

Khi ong cac port: D,E: output B: Input Goi: -INIT_LCD: khi tao LCD -INIT_DS12C887: khi tao

Goi: -UPDATE: D lieu vao VDK -INIT_TRANSFER

Bat bo ngat ngoai RB0/INT

TIME_SET Co nhan? Goi: -HIEUCHINHGIO: bat au nhap thi gian

Giai thch: Ta bat au khi tao cac port sau khi ra tat bo ngat, nham tranh tnh trang cha thiet lap xong a ngat da en s mat ieu khien he thong. Sau o goi cac trnh con khi ong cho LCD; RTC. Ta phai con chng trnh con UPDATE (Nvu: cap nhat d lieu t RTC vao o nh trong PIC); vi muc ch la thiet lap gia tr ban au cho PIC. Sau o ta goi INIT_TRANSFER (Nvu: xuat toan bo hien th cac gia tr ra LCD); vi muc ch la thiet lap hien th ban au cho LCD v lan sau khi hien th ra LCD, ta ch cap nhat cac thong so b thay oi. Sau khi a thiet lap, ta bat bo ngat e nhan xung clk e cap

http://www.ebook.edu.vn

LCH VN NIN DNG PIC 16F877A

NGUYN C TR-DV06

nhat thi gian t RTC. Sau o KT coi nut SET_TIME c nhan, neu co goi chng trnh SET_GIO; neu khong; quay ve va KT tiep.

B.2.1.2) CHUONG TRINH CON INIT_LCD Port C: output Phat lenh 0x01: CLR man hnh Kt thc

Phat lenh RESET 3 lan.( Moi lan Delay 160US e chac chan LCD nhan c lenh) Phat lenh 0x0C: bat hien th tat con tro

Phat lenh 0x02: thiet lap che o truyen 4bits

Phat lenh 0x28: thiet lap che o 2 dong 5x7

Giai thch: Port C la port giao tiep ra LCD (vi bit 3-0:truyen d lieu; bit 7: EN; bit 6: RS). Moi lan khi ong cho LCD can 15ms. Sau o ta phai RESET 3 lan am bao khong con du lieu trong RAM cua LCD (lan 1 delay 5ms; 2 lan sau delay 160ms). Cac gia tr delay tnh theo datasheet cua LCD. Roi cac lenh phat ve sau ch delay 160ms. Cac lenh khi ong c e cap trong bang tap lenh ieu hien LCD trang xx.

B.2.1.3) CHUONG TRINH CON INIT_DS12C887 Gii thch Truyen gia tr 00101111 vao thanh ghi A cua RTC; muc ch: x010xxxx : cho phep RTC hoat ong em theo TA noi, va xxxx1111: thiet lap che o tao xung CLK 2Hz chan SWQ vi muc ch xac nh thi iem cap nhat d lieu vao VK. Tuyen gia tr 01011010 vao thanh ghi B cua RTC; much ch: cho phep ngat nh thi; cho phep bat c ngat nh thi; bath che o phat xung SWQ; che o lu la BCD; em 24h/ngay.

http://www.ebook.edu.vn

LCH VN NIN DNG PIC 16F877A

NGUYN C TR-DV06

Lu vao ADD_W a ch thanh ghi A

Lu vao gia tr 28H vao thanh ghi A

Goi: CT WRITE_12C887

Lu vao ADD_W a ch thanh ghi B

Lu vao gia tr 5AH vao thanh ghi B

Goi: CT WRITE_12C887

Kt thc

B.2.1.4) CHUONG TRINH CON UPDATE(IN:RTC; OUT:RAM) Gia thch: Nguyn tc update n gin ch l truy cp vo cc a ch cc nh thi gian trong RTC v ly d liu ra (thong qua trnh con: READ_12C887), lu vo RAM VK. Cc gi tr ly ra gm: giy(0x00); pht(0x02); gi(0x04); ngy(0x07); thng(0x08); nm(0x09).

http://www.ebook.edu.vn

LCH VN NIN DNG PIC 16F877A Chuyn a ch cha bin giy vo ADD_R.

NGUYN C TR-DV06

Gi trnh con: READ_12C887

Lu gi tri DATA_R vo RAM_SEC

Chuyn a ch cha bin nm vo ADD_R.

Gi trnh con: READ_12C887

Lu gi tri DATA_R vo RAM_YEA

Kt thc

B.2.1.5) CHUONG TRINH CON INIT_TRANSFER (IN: RAM;OUT:LCD) Mc ch ca CT con ny l chuyn 1 ln u tt c cc gi tr ln LCD trnh tinh trng mi ln cp nht l phi chuyn ht li, iu ny s lm LCD nhp nhy khi cp nht. Do ch l thit lp ban u nn ch quy nnh v tr tng bin thi gian. Trnh con ny khng v s do thut ton n gin, c th hiu trc tip c. B.2.1.6) CHUONG TRINH CON WRITE_12C887 (IN:ADD_W , DATA_W; OUT:RTC) Mc ch ca trnh con ny l i d liu t RAM ni VK qua RAM ni ca RTC. Theo nghin cu qua datasheet ca RTC (theo tiu chun Intel, MOT=0) th c th tm tt cc bc nh sau: B1: a chn DS v RW ln mc cao. B2: Xut gi tr cn ghi ln RAM ca RTC ra cc chn ca DATAPORT (portD). B3: To cnh xung ti chn AS B4: a d liu cn ghi vo ia ch nh va nh ca RTC. B5: a chn RW v mc thp B6: To cnh ln ti chn AS.

http://www.ebook.edu.vn

LCH VN NIN DNG PIC 16F877A

NGUYN C TR-DV06

Trong ASM ca CT con ny c rt nhiu lnh NOP vi mc ch l to tr 1 chu k my m bo thi gian chuyn mc cho cc chn.
Chuyn a ch cn ghi ra DATAPORT Khi to port D l port xut

Chuyn a ch cn ghi ra DATAPORT

Thit lp DS, RW mc cao To xung ln chn AS Chuyn gi tr cn ghi ra DATAPORT

Thit lp RW mc thp Thit lp AS mc cao

Kt thc

B.2.1.7) CHUONG TRINH CON READ_RTC (IN: ADD_R;OUT:DATA_R) B1: a chn DS, RW, AS ln mc cao B2: a a ch ca thanh ghi cn c ca RTC vo DATA_PORT B3: To cnh xung ti chn AS B4: To cnh xung ti chn DS B5: Khi to DATA_PORT thnh port nhp ly d liu ra t RTC. B6: Da chn AS ln mc cao. Khi to port D l port xut

Chuyn a ch cn c ra DATAPORT

Kt thc

Thit lp DS, RW, AS mc cao To cnh xung ti chn AS To cnh xung ti chn DS

Thit lp AS mc cao

Khi to port D l port nhp

Ly d liu t DATA_PORT ra thanh ghi W http://www.ebook.edu.vn 9

LCH VN NIN DNG PIC 16F877A

NGUYN C TR-DV06

B.2.1.8) CHUONG TRINH CON TRANSFER_LCD Gii thch: Chuyn cc gi tr thi gian vo LCD. tng l ch c nhng phn no thay i th mi c cp nht vo LCD. Thc hin bng cch: kim tra cch gi tr thi gian, nu bng gi tr u tin (0: i vi giy, pht, gi; 1: i vi ngy, thng, nm) th s c qut n gi tr cao hn.

RAM_SEC =0?

Gi: GIAY_DOI

RAM_MIN =0?

Gi: PHUT_DOI

RAM_HOU =0?

Gi: GIO_DOI

RAM_DAT =1?

Gi: NGAY_DOI

RAM_MON =0?

Gi: THANG_DOI

RAM_YEA =0?

Gi: NAM_DOI

Kt thc

B.2.1.9) CHUONG TRINH CON WRITE_DATA Mc ch: ghi d liu thi gian trong PIC ra LCD. Chng trnh ny khc vi CT con Write_ins (ghi lnh iu khin LCD). Hai chng trng ny u c lu ging nhau. im khc nhau duy nht l: i vi write_data: ta khi ng thm chn RS (RS=1) ca LCD (nhn bit l byte l byte d liu), v ngc li i vi write_ins.
http://www.ebook.edu.vn 10

LCH VN NIN DNG PIC 16F877A

NGUYN C TR-DV06

Nguyn tc thc hin: B1: tch 1 byte 8 bit thnh 2 phn 4 bit (do nguyn tc kt ni l 4 bit). B2: Chuyn d liu (MSB) ra port_LCD. Mc ch chuyn ra trc to s n nh do d liu. B3: bt v tt EN (cho php gi bit ra LCD). i vi CT write_data th ta phi bt RS trc khi bt v tt EN, cn v CT write_ins th khng cn. B4: delay 1 khong 160 us, chc chn l LCD nhn c d liu. B5: tip tc thc hin tip v 4 bit thp v thc hin li bc 1. B.2.1.10) CHUONG TRINH NGAT Loi ngt: s dng ngt ngoi RB0/INT. Mc ch ca trnh ngt: nhn xung clock t RTC bo hiu thi gian cp nht d liu, do LCD khc vi LED ch l LCD ch cn truyn qua 1 ln th gi tr c gi; cn LED phi truyn pht lien tc(qut led). Cch thc hin: do RTC 12C887 ch c th to xung clk ra chn SQW vi tc ti thiu l 2Hz, tng ng 0.5s. Ta cn xung 1s nn dn n vic ng 1 bin tm. Vi gi tr mc nh ban u l 2, sau 2 ln ngt th s nhn 1 ln tc bng 1s. Sau khi pht hin 1s tri qua, ta cn kim tra RTC xem coi RTC sn sang cho vi truy xut d liu. Bit cho php truy xut l bit th 7 ca thanh ghi A ca RTC. Nu l 1: cho php; 0 l t chi. Sau khi c cho php, gi trnh con UPDATE cp nht v xut ra LCD lun. Sau thit lp li ch ngt. Lu : mi khi thc hin chng trnh ngt ta cn lu li tt c cc gi tr ca thanh ghi w; thanh ghi status v v tr con tr chy chng trnh (PClath) v FSR. B.2.1.11) CHUONG TRINH HIEU CHINH GIO Cch hiu chnh: vo phn hiu chnh th thng qua nt bm SET_TIME. Sau khi truy cp vo phn hiu chnh thi gian thi hiu chnh tun t theo gi, pht, nm, thng, ngy. Mi ln chuyn s thng qua vic bm nt SET_TIME. Theo nguyn tc tng gim tng gi tr thi gian thng qua 2 nt bm(TURN_UP v TURN_DOWN). Sau khi i ht 1 lt cc gi tr hiu chnh th bm li nt SET_TIME khi ng li chng trnh. i vi phn hiu chnh s lun xut hin con tr nhp nhy ngay hng n v ca mi gi tr ang c hiu chnh. Mc ch vic sp xp th t hiu chnh: v l do kim sot gi tr ti a ngy ca tng thng nn cn phi xc nh nm trc, chn maxngy bng 28 hay 29; sau vic hiu chnh thng s gip xc nh maxngay chnh xc, trnh tnh trng nhp l s ngy i vi mi thng, dn n RTC hot ng sai. Cch thc hin: - i vi phn hiu chnh gi da trn lu sau y. Gii thut ca phn hiu chnh pht, nm, thng cng tng t nh trn. im khc nhau duy nht l gi tr khi em so snh. i vi gi th so snh vi 23; pht th l: 59; nm th l: 99; thng th l: 12. Cng theo nguyn tc ta cng cn thay i gi tr gn cho tng bin thi gian.
http://www.ebook.edu.vn 11

LCH VN NIN DNG PIC 16F877A

NGUYN C TR-DV06

- i vi phn hiu chnh ngy th cng vic phc tp hn. Ta cn kim tra thng trc. Nu l thng 4, 6, 9, 11 th maxngay l 30. i vi thng 2 th phi xt thm nm . Nu nm chia ht cho 4 th maxngay la 29 ngc li l 28. n li l: 31 ngy. Nh vy cng vic cn lm duy nht l xc nh gi tr maxngay Chng trnh tim max ngay
i 50ms

Tr v

TIME_SET nhn? Tt b ngt i cho nt nh ra nh v tr gi Bt v nhp nhy con tr

Hiu chnh pht

TIME_SET nhn? S TURN_UP nhn? i 50ms S TURN_DOWN nhn? i 50ms

TURN_UP nhn? S

TURN_DOWN nhn? S RAM_HOU = 23? S S GIM RAM_HOU

XA RAM_HOU

RAM_HOU = 23?

RAM_HOU = 23

TNG RAM_HOU

Xut ra LCD http://www.ebook.edu.vn

12

LCH VN NIN DNG PIC 16F877A

NGUYN C TR-DV06

B.2.1.12) CHUONG TRINH CON TIM_MAXNGAY Cch thc hin: u tin xt gi tr ca thng. Nu thng l 4 6 9 11 th maxngay l 30. Nu thng l 2 th ta xt n nm. Phng php xt nm nhun nh sau. a nm v dng BIN, sau kim tra 2 trng s thp nht ca gi tr nm . Nu c 2 trng s u bng 0 th nm l nm nhun. V tt c d liu thi gian u lu di dng BCD nn, ta dung thut ton chuyn li bin nhng l ta tch BCD nn c thnh BCD khng nn. Ta ch cn cng thm MSB ln s 10 v LSB l ta c s BIN. MACH IN

http://www.ebook.edu.vn

13

LCH VN NIN DNG PIC 16F877A

NGUYN C TR-DV06

B.2.2) CHUONG TRINH ASM


; DO AN MON HOC 1 - DV06 ; FILE NAME: DAMH1SS.asm ; VERSION:1.1 ; DE TAI: DUNG PIC 16F887A TAO LICH VAN NIEN KY THUAT SO. XUAT RA LCD 16X2 ; NGUOI THUC HIEN: NGUYEN DUC TRI ; NGAY HOAN THANH: 30/10/2009 ;--------------------------------------------; GIAO VIEN HUONG DAN: NGUYEN QUYNH ANH ; NGAY KIEM TRA: //2009 ;------------------------------------------;VERSION 1.1: ; KHOI DEM THOI GIAN: DUNG DS12C887(RTC). ; KHOI XU LY: PIC 16F877A ; KHOI HIEN THI: LCD 16X2 ; KHOI DIEU KHIEN: BUTTON 3 NUT ;------------------------------------------------------------------------PROCESSOR 16f877a INCLUDE <p16f877a.inc> __CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_OFF & _XT_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF ;-------------------------------------------DATA_R EQU 0X20 ADD_R EQU 0X21 RAM_SEC EQU 0x22 RAM_MIN EQU 0x23 RAM_HOU EQU 0x24 RAM_DAY EQU 0x25 RAM_DAT EQU 0x26 RAM_MON EQU 0x27 RAM_YEA EQU 0x28 W_SAVE EQU 0x29 STATUS_SAVE EQU 0x2A PCLATH_SAVE EQU 0x2B FSR_SAVE EQU 0x2C DELAY_REG1 EQU 0X2D DELAY_REG2 EQU 0X2E DELAY_REG3 EQU 0X2F HCHUC EQU 0X30 HDV EQU 0X31 MSB EQU 0X32 LSB EQU 0X33 DATA_W EQU 0X34 ADD_W EQU 0X35 TAM EQU 0X36 MAXNGAY EQU 0X37

http://www.ebook.edu.vn

14

LCH VN NIN DNG PIC 16F877A

NGUYN C TR-DV06

COUNT EQU 0X38 ;----------------------------------------------#DEFINE DS PORTE,2 #DEFINE RW PORTE,1 #DEFINE AS PORTE,0 #DEFINE TIME_SET PORTB,2 #DEFINE TURN_UP PORTB,5 #DEFINE TURN_DOWN PORTB,4 #DEFINE DATAPORT PORTD #DEFINE PORT_LCD PORTC #DEFINE E PORTC,7 #DEFINE RS PORTC,6 ;----------------------------------------------ORG 0X0004 ; NGAT NGOAI THEO XUNG CLK CUA DS1307 DE XAC DINH THOI GIAN TRUY XUAT DU LIEU TRONG DS1307 GOTO NGAT NGAT ;-------------------------------; PHAN LUU LAI CAC GIA TRI VI KHI NGAT RAT CO THE CAC GIA TRI TREN SE BI THAY DOI MOVLW W_SAVE ; LUU W RA THANH GHI NGOAI MOVF STATUS,W ; DOI DO W VA STATUS MOVLW STATUS_SAVE ; LUU W LUC DO DANG CHUA GIA TRI STATUS MOVF PCLATH,W MOVLW PCLATH_SAVE ; LUU PCLATH RA NGOAI MOVF FSR,W ; DOI CHO MOVLW FSR_SAVE ; LUU FSR RA NGOAI ;--------------------------------; PHAN BAT DAU CHUONG TRINH NGAT BTFSS INTCON,1 ; BIT KIEM TRA COI CO XAY RA NGAT BR0 GOTO NEXT_INTERRUPT; NEU GIA TRI CUA HAM SS TREN TRA VE O (KO CO NGAT RB0) THI THUC HIEN NGAT TIEP THEO BANKSEL TAM INCF TAM MOVLW D'2' XORWF TAM,0 BTFSS STATUS,Z GOTO NEXT_INTERRUPT VONGLAP BCF STATUS,RP0 CLRF TAM MOVLW d'10' MOVWF ADD_R CALL READ_12C887 BTFSC DATA_R,7 ; Du lieu da san sang de truy xuat?? GOTO VONGLAP ; neu chua, Doi CALL UPDATE ; neu roi, cap nhat gia tri moi CALL TRANSFER_LCD

http://www.ebook.edu.vn

15

LCH VN NIN DNG PIC 16F877A


GOTO NEXT_INTERRUPT

NGUYN C TR-DV06

NEXT_INTERRUPT BCF INTCON,1 ; XOA CO NGAT RB0 DE KHOI DONG NGAT TIEP THEO ;--------------------------------;PHAN KHOI PHUC LAI CAC DU LIEU TRONG THANH GHI MOVF PCLATH_SAVE,W MOVLW PCLATH MOVF STATUS_SAVE,W MOVLW STATUS MOVF FSR_SAVE,W MOVLW FSR MOVF W_SAVE,W RETFIE ;---------------------------------------;THAN CHUONG TRINH CHINH ORG 0X00 GOTO START ORG 0X40 START BANKSEL INTCON CLRF INTCON ; XOA THANH DIEU KHIEN NGAT BANKSEL TAM CLRF TAM CALL DELAY_15MS BSF STATUS,RP0 ; select BANK1 MOVLW 0x06 ; tat ca cac chan I/O deu la dang so MOVWF ADCON1 CLRF TRISD CLRF TRISE CALL INIT_12C887 CALL INIT_LCD ;-----------------------------------------------CALL UPDATE CALL INIT_TRANSFER BCF STATUS,RP1 BSF STATUS,RP0 MOVLW B'11111111' ;KHOI TAO PORT B NHAP BANKSEL TRISB BANKSEL OPTION_REG BCF OPTION_REG,6 BANKSEL INTCON BSF INTCON,INTE ; BAT BIT DK NGAT NGOAI BSF INTCON,PEIE ; BAT BIT DK NGAT NGOAI BSF INTCON,GIE ; BAT BIT DK NGAT TOAN CUC BTFSS TIME_SET CALL HIEUCHINHGIO

http://www.ebook.edu.vn

16

LCH VN NIN DNG PIC 16F877A

NGUYN C TR-DV06

GOTO $-2 ;-------------------------------------------------------------; KHOI TAO CHO 12C887 ;------------------------------------------------------------INIT_12C887 BCF STATUS,RP0 MOVLW b'00101111' ; dua gia tri vao thanh ghi "register A" MOVWF DATA_W MOVLW d'10' MOVWF ADD_W CALL WRITE_12C887 MOVLW b'01011010' ; dua gia tri vao thanh ghi "register B" MOVWF DATA_W ; dang du lieu 24 gio MOVLW d'11' ; dang du lieu BCD MOVWF ADD_W CALL WRITE_12C887 RETLW 0X00 ;---------------------------------------------UPDATE ; CHUONG TRINH DUNG DE UPDATE DU LIEU VAO RAM PIC DE XUAT LCD. MOVLW MOVWF CALL MOVF MOVWF MOVLW MOVWF CALL MOVF MOVWF MOVLW MOVWF CALL MOVF MOVWF MOVLW MOVWF CALL MOVF MOVWF MOVLW MOVWF CALL D'00' ADD_R ; CHUYEN DIA CHI THANH GHI CHU GT GIAY READ_12C887 ; DOC GIA TRI GIAY DATA_R,0 ; CHUYEN VAO VAO RAM_SEC RAM_SEC D'02' ADD_R ; CHUYEN DIA CHI THANH GHI CHU GT GIAY READ_12C887 ; DOC GIA TRI GIAY DATA_R,0 ; CHUYEN VAO VAO MIN RAM_MIN D'04' ADD_R ; CHUYEN DIA CHI THANH GHI CHU GT GIAY READ_12C887 ; DOC GIA TRI GIAY DATA_R,0 ; CHUYEN VAO VAO HOU RAM_HOU D'06' ADD_R ; CHUYEN DIA CHI THANH GHI CHU GT GIAY READ_12C887 ; DOC GIA TRI GIAY DATA_R,0 ; CHUYEN VAO VAO THU RAM_DAY D'07' ADD_R ; CHUYEN DIA CHI THANH GHI CHU GT GIAY READ_12C887 ; DOC GIA TRI GIAY

http://www.ebook.edu.vn

17

LCH VN NIN DNG PIC 16F877A


MOVF MOVWF MOVLW MOVWF CALL MOVF MOVWF MOVLW MOVWF CALL MOVF MOVWF RETLW DATA_R,0 RAM_DAT ; CHUYEN VAO VAO NGAY

NGUYN C TR-DV06

D'08' ADD_R ; CHUYEN DIA CHI THANH GHI CHU GT GIAY READ_12C887 ; DOC GIA TRI GIAY DATA_R,0 ; CHUYEN VAO VAO THANG RAM_MON D'09' ADD_R ; CHUYEN DIA CHI THANH GHI CHU GT GIAY READ_12C887 ; DOC GIA TRI GIAY DATA_R,0 ; CHUYEN VAO VAO NAM RAM_YEA 0X00

;-----------------------------------------------------------------WRITE_12C887 ; GHI DU LIEU VAO RTC BSF STATUS,RP0 ; CHON PORTD LA PORTOUT CLRF TRISD BCF STATUS,RP0 MOVF ADD_W,0 ; CHUYEN DIA CHI RA TRUOC MOVWF DATAPORT BSF DS BSF RW NOP BSF AS NOP BCF AS NOP MOVF DATA_W,0 ; CHUYEN DATA RA SAU MOVWF DATAPORT BCF RW NOP BSF AS RETLW 0X00 ;--------------------------------------------------------------------------------------------------READ_12C887 ; DOC DU LIEU TU RTC BSF STATUS,RP0 ; CHON PORTD OUT CLRF TRISD BCF STATUS,RP0 MOVF ADD_R,0 ; CHUYEN DC DU LIEU CAN DOC MOVWF DATAPORT BSF DS BSF RW NOP BSF AS

http://www.ebook.edu.vn

18

LCH VN NIN DNG PIC 16F877A


NOP BCF NOP BCF NOP BSF MOVLW MOVWF BCF MOVF MOVWF BSF RETLW 0X00

NGUYN C TR-DV06

AS DS STATUS,RP0 0xFF ; THIET LAP PORTC IN TRISD STATUS,RP0 DATAPORT,0 ;CHUYEN DU LIEU RA SAU DATA_R AS

;---------------------------------------------TRANSFER_LCD ; CHUYEN CAC GIA TRI THOI GIAN VAO LCD ;Y TUONG LA CHI NHUNG GIA TRI NAO THAY DOI THI MOI DUOC CAP NHAT LEN LCD ;THUC HIEN: KT GIA TRI DAU CUA MOI MUC THOI GIAN, NEU GIA TRI THANH GHI THOI GIAN ;BANG VOI GIA TRI BAN DAU (O HAY 1) THI SE DUOC QUET TIEP DEN TH TIEP THEO ;-----------------------BCF STATUS,RP0 MOVLW D'0' XORWF RAM_SEC,0 BTFSS STATUS,Z GOTO GIAY_DOI1 ;NEU GIAY KHAC 0 THI CHI DOI GIAY BCF MOVLW XORWF BTFSS GOTO BCF MOVLW XORWF BTFSS GOTO BCF MOVLW XORWF BTFSS GOTO BCF MOVLW XORWF STATUS,RP0 D'0' RAM_MIN,0 STATUS,Z PHUT_DOI1 STATUS,RP0 D'0' RAM_HOU,0 STATUS,Z GIO_DOI1 STATUS,RP0 D'1' RAM_DAT,0 STATUS,Z NGAY_DOI1 STATUS,RP0 D'1' RAM_MON,0

;NEU GIAY = 0 THI PHUT DOI

http://www.ebook.edu.vn

19

LCH VN NIN DNG PIC 16F877A


BTFSS GOTO BCF MOVLW XORWF BTFSS GOTO GIAY_DOI1: CALL GOTO PHUT_DOI1: CALL GOTO GIO_DOI1: CALL GOTO NGAY_DOI1: CALL GOTO THANG_DOI1: CALL GOTO NAM_DOI1: CALL KETTHUC RETLW ;--------------------------------------NAM_DOI CALL MOVLW CALL MOVLW CALL MOVLW CALL MOVF CALL RETLW 0X00 ;----------------------------------THANG_DOI CALL 0X00 NAM_DOI THANG_DOI KETTHUC NGAY_DOI KETTHUC GIO_DOI KETTHUC PHUT_DOI KETTHUC GIAY_DOI KETTHUC STATUS,Z THANG_DOI1 STATUS,RP0 D'1' RAM_YEA,0 STATUS,Z NAM_DOI1

NGUYN C TR-DV06

THANG_DOI 0X2F WR_DATA 0X32 WR_DATA 0X30 WR_DATA RAM_YEA,0 MA_HOA_SO

; DAU GACH CHEO

; GUI GIA TRI YEAR RA LCD

NGAY_DOI

http://www.ebook.edu.vn

20

LCH VN NIN DNG PIC 16F877A

NGUYN C TR-DV06

MOVLW 0X2F ; DAU GACH CHEO CALL WR_DATA MOVF RAM_MON,0 ; GUI GIA TRI MONTH RA LCD CALL MA_HOA_SO RETLW 0X00 ;---------------------------------NGAY_DOI CALL GIO_DOI CALL DVI_NGAY MOVF RAM_DAT,0 ; GUI GIA TRI DATE RA LCD CALL MA_HOA_SO RETLW 0X00 ;--------------------------------------------------GIO_DOI CALL DVI_GIO MOVF RAM_HOU,0 ; GUI GIA TRI SECOND RA LCD CALL MA_HOA_SO MOVLW 0X3A ; DAU HAI CHAM CALL WR_DATA MOVF RAM_MIN,0 ; GUI GIA TRI MIN RA LCD CALL MA_HOA_SO MOVLW 0X3A ; DAU HAI CHAM CALL WR_DATA MOVF RAM_SEC,0 ; GUI GIA TRI HOUR RA LCD CALL MA_HOA_SO RETLW 0X00 ;-------------------------------------------------PHUT_DOI CALL DVI_PHUT MOVF RAM_MIN,0 ; GUI GIA TRI MIN RA LCD CALL MA_HOA_SO MOVLW 0X3A ; DAU HAI CHAM CALL WR_DATA MOVF RAM_SEC,0 ; GUI GIA TRI HOUR RA LCD CALL MA_HOA_SO RETLW 0X00 ;-------------------------------------------------GIAY_DOI ; CHUONG TRINH XUAT LCD CHI GIAY THAY DOI CALL DVI_GIAY MOVF RAM_SEC,0 ; GUI GIA TRI HOUR RA LCD CALL MA_HOA_SO RETLW 0X00 ;-----------------------------------------------INIT_TRANSFER MOVLW 0X80 ; EP CON TRO VE DAU DONG 1 CALL WR_INS MOVLW 0X14 ;DICH CON TRO QUA BEN PHAI

http://www.ebook.edu.vn

21

LCH VN NIN DNG PIC 16F877A


CALL MOVLW CALL MOVF CALL MOVLW CALL MOVF CALL MOVLW CALL MOVF CALL MOVLW CALL MOVLW CALL MOVF CALL MOVLW CALL MOVF CALL MOVLW CALL MOVLW CALL MOVLW CALL MOVF CALL RETLW 0X00

NGUYN C TR-DV06

WR_INS ;GUI LENH DI 0X14 ;DICH CON TRO QUA BEN PHAI WR_INS ;GUI LENH DI RAM_HOU,0 ; GUI GIA TRI SECOND RA LCD MA_HOA_SO 0X3A ; DAU HAI CHAM WR_DATA RAM_MIN,0 ; GUI GIA TRI MIN RA LCD MA_HOA_SO 0X3A ; DAU HAI CHAM WR_DATA RAM_SEC,0 ; GUI GIA TRI HOUR RA LCD MA_HOA_SO 0XC0 ; EM CON TRO VE DONG DONG THU 2 WR_INS ; GUI LENH DI 0X14 WR_INS RAM_DAT,0 ; GUI GIA TRI DATE RA LCD MA_HOA_SO 0X2F ; DAU GACH CHEO WR_DATA RAM_MON,0 ; GUI GIA TRI MONTH RA LCD MA_HOA_SO 0X2F ; DAU GACH CHEO WR_DATA 0X32 WR_DATA 0X30 WR_DATA RAM_YEA,0 ; GUI GIA TRI YEAR RA LCD MA_HOA_SO

;----------------------------------------------MA_HOA_SO ; IN:W OUT:LCD CALL TACHSO ; TACH THANH CHUC VA DON VI MOVF HCHUC,W ADDLW 0X30 CALL WR_DATA MOVF HDV,W ADDLW 0X30 CALL WR_DATA RETLW 0X00 ;------------------------------------------------INIT_LCD ;CHUONG TRINH KHOI DONG LCD BANKSEL TRISD ; KHOI TAO PORT C XUAT LCD MOVLW B'00000000'

http://www.ebook.edu.vn

22

LCH VN NIN DNG PIC 16F877A

NGUYN C TR-DV06

MOVWF TRISC BANKSEL PORT_LCD MOVLW 0X00 NOP NOP MOVWF PORT_LCD ;------------KHOI DONG LCD BSF E ;PHAT LENH RONG DAU TIEN BCF E MOVLW b'00000011' ;PHAT LENH RESET 3 LAN MOVWF PORT_LCD CALL DELAY_160US ;DELAY DE DOI CAC CHAN PROT D NHAN DU DU LIEU BSF E BCF E CALL DELAY_5MS ; DOI LCD NHAN XONG MOVLW b'00000011' MOVWF PORT_LCD CALL DELAY_160US BSF E BCF E CALL DELAY_160US ; DOI LCD NHAN XONG MOVLW b'00000011' MOVWF PORTB CALL DELAY_160US BSF E ; Send 4 bits BCF E ;---------------TRUYEN LENH KHOI DONG MOVLW b'00000010' ; DAT CHE DO TRUYEN 4 BIT MOVWF PORT_LCD CALL DELAY_160US BSF E BCF E CALL DELAY_160US MOVLW 0X28 ; THIET LAP GUI NHAN 4 BIT; 2DONG 5X7 CALL WR_INS MOVLW 0X0C ; BAT HIEN THI TAT CON TRO CALL WR_INS MOVLW 0X06 ;EP CON TRO VE DAU DONG 1 CALL WR_INS MOVLW 0X01 ; CLR MAN HINH CALL WR_INS RETLW 0X00 ;--------------------------------------WR_INS: ; CT CON XUAT LENH RA LCD IN:W CALL CHANGE_NIBLE ; CT CON DUNG TACH TRONG SO CAO RA PORTD MOVF MSB,W MOVWF PORT_LCD

http://www.ebook.edu.vn

23

LCH VN NIN DNG PIC 16F877A

NGUYN C TR-DV06

CALL DELAY_160US ; Send 4 bits MSB BSF E ; SET BIT EN CHO TRUYEN NHAN BCF E CALL DELAY_5MS MOVF LSB,W ; SEND 4 BIT LSB MOVWF PORT_LCD CALL DELAY_160US BSF E BCF E CALL DELAY_5MS RETLW 0X00 ;-----------------------------------WR_DATA: ; IN:W CALL CHANGE_NIBLE ; CT CON DUNG TACH TRONG SO CAO RA PORTD MOVF MSB,0 MOVWF PORT_LCD ; Send 4 bits MSB CALL DELAY_160US BSF RS ; BAT CO PHAT DU LIEU BSF E ; BAT CO EN BCF E CALL DELAY_160US MOVF LSB,0 MOVWF PORT_LCD ; Send 4 bits LSB CALL DELAY_160US BSF RS BSF E BCF E BCF RS CALL DELAY_160US RETLW 0X00 ;-----------------------------------------;CHUONG TRINH DUOI DAY DE DK THOI GIAN TRUOC MAT LA KHOI TAO PORTB HIEUCHINHGIO ;HIEU CHINH PHAN GIO banksel PORTB CALL DELAY_50MS BANKSEL PORTB BTFSC TIME_SET ; KIEM TRA CON NUT CON NHAN? RETURN BANKSEL INTCON BCF INTCON,INTE ; BAT BIT DK NGAT NGOAI CALL WAIT ; DOI CHO NUT NAT NHA RA HIENTHILCD1 ;DINH VI TRI LCD: CALL DVI_GIO MOVLW 0X14 ;DICH CON TRO QUA BEN PHAI CALL WR_INS ;GUI LENH DI MOVLW 0X0F ; BAT CHE DO NHAP NHAY CON TRO

http://www.ebook.edu.vn

24

LCH VN NIN DNG PIC 16F877A

NGUYN C TR-DV06

CALL WR_INS ;KIEM TRA COI SET_TIME CON DUOC BAM KHONG? ;NEU BAM THEM 1 LAN NUA=>HIEUCHINHPHUT ;NEU KHONG: CHUYEN DEN KT NUT TURN_UP LABEL1: BANKSEL PORTB BTFSS TIME_SET ; KIEM TRA CON NUT CON NHAN? GOTO HIEUCHINHPHUT BTFSC TURN_UP ; KIEM TRA CON NUT TANG CO NHAN GOTO CHINHXUONG1 CALL BTFSC GOTO BCF MOVF XORLW BTFSS GOTO CLRF GOTO CHUABANG23 DELAY_50MS TURN_UP ; KIEM TRA CON NUT CON NHAN? LABEL1 STATUS,RP0 RAM_HOU,0 H'23' STATUS,Z ;SO SANH HDV VOI 23 CHUABANG23 ; NEU CHUA BANG 23 RAM_HOU ; NEU BANG THI XOA VE 00 XONG1 ; KHOI NAY THUC HIEN CHUC NANG TANG SO MOVF RAM_HOU,0 CALL XULY_TANG MOVF HCHUC,0 MOVWF RAM_HOU ;XONG KHI TANG XONG CHUYEN RA LCD CALL INIT_TRANSFER GOTO HIENTHILCD1 ;TRO VE BAN DAU DE NHAN TIEP LENH TANG

XONG1

CHINHXUONG1: BTFSC GOTO CALL BTFSC GOTO TURN_DOWN LABEL1 DELAY_50MS TURN_DOWN LABEL1 ; KIEM TRA CON NUT TURN DOWN TANG CO NHAN

; KIEM TRA CON NUT CON NHAN?

GIOKHAC0

BCF STATUS,RP0 MOVF RAM_HOU,0 XORLW H'00' BTFSS STATUS,Z ;SO SANH HDV VOI 00 GOTO GIOKHAC0 ; NEU CHUA BANG 0 MOVLW 0X23 MOVWF RAM_HOU GOTO XONG1 ; KHOI NAY THUC HIEN CHUC NANG GIAM SO MOVF RAM_HOU,0

http://www.ebook.edu.vn

25

LCH VN NIN DNG PIC 16F877A


CALL XULY_GIAM MOVF HCHUC,0 MOVWF RAM_HOU GOTO XONG1 ;----------------------------------------------------------HIEUCHINHPHUT ; HIEU CHINH PHUT GIONG HIEU CHINH GIO banksel PORTB CALL DELAY_50MS BANKSEL PORTB BTFSC TIME_SET GOTO HIENTHILCD1 CALL WAIT HIENTHILCD2 ;DINH VI TRI LCD: CALL DVI_PHUT MOVLW 0X14 ;DICH CON TRO QUA BEN PHAI CALL WR_INS ;GUI LENH DI MOVLW 0X0F ; BAT CHE DO NHAP NHAY CON TRO CALL WR_INS ;KIEM TRA COI SET_TIME CON DUOC BAM KHONG? ;NEU BAM THEM 1 LAN NUA=>HIEUCHINHNAM ;NEU KHONG: CHUYEN DEN KT NUT TURN_UP LABEL2: BANKSEL PORTB BTFSS TIME_SET ; KIEM TRA CON NUT CON NHAN? GOTO HIEUCHINHNAM BTFSC TURN_UP ; KIEM TRA CON NUT CO NHAN GOTO CHINHXUONG2 CALL BTFSC GOTO BCF MOVF XORLW BTFSS GOTO CLRF GOTO CHUABANG59 MOVF RAM_MIN,0 CALL XULY_TANG MOVF HCHUC,0 MOVWF RAM_MIN XONG2 DELAY_50MS TURN_UP ; KIEM TRA CON NUT CON NHAN? LABEL2 STATUS,RP0 RAM_MIN,0 H'59' STATUS,Z ;SO SANH HDV VOI 59 CHUABANG59 ; NEU CHUA BANG 59 RAM_MIN XONG2

NGUYN C TR-DV06

http://www.ebook.edu.vn

26

LCH VN NIN DNG PIC 16F877A


CALL GOTO CHINHXUONG2: BTFSC GOTO CALL BTFSC GOTO TURN_DOWN LABEL2 DELAY_50MS TURN_DOWN LABEL2 INIT_TRANSFER HIENTHILCD2

NGUYN C TR-DV06

; KIEM TRA CON NUT TURN DOWN TANG CO NHAN

; KIEM TRA CON NUT CON NHAN?

BCF STATUS,RP0 MOVF RAM_MIN,0 XORLW H'00' BTFSS STATUS,Z ;SO SANH HDV VOI 00 GOTO PHUTKHAC0 ; NEU CHUA BANG 0 MOVLW 0X59 MOVWF RAM_MIN GOTO XONG2 PHUTKHAC0 ; KHOI NAY THUC HIEN CHUC NANG GIAM SO MOVF RAM_MIN,0 CALL XULY_GIAM MOVF HCHUC,0 MOVWF RAM_MIN GOTO XONG2 ;--------------------------------------------------HIEUCHINHNAM banksel PORTB CALL DELAY_50MS BANKSEL PORTB BTFSC TIME_SET ; KIEM TRA CON NUT CON NHAN? GOTO HIENTHILCD2 CALL WAIT HIENTHILCD3 ;DINH VI TRI LCD: CALL DVI_NAM MOVLW 0X14 ;DICH CON TRO QUA BEN PHAI CALL WR_INS ;GUI LENH DI MOVLW 0X0F ; BAT CHE DO NHAP NHAY CON TRO CALL WR_INS ;KIEM TRA COI SET_TIME CON DUOC BAM KHONG? ;NEU BAM THEM 1 LAN NUA=>HIEUCHINHTHANG ;NEU KHONG: CHUYEN DEN KT NUT TURN_UP LABEL3: BANKSEL PORTB BTFSS TIME_SET ; KIEM TRA CON NUT CON NHAN? GOTO HIEUCHINHTHANG

http://www.ebook.edu.vn

27

LCH VN NIN DNG PIC 16F877A


BTFSC GOTO CALL BTFSC GOTO BCF MOVF XORLW BTFSS GOTO CLRF INCF GOTO CHUABANG99 MOVF RAM_YEA,0 CALL XULY_TANG MOVF HCHUC,0 MOVWF RAM_YEA XONG3 CALL GOTO CHINHXUONG3: BTFSC GOTO CALL BTFSC GOTO TURN_DOWN LABEL3 DELAY_50MS TURN_DOWN LABEL3 INIT_TRANSFER HIENTHILCD3 TURN_UP CHINHXUONG3 DELAY_50MS TURN_UP LABEL3

NGUYN C TR-DV06

; KIEM TRA CON NUT TANG CON NHAN?

STATUS,RP0 RAM_YEA,0 H'99' STATUS,Z ;SO SANH HDV VOI 99 CHUABANG99 ; NEU CHUA BANG 99 RAM_YEA RAM_YEA,1 ; NEU BANG THI SET VE 1 XONG3

; KIEM TRA CON NUT TURN DOWN TANG CO NHAN

; KIEM TRA CON NUT CON NHAN?

NAMKHAC0

BCF STATUS,RP0 MOVF RAM_YEA,0 XORLW H'00' BTFSS STATUS,Z ;SO SANH HDV VOI 00 GOTO NAMKHAC0 ; NEU CHUA BANG 0 MOVLW 0X99 MOVWF RAM_YEA GOTO XONG3 ; KHOI NAY THUC HIEN CHUC NANG GIAM SO MOVF RAM_YEA,0 CALL XULY_GIAM MOVF HCHUC,0 MOVWF RAM_YEA GOTO XONG3

;-----------------------------------------------

http://www.ebook.edu.vn

28

LCH VN NIN DNG PIC 16F877A


HIEUCHINHTHANG banksel PORTB CALL DELAY_50MS BANKSEL PORTB BTFSC TIME_SET ; KIEM TRA CON NUT CON NHAN? GOTO HIENTHILCD3 CALL WAIT HIENTHILCD4 ;DINH VI TRI LCD: CALL DVI_THANG MOVLW 0X14 ;DICH CON TRO QUA BEN PHAI CALL WR_INS ;GUI LENH DI MOVLW 0X0F ; BAT CHE DO NHAP NHAY CON TRO CALL WR_INS ;KIEM TRA COI SET_TIME CON DUOC BAM KHONG? ;NEU BAM THEM 1 LAN NUA=>HIEUCHINHTHANG ;NEU KHONG: CHUYEN DEN KT NUT TURN_UP LABEL4: BANKSEL PORTB BTFSS TIME_SET ; KIEM TRA CON NUT CON NHAN? GOTO HIEUCHINHNGAY BTFSC TURN_UP GOTO CHINHXUONG4 CALL BTFSC GOTO BCF MOVF XORLW BTFSS GOTO CLRF INCF GOTO CHUABANG12 MOVF RAM_MON,0 CALL XULY_TANG MOVF HCHUC,0 MOVWF RAM_MON XONG4 CALL GOTO CHINHXUONG4: BTFSC TURN_DOWN INIT_TRANSFER HIENTHILCD4 DELAY_50MS TURN_UP ; KIEM TRA CON NUT CON NHAN? LABEL4 STATUS,RP0 RAM_MON,0 H'12' STATUS,Z ;SO SANH HDV VOI 12 CHUABANG12 ; NEU CHUA BANG 12 RAM_MON RAM_MON,1 ;SET VE THANG 1 XONG4

NGUYN C TR-DV06

; KIEM TRA CON NUT TURN DOWN TANG CO NHAN

http://www.ebook.edu.vn

29

LCH VN NIN DNG PIC 16F877A


GOTO CALL BTFSC GOTO LABEL4 DELAY_50MS TURN_DOWN LABEL4

NGUYN C TR-DV06

; KIEM TRA CON NUT CON NHAN?

THANGKHAC1

BCF STATUS,RP0 MOVF RAM_MON,0 XORLW H'01' BTFSS STATUS,Z ;SO SANH HDV VOI 01 GOTO THANGKHAC1 ; NEU CHUA BANG 1 MOVLW 0X12 MOVWF RAM_MON GOTO XONG4 ; KHOI NAY THUC HIEN CHUC NANG GIAM SO MOVF RAM_MON,0 CALL XULY_GIAM MOVF HCHUC,0 MOVWF RAM_MON GOTO XONG4

;-------------------------------------------HIEUCHINHNGAY banksel PORTB CALL DELAY_50MS BANKSEL PORTB BTFSC TIME_SET ; KIEM TRA CON NUT CON NHAN? GOTO HIENTHILCD4 CALL WAIT HIENTHILCD5 ;DINH VI TRI LCD: CALL DVI_NGAY MOVLW 0X14 ;DICH CON TRO QUA BEN PHAI CALL WR_INS ;GUI LENH DI MOVLW 0X0F ; BAT CHE DO NHAP NHAY CON TRO CALL WR_INS ;KIEM TRA COI SET_TIME CON DUOC BAM KHONG? ;NEU BAM THEM 1 LAN NUA=>HOANTHANH ;NEU KHONG: CHUYEN DEN KT NUT TURN_UP LABEL5: BANKSEL PORTB BTFSS TIME_SET ; KIEM TRA CON NUT CON NHAN? GOTO HOANTHANH BTFSC TURN_UP ; KIEM TRA CON NUT CON NHAN? GOTO CHINHXUONG5 CALL DELAY_50MS BTFSC TURN_UP ; KIEM TRA CON NUT CON NHAN? GOTO LABEL5

http://www.ebook.edu.vn

30

LCH VN NIN DNG PIC 16F877A


BCF XETNGAY STATUS,RP0

NGUYN C TR-DV06

CALL TIM_MAXNGAY MOVF RAM_DAT,0 SUBWF MAXNGAY,0 BTFSC STATUS,C ;KIEM TRA COI SAU KHI TRU THI AM HAY DUONG GOTO TTTT MOVF MAXNGAY,0 MOVWF RAM_DAT TTTT: MOVF RAM_DAT,0 XORWF MAXNGAY,0 BTFSS STATUS,Z GOTO CHUABANGMAXNGAY CLRF RAM_DAT INCF RAM_DAT,1 GOTO XONG5 CHUABANGMAXNGAY MOVF RAM_DAT,0 CALL XULY_TANG MOVF HCHUC,0 MOVWF RAM_DAT XONG5 CALL INIT_TRANSFER GOTO HIENTHILCD5 CHINHXUONG5: BTFSC GOTO CALL BTFSC GOTO TURN_DOWN LABEL5 DELAY_50MS TURN_DOWN LABEL5 ; KIEM TRA CON NUT TURN DOWN TANG CO NHAN

;SO SANH HDV VOI 23 ; NEU CHUA BANG 23

; KIEM TRA CON NUT CON NHAN?

NGAYKHAC1

BCF STATUS,RP0 MOVF RAM_DAT,0 XORLW H'01' BTFSS STATUS,Z ;SO SANH HDV VOI 01 GOTO NGAYKHAC1 ; NEU CHUA BANG 1 CALL TIM_MAXNGAY MOVF MAXNGAY,0 MOVWF RAM_DAT GOTO XONG5 ; KHOI NAY THUC HIEN CHUC NANG GIAM SO MOVF RAM_DAT,0 CALL XULY_GIAM MOVF HCHUC,0

http://www.ebook.edu.vn

31

LCH VN NIN DNG PIC 16F877A


MOVWF RAM_DAT GOTO XONG5

NGUYN C TR-DV06

HOANTHANH banksel PORTB CALL DELAY_50MS BANKSEL PORTB BTFSC TIME_SET ; KIEM TRA CON NUT CON NHAN? GOTO HIENTHILCD4 CALL WAIT ; CACH HIEU CHINH KHI GIA TRI NGAY LON HON MAX NGAY CHO PHEP ; KHI TRUONG HOP DO XAY RA TA KIEM TRA BANG CACH LAY GIA TRI MAXNGAY-NGAY ; NEU C=0 TUC LA MAXNGAY>NGAT ; NGUOC LAI THI TIEP TUC BANKSEL PORTB CALL NAPDULIEU RETLW 0X00 ;--------------------------------NAPDULIEU ;CT NAY SE NAP DU LIEU VUA CAP NHAT VAO RTC MOVLW d'10' MOVWF ADD_R CALL READ_12C887 BTFSC DATA_R,7 GOTO NAPDULIEU MOVLW 0X00 ; giay MOVWF DATA_W MOVLW d'0' MOVWF ADD_W CALL WRITE_12C887 MOVF RAM_MIN,0 ; phut MOVWF DATA_W MOVLW d'2' MOVWF ADD_W CALL WRITE_12C887 MOVF RAM_HOU,0 ;gio MOVWF DATA_W MOVLW d'04' MOVWF ADD_W CALL WRITE_12C887 MOVF RAM_DAT,0 ;ngay MOVWF DATA_W MOVLW d'7' MOVWF ADD_W CALL WRITE_12C887 MOVF RAM_MON,0 ;thang

http://www.ebook.edu.vn

32

LCH VN NIN DNG PIC 16F877A


MOVWF DATA_W MOVLW d'8' MOVWF ADD_W CALL WRITE_12C887 MOVF RAM_YEA,0 ;nam MOVWF DATA_W MOVLW d'9' MOVWF ADD_W CALL WRITE_12C887 MOVLW 0X0C ;TAT CON TRO BAT HIEN THI CALL WR_INS BSF INTCON,INTE ; BAT BIT DK NGAT NGOAI RETLW 0X00 ;------------------------------------WAIT ;CHUONG TRINH DOI CHO DEN KHI NUT BAM NHA RA CALL DELAY_50MS BTFSS TIME_SET GOTO WAIT RETLW 0X00 ;-----------------------------------------DELAY_50MS MOVLW d'50' MOVWF DELAY_REG1 T1 MOVLW 0XC7 MOVWF DELAY_REG2 MOVLW 0X01 MOVWF DELAY_REG3 TT1 DECFSZ DELAY_REG2,1 GOTO $+2 DECFSZ DELAY_REG3,1 GOTO TT1 DECFSZ DELAY_REG1,1 GOTO T1 RETLW 0X00 ;--------------------------------DELAY_15MS MOVLW d'15' MOVWF DELAY_REG1 L1 MOVLW 0XC7 MOVWF DELAY_REG2 MOVLW 0X01 MOVWF DELAY_REG3 LL1 DECFSZ DELAY_REG2,1

NGUYN C TR-DV06

http://www.ebook.edu.vn

33

LCH VN NIN DNG PIC 16F877A


GOTO $+2 DECFSZ DELAY_REG3,1 GOTO LL1 DECFSZ DELAY_REG1,1 GOTO L1 RETLW 0X00 ;--------------DELAY_5MS MOVLW d'3' MOVWF DELAY_REG1 Q1 MOVLW 0XC7 MOVWF DELAY_REG2 MOVLW 0X01 MOVWF DELAY_REG3 QQ1 DECFSZ DELAY_REG2,1 GOTO $+2 DECFSZ DELAY_REG3,1 GOTO QQ1 DECFSZ DELAY_REG1,1 GOTO Q1 RETLW 0X00 ;---------------

NGUYN C TR-DV06

DELAY_160US MOVLW 0X20 MOVWF DELAY_REG2 MOVLW 0X01 MOVWF DELAY_REG3 WW1 DECFSZ DELAY_REG2,1 GOTO $+2 DECFSZ DELAY_REG3,1 GOTO WW1 RETLW 0X00 ;--------------------------------------------XULY_TANG ; CHUONG TRINH CON HIEU CHINH THOI GIAN (TRONG TRUONG HOP BINH THUONG)IN: W; OUT:W CALL TACHSO ; TACH 1 DU LIEU THANH HANG CHUC VA DON VI MOVF HDV,0 XORLW D'9' BTFSS STATUS,Z ;SO SANH HDV VOI 9 GOTO CHUABANG9 ; NEU CHUA BANG 9 CLRF HDV INCF HCHUC,1 CALL RAPSO

http://www.ebook.edu.vn

34

LCH VN NIN DNG PIC 16F877A

NGUYN C TR-DV06

GOTO DATANGXONG CHUABANG9 INCF HDV,1 CALL RAPSO DATANGXONG RETLW 0X00 ;-----------------------------------------------XULY_GIAM ; CHUONG TRINH CON HIEU CHINH THOI GIAN GIAM(TRONG TRUONG HOP BINH THUONG)IN: W; OUT:W CALL TACHSO ; TACH 1 DU LIEU THANH HANG CHUC VA DON VI MOVF HDV,0 XORLW D'0' BTFSS STATUS,Z ;SO SANH HDV VOI 0 GOTO CHUABANG0 ; NEU CHUA BANG 0 MOVLW D'9' MOVWF HDV DECF HCHUC,1 CALL RAPSO GOTO DAGIAMXONG CHUABANG0 DECF HDV,1 CALL RAPSO DAGIAMXONG RETLW 0X00 ;------------------RAPSO ; RAP HANG CHUC VA HANG DV VAO 1 BYTE; IN: HCHUC&DV; OUT W SWAPF HCHUC,0 ADDWF HDV,0 MOVWF HCHUC RETLW 0X00 ;-----------------------------------------------TACHSO ;TACH HANG CHUC VOI DON VI IN:W OUT:HCHUC, HDV MOVWF HCHUC ANDLW 0X0F MOVWF HDV SWAPF HCHUC,0 ANDLW 0X0F MOVWF HCHUC RETLW 0X00 ;-----------------------------------------------CHANGE_NIBLE ;TACH TRONG SO CAO VA THAP MOVWF MSB ANDLW 0X0F MOVWF LSB SWAPF MSB,0 ANDLW 0X0F MOVWF MSB

http://www.ebook.edu.vn

35

LCH VN NIN DNG PIC 16F877A


RETLW 0X00 ;------------------------------------------------DVI_GIAY MOVLW 0X80 ; EP CON TRO VE DAU DONG 1 CALL WR_INS MOVLW 0X14 ;DICH CON TRO QUA BEN PHAI CALL WR_INS ;GUI LENH DI MOVLW 0X14 ;DICH CON TRO QUA BEN PHAI CALL WR_INS ;GUI LENH DI MOVLW 0X14 ;DICH CON TRO QUA BEN PHAI CALL WR_INS ;GUI LENH DI MOVLW 0X14 ;DICH CON TRO QUA BEN PHAI CALL WR_INS ;GUI LENH DI MOVLW 0X14 ;DICH CON TRO QUA BEN PHAI CALL WR_INS ;GUI LENH DI MOVLW 0X14 ;DICH CON TRO QUA BEN PHAI CALL WR_INS ;GUI LENH DI MOVLW 0X14 ;DICH CON TRO QUA BEN PHAI CALL WR_INS ;GUI LENH DI MOVLW 0X14 ;DICH CON TRO QUA BEN PHAI CALL WR_INS ;GUI LENH DI RETLW 0X00 ;--------------------------------------------------------DVI_PHUT MOVLW 0X80 ; EP CON TRO VE DAU DONG 1 CALL WR_INS MOVLW 0X14 ;DICH CON TRO QUA BEN PHAI CALL WR_INS ;GUI LENH DI MOVLW 0X14 ;DICH CON TRO QUA BEN PHAI CALL WR_INS ;GUI LENH DI MOVLW 0X14 ;DICH CON TRO QUA BEN PHAI CALL WR_INS ;GUI LENH DI MOVLW 0X14 ;DICH CON TRO QUA BEN PHAI CALL WR_INS ;GUI LENH DI MOVLW 0X14 ;DICH CON TRO QUA BEN PHAI CALL WR_INS ;GUI LENH DI RETLW 0X00 ;---------------------------------------------------------DVI_GIO MOVLW 0X80 ; EP CON TRO VE DAU DONG 1 CALL WR_INS MOVLW 0X14 ;DICH CON TRO QUA BEN PHAI CALL WR_INS ;GUI LENH DI MOVLW 0X14 ;DICH CON TRO QUA BEN PHAI CALL WR_INS ;GUI LENH DI RETLW 0X00 ;-------------------------------------------------------------------

NGUYN C TR-DV06

http://www.ebook.edu.vn

36

LCH VN NIN DNG PIC 16F877A


DVI_NGAY MOVLW 0XC0 ; EP CON TRO VE DAU DONG 2 CALL WR_INS MOVLW 0X14 ;DICH CON TRO QUA BEN PHAI CALL WR_INS ;GUI LENH DI RETLW 0X00 ;--------------------------------------------------------------DVI_THANG MOVLW 0XC0 ; EP CON TRO VE DAU DONG 2 CALL WR_INS MOVLW 0X14 ;DICH CON TRO QUA BEN PHAI CALL WR_INS ;GUI LENH DI MOVLW 0X14 CALL WR_INS MOVLW 0X14 CALL WR_INS MOVLW 0X14 ;DICH CON TRO QUA BEN PHAI CALL WR_INS ;GUI LENH DI RETLW 0X00 ;----------------------------------------------------------------DVI_NAM MOVLW 0XC0 ; EP CON TRO VE DAU DONG 2 CALL WR_INS MOVLW 0X14 ;DICH CON TRO QUA BEN PHAI CALL WR_INS ;GUI LENH DI MOVLW 0X14 CALL WR_INS MOVLW 0X14 CALL WR_INS MOVLW 0X14 ;DICH CON TRO QUA BEN PHAI CALL WR_INS ;GUI LENH DI MOVLW 0X14 CALL WR_INS MOVLW 0X14 ;DICH CON TRO QUA BEN PHAI CALL WR_INS ;GUI LENH DI MOVLW 0X14 CALL WR_INS MOVLW 0X14 CALL WR_INS MOVLW 0X14 CALL WR_INS RETLW 0X00 ;----------------------------------------------------;QUA TRINH XET NGAY SE PHU THUOC VAO THANG ; KIEM TRA THANG: ; NEU BANG 4 6 9 11 THI MAXNGAY=30 ; NEU BANG 2 THI XET NAM

NGUYN C TR-DV06

http://www.ebook.edu.vn

37

LCH VN NIN DNG PIC 16F877A


; NEU NAM THI XET NAM CO NHUAN KHONG? ; NAM NHUAN NAM= XXXX...00 MAXNGAY=29 ; NGUOC LAI MAXNGAY=28 ; CON LAI MAXTHANG 31 ;-------------------------------TIM_MAXNGAY MOVLW H'4' XORWF RAM_MON,0 BTFSS STATUS,Z GOTO N1 GOTO XET_30 N1: MOVLW H'6' XORWF RAM_MON,0 BTFSS STATUS,Z GOTO N2 GOTO XET_30 N2: MOVLW H'9' XORWF RAM_MON,0 BTFSS STATUS,Z GOTO N3 GOTO XET_30 N3: MOVLW H'11' XORWF RAM_MON,0 BTFSS STATUS,Z GOTO N4 GOTO XET_30 N4: MOVLW H'2' ; KT THANG 2 NEU LA THANG 2 CALL XET RIENG XORWF RAM_MON,0 BTFSS STATUS,Z GOTO XET_31 ;TH CON LAI XET 31 NGAY GOTO XET_THANG2 XET_30 MOVLW H'30' MOVWF MAXNGAY GOTO TIMXONG XET_31 MOVLW H'31' MOVWF MAXNGAY GOTO TIMXONG XET_THANG2 ;KIEM TRA NAM NHUAN ;------------------------------------------------------;B1:TACH BCD CUA RAM_YEA THANH BIN IN:RAM_YEA; OUT:LSB BANKSEL COUNT CLRF COUNT ;KHOI TAO COUNT=0 MOVF RAM_YEA,0 CALL CHANGE_NIBLE

NGUYN C TR-DV06

http://www.ebook.edu.vn

38

LCH VN NIN DNG PIC 16F877A


CONGTIEP MOVF XORWF BTFSS GOTO GOTO CONGTHEM10 INCF COUNT MOVLW D'10' ADDWF LSB,1 GOTO CONGTIEP MSB,0 COUNT,0 STATUS,Z CONGTHEM10 CONGXONG ;CHUYEN CHU SO HANG CHUC VAO W

NGUYN C TR-DV06

;SO SANH SO COUNT VA HANG CHUC ; NEU CHUA BANG THI CONG THEM VAO HANG DV

CONGXONG ;--------------------------------------;B2: KIEM TRA CO PHAI NAM NHUAN KHONG? ;NEU NAM NHUAN THI BIT 0 VA 1 PHAI BANG 0 BTFSC LSB,0 ;KT BIT 0 GOTO KONHUAN ; NEU BANG 1 TUC LA KO NHUAN BTFSC LSB,1 ;NEU BANG 0 KT BIT 1 GOTO KONHUAN ;NEU BANG 1 TUC LA KO NHUAN MOVLW H'29' ;NEU BANG 0 => NAM NHUAN MOVWF MAXNGAY GOTO TIMXONG KONHUAN MOVLW H'28' ;NEU BANG 0 => NAM NHUAN MOVWF MAXNGAY TIMXONG RETLW 0X00 end

http://www.ebook.edu.vn

39

LCH VN NIN DNG PIC 16F877A

NGUYN C TR-DV06

C) NH GI THC HIN TI
C.1) T NH GI VIC THC HIN N Hn ch: Thut ton cn cha thc s tinh gn, do cch suy ngh cha tht khi qut nn lm chng trnh di. Thiu kinh nghim trong vic chn linh kin lp trnh chy mch thc t, dn n vic tham kho rt nhiu nhng kh khn trong vic xc nh ngun ng. Mch thc t vn cn cha that gn gng do cha bit cch xc nh kch thc chun trong Protues; thiu tch hp phn chnh lu ngun. T nhn xt: Kt qu kh kh quan vi vic mch thc t chy ng; bn cnh vn cn mt s vn trong vic lp trnh. C hng pht trin ti v sau da trn nhng phn t c. Vn thiu kinh nghim trong vic lm mch in. C.2) NH GI CA GIO VIN ...................................................................................................................................................... ...................................................................................................................................................... ...................................................................................................................................................... ...................................................................................................................................................... ...................................................................................................................................................... ...................................................................................................................................................... ...................................................................................................................................................... ...................................................................................................................................................... ...................................................................................................................................................... ...................................................................................................................................................... ...................................................................................................................................................... ...................................................................................................................................................... ...................................................................................................................................................... ...................................................................................................................................................... ......................................................................................................................................................

TI LIU THAM KHO:


Ti liu vi iu khin PIC 16F877A ca lp TD06. Datasheet ca PIC 16F877A. www.mircochip.com Datasheet DS12C887+ www.datasheets.maxim-ic.com Datasheet LCD 16x2, bn hng dn: Nguyn Huy Thanh CT4K47 HBKHN Cc bi tutorial v VK PIC ca Nguyn Ch Linh; Nguyn Quang Nam; Nguyn Chung Chnh l thnh vin ca din dn picvietnam. www.picvietnam.com Cc bi vit thc mc, hng dn trong din dn www.dientuvietnam.com

http://www.ebook.edu.vn

40

LCH VN NIN DNG PIC 16F877A

NGUYN C TR-DV06

Li cm n:
thc hin ti ny cn s gip rt nhiu t gio vin hng dn, cc ging vin, v cc sinh vin lp DV06. Bn cnh nhng thnh vin trn cc din dn cng ng gp rt nhiu trong qu trnh thc hin ti. Mong rng s lun c s h tr t nhiu pha nh khi thc hin ti ny ti c th m rng thm s hiu bit ca mnh. Chn thnh cm n tt c nhng ngi gip ti hon thnh n mn hc 1.

http://www.ebook.edu.vn

41

You might also like