1. Trang chủ >
  2. Luận Văn - Báo Cáo >
  3. Kỹ thuật >

d. Ưu nhược điểm của thiết kế và hướng đi của đề tài

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (596.22 KB, 53 trang )


24



mạch thực tế. Cơ bản sử dụng thành thạo các phần mềm liên quan đến đề tài cần

sử dụng như :

-



Phần mềm viết chương trình nguồn : Notepad++

Phần mềm biên dịch chương trình : Keil uVision4

Phần mềm mơ phỏng

: Protus

Phần mềm thiết kế phần cứng

: Altium Designer



Đối với đề tài : chúng em đã xây dựng được lưu đồ thuật tốn, chương trình

nguồn, hiển thị đồng hồ số lên màn hình LCD theo đúng yêu cầu của đề tài.

Bên cạnh những việc đã làm được thì vẫn còn một vài việc chưa làm cho đề tài

được tối ưu như : Khi mạch hoạt động bình thường, nếu ngắt nguồn DC 5V ra

khỏi mạch thì mạch khơng giữ được thời gian thực đang chạy.

Hướng phát triển tiếp theo của đề tài :

- Giải quyết vấn đề đang còn tồn tại.

- Xây dựng các ứng dụng có liên quan đến thời gian, có thể ứng dụng

được trong thực tế.



Phục lục

Chương trình nguồn:

;==================== PROGRAM ===========================

;============= KHAI BAO CAC CHAN TIN HIEU ===============

RS

EQU

P2.0 ; CHAN DK LCD

RW

EQU

P2.2 ; CHAN DK LCD

EN

EQU

P2.4 ; CHAN DK LCD

DATABUS

EQU

P0

; CHAN DL LCD

SELECT

EQU

P3.3 ; KICH HOAT NGAT NGOAI



25

BACK

OK

UP

DOWN

XY

DAY

DEM_TIMER0

CD

EF

TEMP

D1

D2

D3

D4

DEM_S

ORG

LJMP

ORG

LJMP

ORG

LJMP

ORG



EQU

EQU

EQU

EQU

EQU

EQU

EQU

EQU

EQU

EQU

EQU

EQU

EQU

EQU

EQU



P3.4

P3.5

P3.6

P3.7

30H

31H

32H

33H

34H

35H

36H

37H

38H

39H

R0



;

;

;

;

;

;

;

;

;

;

;

;

;

;

;



PHIM THAY DOI THOI GIAN

PHIM THAY DOI THOI GIAN

PHIM THAY DOI THOI GIAN

PHIM THAY DOI THOI GIAN

VI TRI CON TRO

CHON NGAY HIEN THI

DEM SO LAN VAO NGAT

2 SO DAU CUA NAM

2 SO CUOI CUA NAM

BIEN LUU TRU CAC GIA TRI



DEM SO LAN BAM NUT SELECT



00H

MAIN

0BH

TIMER0

13H

START_CHANGE_TIME

100H



MAIN:

;=================== KHOI TAO LCD ========================

ACALL

LCDINIT

LCALL

DELAY

ACALL

INTRO

MOV

DEM_S,#0

MOV

R1,#50

;GIAY //Chu Nhat, 10/10/2010

MOV

R2,#59

;PHUT

MOV

R3,#23

;GIO

MOV

R4,#10

;NGAY

MOV

R5,#10

;THANG

MOV

CD,#20

;2 SO DAU CUA NAM

MOV

EF,#10

;2 SO CUOI CUA NAM

MOV

DAY,#1

MOV

DEM_TIMER0,#0 ; SO LAN VAO NGAT TAO 1S

MOV

R6,#0

MOV

D1,#0

MOV

D2,#0



26

MOV

MOV



D3,#0

D4,#0



;====================CAI DAT NGAT NGOAI 1=================

SETB

EA

SETB

EX1

;CHO PHEP NGAT NGOAI 1

SETB

IT1

; NGAT NGOAI THEO SUON

;==================CAI DAT NGAT TRAN TIMER 0==============

;

SETB

EA

DA KHAI BAO TRONG NGAT NGOAI

SETB

ET0

;CHO PHEP NGAT TRONG TIMER 0

MOV

TMOD,#01

;TIMER 0 CHE DO 1

MOV

TL0,#0BEH

;giai thich trong timer 0

MOV

TH0,#3CH

;=========IN CAC GIA TRI THOI GIAN KHOI TAO BAN DAU ======

ACALL

IN_DONG_1

ACALL

IN_DONG_2

;====================KHOI DONG TIMER 0 ===================

SETB

TR0

;====================KIEM TRA THOI GIAN ==================

CHECK_TIME:

CJNE

DEM_S,#0,THAY_DOI_THOI_GIAN

GIAY:

CJNE

R1,#60,SHOW_TIME

MOV

R1,#0

PHUT:

INC

R2

CJNE

R2,#60,SHOW_TIME

MOV

R2,#0

GIO:

INC

R3

CJNE

R3,#24,SHOW_TIME

MOV

R3,#0

TANG_THU:

INC

DAY

MOV

A,DAY

CJNE

A,#8,NGAY

MOV

DAY,#1

NGAY:



27

INC

R4

CJNE

R5,#2,KT_THANG_4 ;KT CO PHAI THANG 2 K

MOV

B,#4

MOV

A,EF

DIV

AB

MOV

A,B

CJNE

A,#0,KHONG_PHAI_NAM_NHUAN

CJNE

R4,#30,SHOW_TIME

MOV

R4,#1

SJMP

THANG

KHONG_PHAI_NAM_NHUAN:

CJNE

R4,#29,SHOW_TIME

MOV

R4,#1

SJMP

THANG

KT_THANG_4:

CJNE

R5,#4,KT_THANG_6

SJMP

THANG_CO_30_NGAY

KT_THANG_6:

CJNE

R5,#6,KT_THANG_9

SJMP

THANG_CO_30_NGAY

KT_THANG_9:

CJNE

R5,#9,KT_THANG_11

SJMP

THANG_CO_30_NGAY

KT_THANG_11:

CJNE

R5,#11,THANG_CO_31_NGAY

;SJMP

THANG_CO_30_NGAY

THANG_CO_30_NGAY:

CJNE

R4,#31,SHOW_TIME

MOV

R4,#1

SJMP

THANG

THANG_CO_31_NGAY:

CJNE

R4,#32,SHOW_TIME

MOV

R4,#1

THANG:

INC

R5

CJNE

R5,#13,SHOW_TIME

MOV

R5,#1

NAM:

INC

EF

MOV

A,EF

CJNE

A,#100,SHOW_TIME

MOV

EF,#0



28

MOT_TRAM_NAM_DONG_HO_HONG_ROI:

INC

CD

MOV

A,CD

CJNE

A,#100,SHOW_TIME

MOV

CD,#0

LJMP

CHECK_TIME

;==============HIEN THI THOI GIAN LEN LCD ================

SHOW_TIME:

ACALL

IN_DONG_1

ACALL

IN_DONG_2

LJMP

CHECK_TIME

;=========================================================

THAY_DOI_THOI_GIAN:

LJMP CHANGE_TIME

;NHAY DEN CHUONG TRINH THAY DOI TG

;==============HIEN THI SO BCD LEN LCD====================

SHOW_BCD:

MOV

B,#10

DIV

AB

ADD

A,#48

MOV

DATABUS,A

ACALL

SEND_DATA

MOV

A,B

ADD

A,#48

MOV

DATABUS,A

ACALL

SEND_DATA

RET

;=======================CON TRO===========================

POINTER:

MOV

A,XY

MOV

DATABUS,A

ACALL

SEND_COMMAND

MOV

DATABUS,#' '

ACALL

SEND_DATA

MOV

DATABUS,#' '

ACALL

SEND_DATA

ACALL

DELAY_SW

MOV

A,XY

MOV

DATABUS,A



29

ACALL

MOV

ACALL

ACALL

RET



SEND_COMMAND

A,TEMP

SHOW_BCD

DELAY_SW



;========================================================

POINTER_DAY:

PUSH DPH

PUSH DPL

MOV

DATABUS,#0C0H

ACALL

SEND_COMMAND

MOV

DPTR,#CHAR_SPACE

ACALL

WRITE

ACALL

DELAY_SW

MOV

DATABUS,#0C0H

ACALL

SEND_COMMAND

ACALL

DISPLAY_DAY

ACALL

DELAY_SW

POP

DPL

POP

DPH

RET

;==============HIEN

IN_DONG_1:

MOV

ACALL

IN_SETTING:

PUSH

ACALL

MOV

ACALL

MOV

ACALL

MOV

ACALL

MOV

ACALL

MOV

ACALL

MOV



THI THOI GIAN LEN LCD=================

DATABUS,#80H

SEND_COMMAND

ACC

DISPLAY_DAY

DATABUS,#' '

SEND_DATA

A,R4

SHOW_BCD

DATABUS,#'-'

SEND_DATA

A,R5

SHOW_BCD

DATABUS,#'-'

SEND_DATA

A,CD



30

ACALL

MOV

ACALL

POP

RET

IN_DONG_2:

PUSH ACC

MOV

ACALL

MOV

ACALL

MOV

ACALL

MOV

ACALL

MOV

ACALL

MOV

ACALL

POP

RET



SHOW_BCD

A,EF

SHOW_BCD

ACC



DATABUS,#0C4H

SEND_COMMAND

A,R3

SHOW_BCD

DATABUS,#':'

SEND_DATA

A,R2

SHOW_BCD

DATABUS,#':'

SEND_DATA

A,R1

SHOW_BCD

ACC



;============== CHON THU HIEN THI ========================

DISPLAY_DAY:

PUSH ACC

PUSH DPH

PUSH DPL

MOV

A,DAY

CHU_NHAT:

CJNE

A,#01,THU_2

MOV

DPTR,#CNHAT

ACALL

WRITE

SJMP

EXIT_DAY

THU_2:

CJNE

A,#02,THU_3

MOV

DPTR,#THU2

ACALL

WRITE

SJMP

EXIT_DAY

THU_3:

CJNE

A,#03,THU_4

MOV

DPTR,#THU3

ACALL

WRITE



31

SJMP

THU_4:

CJNE

MOV

ACALL

SJMP

THU_5:

CJNE

MOV

ACALL

SJMP

THU_6:

CJNE

MOV

ACALL

SJMP

THU_7:

CJNE

MOV

ACALL

EXIT_DAY:

POP

DPL

POP

DPH

POP

ACC

RET



EXIT_DAY

A,#04,THU_5

DPTR,#THU4

WRITE

EXIT_DAY

A,#05,THU_6

DPTR,#THU5

WRITE

EXIT_DAY

A,#06,THU_7

DPTR,#THU6

WRITE

EXIT_DAY

A,#07,EXIT_DAY

DPTR,#THU7

WRITE



;==============CHUONG TRINH THAY DOI THOI GIAN============

CHANGE_TIME:

PUSH ACC

PUSH DPH

PUSH DPL

CLR

ET0

CLR

TR0

BACK_S:

MOV

DATABUS,#01H

ACALL

SEND_COMMAND

ACALL

DELAY

MOV

DATABUS,#80H

ACALL

SEND_COMMAND

ACALL

DELAY

MOV

DPTR,#CHAR_CHANGE

ACALL

WRITE



32

ACALL



IN_DONG_2



SCAN_BACK:

; QUET PHIM BACK

JB

BACK,SCAN_OK

JNB

BACK,$

DEC

DEM_S

MOV

R6,#1

SCAN_OK:

; QUET PHIM OK

JB

OK,KT_DEM_S

JNB

OK,$

MOV

DATABUS,#01H

ACALL

SEND_COMMAND

ACALL

DELAY

MOV

DATABUS,#0CH

ACALL

SEND_COMMAND

ACALL

DELAY

MOV

DEM_S,#0

LJMP

EXIT_CHANGE_TIME

KT_DEM_S:

;QUAY VONG CHON GIA TRI THAY DOI

CJNE

DEM_S,#0,DEM_S1

MOV

DEM_S,#8

LJMP

LCD_PART2

DEM_S1:

;THAY DOI GIO

CJNE

DEM_S,#1,DEM_S2

CJNE

R6,#1,DEM_S11

ACALL

DISPLAY_CHANGE

MOV

R6,#0

DEM_S11:

MOV

TEMP,R3

MOV

XY,#0C4H

ACALL

POINTER

ACALL

SCAN_UP

ACALL

SCAN_DOWN

LJMP

SCAN_BACK

DEM_S2:

CJNE

CJNE

ACALL

MOV

DEM_S21:

MOV



;THAY DOI PHUT

DEM_S,#2,DEM_S3

R6,#1,DEM_S21

DISPLAY_CHANGE

R6,#0

TEMP,R2



33

MOV

ACALL

ACALL

ACALL

LJMP



XY,#0C7H

POINTER

SCAN_UP

SCAN_DOWN

SCAN_BACK



DEM_S3:

CJNE

DEM_S,#3,LCD_PART2

CJNE

R6,#1,DEM_S31

ACALL

DISPLAY_CHANGE

MOV

R6,#0

DEM_S31:

MOV

TEMP,R1

MOV

XY,#0CAH

ACALL

POINTER

ACALL

SCAN_UP

ACALL

SCAN_DOWN

LJMP

SCAN_BACK

LCD_PART2:

MOV

DATABUS,#01H

ACALL

SEND_COMMAND

ACALL

DELAY

MOV

DATABUS,#80H

ACALL

SEND_COMMAND

ACALL

DELAY

MOV

DPTR,#CHAR_CHANGE

ACALL

WRITE

MOV

DATABUS,#0C0H

ACALL

SEND_COMMAND

ACALL

DELAY

ACALL

IN_SETTING

SCAN_BACK2:

JB

BACK,SCAN_OK2

JNB

BACK,$

DEC

DEM_S

MOV

R6,#1

SCAN_OK2:

JB

JNB

MOV

ACALL

ACALL



OK,KT_DEM_S2

OK,$

DATABUS,#01H

SEND_COMMAND

DELAY



;THAY DOI GIAY



34

MOV

DATABUS,#0CH

ACALL

SEND_COMMAND

ACALL

DELAY

MOV

DEM_S,#0

LJMP

EXIT_CHANGE_TIME

KT_DEM_S2:

CJNE

DEM_S,#3,DEM_S4

LJMP

BACK_S

DEM_S4:

CJNE

DEM_S,#4,DEM_S5

CJNE

R6,#1,DEM_S41

ACALL

DISPLAY_CHANGE

MOV

R6,#0

DEM_S41:

ACALL

POINTER_DAY

ACALL

SCAN_UP

ACALL

SCAN_DOWN

LJMP

SCAN_BACK2

DEM_S5:

CJNE

DEM_S,#5,DEM_S6

CJNE

R6,#1,DEM_S51

ACALL

DISPLAY_CHANGE

MOV

R6,#0

DEM_S51:

MOV

TEMP,R4

MOV

XY,#0C6H

ACALL

POINTER

ACALL

SCAN_UP

ACALL

SCAN_DOWN

LJMP

SCAN_BACK2

DEM_S6:

CJNE

DEM_S,#6,DEM_S7

CJNE

R6,#1,DEM_S61

ACALL

DISPLAY_CHANGE

MOV

R6,#0

DEM_S61:

MOV

MOV

ACALL

ACALL

ACALL



TEMP,R5

XY,#0C9H

POINTER

SCAN_UP

SCAN_DOWN



;THAY DOI THU



;THAY DOI NGAY



;THAY DOI THANG



Xem Thêm
Tải bản đầy đủ (.docx) (53 trang)

×