You are on page 1of 34

Bo co n 1

Trang 1

TN TI: NG H THI GIAN THC


HIN TH LCD C HN GI

1. Yu cu:
- S dng vi iu khin AT89C52
- C hn gi
- Thi gian vn ng khi khng c ngun trc tip
2. Ni dung cn hon thnh:
- Tnh ton s dng linh kin
- Lm mch thc t
- m bo yu cu k thut, chnh xc v n nh
- Bi bo co
3. Sn phm:
- Mch ng h thi gian thc chy tt
- Bi tiu lun bo co

Gio Vin Hng Dn: Thy Nguyn Ng Lm


Sinh Vin Thc Hin: L L Tng

NG H THI GIAN THC HIN TH LCD

Bo co n 1

Trang 2

NHN XT CA GIO VIN HNG DN

______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
Gio Vin Hng Dn

Nguyn Ng Lm
NG H THI GIAN THC HIN TH LCD

Bo co n 1

Trang 3

NHN XT CA GIO VIN PHN BIN

______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
Gio Vin Phn Bin

NG H THI GIAN THC HIN TH LCD

Bo co n 1

Trang 4

MC LC
TN TI ......................................................................................................... 1
NHN XT CA GIO VIN HNG DN ................................................ 2
NHN XT CA GIO VIN PHN BIN ................................................... 3
MC LC ............................................................................................................. 4
LI NI U ...................................................................................................... 5
CHNG I: GII THIU TI ................................................................... 6
Phn 1.1: Gii Thiu ................................................................................... 6
Phn 1.2: S Khi .................................................................................. 6
Phn 1.3: Chc Nng Cc Khi ................................................................. 6
CHNG II: GII THIU PHN CNG ...................................................... 7
Phn 2.1: S Mch ................................................................................ 7
Phn 2.2: Gii Thiu Linh Kin Trong Mch .......................................... 8
Mc 2.2.1: Gii Thiu IC AT89C52 .................................................. 8
Mc 2.2.2: Gii Thiu LCD 16x2 .................................................... 13
Mc 2.2.3: Gii Thiu IC Thi Gian Thc DS1307 ...................... 16
CHNG III: THIT K CHNG TRNH .............................................. 19
Phn 3.1: Code Chng Trnh ................................................................. 19
Phn 3.2: Hng Dn S Dng ................................................................ 32
TNG KT......................................................................................................... 33
TI LIU THAM KHO ................................................................................. 34

NG H THI GIAN THC HIN TH LCD

Bo co n 1

Trang 5

LI NI U

Sau khong thi gian 3 thng, vi s hng dn v ch bo tn tnh ca


thy Thy Nguyn Ng Lm, ngy hm nay, n ca em hon thnh xong.
t c kt qu nh hm nay, ngoi s chm ch v mit mi ca bn thn em, em
khng th no khng nhc n cng lao vch ra hng i cho ti v hng
dn tng yu cu ca ti m thy Thy Nguyn Ng Lm truyn t cho em.
Cng v l do trn, thng qua y, em xin gi li cm n chn thnh nht ca em
n gio vin hng dn ca em l thy Thy Nguyn Ng Lm, ngi c cng
lao rt ln trong kt qu ca ti ca em ngy hm nay.
Cng vi , em cng xin chn thnh cm n Thy u Trng Hin v
Thy Phm Vn Khoa cung cp cho em thm nhiu kin thc trong hc tp
em p dng vo ti n ca em.
Cui cng, em cng khng qun nhc n nhng ng gp trong vic
trao i kin, chia s nhng kin thc cng nh kinh nghim ca cc bn cng
nhm ti lp 11119CL2 em hon tt hiu qu ti ny.

Xin chn thnh cm n!

Ngi thc hin ti

L L Tng

NG H THI GIAN THC HIN TH LCD

Bo co n 1

Trang 6

CHNG I: GII THIU TI

Phn 1.1: Gii Thiu


Ngy nay, trong cc ng dng cng nghip v dn dng, cc b vi iu khin
c ng dng rng ri v th hin tnh nng u vit ca n. Vic s dng vi
iu khin trong cng nghip dn thay th con ngi trong nhng cng vic
nhm chn, c tnh lp li theo chu k. Trong dn dng, vi iu khin c dng l
thnh phn chnh trong cc mch gim st, chng trm, iu khin ng c v
cc mch mang tnh gii tr. y, ngi thc hin ti xin trnh by mt ng
dng ca vi iu khin hin th gi v hn gi.
Phn 1.2: S Khi

Ngun

Hin Th

iu
Chnh

Vi iu Khin

m Thanh

Thi Gian Thc

Phn 1.3: Chc Nng Cc Khi


-

Khi Ngun: Cung cp in p 5V cho mch


Khi iu chnh: gm 3 nt nhn, nt Chn, Tng v Gim
Khi hin th: Gm LCD v 2 bin tr tng gim sng v t ng
phn mn hnh
Khi thi gian thc: IC1307, thch anh nh tn, t n tn v ngun nui
Khi vi iu khin: IC AT89C52 v cc linh kin ph tr(cc in tr v
t in). Nhn tn hiu t cc nt nhn, d liu thi gian t IC thi gian
thc, iu khin IC thi gian thc, mn hnh v chung bo.
Khi m thanh l 1 loa v 1 transitor dng lm chung bo (bo thc).

NG H THI GIAN THC HIN TH LCD

Bo co n 1

Trang 7

CHNG II: GII THIU PHN CNG

Phn 2.1: S Mch

Hnh 2.1.1: S Nguyn L

Hnh 2.1.2: S Mch In


NG H THI GIAN THC HIN TH LCD

Bo co n 1

Trang 8

Phn 2.2: Gii Thiu Linh Kin Trong Mch


Mc 2.2.1: Gii Thiu IC AT89C52
-

IC AT89C52 l vi iu khin do hng Atmel sn xut, ch to theo


cng ngh CMOS vi cc c tnh ni bt sau:
Mt ALU 8-bit, mt thanh tch ly (dng trong nhiu tnh ton) , cc
thanh ghi 8-bit, v 2 thanh ghi 16 bit.
Bus d liu 8-bit - c th truy cp 8 bits d liu trong mt hot ng.
Bus a ch 16-bit - c th truy cp 216 v tr nh 64kB (65536 v
tr)cho mi b nh RAM v ROM
RAM trn chip - 256 bytes (b nh d liu)
ROM trn chip - 8 kbytes (b nh ch ng trnh)
32 chn I/O ring bit (4 nhm mi nhm 8 chn I/O) c th c
truy cp ring r.
Hai b nh thi/m 16-bit
n v thu/pht bt ng b ph bin UART hon ton song
cng.(truyn ni tip)
Su nguyn nhn ngt vi 2 mc u tin.
Hnh dng bn ngoi

AT89C52
Hnh 2.1.1: Vi iu khin AT89C52
Cc port:
o P0.0 n P0.7 (chn 39 n chn 32)
o P1.0 n P1.7 (chn 1 n chn 8)
o P2.0 n P2.7 (chn 21 n chn 28)
o P3.0 n P3.7 (chn 10 n chn 17)
NG H THI GIAN THC HIN TH LCD

Bo co n 1

Trang 9

Ring Port 3 c cc chn c bit:


o RxD v TxD (chn 10 v 11): Nhn v pht d liu ni tip
o INT0 v INT1 (chn 12 v 13): Nhn tn hiu ngt ngoi
o T0 v T1 (chn 14 v 15): Ng vo b nh thi/b m
o Write v Read (chn 16 v 17) iu khin ghi v c d liu t
b nh ngoi.
Cp ngun:
o Vcc chn 40
o GND chn 20
Reset: chn 9, tch cc mc cao
Crystal 1 v 2( chn 19 v 18): ni thch anh 12Mhz
ALE: chn 30, cht a ch/d liu
PSEN: tn hiu iu khin cho php ta truy xut b nh ch ng trnh
ngoi. Chn ny thng c ni vi chn cho php xut OE ca
ROM ngoi
Chn EA: cho php np ch ng trnh t ROM ngoi , khng dc
trng, phi ni 1 trong 2 mc sau:
o Mc 0: cho php dng ch ng trnh t ROM ngoi
o Mc 1: ch dng ch ng trnh t ROM trong
-

Mch Reset:
Khi mch va c cp in, t np v
ko chn 9 ln mc p cao to tc ng
reset. Sau mt lc chn 9 tr li mc p
thp. IC AT89C51 bt u hot ng t
trng thi khi u. Khi nhn nt
Switch th Vcc ni trc tip vo chn
RST to tc ng reset.

Mch To Xung
Chn 18, 19 mc thch anh nh tn
(12MHz). Nh vy tn s lnh s l
1Mhz (hay chu k lnh l 1us). Ngang
thch anh mc 2 t nh (33pF) dng
n nh tn s.

NG H THI GIAN THC HIN TH LCD

Bo co n 1
-

Trang 10

Thanh Ghi:

8051 c nhiu thanh ghi, trong c mt s thanh ghi quan trng


thng dng nh:
o Thanh ghi tch ly A: thanh ghi tnh ton chnh chc nng t ng
t thanh ghi Word (W) trong PIC.
o Thanh ghi tnh ton ph B: a ch F0H, h tr thanh ghi A khi
thc hin php nhn, chia
o Thanh ghi trng thi ch ng trnh PSW : a ch D0H, m t
ton b trng thi ch ng trnh ang hot ng ca h thng.
Cha cc Bit lm c bo hiu.
o Thanh ghi PC l 1 thanh ghi 16 bit, cha a ch ca lnh tip theo
phi x l
o Thanh ghi Con tr stack SP (stack pointer) l 1 thanh ghi 8 bit
a ch 81H. SP cha a ch ca d liu hin ang nh ca
stack
o Thanh ghi Con tr d liu DPTR (data pointer) c dng truy
xut b nh ch ng trnh ngoi hoc b nh d liu ngoi. DPTR
l mt thanh ghi 16 bit c a ch l 82H (DPL, byte thp) v 83H
(DPH, byte cao).
o Thanh ghi cc cng P0-P3 bao gm Port 0 ti a ch 80H, Port 1
ti a ch 90H, Port 2 ti a ch A0H v Port 3 ti a ch B0H.
Tt c cc port u c nh a ch tng bit nhm cung cp cc
kh nng giao tip mnh.

NG H THI GIAN THC HIN TH LCD

Bo co n 1

Trang 11

o Thanh ghi IE:

o Thanh ghi TCON

o Thanh ghi IP

NG H THI GIAN THC HIN TH LCD

Bo co n 1

Trang 12

o Thanh ghi TMOD

o Thanh ghi SCON

NG H THI GIAN THC HIN TH LCD

Bo co n 1

Trang 13

Mc 2.2.2: Gii Thiu LCD 16x2


Ngy nay, thit b hin th LCD (Liquid Crystal Display) c s dng
trong rt nhiu cc ng dng ca VK. LCD c rt nhiu u im so vi cc
dng hin th khc: N c kh nng hin th k t a dng, trc quan (ch, s
v k t ha), d dng a vo mch ng dng theo nhiu giao thc giao
tip khc nhau, tn rt t ti nguyn h thng v gi thnh r
C rt nhiu loi LCD vi nhiu hnh dng v kch thc khc nhau, trn
hnh sau l loi LCD thng dng.Khi sn xut LCD, nh sn xut tch hp
chp iu khin (HD44780) bn trong lp v v ch a cc chn giao tip cn
thit. Cc chn ny c nh s th t v t tn nh hnh sau :

Hnh 2.2.2 : S chn ca LCD


Chc nng cc chn :
Chn
1
2
3
4

K
hiu
Vss

M t

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


ca mch iu khin
VDD Chn cp ngun cho LCD, khi thit k mch ta ni chn ny vi
VCC=5V ca mch iu khin
VEE iu chnh t ng phn ca LCD.
RS Chn chn thanh ghi (Register select). Ni chn RS vi logic 0
(GND) hoc logic 1 (VCC) chn thanh ghi.
+ Logic 0: Bus DB0-DB7 s ni vi thanh ghi lnh IR ca LCD
( ch ghi - write) hoc ni vi b m a ch ca LCD (
ch c - read)
+ Logic 1: Bus DB0-DB7 s ni vi thanh ghi d liu DR bn
trong LCD.
R/W Chn chn ch c/ghi (Read/Write). Ni chn R/W vi logic
0 LCD hot ng ch ghi, hoc ni vi logic 1
LCD ch c.
NG H THI GIAN THC HIN TH LCD

Bo co n 1

Trang 14

7 - 14

DB0
DB7

15

Chn cho php (Enable). Sau khi cc tn hiu c t ln bus


DB0-DB7, cc lnh ch c chp nhn khi c 1 xung cho php
ca chn E.
+ ch ghi: D liu bus s c LCD chuyn vo(chp
nhn) thanh ghi bn trong n khi pht hin mt xung (high-to-low
transition) ca tn hiu chn E.
+ ch c: D liu s c LCD xut ra DB0-DB7 khi pht
hin cnh ln (low-to-high transition) chn E v c LCD gi
bus n khi no chn E xung mc thp.
Tm ng ca bus d liu dng trao i thng tin vi MPU.
C 2 ch s dng 8 ng bus ny :
+ Ch 8 bit : D liu c truyn trn c 8 ng, vi bit MSB
l bit DB7.
+ Ch 4 bit : D liu c truyn trn 4 ng t DB4 ti
DB7, bit MSB l DB7
Ngun d ng cho n nn

16

GND cho n nn
Bng 2.2.2: Chc nng cc chn ca LCD

V Tr Con Tr trong LCD

Hnh 2.2.2.1: V tr con tr LCD

NG H THI GIAN THC HIN TH LCD

Bo co n 1

Trang 15

M Nh Phn cc k t LCD

Hnh 2.2.2.2: Bng m k t LCD


c th ghi vo v tr th x trn mn hnh mt k t y no , ngi
dng phi ghi vo vng DDRAM ti a ch x (xem bng mi lin h gia
DDRAM v v tr hin th) mt chui m k t 8 bit trn CGROM.
V d : Ghi vo DDRAM ti a ch 03 mt chui 8 bit 01000001 th
trn LCD ti th 4 t tri sang (dng trn) s hin th k t A.

NG H THI GIAN THC HIN TH LCD

Bo co n 1

Trang 16

Mc 2.2.3: Gii Thiu IC Thi Gian Thc DS1307


DS1307 l chip thi gian thc hay RTC (Read time clock). y l mt
IC tch hp cho thi gian bi v tnh chnh xc v thi gian tuyt i cho thi
gian : Th, ngy,thng, nm, gi, pht, giy. DS1307 l ch to bi Dallas.
Chip ny c 7 thanh ghi 8 bit mi thanh ghi ny cha : Th , ngy, thng,
nm, gi , pht, giy. Ngoi ra DS1307 cn cha 1 thanh ghi iu khin ng
ra ph v 56 thanh ghi trng cc thanh ghi ny c th dng nh l RAM.
DS1307 c c thng qua chun truyn thng I2C nn do c c
v ghi t DS1307 thng qua chun truyn thng ny. Do n c giao tip
chun I2C nn cu to bn ngoi n rt n gin.

Hnh 2.2.3.1: S chn DS1307


Chip ny c 8 chn v chng ta hay dng l dng Dip v cc chn n
c m t nh sau :
X1 v X2 l u vo dao ng cho DS1307. Cn dao ng thch
anh 32.768Khz.
Vbat l ngun nui cho chip. Ngun ny t ( 2V- 3.5V) ta ly pin
c ngun 3V. y l ngun cho chip hot ng lin tc khi khng
c ngun Vcc m DS1307 vn hot ng theo thi gian
Vcc l ngun cho giao tip I2C. in p cung cp l 5V chun v
c dng chung vi vi x l. Nu m Vcc khng c m Vbat c
th DS1307 vn hot ng bnh thng nhng m khng ghi v
c c d liu.
GND l ngun Mass chung cho c Vcc v Vbat
SQW/OUT l mt ng ra ph to xung dao ng (xung vung).
Chn ny khng nh hng n thi gian thc nn khng s dng
chn ny trong thi gian thc v b trng chn ny.
SCL v SDA l hai bus d liu ca DS1307. Thng tin truyn v
ghi u c truyn qua 2 ng truyn ny theo chun I2C

NG H THI GIAN THC HIN TH LCD

Bo co n 1

Trang 17

Ghp ni DS1307 vi vi iu khin


Do DS1307 giao tip chun I2C nn vic ghp ni n vi vi iu khin
kh l n gin v theo datasheet ta c s sau :

Hnh 2.2.3.2: S kt ni DS1307 vi vi iu khin


DS1307 n ch giao tip vi vi iu khin vi 2 ng truyn SCL v
SDA nn do trn vi x l cn phi xc nh chn no trn vi x l dng lm
SCL v SDA ni vi DS1307 v lp trnh cho 2 chn ny c th truyn
nhn d liu qua chun I2C.
Thanh ghi trong DS1307
Cu to bn trong ca DS1307 bao gm mch ngun, dao ng, logic v
con tr ,thanh ghi thc hin vic ghi c. Do trong cc bi ton chng ta
thng s dng DS1307 cho ng h thi gian thc nn do chng ta ch
quan tm n vic ghi c cc thanh ghi cn thit (sec, min, hour) thng qua
chun truyn thng I2C cn cc thanh ghi khc th chng ta c th tm hiu k
trong datasheet. V cc thanh ghi c coi nh l RAM lu tr.
Trong b nh ca DS1307 c tt c 64 thanh ghi a ch t 0 n 63 v
c bt u t 0x00 n 0x3F nhng trong ch c 8 thanh ghi u l thanh
ghi thi gian thc nn chng ta s i su vo 8 thanh ghi (chc nng v a ch
thanh ghi thi gian thc) ny. Nhn vo bng thanh ghi trong datasheet ta s
thy nh sau :

Hnh 2.2.3.3: a ch cc thanh ghi ca DS1307


NG H THI GIAN THC HIN TH LCD

Bo co n 1

Trang 18

Nhn vo bng trn chng ta thy cc thanh ghi thi gian thc n c
sp sp theo th t : giy, pht, gi, th, ngy , thng, nm v bt u t thanh
ghi Giy (0x00) v kt thc bng thanh ghi nm (0x06).
DS1307 m ha cc d liu ra s BCD do khi ghi vo cc thanh ghi
ny cng phi l s BCD. Trong lp trnh th vic a cc gi tr BCD ny vo
kh khn nn chng ta thng dng bin i qua li gia BCD v thp lc
phn d dng kim sot ca cc gi tr ca thanh ghi.

NG H THI GIAN THC HIN TH LCD

Bo co n 1

Trang 19

CHNG III: THIT K CHNG TRNH


Phn 3.1: Code Chng Trnh
#include <AT89X51.H>
#include <INTRINS.H>

#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define

SpkPort
LED
sda
scl
rs
rw
en
menu
tang
giam
congLCD
D7

unsigned
unsigned
unsigned
unsigned
unsigned
bit
bit
bit
unsigned
unsigned
unsigned

char
char
char
char
char

P1_7
P1_2
P1_1
P1_0
P3_7
P3_6
P3_5
P3_2
P3_1
P3_0
P2
P2_7

gioht, phutht;
giohen = 0x06;
phuthen =0x00;
phuthentt =0x00;
giayhen =0x00;
baochuong =1;
nhaclai = 1;
baothuc =1;
char *rtc[]={"0","1","2","3","4","5","6","7","8","9"};
char *day[]={"CN
","Thu 2","Thu 3","Thu 4","Thu 5","Thu 6","Thu 7"};
char giatrikhoitao_rtc[8];

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
//
CAC CHUONG TRINH CON GIAO TIEP VOI LCD
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
void busy()
{
D7=1;
rs=0;
rw=1;
while(D7!=0)
{
en=0;
en=1;
}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
void ghilenhLCD(unsigned char x)
{
busy();
congLCD=x;
// gia tri x
rs=0;
// chon thanh ghi lenh
rw=0;
// ghi len lcd
en=1;
// cho phep muc cao
en=0;
//xung cao xuong thap
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//

NG H THI GIAN THC HIN TH LCD

Bo co n 1

Trang 20

void khoitaoLCD(void)
{
ghilenhLCD(0X38);
ghilenhLCD(0X0C);
ghilenhLCD(0X01);
ghilenhLCD(0X06);
}

// hai dong va ma tran 5x7


//bat man hinh , tat con tro
//xoa man hinh
// dich con tro hien thi sang phai

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
void ghi_kytu(unsigned char value)
{
busy();
congLCD=value;
rs=1;
rw=0;
en=1;
en=0;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
void ghi_chuoi(unsigned char *string)
{
unsigned char i;
for(i=0;string[i]!='\0';i++)
ghi_kytu(string[i]);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
void ghiso(unsigned char a)
{
unsigned char i;
i=a/10;
ghi_chuoi(rtc[i]);
i=a%10;
ghi_chuoi(rtc[i]);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
void hienthi_dulieu_rtc(unsigned char x)
{
unsigned char temp;
temp = x/16;
ghi_chuoi(rtc[temp]);
temp = x%16;
ghi_chuoi(rtc[temp]);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
//
CAC CHUONG TRINH CON GIAO TIEP VOI RTC
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
void start_rtc(void)
{
scl=1;
sda=1;
_nop_();
_nop_();
sda=0;
scl=0;
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//

NG H THI GIAN THC HIN TH LCD

Bo co n 1

Trang 21

void stop_rtc(void)
{
sda=0;
scl=1;
_nop_();
_nop_();
sda=1;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
void gui_rtc(unsigned char x)
{
unsigned char i;
for(i=0;i<8;i++)
{
sda=(x&0x80)? 1:0; //dua bit du lieu ra chan SDA
scl=1;
_nop_();
_nop_();
scl=0;
x<<=1;
//bit co trong so lon hon dc truyen truoc
}
scl=1;
//nhan bit ACK tu SLAVER bao hieu ket thuc mot byte du lieu
_nop_();
_nop_();
scl=0;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
unsigned char nhan_rtc(void)
{
unsigned char Data,i;
for(i=0;i<8;i++) // nhan vao 8 bit
{
scl=1;
Data<<=1;
Data=Data|sda;
scl=0;
}
sda=1;
scl=1; //master nhan/gui bit du lieu(sda) khi scl o muc cao
_nop_();
scl=0;
_nop_();//du lieu(sda) thay doi khi scl muc thap/
return Data;//tra gia tri cho ham
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
char docdulieu(unsigned char diachi)
{
unsigned char Data;
start_rtc();
gui_rtc(0xd0);
gui_rtc(diachi);
start_rtc();
gui_rtc(0xd1);
//0xd0 + 0xd1 la dia chi cua ds107 va che do doc du lieu
Data=nhan_rtc();
stop_rtc();
//Stop I2C
return Data;
}

NG H THI GIAN THC HIN TH LCD

Bo co n 1

Trang 22

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
void ghivaoDS1307(void)
{
unsigned char t;
for(t=0;t<9;t++)
{
start_rtc();
gui_rtc(0xd0);
gui_rtc(t);
gui_rtc(giatrikhoitao_rtc[t]);
stop_rtc();
}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
//
HIEN THI GIO , NGAY THANG TREN LCD
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
void hienthi_rtc(void)
{
ghilenhLCD(0xca);
// ep con tro den vi tri thu 11 dong thu 2
hienthi_dulieu_rtc(docdulieu(0));
ghilenhLCD(0xc7); // ep con tro den vi tri thu 8 dong thu 2
hienthi_dulieu_rtc(docdulieu(1)); // hien thi phut
ghi_kytu(':');
ghilenhLCD(0xc4); // ep con tro den vi tri thu 5 dong thu 2
hienthi_dulieu_rtc(docdulieu(2)); //hien thi gio
ghi_kytu(':');
if (baothuc==1)
{
ghilenhLCD(0xc0);
ghi_chuoi("AL");
}
ghilenhLCD(0x80); //ep con tro den dau dong thu 1
ghi_chuoi(day[docdulieu(3)-1]);
//hien thi thu
ghi_kytu(',');
ghilenhLCD(0x86); //ep con tro den vi tri thu 7 dong thu 1
hienthi_dulieu_rtc(docdulieu(4));//hien thi ngay
ghi_kytu('/');
hienthi_dulieu_rtc(docdulieu(5));//hien thi thang
ghi_chuoi("/20");
hienthi_dulieu_rtc(docdulieu(6)); //nam
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
//
TAO THOI GIAN TRE DUNG TIMER 0
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
void delay(long time)//tre time ms
{
while(time--)
{
TMOD=0x01;
// che do 16 bit khong tu nap lai
TH0=0xFC;TL0=0x67; // 6*( 65536 - FC67+1)*(1/12000)=1000us =1ms
TR0=1;
while(TF0!=1){};
TF0=0;
TR0=0;}
}

NG H THI GIAN THC HIN TH LCD

Bo co n 1

Trang 23

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
//
CHUONG TRINH CON THUC HIEN VIEC CAI DAT NGAY GIO, THANG NAM
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
unsigned char bcd_dec(unsigned char bcd)//chuyen tu bcd sang decima
{
return((bcd/16)*10+(bcd%16));
//vd bcd=66 -> dec =42
}
unsigned char dec_bcd(unsigned char dec)// chuyen tu decima sang bcd
{
return((dec/10)*16+(dec%10));
}
void caidat_rtc()
{
unsigned char giay,phut,gio,thu,ngay,thang,nam;
giay = bcd_dec(docdulieu(0)&0x7f);
// de bit 7 (bit clock halt) cua
thanh ghi giay = 0 => ko bi treo)
phut = bcd_dec(docdulieu(1));
gio
= bcd_dec(docdulieu(2)& 0x3f);
//che do 24 h
thu
= bcd_dec(docdulieu(3));
ngay = bcd_dec(docdulieu(4));
thang = bcd_dec(docdulieu(5));
nam
= bcd_dec(docdulieu(6));
// CAI DAT GIO
ghilenhLCD(1);
ghi_chuoi("CHINH");
ghi_chuoi(" GIO :");
ghilenhLCD(0x0e);
ghilenhLCD(0xc4);
ghiso(gio);
ghi_kytu(':');
ghiso(phut);
ghi_kytu(':');
ghiso(giay);
ghilenhLCD(0xC5);
while(menu==0);
caidatgio:
while(tang!=0 && giam!=0
&&
if(tang==0)
{
gio++;
if(gio==24)
gio=0;
ghilenhLCD(0xC4);
ghiso(gio);
ghilenhLCD(0xC5);
delay(300);
goto caidatgio;
}
if(giam==0)
{
gio--;
if(gio==0xff) gio=23;
ghilenhLCD(0xC4);
ghiso(gio);
ghilenhLCD(0xC5);
delay(300);
goto caidatgio;}
while(menu==0);
ghilenhLCD(0xC8);

menu!=0);

NG H THI GIAN THC HIN TH LCD

Bo co n 1

Trang 24

caidatphut:
while(tang!=0 && giam!=0
&& menu!=0);
if(tang==0)
{
phut++;
if(phut==60) phut=0;
ghilenhLCD(0xC7);
ghiso(phut);
ghilenhLCD(0x10);
delay(300);
goto caidatphut;}
if(giam==0)
{
phut--;
if(phut==0xff)
phut=59;
ghilenhLCD(0xC7);
ghiso(phut);
ghilenhLCD(0x10);
delay(300);
goto caidatphut;
}
while(menu==0);
ghilenhLCD(0xCB);
caidatgiay:
while(tang!=0 && giam!=0
&& menu!=0);
if(tang==0)
{
giay++;
if(giay==60) giay=0;
ghilenhLCD(0xCA);
ghiso(giay);
ghilenhLCD(0xCB);
delay(100);
goto caidatgiay;
}
if(giam==0)
{
giay--;
if(giay==0xff)
giay=59;
ghilenhLCD(0xCA);
ghiso(giay);
ghilenhLCD(0xCB);
delay(100);
goto caidatgiay;
}

// CAI DAT NGAY - THANG - NAM


while(menu==0);
ghilenhLCD(1);
ghi_chuoi("CHINH NGAY :");
ghilenhLCD(0xc4);
ghiso(ngay);
ghi_kytu('/');
ghiso(thang);
ghi_chuoi("/20");
ghiso(nam);
ghilenhLCD(0xc5);

NG H THI GIAN THC HIN TH LCD

Bo co n 1

Trang 25

caidatngay:
while (tang!=0 && giam!=0
if(tang==0)
{
ngay++;
if(ngay==32) ngay=1;
ghilenhLCD(0xC4);
ghiso(ngay);
ghilenhLCD(0x10);
delay(300);
goto caidatngay;
}

&&

menu!=0);

if(giam==0)
{
ngay--;
if(ngay==0)
ngay=31;
ghilenhLCD(0xC4);
ghiso(ngay);
ghilenhLCD(0x10);
delay(300);
goto caidatngay;
}
while(menu==0);
ghilenhLCD(0xC8);
caidatthang:
while(tang!=0 && giam!=0
&& menu!=0);
if(tang==0)
{
thang++;
if(thang==13)
thang=1;
ghilenhLCD(0xC7);
ghiso(thang);
ghilenhLCD(0x10);
delay(300);
goto caidatthang;
}
if(giam==0)
{
thang--;
if(thang==0) thang=12;
ghilenhLCD(0xC7);
ghiso(thang);
ghilenhLCD(0x10);
delay(300);
goto caidatthang;
}
while(menu==0);
ghilenhLCD(0xCD);
caidatnam:
while(tang!=0 && giam!=0
&&
if(tang==0)
{
nam++;
if(nam==100)
nam=0;
ghilenhLCD(0xCC);
ghiso(nam);
ghilenhLCD(0xCD);
delay(300);
goto caidatnam;
}

menu!=0);

NG H THI GIAN THC HIN TH LCD

Bo co n 1

Trang 26

if(giam==0)
{
nam--;
if(nam==0xff) nam=99;
ghilenhLCD(0xCC);
ghiso(nam);
ghilenhLCD(0xCD);
delay(300);
goto caidatnam;
}
// CAI DAT THU
while(menu==0);
ghilenhLCD(1);
ghi_chuoi("CHINH THU :");
ghilenhLCD(0xc4);
ghi_chuoi(day[thu-1]);
caidatthu:
while(tang!=0 && giam!=0
if(tang==0)
{
thu++;
if(thu==8) thu=1;
ghilenhLCD(0xC4);
ghi_chuoi(day[thu-1]);
delay(300);
goto caidatthu;
}

&&

if(giam==0)
{
thu--;
if(thu==0) thu=7;
ghilenhLCD(0xC4);
ghi_chuoi(day[thu-1]);
delay(300);
goto caidatthu;
}
// CHINH BAO THUC
while(menu==0);
ghilenhLCD(1);
ghi_chuoi("BAO THUC? :");
ghilenhLCD(0xc4);
ghi_chuoi("
CO");
BAOTHUC:
while(tang!=0 && giam!=0
&&
if(tang==0)
{
ghilenhLCD(0xC4);
ghi_chuoi("
CO");
baothuc = 1;
delay(300);
goto BAOTHUC;
}

menu!=0);

menu!=0);

if(giam==0)
{
ghilenhLCD(0xC4);
ghi_chuoi("
KHONG");
baothuc = 0;
delay(300);
goto BAOTHUC;
}

NG H THI GIAN THC HIN TH LCD

Bo co n 1

Trang 27

while(menu==0);
ghilenhLCD(1);
ghi_chuoi("CHINH");
ghi_chuoi(" GIO HEN:");
ghilenhLCD(0x0e);
ghilenhLCD(0xc4);
ghiso(giohen);
ghi_kytu(':');
ghiso(phuthen);
ghi_kytu(':');
ghiso(giayhen);
ghilenhLCD(0xC5);
while(menu==0);
caidatgiohen:
while(tang!=0 && giam!=0
&& menu!=0);
if(tang==0)
{
giohen++;
if(giohen==24)
giohen=0;
ghilenhLCD(0xC4);
ghiso(giohen);
ghilenhLCD(0xC5);
delay(300);
goto caidatgiohen; }
if(giam==0)
{
giohen--;
if(giohen==0xff)
giohen=23;
ghilenhLCD(0xC4);
ghiso(giohen);
ghilenhLCD(0xC5);
delay(300);
goto caidatgiohen;}

while(menu==0);
ghilenhLCD(0xC8);
caidatphuthen:
while(tang!=0 && giam!=0
&& menu!=0);
if(tang==0)
{
phuthen++;
if(phuthen==60) phuthen=0;
ghilenhLCD(0xC7);
ghiso(phuthen);
ghilenhLCD(0x10);
delay(300);
goto caidatphuthen;}
if(giam==0)
{
phuthen--;
if(phuthen==0xff)
phuthen=59;
ghilenhLCD(0xC7);
ghiso(phuthen);
ghilenhLCD(0x10);
delay(300);
goto caidatphuthen;
}

NG H THI GIAN THC HIN TH LCD

Bo co n 1

Trang 28

while(menu==0);
ghilenhLCD(0xCB);
caidatgiayhen:
while(tang!=0 && giam!=0
&& menu!=0);
if(tang==0)
{
giayhen++;
if(giayhen==60) giayhen=0;
ghilenhLCD(0xCA);
ghiso(giayhen);
ghilenhLCD(0xCB);
delay(100);
goto caidatgiayhen;
}
if(giam==0)
{
giayhen--;
if(giayhen==0xff)
giayhen=59;
ghilenhLCD(0xCA);
ghiso(giayhen);
ghilenhLCD(0xCB);
delay(100);
goto caidatgiayhen;
}
while(menu==0);
// ket thuc cai dat
ghilenhLCD(1);
//thi thuc hien xoa man hinh
ghilenhLCD(0x0C); //bat hien thi tat con tro
//CAP NHAT THOI GIAN VAO RTC
giatrikhoitao_rtc[0] = dec_bcd(giay);
giatrikhoitao_rtc[1] = dec_bcd(phut);
giatrikhoitao_rtc[2] = dec_bcd(gio);
giatrikhoitao_rtc[3] = dec_bcd(thu);
giatrikhoitao_rtc[4] = dec_bcd(ngay);
giatrikhoitao_rtc[5] = dec_bcd(thang);
giatrikhoitao_rtc[6] = dec_bcd(nam);
giatrikhoitao_rtc[7] = 0x00;
giatrikhoitao_rtc[8] = 'c'; //ghi vao vi tri dau tien cua ram 1 co (flag)
ghivaoDS1307();
ghilenhLCD(1);

}
//--------- Delay LOA BAO THUC --------------void delay1(unsigned int duration)
{
while(duration--!=0);
}

NG H THI GIAN THC HIN TH LCD

Bo co n 1

Trang 29

//----------- Look Up Table BANG MA AM THANH THEO NOT NHAC -------------void music_table(unsigned char notes, unsigned int length)
{
unsigned int x;
TR1=1;
LED = 0;
for(x=0;x<length;x++)
{
switch(notes)
{
case 1: TH1= 0xf8;
case 2: TH1= 0xf9;
case 3: TH1= 0xfa;
case 4: TH1= 0xfa;
case 5: TH1= 0xfb;
case 6: TH1= 0xfb;
case 7: TH1= 0xfc;

TL1=0x87;
TL1=0x58;
TL1=0x12;
TL1=0x67;
TL1=0x02;
TL1=0x8f;
TL1=0x0a;

break;
break;
break;
break;
break;
break;
break;

}
while (TF1==0);
TF1=0;
SpkPort = !SpkPort;
}
TR1=0;
LED=1;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
//
CHUONG TRINH CON KIEM TRA DU LIEU TU DS1307 KHI KHOI DONG
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
void kiemtra_rtc(void)
{
unsigned char temp;
start_rtc();
gui_rtc(0xd0);
gui_rtc(0x08);//doc du lieu tu thanh ghi co dia chi 0x08 (vi tri RAM dau
tien)
start_rtc();
gui_rtc(0xd1);
temp=nhan_rtc();//con tro dang tro toi dia chi 0x08 chua du lieu flag (co?`)
xem da cai dat hay chua
stop_rtc();
if(temp!='c') //
neu gia tri thu 8 nhan duoc khac voi co 'c' cap nhat khi
cai dat gio
{
// thi tuc la lan dau duoc khoi tao, ta se chon gia
tri ghi vao ban dau theo y minh
giatrikhoitao_rtc[0]=0x50;
giatrikhoitao_rtc[1]=0x59;
giatrikhoitao_rtc[2]=0x09;
giatrikhoitao_rtc[3]=0x04;
giatrikhoitao_rtc[4]=0x04;
giatrikhoitao_rtc[5]=0x05;
giatrikhoitao_rtc[6]=0x11;
giatrikhoitao_rtc[7]=0x00;
giatrikhoitao_rtc[8]='c';
ghivaoDS1307();
}
}

NG H THI GIAN THC HIN TH LCD

Bo co n 1

Trang 30

///////////////////////////////////////////////////////////////////////////////
void doccacdulieu(void)
{
int i;
for(i=0;i<=6;i++)
{
docdulieu(i);
}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
//
CHUONG TRINH KIEM TRA NUT MENU
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
bit co=0;
void caidatco() interrupt 0
//ngat ngoai 0 thi co =1
{
co=1;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
//
CHUONG TRINH PHAT AM THANH
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
void speak()
{
TMOD = 0x10;

{
music_table(7,150);
delay1(800);
music_table(7,150);
delay1(15000);
music_table(7,150);
delay1(800);
music_table(7,150);
delay1(20000);
if (giam==0)
{
nhaclai=0;
phuthentt=phuthentt+5;
}

if (tang==0)
baochuong=0;

doccacdulieu();
hienthi_rtc();
}
}

NG H THI GIAN THC HIN TH LCD

Bo co n 1

Trang 31

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
//
CHUONG TRINH PHAT CHINH
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
void main()
{
khoitaoLCD();
ghilenhLCD(1);
SpkPort = 0;
ghilenhLCD(0x80);
ghi_chuoi(" DH.SPKT TP.HCM ");
ghilenhLCD(0xc0);
ghi_chuoi("
DONG HO SO
");
delay(2000);
ghilenhLCD(0x80);
ghi_chuoi("SV: LE LY TUONG");
ghilenhLCD(0xc0);
ghi_chuoi("GVHD:
THAY LAM");
delay(2000);

0001

ghilenhLCD(1);
kiemtra_rtc();
IE=0x81;// EA_ET2.ES.ET1.EX1.ET0.EX0 => cho phep ngat ngoai 0 ta co 1(0)00
= 81
doccacdulieu();
phuthentt=phuthen;
while(1)
{
doccacdulieu();
hienthi_rtc();

if (co ==0)
{
phutht = bcd_dec(docdulieu(1));
gioht
= bcd_dec(docdulieu(2)& 0x3f);
if
((gioht==giohen)&&(phutht==phuthentt)&&(baothuc==1)&&(nhaclai==1)&&(baochuong==1))
speak();
else SpkPort =0;
if((gioht!=giohen))
baochuong =1;
if(phutht+5 != phuthentt)
nhaclai=1;
else
nhaclai=0;
}
if(co==1) //co =1 ngat 0 xay ra => cai dat gio
{
caidat_rtc();
phuthentt=phuthen;
co=0;
}
}
}

NG H THI GIAN THC HIN TH LCD

Bo co n 1

Trang 32

Phn 3.2: Hng Dn S Dng


-

Cm ngun
Vn bin tr chnh t ng phn
Vn bin tr chnh sng mn hnh
Bm nt Reset nu mun xem thng tin v sn phm
Chnh thi gian:
Bm nt Menu
Bm nt Tng hoc Gim chnh gi
Bm nt Menu
Bm nt Tng hoc Gim chnh pht
Bm nt Menu
Bm nt Tng hoc Gim chnh giy
Bm nt Menu
Bm nt Tng hoc Gim chnh ngy
Bm nt Menu
Bm nt Tng hoc Gim chnh thng
Bm nt Menu
Bm nt Tng hoc Gim chnh nm
Bm nt Menu
Bm nt Tng hoc Gim chnh th
Hn gi:
Tip tc bm nt Menu khi chnh xong th
Bm nt Tng nu mun c bo thc
Bm nt Gim nu khng mun bo thc
Bm nt Menu
Bm nt Tng hoc Gim chnh gi hn
Bm nt Menu
Bm nt Tng hoc Gim chnh pht hn
Bm nt Menu
Bm nt Tng hoc Gim chnh giy hn
Bm nt Menu tr v mn hnh chnh
Khi chung bo thc reo:
Bm nt Gim nu mun bo li sau 5 pht na (mun ng thm
cht na)
Bm nt Tng nu bn thc hon ton v khng mun bo li.

NG H THI GIAN THC HIN TH LCD

Bo co n 1

Trang 33

TNG KT

Mch ng h thi gian thc hin th LCD c cc u im sau:


- Thi gian vn ng khi khng c ngun nui
- LCD hin th a dng k t cc trc quan v sinh ng
- Mch n gin, kt ni d dng, dy in gn gng, c th ng gi trong
hp nh
- Mch chy chnh xc v n nh trong thi gian lu di
- Bo thc chung to r
- Ty chnh c sng, t ng phn LCD d dng
- S dng t nt nhn nhng vn m bo kh nng ty chnh tt
Bn cnh , mch cn tn ti cc nhc im:
-

Mi hn to, xu do k nng ca ngi thc hin ti hn ch


Mch in to, cha tn dng c din tch
Loa bo thc pht m thanh n iu
Trong khong thi gian ci t cc d liu, thi gian khng cp nht c
Gi thnh sn phm cao, khng th kinh doanh c

Hng pht trin:


-

Nng cao tay ngh thi cng mch mch nh gn h n


Vit on ch ng trnh m thanh bo thc pht c nhc
Thm vo ng h cc module o nhit , m v hin th ln mn
hnh LCD
Tch hp pht m thanh d chu khi ngi dng ng (v d: ting ma r i,
ting gi nh)
Hin th m lch

TI LIU THAM KHO

Datasheet AT89C51, DS1307, LCD LM016


www.dientuvietnam.com
www.picvietnam.com
www.sangtaoclub.net
https://sites.google.com/site/khoaphamhcmute/
NG H THI GIAN THC HIN TH LCD

Bo co n 1

Trang 34

Vi s hng dn tn tnh ca Thy Nguyn Ng Lm v cc thy c


trong khoa in in T, ngi thc hin ti hon thnh n mn hc
ng tin v hc hi, rt ra c nhiu kin thc, kinh nghim cho bn thn. Tuy
nhin vi nng lc v thi gian cn hn ch, ngi thc hin ti khng trnh
khi thiu st, rt mong nhn c s gp ca qu thy c ti c hon
thin mi mt.
Xin chn thnh cm n qu thy c v cc bn theo di bi tiu lun
n mn hc ny.

NG H THI GIAN THC HIN TH LCD

You might also like