Ứng dụng CPU Z80 - Thiết kế và thi công hệ thống báo giờ tự động - 11


Chương trình MAIN

Mục đích : khởi động hệ thống, tự động báo hiệu. Khi cần, xóa Hottime, Skiptime và điều khiển mạch báo hiệu.

Ngõ vào : thời gian thực, bảng Restime, Hottime, Skiptime

Ngõ ra : Hottime hay/và Skiptime bị xóa. Mạch báo hiệu hoạt động Các thanh ghi sử dụng : IX, AF, BC, DE, HL

Chương trình con sử dụng : DISPLAY



ORG DI

LD

0000H


SP,17FFH

LD

A,00000000B

LD

(2001H),A

LD

A,00100101B

LD

(2001H),A

XOR

A

LD

(3000H),A

LD

B,08h

LD

HL,0FFFH

SET0:

INC

HL


LD

(HL),A


DEC

B


JR

NZ,SET0


LD

A,02H


LD

(1004H),A


LD

A,0FEH


LD

B,36H

SETF:

INC

HL


LD

(HL),A


DEC

B


JR

NZ,SETF


LD

HL,1050H


LD

A,(1004H)


LD

(HL),A


LD

A,(1005H)


INC

HL


LD

(HL),A


LD

A,(1006H)


INC

HL


LD

(HL),A


LD

A,(1007H)


INC

HL


LD

(HL),A


CALL

DISPLAY


IM

0


EI



LD

HL,1005H


LD

D,(HL)


INC

HL

Có thể bạn quan tâm!

Xem toàn bộ 105 trang tài liệu này.

Ứng dụng CPU Z80 - Thiết kế và thi công hệ thống báo giờ tự động - 11




LD

E,(HL)


JR

FIRST

MINWT:

LD

A,(1006H)


CP

E


JR

Z,MINWT


LD

E,A


LD

A,(1005H)


LD

D,A

FIRST:

LD

C,01H


LD

B,00H


LD

IX,1005H

NEXT:

INC

B


INC

IX


INC

IX


INC

IX


LD

A,(IX+0)


CP

0FFH


JR

Z,MINWT


CP

0FEH


JR

NZ,COMP


LD

C,00H


LD

B,00H


LD

IX,0F9DH


JR

NEXT

COMP:

CP

D


JR

NZ,NEXT


LD

A,(IX+1)


CP

E


JR

NZ,NEXT


DI



PUSH

DE


PUSH

BC


LD

B,00H


LD

HL,1026H

NEXTS:

INC

B


INC

HL


INC

HL


LD

A,(HL)


CP

0FEH


JR

Z,COMPD


CP

D


JR

NZ,NEXTS


INC

HL


LD

A,(HL)


DEC

HL


CP

E


JR

NZ,NEXTS


LD

A,(1002H)


DEC

A


LD

(1002H),A


INC

A


SUB

B


ADD

A,A


INC A

INC A

LD C,A

LD B,00H

LD D,H

LD E,L

INC HL

INC HL LDIR

EXITM: EI

POP BC

BIT 0,C

JR Z,RESTART

LD HL,1001H

LD A,(HL)

DEC (HL)

SUB B

LD B,A

ADD A,A

ADD A,B

INC A

INC A

LD C,A

LD B,00H

PUSH IX

POP HL

LD D,H

LD E,L

INC HL

INC HL

INC HL LDIR

RESTART: POP DE

JP MINWT COMPD: LD A,(1004H)

SCF CCF

CP 07H

JR C,BELL

BIT 0,C

JR Z,EXITM BELL: LD D,(IX+2)

LD B,09H

LD HL,3000H

LD A,(1007H)

LD E,A RING: LD A,(1007H)

CP E

JR Z,RING

LD E,A

LD (HL),D

SLA D

DEC B


JP Z,EXITM

JP RING


Chương trình RTP (Real Time Program)

Mục đích : đáp ứng ngắt NMI tạo thời gian thực Ngõ vào : thứ, giờ, phút, giây, DPMASK

Ngõ ra : thứ, giờ, phút, giây được cập nhật, hiển thị thứ, giờ, phút, giây Các thanh ghi sử dụng : AF, BC, HL

Các chương trình con sử dụng : DISPLAY



ORG

0066H

RTP:

PUSH

AF


PUSH

BC


PUSH

DE


PUSH

HL


LD

HL,1007H


LD

A,(HL)


INC

A


CP

3CH


JR

NZ,UPDATE


LD

(HL),00H


DEC

HL


LD

A,(HL)


INC

A


CP

3CH


JR

NZ,UPDATE


LD

(HL),00H


DEC

HL


LD

A,(HL)


INC

A


CP

18H


JR

NZ,UPDATE


LD

(HL),00H


DEC

HL


LD

A,(HL)


INC

A


CP

09H


JR

NZ,UPDATE


LD

A,02H

UPDATE:

LD

(HL),A


LD

A,(1000H)


BIT

0,A


JR

NZ,EXIT


LD

HL,1004H


LD

A,(HL)


LD

(1050H),A


INC

HL


LD A,(HL)

LD (1051H),A

INC HL

LD A,(HL)

LD (1052H),A

INC HL

LD A,(HL)

LD (1053H),A CALL DISPLAY

EXIT: POP HL POP DE

POP BC

POP AF RETN


Chương trình SETTIME.

Mục đích : điều chỉnh thời gian thực

Ngõ vào : bàn phím và thứ, giờ, phút hiện tại

Ngõ ra : - Mạch hiển thị sẽ hiển thị thứ, giờ, phút đang thay đổi

- Thứ, giờ, phút thực được ghi vào bộ nhớ Các thanh ghi sử dụng :AF, BC, DE, HL

Các chương trìng con sử dụng : DISPLAY, KEYPRO


ORG

0008H

SETTIME:

PUSH

AF


PUSH

BC


PUSH

DE


PUSH

HL


LD

A,10010000B


LD

(2001H),A


LD

HL,2000H


LD

(HL),01101101B


LD

(HL),01111001B


LD

(HL),01111000B


LD

(HL),01111000B


LD

(HL),00000110B


LD

(HL),01010100B


LD

(HL),01111001B


LD

BC,0FFFFH

REPT:

XOR

A


DEC

BC


CP

B


JR

NZ,REPT


LD

HL,1007H


LD

(HL),00H


DEC

HL


LD

C,(HL)


DEC

HL


LD

B,(HL)


DEC HL

LD D,(HL)

CALL KEYPRO LD HL,1050H

LD A,(1004H)

LD (HL),A

INC HL

LD A,(1005H)

LD (HL),A

INC HL

LD A,(1006H)

LD (HL),A

INC HL

LD A,(1007H)

LD (HL),A

CALL DISPLAY POP HL

POP DE

POP BC

POP AF EI

RETI


Chương trình Hottime.

Mục đích : thực hiện chức năng về Hottime : Xem, Xóa, Đặt Ngõ vào : bảng Hottime và các phím được ấn

Ngõ ra : Hottime trong bảng có thể bị xóa, có thể có Hottime mới được đặt. Hiển thị những thông tin cần thiết về thời gian và báo lỗi

Các thanh ghi sử dụng : A, BC, DE, HL, IY

Các chương trình con sử dụng : DISPLAY, ERROR, KEYPRO


ORG 0018H HOTTIME: PUSH AF

PUSH BC PUSH DE PUSH HL

LD HL,1000H

LD (HL),01H

LD A,10010000B

LD (2001H),A

LD HL,2000H

LD (HL),01110100B

LD (HL),00111111B

LD (HL),01111000B

LD (HL),01111000B

LD (HL),00000110B

LD (HL),01010100B




LD

(HL),01111001B

LD

BC,0FFFFH

REPH:

XOR

A


DEC

BC


CP

B


JR

NZ,REPH

VIEW0:

LD

IY,1008H


LD

D,01H

VIEW:

XOR

A


LD

(1050H),A


LD

(1053H),A


LD

A,(IY+0)


LD

(1051H),A


LD

B,(IY+1)


LD

HL,1052H


LD

(HL),B


CALL

DISPLAY

WT:

LD

BC,0D07H

WAIT:

XOR

A


DEC

BC


CP

B


JR

NZ,WAIT


LD

A,(4000H)

KEY1:

CP

0FDH


JR

NZ,KEY2


LD

A,(1001H)


CP

00H


JR

Z,WT


CP

D


JR

Z,WT


INC

D


INC

IY


INC

IY


INC

IY


JP

VIEW

KEY2:

CP

0FBH


JR

NZ,KEY3


LD

A,01


CP

D


JR

Z,WT


DEC

D


DEC

IY


DEC

IY


DEC

IY


JP

VIEW

KEY3:

CP

0EFH


JR

NZ,KEY4


LD

HL,1001H


LD

A,(HL)


CP

0H


JR

NZ,DEL


CALL

ERROR


JP

VIEW0



DEL:

DEC

(HL)


SUB

D


LD

B,A


ADD

A,A


ADD

A,B


INC

A


INC

A


LD

C,A


LD

B,00H


PUSH

IY


POP

HL


LD

D,H


LD

E,L


INC

HL


INC

HL


INC

HL


LDIR



JP

VIEW0

KEY4:

CP

0FEH


JR

NZ,KEY5


LD

A,(1001H)


CP

0AH


JR

NZ,SET


CALL

ERROR


JP

VIEW0

SET:

LD

B,A


ADD

A,A


ADD

A,B


LD

BC,1008H


LD

H,00H


LD

L,A


ADD

HL,BC


LD

BC,0000H


CALL

KEYPRO


INC

HL


LD

(HL),0B7H


LD

HL,1001H


INC

(HL)


JP

VIEW

KEY5:

CP

0F7H


JP

NZ,VIEW

EXITH:

LD

A,10010000B


LD

(2001H),A


XOR

A


LD

HL,2000H


LD

(HL),A


LD

(HL),A


LD

(HL),A


LD

(HL),A


LD

(HL),A


LD

(HL),A


LD

(HL),A


LD

(HL),A

Xem toàn bộ nội dung bài viết ᛨ

..... Xem trang tiếp theo?
⇦ Trang trước - Trang tiếp theo ⇨

Ngày đăng: 08/09/2023