LD | BC,138BH | |
REPH1: | XOR | A |
DEC | BC | |
CP | B | |
JR | NZ,REPH1S | |
LD | HL,1000H | |
LD | (HL),L | |
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 |
Có thể bạn quan tâm!
- 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 - 11
- Ứ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.
Chương trình SKIPTIME.
Mục đích : Thực hiện chức năng về Skiptime : Xem, Xóa, Đặt Ngõ vào : Bảng Skiptime và các phím được ấn
Ngõ ra : Skiptime trong bảng có thể bị xóa, có thể có Skiptime 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, KEYPRO, ERROR
ORG 0028H SKIPTIME: 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),01101101B
LD (HL),00000110B
LD | (HL),01110011B | |
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 | |
VIEW0: | LD | IY,1028H |
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,(1002H) | |
CP | 0H | |
JR | Z,WT | |
CP | D | |
JR | Z,WT | |
INC | D | |
INC | IY | |
INC | IY | |
JR | VIEW | |
KEY2: | CP | 0FBH |
JR | NZ,KEY3 | |
LD | A,01H | |
CP | D | |
JR | Z,WT | |
DEC | D | |
DEC | IY | |
DEC | IY | |
JR | VIEW | |
KEY3: | CP | 0EFH |
JR | NZ,KEY4 | |
LD | HL,1002H | |
LD | A,(HL) | |
CP | 0H | |
JP | NZ,DEL |
CALL | ERROR | |
JP | VIEW0 | |
DEL: | DEC | (HL) |
SUB | D | |
ADD | A,A | |
INC | A | |
INC | A | |
LD | C,A | |
LD | B,00H | |
PUSH | IY | |
POP | HL | |
LD | D,H | |
LD | E,L | |
INC | HL | |
INC | HL | |
LDIR | ||
JR | VIEW0 | |
KEY4: | CP | 0FEH |
JR | NZ,KEY5 | |
LD | A,(1002H) | |
CP | 0AH | |
JR | NZ,SET | |
CALL | ERROR | |
JP | VIEW | |
SET: | ADD | A,A |
LD | BC,1028H | |
LD | H,00H | |
LD | L,A | |
ADD | HL,BC | |
LD | BC,00H | |
CALL | KEYPRO | |
LD | HL,1002H | |
INC | (HL) | |
JP | VIEW | |
KEY5: | CP | 0F7H |
JP | NZ,VIEW | |
EXIT: | 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 | |
LD | BC,138BH | |
REPT1: | XOR | A |
DEC | BC | |
CP | B | |
JR | NZ,REPT1 |
LD HL,1000H
LD (HL),L
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 KEYPRO cho Settime
Mục đích : Xử lí bàn phím để thay đổi thứ, giờ, phút trên màn hình và ghi vào bộ nhớ địa chỉ trong HL
Ngõ vào : mã của phím được ấn .
Ngõ ra : thứ, giờ, phút thay đổi trên màn hình và lưu vào bộ nhớ thứ, giờ, phút đã thay đổi
Các thanh ghi sử dụng : D, BC, HL, AF Chương trình con sử dụng : DISPLAY
LD | A,D | |
LD | (1050H),A | |
PUSH | BC | |
LD | A,B | |
LD | (1051H),A | |
LD | A,C | |
LD | (1052H),A | |
LD | A,00H | |
LD | (1053H),A | |
CALL | DISPLAY | |
LD | BC,0D07H | |
LOOP1: | XOR | A |
DEC | BC | |
CP | B | |
JR | NZ,LOOP1 | |
LD | A,(4000H) |
POP | BC | |
KEY1: | CP | 0FCH |
JR | NZ,KEY2 | |
INC | B | |
LD | A,18H | |
CP | B | |
JR | NZ,KEYPRO | |
LD | B,00H | |
JR | KEYPRO | |
KEY2: | CP | 0FAH |
JR | NZ,KEY3 | |
DEC | B | |
LD | A,0FFH | |
CP | B | |
JR | NZ,KEYPRO | |
LD | B,17H | |
JR | KEYPRO | |
KEY3: | CP | 0FDH |
JR | NZ,KEY4 | |
INC | C | |
LD | A,03CH | |
CP | C | |
JR | NZ,KEYPRO | |
LD | C,00H | |
JR | KEYPRO | |
KEY4: | CP | 0FBH |
JR | NZ,KEY5 | |
DEC | C | |
LD | A,0FFH | |
CP | C | |
JR | NZ,KEYPRO | |
LD | C,03BH | |
JR | KEYPRO | |
KEY5: | CP | 0EDH |
JR | NZ,KEY6 | |
INC | D | |
LD | A,09H | |
CP | D | |
JR | NZ,KEYPRO | |
LD | D,02H | |
JR | KEYPRO | |
KEY6: | CP | 0EBH |
JR | NZ,KEY7 | |
DEC | D | |
LD | A,01H | |
CP | D | |
JR | NZ,KEYPRO | |
LD | D,08H | |
JR | KEYPRO | |
KEY7: | CP | 0F7H |
JR | NZ,KEYPRO | |
LD | (HL),D | |
INC | HL |
LD INC LD | (HL),B HL (HL),C | |
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 | |
LD | BC,138BH | |
WT: | XOR | A |
DEC | BC | |
CP | B | |
JR | NZ,WT | |
RET |
Chương trình KEYPRO cho Hottime, Skiptime
Mục đích : Xử lí bàn phím để thay đổi giờ, phút trên màn hình và ghi vào bộ nhớ địa chỉ trong HL
Ngõ vào : mã của phím được ấn .
Ngõ ra : giờ, phút thay đổi trên màn hình và lưu vào bộ nhớ giờ, phút đã thay đổi
Các thanh ghi sử dụng : BC, HL, AF Chương trình con sử dụng : DISPLAY
PUSH LD | BC A,B | |
LD | (1051H),A | |
LD | A,C | |
LD | (1052H),A | |
LD | A,00H | |
LD | (1053H),A | |
CALL | DISPLAY | |
LD | BC,0D07H | |
LOOP1: | XOR | A |
DEC | BC | |
CP | B | |
JR | NZ,LOOP1 | |
LD | A,(4000H) | |
POP | BC | |
KEY1: | CP | 0FCH |
JR | NZ,KEY2 | |
INC | B | |
LD | A,18H | |
CP | B | |
JR | NZ,KEYPRO | |
LD | B,00H | |
JR | KEYPRO | |
KEY2: | CP | 0FAH |
JR | NZ,KEY3 | |
DEC | B | |
LD | A,0FFH | |
CP | B | |
JR | NZ,KEYPRO | |
LD | B,17H | |
JR | KEYPRO | |
KEY3: | CP | 0FDH |
JR | NZ,KEY4 | |
INC | C | |
LD | A,03CH | |
CP | C | |
JR | NZ,KEYPRO | |
LD | C,00H | |
JR | KEYPRO | |
KEY4: | CP | 0FBH |
JR | NZ,KEY5 | |
DEC | C | |
LD | A,0FFH | |
CP | C | |
JR | NZ,KEYPRO | |
LD | C,03BH | |
JR | KEYPRO | |
KEY5: | CP | 0F7H |
JR | NZ,KEYPRO | |
LD | (HL),B | |
INC | HL | |
LD | (HL),C | |
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 | |
LD | BC,138BH | |
WT: | XOR | A |
DEC | BC | |
CP | B | |
JR | NZ,WT |
RET
Chương trình DISPLAY.
Mục đích : hiển thị thứ, giờ, phút, giây ra led 7 đoạn Ngõ vào : Thứ, giờ, phút, giây
Ngõ ra : thứ, giờ, phút, giây hiện trên led 7 đoạn Các thanh ghi sử dụng : AF, BC, DE, HL
7 đoạn của led 7 đoạn tương ứng với 7 bit của byte hiển thị như sau
B | C | D | E | F | G | |
D0 | D1 | D2 | D3 | D4 | D5 | D6 |
DISPLAY: AGAIN: NEXT1: NEXT2: NEXT3: | PUSH PUSH PUSH PUSH LD LD LD INC LD CP JP LD SCF CCF CP JR SCF CCF CP JR ADD JR SCF CCF CP JR ADD JR SCF CCF CP JR ADD JR SCF CCF | AF BC DE HL HL,104FH C,10001110B DE,1040H HL A,54H L Z,EXITD A,(HL) 0AH C,DISP 14H NC,NEXT1 A,06H DISP 1EH NC,NEXT2 A,0CH DISP 28H NC,NEXT3 A,12H DISP |