Luận văn tốt nghiệp Hệ thống báo giờ tự động 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 Luận văn tốt nghiệp Hệ thống báo giờ tự động 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 Luận văn tốt nghiệp Hệ thống báo giờ tự động 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 KEYPRO: LD A,D LD (1050H),A PUSH BC LD A,B LD (1051H),A LD A,C Luận văn tốt nghiệp Hệ thống báo giờ tự động 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 Luận văn tốt nghiệp Hệ thống báo giờ tự động 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 (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 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 KEYPRO: PUSH BC LD A,B LD (1051H),A LD A,C LD (1052H),A Luận văn tốt nghiệp Hệ thống báo giờ tự động 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 Luận văn tốt nghiệp Hệ thống báo giờ tự động 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 A B C D E F G D0 D1 D2 D3 D4 D5 D6 DISPLAY: PUSH AF PUSH BC PUSH DE PUSH HL LD HL,104FH LD C,10001110B AGAIN: LD DE,1040H INC HL LD A,54H CP L JP Z,EXITD LD A,(HL) SCF CCF CP 0AH JR C,DISP SCF CCF CP 14H JR NC,NEXT1 ADD A,06H JR DISP NEXT1: SCF CCF Luận văn tốt nghiệp Hệ thống báo giờ tự động CP 1EH JR NC,NEXT2 ADD A,0CH JR DISP NEXT2: SCF CCF CP 28H JR NC,NEXT3 ADD A,12H JR DISP NEXT3: SCF CCF CP 32H JR NC,NEXT4 ADD A,18H JR DISP NEXT4: SCF CCF CP 3CH JR NC,DISP ADD A,1EH DISP: LD B,A SRA A SRA A SRA A SRA A LD (DE),A INC DE LD A,B AND 00001111B LD (DE),A DEC DE COM: LD A,(DE) CP 00H JR NZ,COM1 LD A,00111111B JR DISPL COM1: CP 01H JR NZ,COM2 LD A,00000110B JR DISPL COM2: CP 02H JR NZ,COM3 LD A,01011011B JR DISPL COM3: CP 03H JR NZ,COM4 LD A,01001111B JR DISPL COM4: CP 04H JR NZ,COM5 LD A,01100110B Luận văn tốt nghiệp Hệ thống báo giờ tự động JR DISPL COM5: CP 05H JR NZ,COM6 LD A,01101101B JR DISPL COM6: CP 06H JR NZ,COM7 LD A,01111101B JR DISPL COM7: CP 07H JR NZ,COM8 LD A,00000111B JR DISPL COM8: CP 08H JR NZ,COM9 LD A,01111111B JR DISPL COM9: CP 09H JR NZ,COM11 LD A,01101111B JR DISPL COM11: LD A,00000000B DISPL: INC C PUSH HL LD HL,2001H LD (HL),C POP HL LD (2000H),A LD A,41H CP E JP Z,AGAIN LD E,A JR COM EXITD: POP HL POP DE POP BC POP AF RET Chương trình ERROR. Mục đích : gởi thông báo lỗi đến người dùng Ngõ vào : phím OK Ngõ ra : led hiển thò Error chớp, tắt Các thanh ghi sử dụng : A, HL, DE, BC ERROR: PUSH AF PUSH BC PUSH DE Luận văn tốt nghiệp Hệ thống báo giờ tự động PUSH HL WAIT: LD A,10010000B LD (2001H),A LD HL,2000H LD (HL),01111001B LD (HL),01010000B LD (HL),01010000B LD (HL),00111111B LD (HL),01010000B LD (HL),00000000B LD (HL),00000000B LD BC,138BH WT: XOR A LD A,(4000H) CP 0F7H JR Z,EXIT XOR A DEC BC CP B JR NZ,WT LD A,10010000B LD (2001H),A LD HL,2000H LD (HL),00000000B LD (HL),00000000B LD (HL),00000000B LD (HL),00000000B LD (HL),00000000B LD (HL),00000000B LD (HL),00000000B LD BC,138BH WT1: XOR A DEC BC CP B JR NZ,WT1 JR WAIT EXIT: POP HL POP DE POP BC POP AF RET Bảng RESTIME. Bảng chứa các thời điểm báo hiệu thường trực. ORG 0FA0H DEFB 07H DEFB 00H DEFB 0ABH DEFB 07H . 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õ. 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. ấ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 KEYPRO: LD A,D