Professional Documents
Culture Documents
Trang 1
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
Bo co n 1
Trang 2
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
Gio Vin Hng Dn
Nguyn Ng Lm
NG H THI GIAN THC HIN TH LCD
Bo co n 1
Trang 3
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
Gio Vin Phn Bin
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
Bo co n 1
Trang 5
LI NI U
L L Tng
Bo co n 1
Trang 6
Ngun
Hin Th
iu
Chnh
Vi iu Khin
m Thanh
Bo co n 1
Trang 7
Bo co n 1
Trang 8
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
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.
Bo co n 1
-
Trang 10
Thanh Ghi:
Bo co n 1
Trang 11
o Thanh ghi IP
Bo co n 1
Trang 12
Bo co n 1
Trang 13
K
hiu
Vss
M t
Bo co n 1
Trang 14
7 - 14
DB0
DB7
15
16
GND cho n nn
Bng 2.2.2: Chc nng cc chn ca LCD
Bo co n 1
Trang 15
M Nh Phn cc k t LCD
Bo co n 1
Trang 16
Bo co n 1
Trang 17
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.
Bo co n 1
Trang 19
#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
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
Bo co n 1
Trang 20
void khoitaoLCD(void)
{
ghilenhLCD(0X38);
ghilenhLCD(0X0C);
ghilenhLCD(0X01);
ghilenhLCD(0X06);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
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;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
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;
}
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;}
}
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);
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;
}
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);
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;
}
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;
}
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);
}
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();
}
}
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();
}
}
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;
}
}
}
Bo co n 1
Trang 32
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.
Bo co n 1
Trang 33
TNG KT
Bo co n 1
Trang 34