Tải bản đầy đủ - 0 (trang)
2 hoẠT ĐỘNG CỦA HỆ THỐNG

2 hoẠT ĐỘNG CỦA HỆ THỐNG

Tải bản đầy đủ - 0trang

Hình 2. 24 Mạch sau khi nhấn nút MOD

Khi tới thời gian đã cài đặt thì loa sẽ kêu



21



CHƯƠNG 5

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

5.1 KẾT LUẬN

Qua quá trình nghiên cứu, em đã thu thập đưọc nhiều kiến thức liên quan đến

đề tài, bổ sung vào nền tảng kiến thức. Dựa trên các kiến thức đấy, em nghiên

cứu đã hoàn thành sản phẩm, đạt được mục tiêu nghiên cứu đề tài: Thiết kế và thi

công mạch đồng hồ báo thức để giải quyết được một bài toán thực tế.

Sản phẩm của đề tài là một hệ thống hoạt động tương đối ổn định, đạt được

yếu tố thẩm mỹ. Tuy nhiên, về thẩm mỹ thì mạch hàn khơng được đẹp cho lắm,

vẫn còn hạn chế.



5.2 HƯỚNG PHÁT TRIỂN

Hiện tại, hệ thống đang là hệ thống thực nghiệm nên quy mơ còn khá nhỏ, để

triển khai hệ thống lớn có thể ứng dụng thực tế được cần có những thay đổi phù

hợp hơn.

Thứ nhất, Thêm hiển thị ngày âm lịch

Thứ hai, Thêm eeprom vào trong PIC để lưu thời gian hẹn báo thức khi mất

nguồn



22



PHỤ LỤC

Code chương trình

#INCLUDE <16F887.H>

#FUSES NOWDT

//NO WATCH DOG TIMER

#FUSES NOBROWNOUT

//NO BROWNOUT RESET

#FUSES NOLVP

//NO LOW VOLTAGE PRGMING, B3(PIC16) OR

B5(PIC18) USED FOR I/O

#INCLUDE

#USE DELAY(CRYSTAL=20000000)

#DEFINE

MOD

PIN_A1

#DEFINE

UP

PIN_A2

#DEFINE

DW

PIN_A3

#DEFINE

CHON

PIN_A0

#DEFINE

PAUSE

PIN_A4

#DEFINE

LOA

PIN_E0

UNSIGNED CHAR MA7DOAN[16]= {0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,

0X80,0X90,0X88, 0X83, 0XC6, 0XA1, 0X86, 0X8E};

UNSIGNED INT8 GTMOD=0,GTMOD_HEN=1,BDN=0,EXIT;

UNSIGNED INT8 LED1,LED2,LED3,LED4,LED5,LED6;

SIGNED INT8

GIO_HEN,PHUT_HEN;

INT1 TT_CHON=0,TT_LOA=0;

#INT_TIMER1

VOID INTERRUPT_TIMER1()

{

BDN++;

NGAT TANG LEN 1

SET_TIMER1(3036);

}



// NGAT TIMER DUNG NHAP NHAY 1HZ

// CHUONG TRINH NGAT XAY RA THI BIEN DEM

// TAO NGAT 0.1S



VOID GIAIMA()

// HIEN THI GIO PHUT GIAY

{

IF(TT_CHON==0)

{

LED1=MA7DOAN[GIO_DS13/10];

// /10 TACH SO NGUYEN

LED2=MA7DOAN[GIO_DS13];

// TACH SO DU

& 0XEF DE TAO

RA DAU CHAM DP

LED3=MA7DOAN[PHUT_DS13/10];

LED4=MA7DOAN[PHUT_DS13];

LED5=MA7DOAN[GIAY_DS13/10];

LED6=MA7DOAN[GIAY_DS13];

}

ELSE

{

LED1=MA7DOAN[GIO_HEN/10];

// /10 TACH SO NGUYEN

LED2=MA7DOAN[GIO_HEN];

// TACH SO DU

& 0XEF DE TAO

RA DAU CHAM DP

LED3=MA7DOAN[PHUT_HEN/10];

LED4=MA7DOAN[PHUT_HEN];

LED5=0XFF;

LED6=0XFF;

}



23



}

VOID HIENTHI()

DOAN

{

OUTPUT_D(LED1);

OUTPUT_HIGH(PIN_B5);

OUTPUT_D(LED2);

OUTPUT_HIGH(PIN_B4);

OUTPUT_D(LED3);

OUTPUT_HIGH(PIN_B3);

OUTPUT_D(LED4);

OUTPUT_HIGH(PIN_B2);

OUTPUT_D(LED5);

OUTPUT_HIGH(PIN_B1);

OUTPUT_D(LED6);

OUTPUT_HIGH(PIN_B0);

}



// HIEN THI GIA TRI LEN LED 7

OUTPUT_LOW(PIN_B5);



DELAY_MS(1);



OUTPUT_LOW(PIN_B4);



DELAY_MS(1);



OUTPUT_LOW(PIN_B3);



DELAY_MS(1);



OUTPUT_LOW(PIN_B2);



DELAY_MS(1);



OUTPUT_LOW(PIN_B1);



DELAY_MS(1);



OUTPUT_LOW(PIN_B0);



DELAY_MS(1);



VOID DELAY_HIENTHI(UNSIGNED INT8 H)

{

UNSIGNED INT8 L;

FOR(L=0;L
{

HIENTHI();

}

}

VOID NN_PAUSE()

// NN MODE

{

IF(!INPUT(PAUSE))

// KIEM TRA CO NHAN KHONG

{

DELAY_HIENTHI(4);

// NEU CO THI CHONG DOI

IF(!INPUT(PAUSE))

// CON NHAN KHONG

{

IF(TT_LOA==1)

GIO_HEN = GIO_HEN-1;

TT_LOA=0;

DO

// CHONG NHAP NHAY LED 7

DOAN

{

HIENTHI();

}

WHILE(!INPUT(PAUSE));

}

}

}

VOID NN_CHON()

// NN MODE

{

IF(!INPUT(CHON))

// KIEM TRA CO NHAN KHONG

{

DELAY_HIENTHI(4);

// NEU CO THI CHONG DOI

IF(!INPUT(CHON))

// CON NHAN KHONG

{

EXIT=0;

TT_CHON=~TT_CHON;

IF(TT_CHON==0)

GTMOD_HEN=1;

ELSE

GTMOD=0;

DO

// CHONG NHAP NHAY LED 7

DOAN



24



{



HIENTHI();

}

WHILE(!INPUT(CHON));

}



}



}

VOID NN_MOD()

// NN MODE

{

IF(!INPUT(MOD))

// KIEM TRA CO NHAN KHONG

{

DELAY_HIENTHI(4);

// NEU CO THI CHONG DOI

IF(!INPUT(MOD))

// CON NHAN KHONG

{

EXIT=0;

IF(TT_CHON==0)

{

GTMOD++;

// CON NHAN THI TANG GIA TRI MOD LEN 1

IF(GTMOD>3)

GTMOD=0;

// MINH CHINH GIO PHUT

GIAY NEN CHI CAN 1 2 3 NEN LON HON 3 CHO VE 0

}

ELSE

{

GTMOD_HEN++;

IF(GTMOD_HEN>2)

GTMOD_HEN=1;

}

DO

// CHONG NHAP NHAY LED 7

DOAN

{

HIENTHI();

}

WHILE(!INPUT(MOD));

}

}

}



VOID NN_UP()

{

IF(!INPUT(UP))

{

DELAY_HIENTHI(4);

IF(!INPUT(UP))

{

EXIT=0;

IF(TT_CHON==0)

{

IF(GTMOD==1)

// NEU DUNG

{

GIO_DS13++;

// CHO PHEP MINH CHINH GIO, VI

NUT UP NEN CHO ++

IF(GIO_DS13>23)

GIO_DS13=0;

// GIO THI TU 0

DEN 23 NEN LON HON 23 CHO VE 0

BIN_BCD(GIO_DS13);

// CHUYEN TU CO

SO 10 SANG CO SO 16

NAP_THOI_GIAN_HTAI_VAO_DS13B07();

// NAP LAI VAO

DS1307 DE LUU

}



25



ELSE IF(GTMOD==2)

// TUONG TU TOI PHUT

{

PHUT_DS13++;

IF(PHUT_DS13>59)

PHUT_DS13=0;

(PHUT_DS13);

NAP_THOI_GIAN_HTAI_VAO_DS13B07();

}

ELSE IF(GTMOD==3)

{

GIAY_DS13++;

IF(GIAY_DS13>59)

GIAY_DS13=0;

BIN_BCD(GIAY_DS13);

NAP_THOI_GIAN_HTAI_VAO_DS13B07();

}

}

ELSE

{

IF(GTMOD_HEN==1)

{

GIO_HEN++;

IF(GIO_HEN>23)

GIO_HEN=0;

}

ELSE IF(GTMOD_HEN==2)

{

PHUT_HEN++;

IF(PHUT_HEN>59)

PHUT_HEN=0;

}

}

DO

{



HIENTHI();

}

WHILE(!INPUT(UP));

}



}



}

VOID NN_DW()

{

IF(!INPUT(DW))

// NUT DW LA GIAM BEN GIA TRI SE -{

DELAY_HIENTHI(4);

IF(!INPUT(DW))

{

EXIT=0;

IF(TT_CHON==0)

{

IF(GTMOD==1)

{

GIO_DS13--;

IF(GIO_DS13<0)

GIO_DS13=23;

BIN_BCD(GIO_DS13);

NAP_THOI_GIAN_HTAI_VAO_DS13B07();

}

ELSE IF(GTMOD==2)

{

PHUT_DS13--;

IF(PHUT_DS13<0)

PHUT_DS13=59;



26



BIN_BCD(PHUT_DS13);

NAP_THOI_GIAN_HTAI_VAO_DS13B07();

}

ELSE IF(GTMOD==3)

{

GIAY_DS13--;

IF(GIAY_DS13<0)

GIAY_DS13=59;

BIN_BCD(GIAY_DS13);

NAP_THOI_GIAN_HTAI_VAO_DS13B07();

}

}

ELSE

{

IF(GTMOD_HEN==1)

{

GIO_HEN--;

IF(GIO_HEN<0)

GIO_HEN=23;

}

ELSE IF(GTMOD_HEN==2)

{

PHUT_HEN--;

IF(PHUT_HEN<0)

PHUT_HEN=59;

}

}

DO

{



HIENTHI();

}

WHILE(!INPUT(DW));

}



}



}

VOID NHAP_NHAY()

// KHI CHINH VI TRI NAO LED DO NHAP NHAY

{

IF(BDN<5)

// CHO 0.5S DAU SE TAT

{

IF(TT_CHON==0)

{

IF(GTMOD==1)

// NHAY VI TRI GIO

{

LED1=0XFF;

// BANG CACH TAT LED O VI TRI GIO

LED2=0XFF;

}

ELSE IF(GTMOD==2)

// TUONG TU CHO PHUT

{

LED3=0XFF;

LED4=0XFF;

}

ELSE IF(GTMOD==3)

{

LED5=0XFF;

LED6=0XFF;

}

ELSE

GIAIMA();

}

ELSE

{



27



IF(GTMOD_HEN==1)

// NHAY VI TRI GIO

{

LED1=0XFF;

// BANG CACH TAT LED O VI TRI GIO

LED2=0XFF;

}

ELSE IF(GTMOD_HEN==2)

// TUONG TU CHO PHUT

{

LED3=0XFF;

LED4=0XFF;

}

}

}

ELSE



GIAIMA();



// 0.5S CON LAI THI HIEN THI GIA TRI



}

VOID KIEM_TRA_GIO_HEN()

{

IF(GIO_DS13==GIO_HEN)

{

IF(PHUT_DS13==PHUT_HEN)

{

IF(GIAY_DS13<20)

{

TT_LOA=1;

}

ELSE

{

TT_LOA=0;

}

}

}



}



IF(TT_LOA==1)

{

OUTPUT_HIGH(LOA);

DELAY_HIENTHI(15);

OUTPUT_LOW(LOA);

DELAY_HIENTHI(15);

}

ELSE

{

OUTPUT_LOW(LOA);

DELAY_HIENTHI(15);

}



VOID MAIN()

{

SET_TRIS_D(0X00);

SET_TRIS_B(0X00);

SET_TRIS_A(0XFF);

IF (MA_DS13!=MA_DS)

{

THIET_LAP_THOI_GIAN_HIEN_TAI();

NAP_THOI_GIAN_HTAI_VAO_DS13B07();

}



28



SETUP_TIMER_1(T1_INTERNAL|T1_DIV_BY_8);

// KHOI TAO

TIMER 1

SET_TIMER1(3036);

ENABLE_INTERRUPTS(GLOBAL);

// KHOI TAO CHUONG TRINH

NGAT TIME1

ENABLE_INTERRUPTS(INT_TIMER1);

GIO_HEN = 23;

PHUT_HEN = 8;

WHILE(TRUE)

{

IF(BDN<10)

// CHUA DUOC 1S

{

NN_CHON();

NN_MOD();

// KIEM TRA NUT NHAN, DOC THOI GIAN

VA LAM NHAP NHAY

NN_UP();

NN_DW();

NN_PAUSE();

KIEM_TRA_GIO_HEN();

DOC_THOI_GIAN_TU_REALTIME();

NHAP_NHAY();

HIENTHI();

}

ELSE

{

// DU 1GIAY

BDN=BDN-10;

// XOA BDN

EXIT++;

// TANG GIA TRI DE THOAT

IF(EXIT>20)

//NEU SAU 20S KHONG CHINH THI SE

KHONG DE NHAP NHAY NUA

{

GTMOD=0;

EXIT=0;

}

}

}

}



29



TÀI LIỆU THAM KHẢO

[1]



Nguyễn Đình Phú, Giáo Trình thực tập VI ĐIỀU KHIỂN, Đại học sư



phạm kĩ thuật TP.HCM, 8/2016.

2] Nguyễn Đình Phú, Giáo Trình VI ĐIỀU KHIỂN, Đại học sư phạm kĩ thuật

TP.HCM, 8/2016.

[3] Trần Thu Hà- Trương Thị Bích Ngà- Nguyễn Thị Lưỡng- Bùi Thị Tuyết

Đan- Phù Thị Ngọc Hiếu- Dương Thị Cẩm Tú, Giáo Trình Điện Tử Cơ Bản,

Đại học sư phạm kĩ thuật TP.HCM, 2013



30



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

2 hoẠT ĐỘNG CỦA HỆ THỐNG

Tải bản đầy đủ ngay(0 tr)

×