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!
- Lưu Đồ Chi Tiết Chương Trình Hottime
- Lưu Đồ Chi Tiết Chương Trình Error
- Mô Tả Hệ Thống Và Hướng Dẫn Sử Dụng:
- Ứng dụng CPU Z80 - Thiết kế và thi công hệ thống báo giờ tự động - 12
- Ứng dụng CPU Z80 - Thiết kế và thi công hệ thống báo giờ tự động - 13
Xem toàn bộ 105 trang tài liệu này.
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 |
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 |