chuyên đề vi xử lý giới thiệu vi xử lý z80

64 804 1
chuyên đề vi xử lý giới thiệu vi xử lý z80

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT KHOA ĐIỆN - ĐIỆN TỬ CHUYÊN ĐỀ VI XỬ LÝ (GIỚI THIỆU VI XỬ LÝ Z80) BÀI : CẤU TRÚC HỆ VI XỬ LÝ VÀ TỔ CHỨC BÊN TRONG CỦA CPU I SƠ ĐỒ KHỐI CỦA HỆ µ P: CPU thành phần chính: - Bộ nhớ gồm ROM & RAM - Các giao tiếp (Input / Output Adapter) - Các Thiết bị ngoại vi ( Peripheral) Bus : Data Addr Ctrl ROM Main Memory CPU RAM I / O Alapter Peripheral  CPU : Là khối liên kết trung tâm, thực phép toán điều khiển liên kết lại thông qua việc thi hành Lệnh Vậy: Lệnh giá trị nhị phân tượng trưng (mã hóa) cho phép tính mà CPU thực được, giá trị nhà sản xuất qui định  Bộ nhớ : Chứa số liệu Lệnh CPU  Các giao tiếp : Là phần tử mạch trung gian cho phép CPU điều khiển Thiết bị ngoại vi (bàn phím, máy in, đèn thị, … ) Hệ thống Bus :  Address Bus: Là Bus chiều CPU gởi Số bit Addr qui định số ô nhớ mà CPU truy xuất hay gọi khả định vị (mapping) CPU  Data Bus: Là Bus chiều, nơi chuyển lệnh số liệu trình hoạt động CPU  Control Bus: Mỗi đường chiều (nhưng quan điểm theo kiểu tổng quát chiều), chứa tín hiệu CPU để điều khiển linh kiện xung quanh II CẤU TRÚC CỦA CPU: Phân loại :  Dựa vào số bit Data Bus để phân loại CPU: - CPU bit: 8080, 8085 Intel 6800, 6802 Intel Z80 Zilog - CPU có Data Bus lớn bit: 16 bit: 8088, 8086, 80286 32 bit: 80386, 80486 cuûa Intel 64 bit: Pentium Ngoài theo xu nay, người ta phân loại CPU theo hướng: - CISC ( Complete Instruction Set Computer) - RISC ( Reduced Instruction Set Computer) Cấu trúc : Gồm phần chính: - Tập ghi ( Register Set) - Bộ số học Logic ( Arithmetic & Logic Unit) - Khối điều khiển giải mã lệnh a Tập ghi: • Chức năng: Đóng vai trò ô nhớ nằm bên CPU Mỗi ghi nhà sản xuất qui định cho người sử dụng tên gọi (A, B, C, …) Các ghi sở (nơi chứa số liệu) cho đa số phép toán mà CPU thực • Phân loại: + Các ghi địa chỉ: liên quan đến Addr Bus + Các ghi liệu: liên quan đến Data Bus • Các ghi thường gặp CPU bit: a1 Thanh ghi PC ( Program Counter) + Số bit PC = Số bit Addr Bus + PC chứa địa Lệnh mà CPU thực + PC tự động tăng ghi lên sau byte thực Thường Reset CPU giá trị ghi PC = Hằng số ***Nhận xét: - Các lệnh mà người sử dụng muốn CPU thực theo thời gian phải đặt theo thứ tự tăng dần địa nhớ - Sự thay đổi giá trị ghi PC nguyên nhân chúng làm chuyển hướng việc thi hành Lệnh CPU a2 Các ghi đa ( General Purpose): - Số bit độ rộng Data Bus - Các ghi thường dùng lệnh CPU (tính toán, chuyển dời liệu, …) - Trong số ghi đa năng, có ghi đặc biệt gọi tích lũy (gọi ghi A) – Accumulator Đặc biệt chỗ phép toán tiến hành ghi A mà không thực ghi khác a3 Thanh ghi Cờ ( Flag – Condition): - Thanh ghi thường không tham gia vào phép toán phản ánh giá trị đặc biệt kết thu sau phép toán - Mỗi bit ghi có ý nghóa độc lập thường gọi cờ + Các Cờ thường gặp: *Cờ Z (Zero): Z= kết = số khác *Cờ C (Carry): Z= Có bit nhớ (phép +) có bit mượn (-) Ngược lại Các bit nhớ mượn xét vị trí MSB *Cờ H (Halt): Giống Cờ C vị trí mà phản ánh (xét đến) bit thứ (bit 3) kết Cờ ảnh hưởng đến phép tính cho số BCD *Cờ S (Sign): Quan điểm số (+) (-) hệ µP: Định nghóa: Nếu xem số thao tác số có dấu xét độ dài hữu hạn bit số đối định nghóa sau: X + Y = Ví dụ : Nếu xét theo quan điểm FF = - FF + 01 = 00 Người ta chứng minh : - X = X + Nhận xét: MSB = Tầm số (+) Nếu Thì số MSB = Tầm số (-) Với số nhị phân n bit mà nhìn số có dấu, người ta chia thành tầm số nhận xét Ví dụ: 00  7F: biểu diễn số +0  +127 80  FF: biểu diễn số -128  -1 Giá trị Cờ S thực chất giá trị MSB kết quả, trường hợp tính toán với số có dấu Cờ S dùng để xác định xem số thuộc tầm (+) hay (-) *Cờ O (OverFlow): Cờ O sử dụng phương trình tính toán với số có dấu : Phản ánh tượng tràn (quá tầm vực số đó) O= : Nếu ngược lại Ví dụ : 0100 0000 (64) 0100 0001 (65) 1000 0001 (129 > 127 thuộc tầm số (+) )  Cờ O = a4 Thanh ghi số: - Nó dùng phép định vị số a5 Nhà hầm ghi trỏ nhà hầm Stack Pointer (SP): • Khái niệm : Nhà hầm vùng nhớ RAM CPU chọn làm nơi chứa tạm giá trị ghi cần thiết (Khi thi hành lệnh cất ghi) phục hồi lại chúng • Cơ chế hoạt động : + Nhà hầm quản lý theo chế địa chỉ: Địa vùng nhớ RAM dùng làm nhà hầm phải nạp vào ghi SP Do lệnh có liên quan đến nhà hầm thực theo địa Ví dụ: lệnh cất ghi A CPU đem nội dung ghi A vào ô nhớ có địa nằm SP (ký hiệu [SP] ) + Nhà hầm hoạt động theo nguyên tắc giảm, nghóa sau lệnh cất nội dung ghi bit giá trị ghi SP giảm + Phục hồi lại giá trị ghi đem cất trước cách đem nội dung ô nhớ có địa chứa SP +1 lại ghi A sau tăng SP lên + Nhà hầm hoạt động theo nguyên tắc LIFO ( Last In First Out), nghóa ghi cất vào trước lấy sau b Nguyên tắc tổ chức ALU : Mạch cộng : • Mạch cộng số bit bán phần (half adder) A B S C • Mạch cộng toàn phần (3 bit) (full adder): A B Ctr S C • Mạch cộng toàn phần n bit mở rộng: S0 Reg (A) S1 S2 Mạch Cộng bit Reg … S7 ø S0 S1 Cra Bộ Tích Lũy (Acc) Cờ S2 S3 Các tín hiệu từ khối giải Ctrước mã lệnh Nếu Ct = : S3 S2 S1 S0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 Sra 0 Reg1 Reg2 Reg1 + Reg2 FF Reg1 Reg2 + FF Reg1 + Reg2 Reg1 + FF Reg2 Reg1 + Reg2 FF + FF FF Reg1 + FF Reg2 + FF Reg1 + Reg2 Ghi Reg2 – Reg2 – Reg1 (nếu Ct = 1) c Nguyên lý khối giải mã lệnh : D0 D7 Thanh ghi lệnh (chứa mã lệnh) ROM Built In (chứa Micro Code) Data Các tín hiệu điều khiển III KHẢO SÁT SỐ CPU ĐIỂN HÌNH: Z.80 CPU cuûa Zilog : +Vcc A11 A10 A13 A8 A15 A6 A12 A9 A14 A7 CKL D4 A5 D3 D5 D780C (NEC) A1 Vcc D2 A0 GND D7 A15 A3 A2 D6 D0 A4 A0 D0 D7 CLK Top View RESET D1 Gnd Sơ đồ chân CPU Sơ ủo Logic ã A0 ữ A15 : 16 bit cuỷa Addr Bus (3 trạng thái)  Có 216B = 64 KB oõ nhụự ã D0 ữ D7 : bit Data Bus (2 chiều – trạng thái) • Điều kiện điện : + CK (Clock): Sóng vuông (biên độ TTL) f ≤ MHz + RESET: có độ rộng khoảng vài chục µs, lúc reset PC = 0000h • CPU điều khiển linh kiện ngoài: + RD (ReaD)= 0: Data Bus vào CPU + WR (WRite) : WR = : Data Bus CPU Lưu ý : Đọc lệnh RD = Xác định Thi hành lệnh : RD = WR = • MERQ (MEmory ReQuest): + Khi MERQ = đảm bảo giá trị ổn định Addr Bus MERQ = 0: Đọc lệnh từ nhớ + Cụ thể MERQ = 1: Thi hành lệnh thuộc nhóm LD + IORQ ( In Out ReQuest): - Chân = 0: Báo hiệu giá trị ổn định Addr Bus = 0: Thi hành lệnh thuộc nhóm IN / OUT - Cụ thể = 1: Trạng thái phục vụ ngắt • Nhóm chân thông báo trạng thái CPU: + M1 ( Machine Cycle ): 16 States MC1 MC2 M1 = : Nếu CPU chu kỳ máy Nhận xét: M1 MERQ = + HALT = 0: Báo hiệu CPU ngưng hoạt động Lúc CPU hoạt động lại có tín hiệu Reset có tượng ngắt xảy + RFSH ( ReFreSH): Xem giản đồ thời gian • Nhóm chân điều khiển trạng thái CPU: + WAIT = : CPU kéo dài việc thi hành đọc lệnh WAIT = + INT ( Interrupt) + NMI ( Non Maskable Int ) + BUSRQ ( BUS ReQuest) = 0: CPU seõ đưa tất chân lên trạng thái thông báo tín hiệu BUSACK ( ACKnownlegde) = * Tập ghi Z-80: IY I A B D F C E A’ B’ D’ F’ C’ E’ H IX L H’ L’ R PC SP - Các ghi đa năng: A, B, C, D, E, H, L Trong A tích lũy 6â ghi lại ghép cặp dùng ghi 16 bit BC, DE, HL - Tập ghi phụ ( có dấu phẩy): A’, B’, … Cất hết liệu ghi đa cần thiết ( nhà hầm nhỏ ) - Thanh ghi số: IX, IY - Thanh ghi I: Dùng chế xử lý ngắt - Thanh ghi R: Làm tươi RAM động 6802 Motorola : A0 ÷ A15 Giống với Z80 D0 ÷ D7 Điều kiện điện: + Không có chân Clock mà có mạch Clock bên trong, mắc mạch dao động thạch anh X1, X2 sau: X1 Fc = 4fclk  Tclk = 4Tc X2 + Reset: tích cực mức logic Nhóm chân CPU điều khiển linh kiện bên + R / W ( Read / Write ) 1: Read R/W= : Write  Phải lưu ý trường hợp 0126' 0128' 0129' 012B' 012C' CB 07 RLC A 15 DEC D 28 C3 JR Z,PUT 23 INC HL 18 C7 JR MUX ; ; ; THI HÀNH CHỨC NĂNG CỦA PHÍM ; ; ; 012E' 3A 2770 FUNSEL: LD A,(KEYFLG) 0131' FE 01 CP 01H 0133' 28 01 JR Z,KEYNOW 0135' C9 RET 0136' CD 021E' KEYNOW: CALL RDKEY 0139' 57 LD D,A 013A' E6 80 AND 80H 013C' FE 80 CP 80H 013E' 28 0C JR Z,FUNKEY 0140' 7A LD A,D 0141' CD 01DC' CALL ROLL4 0144' CD 015C' CALL DISCOD 0147' 3E 03 LD A,03H 0149' C3 01BF' JP CLRSCR 014C' 7A FUNKEY: LD A,D 014D' FE 83 CP 83H 014F' CA 02A1' JP Z,GO 0152' FE 80 CP 80H 0154' CA 0241' JP Z,MEM 0157' FE 81 CP 81H 0159' CA 0044' JP Z,PROMPT ; - ; ; GIẢI MÃ SỐ HEX RA LED ÑOAÏN ; ; - ; 015C' C5 DISCOD: PUSH BC 015D' DD E5 PUSH IX 015F' E5 PUSH HL 0160' FD E5 PUSH IY 0162' 06 03 LD B,03 0164' DD 21 2750 LD IX,HEXBUF 0168' DD 6E 00 LP01: LD L,(IX) 016B' 65 LD H,L 016C' CB 3C SRL H 016E' CB 3C SRL H 0170' CB 3C SRL H 0172' CB 3C SRL H 0174' 7D LD A,L 0175' E6 0F AND 0FH 0177' 6F LD L,A 0178' E5 PUSH HL 0179' 017B' 017D' 0181' 0183' 0184' 0187' 0189' 018A' 018D' 018F' 0191' 0193' 0194' 0196' 0197' 0198' 0199' 019D' 01A0' 01A3' 01A6' DD 23 INC IX 10 EB DJNZ LP01 FD 21 2745 LD IY,DISBUF+5 06 03 LD B,3 E1 LP02: POP HL CD 0198' CALL SUBDIS FD 2B DEC IY 6C LD L,H CD 0198' CALL SUBDIS FD 2B DEC IY 10 F2 DJNZ LP02 FD E1 POP IY E1 POP HL DD E1 POP IX C1 POP BC C9 RET 7D SUBDIS: LD A,L DD 21 01A7' LD IX,DISTBL CD 01B7' CALL ADDAX DD 7E 00 LD A,(IX) FD 77 00 LD (IY),A C9 RET ; - ; ; BẢNG TRA MÃ ĐOẠN ; ; -; 01A7' 3F DISTBL: DEFB 3FH 01A8' 06 DEFB 06H 01A9' 5B DEFB 5BH 01AA' 4F DEFB 4FH 01AB' 66 DEFB 66H 01AC' 6D DEFB 6DH 01AD' 7D DEFB 7DH 01AE' 07 DEFB 07H 01AF' 7F DEFB 7FH 01B0' 6F DEFB 6FH 01B1' 77 DEFB 77H 01B2' 7C DEFB 7CH 01B3' 39 DEFB 39H 01B4' 5E DEFB 5EH 01B5' 79 DEFB 79H 01B6' 71 DEFB 71H ; ; ; CHƯƠNG TRÌNH CỘNG A VÀO IX ; ; ; 01B7' C5 ADDAX: PUSH BC 01B8' 06 00 LD B,00 01BA' 4F LD C,A 01BB' DD 09 ADD IX,BC 01BD' C1 POP BC 01BE' C9 RET ; ; ; CHƯƠNG TRÌNH XÓA ÑEØN ; ; ; 01BF' DD E5 CLRSCR: PUSH IX 01C1' D5 PUSH DE 01C2' 16 06 LD D,06 01C4' DD 21 2745 LD IX,DISBUF+5 01C8' 37 SCF 01C9' 3F CCF 01CA' CB 2F CLR01: SRA A 01CC' 30 05 JR NC,CLR02 01CE' 1E 00 LD E,00 01D0' DD 73 00 LD (IX),E 01D3' DD 2B CLR02: DEC IX 01D5' 15 DEC D 01D6' 20 F2 JR NZ,CLR01 01D8' D1 POP DE 01D9' DD E1 POP IX 01DB' C9 RET ; -; ; CHƯƠNG TRÌNH ROLL4 ; ; -; 01DC' C5 ROLL4: PUSH BC 01DD' E5 PUSH HL 01DE' 21 2751 LD HL,HEXBUF+1 01E1' 47 LD B,A 01E2' 3A 2760 LD A,(ROLPAS) 01E5' FE 01 CP 01H 01E7' 20 15 JR NZ,R4TPAS 01E9' 3E 00 LD A,00 01EB' 32 2760 LD (ROLPAS),A 01EE' DD E5 PUSH IX 01F0' DD 21 2750 LD IX,HEXBUF 01F4' DD 77 00 LD (IX),A 01F7' DD 70 01 LD (IX+1),B 01FA' DD E1 POP IX 01FC' 18 06 JR R4OUT 01FE' 78 R4TPAS: LD A,B 01FF' ED 6F RLD 0201' 2B DEC HL 0202' ED 6F RLD 0204' E1 R4OUT: POP HL 0205' C1 POP BC 0206' C9 RET ; - ; ; CHƯƠNG TRÌNH ROLL2 ; ; - ; 0207' C5 ROLL2: PUSH BC 0208' 47 LD B,A 0209' 3A 2760 LD A,(ROLPAS) 020C' FE 01 CP 01H 020E' 20 09 JR NZ,LPP2 0210' 3E 00 LD A,00H 0212' 32 2760 LD (ROLPAS),A 0215' 78 LD A,B 0216' 77 LD (HL),A 0217' 18 03 JR R2OUT 0219' 78 LPP2: LD A,B 021A' ED 6F RLD 021C' C1 R2OUT: POP BC 021D' C9 RET ; - ; ; CHƯƠNG TRÌNH ĐỌC PHÍM ; ; - ; 021E' 3E 00 RDKEY: LD A,00 0220' 32 2770 LD (KEYFLG),A 0223' 3A 2730 LD A,(KEY) 0226' C9 RET ; - ; ; CÁC CHƯƠNG TRÌNH DELAY ; ; - ; 0227' E5 DLKP: PUSH HL 0228' 21 6000 LD HL,6000H 022B' 18 07 JR LPDL 022D' E5 DLPUT: PUSH HL 022E' 21 0080 LD HL,0080H 0231' 18 01 JR LPDL 0233' E5 DLAYHL: PUSH HL 0234' 2B LPDL: DEC HL 0235' 7C LD A,H 0236' FE 00 CP 00H 0238' 20 FA JR NZ,LPDL 023A' 7D LD A,L 023B' FE 00 CP 00H 023D' 20 F5 JR NZ,LPDL 023F' E1 POP HL 0240' C9 RET ; ; ; THAY ĐỔI NỘI DUNG Ô NHỚ ; ; ; 0241' DD 21 0255' MEM: LD IX,MEMCH 0245' DD 22 2720 LD (MNPTR),IX 0249' DD 21 2750 LD IX,HEXBUF 024D' DD 66 00 LD H,(IX) 0250' DD 6E 01 LD L,(IX+1) 0253' 18 3A JR NEWMEM 0255' 3A 2770 MEMCH: LD A,(KEYFLG) 0258' FE 01 CP 01H 025A' 28 01 JR Z,MEMNOW 025C' C9 RET 025D' CD 021E' MEMNOW: CALL RDKEY 0260' 57 LD D,A 0261' DD 21 2750 LD IX,HEXBUF 0265' DD 66 00 LD H,(IX) 0268' DD 6E 01 LD L,(IX+1) 026B' E6 80 AND 80H 026D' FE 80 CP 80H 026F' 20 18 JR NZ,NUM 0271' 7A LD A,D 0272' FE 80 CP 80H 0274' 20 03 JR NZ,NXM1 0276' 2B DEC HL 0277' 18 16 JR NEWMEM 0279' 7A NXM1: LD A,D 027A' FE 83 CP 83H 027C' 20 03 JR NZ,NXM2 027E' 23 INC HL 027F' 18 0E JR NEWMEM 0281' 7A NXM2: LD A,D 0282' FE 81 CP 81H 0284' CA 0044' JP Z,PROMPT 0287' 18 0B JR MEMOUT 0289' 7A NUM: LD A,D 028A' CD 0207' CALL ROLL2 028D' 18 05 JR MEMOUT 028F' 3E 01 NEWMEM: LD A,01 0291' 32 2760 LD (ROLPAS),A 0294' 7E MEMOUT: LD A,(HL) 0295' DD 77 02 LD (IX+2),A 0298' DD 74 00 LD (IX),H 029B' DD 75 01 LD (IX+1),L 029E' C3 015C' JP DISCOD ; ; ; THI HÀNH CHƯƠNG TRÌNH ỨNG DỤNG ; ; ; 02A1' DD 21 2750 GO: LD IX,HEXBUF 02A5' DD 66 00 LD H,(IX) 02A8' DD 6E 01 LD L,(IX+1) 02AB' E5 PUSH HL 02AC' C9 RET ORG 0400H 0400' F5 PUSH AF 0401' E5 PUSH HL 0402' 2A 2300 LD HL,(2300H) 0405' 2B DECHL: DEC HL 0406' 7C LD A,H 0407' FE 00 CP 00H 0409' C2 0405' JP NZ,DECHL 040C' 7D LD A,L 040D' FE 00 CP 00H 040F' C2 0405' JP NZ,DECHL 0412' E1 POP HL 0413' F1 POP AF 0414' C9 RET ; ; ; CHƯƠNG TRÌNH DELAY VẪN HIỂN THỊ ; ; ; 0415' F5 DLDIS: PUSH AF 0416' C5 PUSH BC 0417' 06 08 LD B,08H 0419' CD 0426' LAB1: CALL DLDIS1 041C' 05 DEC B 041D' 78 LD A,B 041E' FE 00 CP 00H 0420' C2 0419' JP NZ,LAB1 0423' C1 POP BC 0424' F1 POP AF 0425' C9 RET 0426' 3E FE DLDIS1: LD A,0FEH 0428' 32 4000 LD (ADRIVE),A 042B' 3A 2740 LD A,(DISBUF) 042E' 32 4001 LD (SEGDRV),A 0431' CD 022D' CALL DLPUT 0434' 3E 00 LD A,00H 0436' 32 4001 LD (SEGDRV),A 0439' 3E FD LD A,0FDH 043B' 32 4000 LD (ADRIVE),A 043E' 3A 2741 LD A,(DISBUF+1) 0441' 32 4001 LD (SEGDRV),A 0444' CD 022D' CALL DLPUT 0447' 3E 00 LD A,00H 0449' 32 4001 LD (SEGDRV),A 044C' 3E FB LD A,0FBH 044E' 32 4000 LD (ADRIVE),A 0451' 0454' 0457' 045A' 045C' 045F' 0461' 0464' 0467' 046A' 046D' 046F' 0472' 0474' 0477' 047A' 047D' 0480' 0482' 0485' 0487' 048A' 048D' 0490' 0493' 4003 4000 4001 4002 2700 2710 2720 2730 2740 2750 2760 2770 2780 3A 2742 LD A,(DISBUF+2) 32 4001 LD (SEGDRV),A CD 022D' CALL DLPUT 3E 00 LD A,00H 32 4001 LD (SEGDRV),A 3E F7 LD A,0F7H 32 4000 LD (ADRIVE),A 3A 2743 LD A,(DISBUF+3) 32 4001 LD (SEGDRV),A CD 022D' CALL DLPUT 3E 00 LD A,00H 32 4001 LD (SEGDRV),A 3E EF LD A,0EFH 32 4000 LD (ADRIVE),A 3A 2744 LD A,(DISBUF+4) 32 4001 LD (SEGDRV),A CD 022D' CALL DLPUT 3E 00 LD A,00H 32 4001 LD (SEGDRV),A 3E DF LD A,0DFH 32 4000 LD (ADRIVE),A 3A 2745 LD A,(DISBUF+5) 32 4001 LD (SEGDRV),A CD 022D' CALL DLPUT C9 RET ; ; ; CÁC NHÃN SỬ DỤNG ; ; ; SYSPIO EQU 4003H ADRIVE EQU 4000H SEGDRV EQU 4001H KEYIN EQU 4002H SYSSP EQU 2700H XTMP EQU 2710H MNPTR EQU 2720H KEY EQU 2730H DISBUF EQU 2740H HEXBUF EQU 2750H ROLPAS EQU 2760H KEYFLG EQU 2770H DISPTR EQU 2780H END IV Một số tập mẫu: Viết chương trình hiển thị chữ “vi tính “ lên đèn ( sử dụng chương trình PUT chương trình MONITOR) .Z80 ORG 2000H 2000' 3E 3E LD A,3EH ; MÃ ĐOẠN CHỮ V 2002' 32 2740 LD (DISBUF),A 2005' 3E 10 LD A,10H ; MÃ ĐOẠN CHỮ I 2007' 32 2741 LD (DISBUF+1),A 200A' 3E 78 LD A,78H ; MÃ ĐOẠN CHỮ T 200C' 32 2742 LD (DISBUF+2),A 200F' 3E 10 LD A,10H ; MÃ ĐOẠN CHỮ I 2011' 32 2743 LD (DISBUF+3),A 2014' 3E 54 LD A,54H ; MAÕ ĐOẠN CHỮ N 2016' 32 2744 LD (DISBUF+4),A 2019' 3E 74 LD A,74H ; MÃ ĐOẠN CHỮ H 201B' 32 2745 LD (DISBUF+5),A 201E' C3 00EE JP PUT ; -; ; CAC NHAN SU DUNG ; ; -; 2740 DISBUF EQU 2740H 00EE PUT EQU 00EEH Viết chương trình cho chũ sáng dần đèn .Z80 ORG 2000H 2000' DD 21 2304 LD IX,DATA 2004' 3E 3E LD A,3EH 2006' DD 77 00 LD (IX),A 2009' 3E 10 LD A,10H 200B' DD 77 01 LD (IX+1),A 200E' 3E 78 LD A,78H 2010' DD 77 02 LD (IX+2),A 2013' 3E 10 LD A,10H 2015' DD 77 03 LD (IX+3),A 2018' 3E 54 LD A,54H 201A' DD 77 04 LD (IX+4),A 201D' 3E 74 LD A,74H 201F' DD 77 05 LD (IX+5),A 2022' 21 2042' LD HL,Main 2025' 22 2720 LD (MNPTR),HL 2028' 21 3F00 LD HL,DELAYVAL 202B' 22 2300 LD (DELAYMEM),HL 202E' 21 0000 LD HL,0000H 2031' 22 2740 LD (DISBUF),HL 2034' 22 2742 LD (DISBUF+2),HL 2037' 22 2744 LD (DISBUF+4),HL 203A' 3E 01 LD A,01 203C' 32 2302 LD (COUNT),A 203F' 2042' 2045' 2046' 2049' 204A' 204B' 204D' 2050' 2053' 2057' 205B' 205E' 2061' 2064' 2066' 2068' 2069' 206B' 206E' 206F' 2072' 2074' 2076' 2078' 207B' 207E' 2081' 2084' 2087' 00EE 2740 3F00 2300 2302 2304 2720 C3 00EE 2A 2300 2B 22 2300 7C B5 20 3A 21 3F00 22 2300 DD 21 2304 FD 21 2740 3A 2302 DD 46 00 FD 70 00 DD 23 FD 23 3D 20 F3 3A 2302 3C 32 2302 FE 08 20 11 3E 01 32 2302 21 0000 22 2740 22 2742 22 2744 C9 JP PUT MAIN: LD HL,(DELAYMEM) DEC HL LD (DELAYMEM),HL LD A,H OR L JR NZ,RETURN LD HL,DELAYVAL LD (DELAYMEM),HL LD IX,DATA LD IY,DISBUF LD A,(COUNT) TRANS: LD B,(IX) LD (IY),B INC IX INC IY DEC A JR NZ,TRANS LD A,(COUNT) INC A LD (COUNT),A CP 08H JR NZ,RETURN LD A,01H LD (COUNT),A LD HL,0000H LD (DISBUF),HL LD (DISBUF+2),HL LD (DISBUF+4),HL RETURN: RET PUT EQU 00EEH DISBUF EQU 2740H DELAYVAL EQU 3F00H DELAYMEM EQU 2300H COUNT EQU 2302H DATA EQU 2304H MNPTR EQU 2720H END Viết chương trình cộng nội dung ô nhớ ( có địa thuộc vùng nhớ RAM) cho kết lên đèn trái .Z80 ORG 2000H ; - ; ; CHON O NHO CAN CONG LA 2300H VA 230AH ; ; - ; 2000' 3A 2300 LD A,(2300H) 2003' 47 LD B,A 2004' 2007' 2008' 200B' 200D' 200F' 2010' 2013' 2016' 2019' 201C' 00EE 015C 3A 230A 80 32 2751 3E 00 30 01 3C 32 2750 CD 015C 21 0000 22 2744 C3 00EE LD A,(230AH) ADD A,B LD (2751H),A LD A,00 JR NC,ZERO INC A ZERO: LD (2750H),A CALL DISCOD LD HL,0000H LD (2744H),HL JP PUT PUT EQU 00EEH DISCOD EQU 015CH END Viết chương trình cho dòng thông báo chạy qua đèn .Z80 ORG 2000H 2000' DD 21 2304 LD IX,DATA 2004' 3E 5E LD A,5EH ;MÃ CHỮ d 2006' DD 77 00 LD (IX),A 2009' 3E 10 LD A,10H ; MÃ CHỮ i 200B' DD 77 01 LD (IX+1),A 200E' 3E 7A LD A,7AH ; MÃ CHỮ e 2010' DD 77 02 LD (IX+2),A 2013' 3E 54 LD A,54H ; MÃ CHỮ n 2015' DD 77 03 LD (IX+3),A 2018' 3E 00 LD A,00H ;KHOẢNG TRỐNG 201A' DD 77 04 LD (IX+4),A 201D' 3E 78 LD A,78H ; MÃ CHỮ t 201F' DD 77 05 LD (IX+5),A 2022' 3E 5C LD A,5CH ; MAÕ CHỮ u 2024' DD 77 06 LD (IX+6),A 2027' 3E 00 LD A,00H ;KHOẢNG TRỐNG 2029' DD 77 07 LD (IX+7),A 202C' 3E 40 LD A,40H ;GẠCH NỐI 202E' DD 77 08 LD (IX+8),A 2031' 3E 00 LD A,00H ;KHOAÛNG TROÁNG 2033' DD 77 09 LD (IX+9),A 2036' 3E 78 LD A,78H ; MÃ CHỮ t 2038' DD 77 0A LD (IX+10),A 203B' 3E 10 LD A,10H ; MÃ CHỮ i 203D' DD 77 0B LD (IX+11),A 2040' 3E 54 LD A,54H ; MÃ CHỮ n 2042' DD 77 0C LD (IX+12),A 2045' 3E 00 LD A,00H ;KHOẢNG TRỐNG 2047' DD 77 0D LD (IX+13),A 204A' 3E 74 LD A,74H ; MÃ CHỮ h 204C' DD 77 0E LD (IX+14),A 204F' 2051' 2054' 2056' 2059' 205B' 205D' 2060' 2062' 2064' 2066' 2069' 206C' 206F' 2072' 2075' 2078' 207B' 207E' 2081' 2084' 2087' 208A' 208D' 208E' 2091' 2092' 2093' 2095' 2098' 209B' 209F' 20A3' 20A6' 20A8' 20AA' 20AD' 20B0' 20B2' 20B6' 20B7' 20BA' 20BD' 20C0' 20C3' 20C6' 20C9' 20CA' 3E 5C LD A,5CH ; MÃ CHỮ o DD 77 0F LD (IX+15),A 3E 58 LD A,58H ; MÃ CHỮ c DD 77 10 LD (IX+16),A 3E 00 LD A,00H 06 06 LD B,06 DD 77 11 LOOP2: LD (IX+17),A DD 23 INC IX 10 F9 DJNZ LOOP2 3E AA LD A,0AAH ; MÃ NHẬN DẠNG KẾT THÚC CHUỖI DD 77 11 LD (IX+17),A 21 208A' LD HL,Main 22 2720 LD (MNPTR),HL 21 3F00 LD HL,DELAYVAL 22 2300 LD (DELAYMEM),HL 21 0000 LD HL,0000H 22 2740 LD (DISBUF),HL 22 2742 LD (DISBUF+2),HL 22 2744 LD (DISBUF+4),HL 21 2304 LD HL,DATA 22 2302 LD (COUNT),HL C3 00EE JP PUT 2A 2300 MAIN: LD HL,(DELAYMEM) 2B DEC HL 22 2300 LD (DELAYMEM),HL 7C LD A,H B5 OR L 20 34 JR NZ,RETURN 21 3F00 LD HL,DELAYVAL 22 2300 LD (DELAYMEM),HL DD 2A 2302 LD IX,(COUNT) FD 21 2745 LD IY,DISBUF+5 DD 7E 00 LD A,(IX) FE AA CP 0AAH 28 0D JR Z,ENDP CD 20CA' CALL ROLL6 FD 77 00 LD (IY),A DD 23 INC IX DD 22 2302 LD (COUNT),IX C9 RET 21 2304 ENDP: LD HL,DATA 22 2302 LD (COUNT),HL 21 0000 LD HL,0000H 22 2740 LD (DISBUF),HL 22 2742 LD (DISBUF+2),HL 22 2744 LD (DISBUF+4),HL C9 RETURN: RET DD E5 ROLL6: PUSH IX 20CC' 20CD' 20CF' 20D3' 20D6' 20D9' 20DB' 20DD' 20DE' 20E0' C5 PUSH BC 06 05 LD B,05 DD 21 2740 LD IX,DISBUF DD 7E 01 LOOP1:LD A,(IX+1) DD 77 00 LD (IX),A DD 23 INC IX 10 F6 DJNZ LOOP1 C1 POP BC DD E1 POP IX C9 RET ; - ; ; CAÙC NHÃN SỬ DỤNG ; ; - ; 00EE PUT EQU 00EEH 2740 DISBUF EQU 2740H 3F00 DELAYVAL EQU 3F00H 2300 DELAYMEM EQU 2300H 2302 COUNT EQU 2302H 2304 DATA EQU 2304H 2720 MNPTR EQU 2720H END Viết chương trình tạo đồng hồ điện tử đèn ; ; ; CHƯƠNG TRÌNH THỰC HIỆN ĐHĐT ; ; ; Z80 ORG 2000H 2000' 21 200F' LD HL,CLOCK 2003' 22 2720 LD (MNPTR),HL 2006' 21 0F09 LD HL,DELAYVAL 2009' 22 2300 LD (DELAYMEN),HL 200C' C3 00EE JP PUT 200F' 2A 2300 CLOCK: LD HL,(DELAYMEN) 2012' 2B DEC HL 2013' 22 2300 LD (DELAYMEN),HL 2016' 7C LD A,H 2017' B5 OR L 2018' C2 205A' JP NZ,RETURN 201B' 21 0F09 LD HL,DELAYVAL 201E' 22 2300 LD (DELAYMEN),HL 2021' 3A 2080 LD A,(SECOND) 2024' CD 2070' CALL INCREASE 2027' 32 2080 LD (SECOND),A 202A' FE 60 CP 60H 202C' C2 205A' JP NZ,RETURN 202F' 3E 00 LD A,00H 2031' 2034' 2037' 203A' 203D' 203F' 2042' 2044' 2047' 204A' 204D' 2050' 2052' 2055' 2057' 205A' 205D' 2060' 2063' 2066' 2069' 206C' 206F' 2070' 2071' 2072' 2074' 2076' 2079' 207A' 207C' 207D' 207E' 32 2080 LD (SECOND),A 3A 2082 LD A,(MINUTE) CD 2070' CALL INCREASE 32 2082 LD (MINUTE),A FE 60 CP 60H C2 205A' JP NZ,RETURN 3E 00 LD A,00H 32 2082 LD (MINUTE),A 3A 2084 LD A,(HOUR) CD 2070' CALL INCREASE 32 2084 LD (HOUR),A FE 24 CP 24H C2 205A' JP NZ,RETURN 3E 00 LD A,00H 32 2084 LD (HOUR),A 3A 2084 RETURN: LD A,(HOUR) 32 2750 LD (HEXBUF),A 3A 2082 LD A,(MINUTE) 32 2751 LD (HEXBUF + 1),A 3A 2080 LD A,(SECOND) 32 2752 LD (HEXBUF + 2),A CD 015C CALL DISCOD C9 RET 3C INCREASE: INC A 47 LD B,A E6 0F AND 0FH FE 0A CP 0AH C2 207D' JP NZ,NO 78 LD A,B C6 06 ADD A, 06H 47 LD B,A 78 NO: LD A,B C9 RET ; ; ; CÁC NHÃN SỬ DỤNG ; ; ; 2084 HOUR EQU 2084H 2082 MINUTE EQU 2082H 2080 SECOND EQU 2080H 2720 MNPTR EQU 2720H 0F09 DELAYVAL EQU 0F09H 2300 DELAYMEN EQU 2300H 2750 HEXBUF EQU 2750H 015C DISCOD EQU 015CH 00EE PUT EQU 00EEH Viết chương trình điều khiển động bước pha .Z80 ; -; ; CHƯƠNG TRÌNH ĐIỀU KHIỂN ĐỘNG CƠ BƯỚC ; ; PA0: PHA A ; ; PA1: PHA B ; ; PA2: PHA C ; ; PHA: PHA D ; ; -; ORG 2000H 2000' 3E 80 LD A,80H 2002' D3 03 OUT (03H),A 2004' 3E 01 LOOP1: LD A,01H 2006' D3 00 OUT (00H),A 2008' CD 2022' CALL DELAY 200B' 3E 02 LD A,02H 200D' D3 00 OUT (00H),A 200F' CD 2022' CALL DELAY 2012' 3E 04 LD A,04H 2014' D3 00 OUT (00H),A 2016' CD 2022' CALL DELAY 2019' 3E 08 LD A,08H 201B' D3 00 OUT (00H),A 201D' CD 2022' CALL DELAY 2020' 18 E2 JR LOOP1 2022' 06 02 DELAY: LD B,02H 2024' 21 FFFF LOOP3: LD HL,0FFFFH 2027' 2B LOOP2: DEC HL 2028' 7D LD A,L 2029' FE 00 CP 00H 202B' 20 FA JR NZ,LOOP2 202D' 7C LD A,H 202E' FE 00 CP 00H 2030' 20 F5 JR NZ,LOOP2 2032' 05 DEC B 2033' C2 2024' JP NZ,LOOP3 2036' C9 RET END Viết chương trình điều khiển đèn giao thông với thời gian cho sẵn Z80 ORG 2000H ; - ; ; CHƯƠNG TRÌNH ĐIỀU KHIỂN ĐÈN GIAO THÔNG ; ; PA0: DEN XANH ; ; PA1: DEN DO ; ; PA2: DEN VANG ; ; PA3: DEN XANH ; ; PA4: DEN DO ; ; PA5: DEN VANG ; ; - ; 2000' 3E 80 LD A,80H 2002' D3 03 OUT (03H),A 2004' 3E 22 LOOP: LD A,00100010B 2006' D3 00 OUT (00H),A 2008' 06 02 LD B,02H 200A' CD 202A' CALL DELAY 200D' 3E 0C LD A,00001100B 200F' D3 00 OUT (00H),A 2011' 06 08 LD B,08H 2013' CD 202A' CALL DELAY 2016' 3E 14 LD A,00010100B 2018' D3 00 OUT (00H),A 201A' 06 02 LD B,02H 201C' CD 202A' CALL DELAY 201F' 3E 21 LD A,00100001B 2021' D3 00 OUT (00H),A 2023' 06 08 LD B,08H 2025' CD 202A' CALL DELAY 2028' 18 DA JR LOOP 202A' F5 DELAY: PUSH AF 202B' 21 FFFF LOOP2: LD HL,0FFFFH 202E' 2B LOOP1: DEC HL 202F' 7C LD A,H 2030' B5 OR L 2031' 20 FB JR NZ,LOOP1 2033' 10 F6 DJNZ LOOP2 2035' F1 POP AF 2036' C9 RET END ... +Ngắt che được: cấm lệnh cờ Ví dụ: Đối với Z80 chân INT bi cấm lệnh DI cho phép EI +Ngắt không che được: Ví dụ: Chân NMI Z80 II CƠ CHẾ XỬ LÝ NGẮT (CỨNG) CỦA Z80: 1.Ngắt không che được: Địa IRS = 0066h... CẤU TRÚC HỆ VI XỬ LÝ VÀ TỔ CHỨC BÊN TRONG CỦA CPU I SƠ ĐỒ KHỐI CỦA HỆ µ P: CPU thành phần chính: - Bộ nhớ gồm ROM & RAM - Các giao tiếp (Input / Output Adapter) - Các Thiết bị ngoại vi ( Peripheral)... CPU:  NMI NMI Z 80 giống  IRQ INT  HALT giống BUSRQ Z80  BA ( Bus Available) tương đươngBUSACK Z80  MR ( Memory Ready): Tương tự WAIT Z80 - Đặc biệät 6802 có 32 bytes RAM mang địa từ 0000

Ngày đăng: 12/10/2014, 20:54

Từ khóa liên quan

Mục lục

  • Ngược lại

    • TẬP LỆNH CỦA CPU VÀ HP NGỮ

      • GIẢI MÃ ĐỊA CHỈ

      • BỘ GIAO TIẾP NHẬP XUẤT

        • PIA 6821 của Motorola

        • CHƯƠNG TRÌNH MONITOR

          • * Lưu ý : Giá trò số: 0x (x=0…F)

          • Khi Funsel xử lý phím số thì hai đèn bên phải không sáng, tức là

          • (Disbuf + 4) và (disbuf + 5)

          • * Chương trình ROLL4 (được funsel gọi)

          • * Mỗi khi có phím số nhấn thì ROLL4 được gọi

          • Chú ý:

          • Với cơ chế này 4 phím số gần nhất mà người sử dụng nhập vào là nội dung của hai ô nhớ có đòa chỉ là Hexbuf và Hexbuf+1.

          • Việc dòch chuyển các nipple được

          • thực hiện như sau:

          • *Chương trình Discode:

          • Đổi 3 ô nhớ có đòa chỉ Hexbuf Hexbuf+2 ra 6 byte mã 7 đoạn chứa vào Disbuf  Disbuf+5.

          • Lưu đồ khối:

          • * Xử lý phím số (khi phím MEM chưa nhấn)

          • Nhận xét: với cơ cế này nội dung của Hexbuf và Hexbuf+1 sẽ là giá trò của 4 phím nhấn vào gần nhất.

          • * Phím MEM sau khi nhấn:

          • BÀI 6:

          • NGẮT VÀ CÁCH SỬ DỤNG NGẮT

          • TRONG CHƯƠNG TRÌNH

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan