Tài liêu vi xử lý 8051

126 669 0
Tài liêu vi xử lý 8051

Đ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

Tổng hợp các tập lệnh căn bản trong assembly, các cấu trúc chương trình trong lập trình vi xử lý, vi điều khiển......................................................................................................

Giáo trình vi xử lý Tổ chức hệ thống vi xử lý CHƯƠNG 1: TỔ CHỨC HỆ THỐNG VI XỬ LÝ Các hệ thống số dùng máy tính loại mã 1.1 Hệ thập phân (Decimal Number System) Trong thực tế, ta thường dùng hệ thập phân để biểu diễn giá trị số Ở hệ thống này, ta dùng tổ hợp chữ số để biểu diễn giá trị Một số hệ thập phân biểu diễn theo số mũ 10 VD: Số 5346.72 biểu diễn sau: 5346.72 = 5x103 + 3x102 + 4x10 + + 7x10-1 + 2x10-2 Tuy nhiên, mạch điện tử, việc lưu trữ phân biệt 10 mức điện áp khác khó khăn việc phân biệt hai mức điện áp lại dễ dàng Do đó, người ta sử dụng hệ nhị phân để biểu diễn giá trị hệ thống số 1.2 Hệ nhị phân (Binary Number System) Hệ nhị phân dùng chữ số để biểu diễn giá trị số Một số nhị phân (binary digit) thường gọi bit Một chuỗi gồm bit nhị phân gọi nibble, chuỗi bit gọi byte, chuỗi 16 bit gọi word chuỗi 32 bit gọi double word Chữ số nhị phân bên phải chuỗi bit gọi bit có ý nghĩa nhỏ (least significant bit – LSB) chữ số nhị phân bên trái chuỗi bit gọi bit có ý nghĩa lớn (most significant bit – MSB) Một số hệ nhị phân biểu diễn theo số mũ Ta thường dùng chữ b cuối chuỗi bit để xác định số nhị phân VD: Số 101110.01b biểu diễn giá trị số: 101110.01b Æ 1x25 + 0x24 + 1x23 +1x22 + 1x21 + + 0x2-1 + 1x2-2 ™ Chuyển số nhị phân thành số thập phân: Để chuyển số nhị phân thành số thập phân, ta cần nhân chữ số số nhị phân với giá trị thập phân cộng tất giá trị lại VD: 1011.11B Æ 1x23 + 0x22 + 1x21 + + 1x2-1 + 1x2-2 = 11.75 ™ Chuyển số thập phân thành số nhị phân: Để chuyển số thập phân thành số nhị phân, ta dùng phương pháp sau: ¾ Phương pháp 1: Ta lấy số thập phân cần chuyển trừ 2i 2i số lớn nhỏ hay số thập phân cần chuyển Sau đó, ta lại lấy kết thực tương tự 20 dừng Trong trình thực hiện, ta ghi lại giá trị hay cho bit tuỳ theo trường hợp số thập phân nhỏ 2i (0) hay lớn 2i (1) Phạm Hùng Kim Khánh Trang Giáo trình vi xử lý Tổ chức hệ thống vi xử lý i VD: Xét số 21 số lớn 24 16 21 = 23 22 1 21 20 1 ( 21 Æ 10101B) ¾ Phương pháp 2: Lấy số cần chuyển chia cho 2, ta nhớ lại số dư lấy tiếp thương kết chia cho thực tương tự thương cuối Kết chuyển đổi chuỗi bit số dư lấy theo thứ tự ngược lại VD: Chuyển 227 số nhị phân Số bị chia Thương 227 113 113 56 56 28 28 14 14 7 3 1 ( 227 Æ 11100011b) Số dư ( LSB) 0 1 ( MSB) ¾ Để thực chuyển số thập phân nhỏ sang số nhị phân, ta làm sau: lấy số cần chuyển nhân với 2, giữ lại phần nguyên lại lấy phần lẻ nhân với Quá trình tiếp tục phần lẻ dừng Kết chuyển đổi chuỗi bit giá trị phần nguyên VD: Chuyển 0.625 thành số nhị phân: 0.625 × = 1.25 0.25 × = 0.5 0.5 × = 1.0 ( 0.625 = 0.101b) ¾ Để thực chuyển đổi số nhị phân bất kỳ, ta thực chuyển đổi tương ứng với số nhị phân lớn nhỏ VD: Chuyển 227.625 thành số nhị phân: 227 Æ 11100011b 0.625 Æ 0.101b 227.625 Æ 11100011.101b 1.3 Hệ thập lục phân (Hexadecimal Number System) Như biết trên, dùng hệ nhị phân cần số lượng lớn bit để biểu diễn Giả sử số 1024 = 210 cần 10 bit để biểu diễn Để rút ngắn kết Phạm Hùng Kim Khánh Trang Giáo trình vi xử lý Tổ chức hệ thống vi xử lý biểu diễn, ta dùng hệ thập lục phân dựa sở số mũ 16 Khi đó, bit hệ nhị phân (1 nibble) biểu diễn chữ số hệ thập lục phân (gọi số hex) Trong hệ thống này, ta dùng số kí tự A F để biểu diễn cho giá trị số Thông thường, ta dùng chữ h cuối để xác định số thập lục phân 1.4 Mã BCD (Binary Coded Decimal) Trong thực tế, số ứng dụng đếm tần, đo điện áp, … ngõ dạng số thập phân, ta dùng mã BCD Mã BCD dùng bit nhị phân để mã hoá cho số thập phân Như vậy, số hex A F không tồn mã BCD Mã BCD gồm có loại: - Mã BCD không nén (unpacked): biểu diễn số BCD bit nhị phân Mã BCD nén (packed): biểu diễn số BCD bit nhị phân VD: Số thập phân Số BCD không nén 0000 0101b 0000 0010b 0000 1001b Số BCD nén 1.5 0101b 0010b 1001b Mã hiển thị Led đoạn (7-segment display) Đối với ứng dụng dùng hiển thị số liệu Led đoạn, ta dùng mã hiển thị Led đoạn Ứng với loại Led đoạn (anode hay cathode chung) tuỳ theo sơ đồ kết nối có bảng mã riêng Một ví dụ mã Led đoạn cho bảng 1.1 a f g e a b c d e f g b c d Hình 1.1 – Led đoạn dạng cathode chung Bảng 1.1: Số thập phân Số thập lục phân Phạm Hùng Kim Khánh Số nhị phân 0000 0001 0010 0011 0100 0101 0110 0111 Mã Led đoạn a b c d e f g Hiển thị 1111110 0110000 1101101 1111011 0110011 1011011 1011111 1110000 Trang Giáo trình vi xử lý Tổ chức hệ thống vi xử lý 10 11 12 13 14 15 A B C D E F 1000 1001 1010 1011 1100 1101 1110 1111 1111111 1110011 1111101 0011111 0001101 0111101 1101111 1000111 A B C D E F Các phép toán số học 2.1 Hệ nhị phân 2.1.1 Phép cộng Phép cộng hệ nhị phân thực giống hệ thập phân Bảng thật phép cộng bit với bit nhớ (carry) sau: Bảng 1.2: A 0 0 1 1 Vào B CIN 0 1 1 0 1 1 S 1 0 Ra COUT 0 1 1 S = A ⊕ B ⊕ CIN COUT = AB + CIN(A ⊕ B) VD: 1001 1010b + 1100 1100b Nhớ 0111 0110b 2.1.2 Số bù (2’s component) Trong hệ thống số thông thường, để biểu diễn số âm ta cần thêm dấu – vào chữ số Tuy nhiên, hệ thống máy tính, ta biểu diễn Phương pháp thông dụng dùng bit có ý nghĩa lớn (MSB) làm bit dấu (sign bit): MSB = số âm MSB = số dương Khi đó, bit lại biểu diễn độ lớn (magnitude) số Như vậy, ta dùng bit để biểu diễn thu 256 tổ hợp ứng với giá trị 255 (số không dấu) hay –127 –0 +0 … +127 (số có dấu) Phạm Hùng Kim Khánh Trang Giáo trình vi xử lý Tổ chức hệ thống vi xử lý Để thuận tiện việc tính toán số có dấu, ta dùng dạng biểu diễn đặc biệt số bù Số bù số nhị phân xác định cách lấy đảo bit cộng thêm VD: Số biểu diễn : 0000 0111b có MSB = (biểu diễn số dương) Số bù : 111 1000b + 1b = 111 1001b Số đại diện cho số – là: 1111 1001b có MSB = (biểu diễn số âm) Ta thấy, để thực việc xác định số bù số A, cần phải: - Biểu diễn số A theo mã bù Đảo bit (tìm số bù A) Cộng thêm vào để nhận số bù Khi biểu diễn theo số bù 2, sử dụng bit ta có giá trị số thay đổi từ 128 127 2.1.3 Phép trừ Phép trừ số nhị phân thực tương tự hệ thập phân Bảng thật phép trừ bit với bit mượn (borrow) sau: Bảng 1.3: A 0 0 1 1 Vào B BIN 0 1 1 0 1 1 D 1 0 Ra BOUT 1 0 S = A ⊕ B ⊕ BIN BOUT = AB + A ⊕ B BIN ( VD: ) 0110 1101b Æ 149 - 0011 0001b 0011 1100b Æ 49 Æ 100 Ngoài cách trừ trên, ta thực phép trừ thông qua số bù số trừ VD: 0110 1101b - 0011 0001b Số bù 0110 1101b → Nhớ + 1100 1111b 0011 1100b 100 1110b + 1b = 100 1111b (Số bù 2) Phạm Hùng Kim Khánh Trang Giáo trình vi xử lý Tổ chức hệ thống vi xử lý Trong phép cộng với số bù 2, ta bỏ qua bit nhớ cuối → kết phép cộng số bù 0011 1100 Đây kết phép trừ, bit MSB = cho biết kết số dương VD: 77 - 88 - 11 0100 1101b - 0101 1000b → 0100 1101b + 1010 1000b 1111 0101b Số 88 Æ 0101 1000b → số bù 010 0111 → số bù 2: 010 1000 bit dấu = Æ -88 trở thành 1010 1000b Kết phép cộng số bù 1111 0101b có MSB = nên số âm Số bù 000 1010b → số bù 2: 000 1011b Kết 11 nên phép trừ cho kết –11 Ta thấy, để thực chuyển số bù thành số có dấu cần thực hiện: - Lấy bù bit để tìm số bù Cộng với Thêm dấu trừ để xác định số âm 2.1.4 Phép nhân Phép nhân số nhị phân tương tự số thập phân Chú ý phép nhân nhân số bit có kết số bit, số bit có kết số 16 bit, … VD: 11 X9 99 1011b 1001b 1011 0000 0000 1011 1100011b Đối với máy tính, phép nhân thực phương pháp cộng dịch phải (add-and-right-shift): - Thành phần dầu tiên tổng số bị nhân LSB số nhân Ngược lại, LSB số nhân thành phần Mỗi thành phần thứ i tính tương tự với điều kiện phải dịch trái số bị nhân i bit Kết cần tìm tổng thành phần nói 2.1.5 Phép chia Phép chia số nhị phân tương tự số thập phân Phạm Hùng Kim Khánh Trang Giáo trình vi xử lý Tổ chức hệ thống vi xử lý VD: 30/5 = 11110 b 110 011 000 110 110 110b 101b Tương tự phép nhân, ta dùng phép trừ phép dịch trái thực phép trừ Tuy nhiên, để thuận tiện cho tính toán, thay dùng phép trừ số chia, ta thực phép cộng số bù số chia - Đổi số chia số bù Lấy số bị chia cộng với số bù số chia + Nếu kết có bit dấu = bit tương ứng thương = + Nếu kết có bit dấu = bit tương ứng thương = ta phải khôi phục lại giá trị số bị chia cách cộng kết với số chia - Dịch trái kết thu thực tiếp tục kết hay nhỏ số chia 2.2 Hệ thập lục phân 2.2.1 Phép cộng Thực chuyển số hex cần cộng thành số nhị phân, tính kết số nhị phân sau chuyển lại thành số hex VD: 7Ah → 0111 1010b 3Fh B9h → ← 0011 1111b 1011 1001b Thực cộng trực tiếp số hex, kết cộng lớn 15 nhớ trừ cho 16 VD: Ah Fh 1010 2510 → B9h Ah + Fh = 1010 + 1510 = 2510 → nhớ 2510 – 1610 = 910 = 9h 7h + 3h = 710 + 310 = 1010 → cộng số nhớ: 1010 + 110 = 1110 = Bh 2.2.2 Phép trừ Thực tương tự phép cộng Phạm Hùng Kim Khánh Trang Giáo trình vi xử lý Tổ chức hệ thống vi xử lý Các thiết bị số 3.1 Cổng đệm (buffer) cổng logic (logic gate) ™ Cổng đệm: A A X A X ™ Cổng NOT: A X = A ™ Cổng AND: A B X = AB A 0 1 B 1 X 0 X = AB A 0 1 B 1 X 1 X= A + B A 0 1 B 1 X 1 A 0 1 B 1 X 0 ™ Cổng NAND: A B ™ Cổng OR: A B ™ Cổng NOR: A B Phạm Hùng Kim Khánh X= A + B Trang Giáo trình vi xử lý Tổ chức hệ thống vi xử lý ™ Cổng EX-OR: A B X=A⊕B A 0 1 B 1 X 1 A 0 1 B 1 X 0 ™ Cổng EX-NOR: A X = A ⊕B 3.2 Thiết bị logic lập trình Thay sử dụng cổng logic rời rạc, ta dùng thiết bị logic lập trình (programmable logic device) PLA (Programmable Logic Array), PAL (Programmable Array of Logic) để liên kết thiết bị LSI (Large Scale Intergration) ™ PLA (hay FPLA – Field PLA): Dùng ma trận cổng AND OR để lập trình cácc phá huỷ cầu chì FPLA linh động lại khó lập trình A B AB AB B A B AB A + AB AB + B Hình 1.2 – Sơ đồ PLA Phạm Hùng Kim Khánh Trang Giáo trình vi xử lý Tổ chức hệ thống vi xử lý ™ PAL: ma trận OR cố định sẵn ta lập trình ma trận AND A B AB AB B A A+ A B AB + B A +B AB + A B Hình 1.3 – Sơ đồ PAL 3.3 Chốt, flipflop ghi ™ Chốt (latch): Chốt thiết bị số lưu trữ lại giá trị số ngõ D Q D X CLK CLK 1 Q QN D Q Q CLK PR CL ™ Flipflop: CL: clear PR CL D CLK Q 1 1 1 1 1 0 X X X X X ↑ ↑ X X X QN QN PR: Preset Phạm Hùng Kim Khánh Q QN QN CLK: Clock Trang 10 Giáo trình vi xử lý Giao tiếp với thiết bị dơn giản Hình 4.5 – Cấu trúc hình dạng ma trận LED 5x8 Hình 4.6 – Sáng chữ ‘A’ ma trận LED 5x8 Phạm Hùng Kim Khánh Trang 112 Giáo trình vi xử lý Giao tiếp với thiết bị dơn giản Xét sơ đồ kết nối ma trận LED với 8255 hình 4.7 Port A điều khiển hàng thông qua transistor Port B điều khiển cột (địa Port A, B, C CR 8255 300h, 301h, 302h 303h) R2x8 VCC U10 34 33 32 31 30 29 28 27 35 36 16 15 14 13 12 11 10 R1x8 D0 D1 D2 D3 D4 D5 D6 D7 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 A0 A1 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 RESET RD WR CS PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 40 39 38 37 16 15 14 13 12 11 10 18 19 20 21 22 23 24 25 14 15 16 17 13 12 11 10 Q1x8 2 7404x5 8255 Hình 4.7 – Kết nối ma trận LED với 8255 Tính toán cho mạch: Transistor Q1 hoạt động chế độ bão hoà với dòng Ic dòng qua LED nên chọn Q1 có β = 50, VCE = 0,2V , VBE = 0,7V R2 = Vcc − VLED − VOL −7404 − VCE − − 0, − 0, = = 240 Ω, chọn R2 = 220 Ω 0,01 I LED R1 = VOH −8255 − VBE − VLED − VOL−7404 4,6 − 0,7 − − 0, = 7.5 KΩ, chọn R1 = = 0,01/ 50 IB 8.2 KΩ Phạm Hùng Kim Khánh Trang 113 Giáo trình vi xử lý Giao tiếp với thiết bị dơn giản Để hiển thị ký tự ma trận LED, ta cho sáng LED tương ứng Ví dụ để sáng chữ ‘A’ ma trận LED, ta cho tương ứng LED sáng hình 4.6 Tuy nhiên, ta cho sáng đồng thời LED vị trí hàng cột khác ảnh hưởng đến LED lại Ví dụ sáng LED hàng 1, cột (PA0 = 1, PB1 = 1) hàng 2, cột (PA1 = 1, PB0 = 1) PA0 = 1, PB0 = 1; PA1 = 1, PB1 = nên LED hàng 1, cột hàng 2, cột sáng Như để sáng ký tự ‘A’ ma trận LED phải dùng phương pháp quét hiển thị liệu ma trận LED Quá trình quét thực quét dòng hay cột Khi thực quét cột, thời điểm có cột sáng Dữ liệu cho Port B Port B 8255A sau: - Cột 1: sáng LED PB0 = 1, PB1 – = 0: PB = xxx0 0001b (01h) PA0 = 0, PA1 – = 1: PA = 1111 1110b (0FEh) - Cột 2: sáng LED PB0 = 0, PB2 – = 0, PB1 = 1: PB = xxx0 0010b (02h) PA0 = 1, PA4 = 1, PA1 – = 0, PA5 – = 0: PA = 0001 0001b (11h) - Cột 3: giống cột PB0 - = 0, PB3 – = 0, PB2 = 1: PB = xxx0 0100b (04h) PA0 = 1, PA4 = 1, PA1 – = 0, PA5 – = 0: PA = 0001 0001b (11h) - Cột 4: giống cột PB0 - = 0, PB4 = 0, PB3 = 1: PB = xxx0 1000b (08h) PA0 = 1, PA4 = 1, PA1 – = 0, PA5 – = 0: PA = 0001 0001b (11h) - Cột 5: giống cột PB0 - = 0, PB4 = 1: PB = xxx1 0000b (10h) PA0 = 0, PA1 – = 1: PA = 1111 1110b (0FEh) Chương trình hiển thị cho ma trận LED sau: MODEL SMALL STACK 100h DATA pa DB 0FEh,11h,11h,11h,0FEh pb DB 01h,02h,04h,08h,10h CODE Main PROC MOV AX,@DATA MOV DS, AX ; Gán địa cho Data segment MOV AL,80h Phạm Hùng Kim Khánh ; Định cấu hình cho 8255 Trang 114 Giáo trình vi xử lý Giao tiếp với thiết bị dơn giản MOV OUT Start: MOV INT CMP JNE Lap: DX,303h DX,AL ; Port A: xuất, Port B: xuất ; Port C: xuất AH,0Bh 21h AL,0 Exit ; Kiểm tra phím nhấn ; Nếu có phím nhấn ; kết thúc chương trình MOV BX,0 MOV AL,pa[BX] MOV DX,300h OUT DX,AL ; Xuất hàng MOV AL,pb[BX] MOV DX,301h OUT DX,AL ; Xuất cột PUSH CX MOV CX,0FFFFh LOOP $ POP CX INC CMP JNE JMP BX BX,5 lap Start Exit: MOV AH,4Ch INT 21h Main ENDP ; Tạo thời gian trễ ; Quét cột ; Kết thúc chương trình END Main Giao tiếp bàn phím 2.1 Giao tiếp phím đơn VCC VCC R SW To uP To uP SW R a/ b/ Hình 4.8 – Sơ đồ kết nối phím nhấn (2 chân) với vi xử lý Phạm Hùng Kim Khánh Trang 115 Giáo trình vi xử lý Giao tiếp với thiết bị dơn giản VCC R SW To uP Hình 4.9 – Sơ đồ kết nối phím nhấn (3 chân) với vi xử lý Các phím đơn dùng để điều khiển hệ thống vi xử lý không đòi hỏi nhiều giá trị nhập (chẳng cần điều khiển đóng mở thiết bị) Sơ đồ kết nối phím đơn mô tả hình 4.8 hay 4.9 Khi thực kiểm tra phím nhấn, vấn đề cần thiết phải thực chống dội Hiện tượng dội nhấn phím mô tả hình 4.10 (giả sử nhấn phím ngõ mức logic nhả phím ngõ mức logic – hình 4.8b) Quá trình chống dội thực phần mềm hay phần cứng Hình 4.10 – Hiện tượng dội nhấn phím ™ Phần mềm: Do thời gian dội phím vào khoảng 20ms nên trình chống dội phần mềm đơn giản tạo thời gian trễ đủ lớn để chương trình bỏ qua ảnh hưởng dội ™ Phần cứng: Khi thực chống dội phần cứng, ta thực cách sử dụng cổng NAND hay thực mạch RC VCC VCC R1 R2 R SW To uP To uP 7400 SW C a/ b/ 7400 Hình 4.11 – Chống dội phím nhấn phần cứng Phạm Hùng Kim Khánh Trang 116 Giáo trình vi xử lý Giao tiếp với thiết bị dơn giản Tuy nhiên thực thiết kế phần cứng, thông thường ta chống dội phần mềm để đơn giản mạch phần cứng Xét sơ đồ phần cứng thiết kế hình 4.12 (giả sử địa Port A, B, C CR 8255 300h, 301h, 302h 303h) U16 34 33 32 31 30 29 28 27 35 36 D0 D1 D2 D3 D4 D5 D6 D7 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 A0 A1 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 RESET RD WR CS PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 40 39 38 37 18 19 20 21 22 23 24 25 VCC VCC R9 VCC R10 VCC R11 R12 14 15 16 17 13 12 11 10 SW1 SW2 SW3 SW4 8255 Hình 4.12 – Kết nối phím nhấn với 8255 Chương trình hợp ngữ kiểm tra phím SW1, SW2, SW3, SW4 hiển thị trạng thái phím nhấn lên hình: MODEL SMALL STACK 100h DATA Msg DB ‘Da nhan phim: SW‘ sw DB ?,13,10,’$’ CODE Main PROC MOV AX,@DATA MOV DS,AX MOV AL,81h MOV DX,303h OUT DX,AL Start: MOV INT CMP JNE AH,0Bh 21h AL,0 Exit MOV DX,302h IN AL,DX Phạm Hùng Kim Khánh ; Định cấu hình cho 8255 ; PA, PB, PC (high): xuất ; PC (low): nhập ; Kiểm tra phím nhấn ; Nếu có phím nhấn ; kết thúc chương trình ; Đọc từ Port C để kiểm tra ; phím nhấn Trang 117 Giáo trình vi xử lý Sw1: Sw2: Sw3: Sw4: AND AL,0Fh CMP AL,00001110b JE Sw1 CMP AL,00001101b JE Sw2 CMP AL,00001011b JE Sw3 CMP AL,00000111b JE Sw4 JMP Start Giao tiếp với thiết bị dơn giản ; Xoá bit cao ; Nếu nhấn SW1 PC0 = ; Nếu nhấn SW2 PC1 = ; Nếu nhấn SW3 PC2 = ; Nếu nhấn SW4 PC3 = CALL Delay MOV sw,’1’ MOV AH,09h LEA DX,Msg INT 21h JMP Start CALL Delay MOV sw,’2’ MOV AH,09h LEA DX,Msg INT 21h JMP Start CALL Delay MOV sw,’3’ MOV AH,09h LEA DX,Msg INT 21h JMP Start CALL Delay MOV sw,’4’ MOV AH,09h LEA DX,Msg INT 21h JMP Start Exit: MOV AH,4Ch INT 21h ; Kết thúc chương trình Main ENDP ; Delay PROC PUSH CX MOV CX,0FFFFh LOOP $ Phạm Hùng Kim Khánh Trang 118 Giáo trình vi xử lý Giao tiếp với thiết bị dơn giản POP CX RET Delay ENDP ; END Main 2.2 Giao tiếp bàn phím Hex Bàn phím Hex bàn phím xây dựng theo cấu trúc ma trận gồm 16 phím chia thành hàng cột (hình 4.13) VCC R R R R A B C D E F CON8 J1 Hình 4.13 – Cấu trúc bàn phím Hex Lưu ý không nhấn phím hàng bàn phím Hex nối với Vcc thông qua điện trở R nên có mức logic Để phân biệt trạng thái phím nhấn mức logic nhấn phím phải mức logic Mà nhấn phím tương ứng hàng cột bàn phím Hex kết nối với Do đó, để thực kiểm tra phím ta phải cho trước cột chứa phím tương ứng mức logic 0, sau kiểm tra hàng phím, hàng = có nhấn phím hàng = không nhấn phím Ví dụ muốn kiểm tra phím ta cho cột chứa phím mức logic (chân J1, cột khác = 1, nghĩa liệu J1 1000xxxxb), sau thực kiểm tra chân J1 (hàng phím 4), chân = phím nhấn Xét sơ đồ kết nối bàn phím Hex với 8255 hình 4.14 (giả sử địa Port A, B, C CR 8255 300h, 301h, 302h 303h) Ở ta thực kết nối với Port C 8255 Port C chia thành phần: bit cao bit thấp xuất nhập độc lập Port A Port B đồng thời xuất hay nhập Phạm Hùng Kim Khánh Trang 119 Giáo trình vi xử lý Giao tiếp với thiết bị dơn giản để xác định có phím nhấn bàn phím Hex hay không phải xuất liệu điều khiển cột đọc liệu từ hàng bàn phím VCC U17 34 33 32 31 30 29 28 27 35 36 D0 D1 D2 D3 D4 D5 D6 D7 PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 A0 A1 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 RESET RD WR CS PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 40 39 38 37 R R R 18 19 20 21 22 23 24 25 14 15 16 17 13 12 11 10 R A B C D E F 8255 Hình 4.14 – Sơ đồ kết nối bàn phím Hex với 8255 Chương trình hợp ngữ kiểm tra bàn phím sau: MODEL SMALL STACK 100h DATA CODE Main PROC MOV AX,@DATA MOV DS,AX MOV AL,81h MOV DX,303h OUT DX,AL Start: MOV AH,0Bh INT 21h CMP AL,0 JE Next JMP Exit Next: MOV DX,302h MOV AL,11100000b Phạm Hùng Kim Khánh ; Định cấu hình cho 8255 ; PA, PB, PC (high): xuất ; PC (low): nhập ; Kiểm tra phím nhấn ; Nếu có phím nhấn ; kết thúc chương trình ; Địa Port C ; Cho PC4 = ứng với Trang 120 Giáo trình vi xử lý OUT DX,AL IN AL,DX AND AL,0Fh CMP AL,00001110b JNE Not0 CALL Sw0 Not0: CMP AL,00001101b JNE Not4 CALL Sw4 Not4: CMP AL,00001011b JNE Not8 CALL Sw8 Not8: CMP AL,00000111b JNE NotC CALL SwC NotC: MOV DX,302h MOV AL,11010000b OUT DX,AL IN AL,DX AND AL,0Fh CMP AL,00001110b JNE Not1 CALL Sw1 Not1: CMP AL,00001101b JNE Not5 CALL Sw5 Not5: CMP AL,00001011b JNE Not9 CALL Sw9 Not9: CMP AL,00000111b JNE NotD CALL SwD NotD: MOV DX,302h Phạm Hùng Kim Khánh Giao tiếp với thiết bị dơn giản ; ; ; ; phím 0,4,8,C Đọc kiểm tra hàng Xoá bit cao Nếu nhấn phím PC0 = ; Nếu nhấn phím PC1 = ; Nếu nhấn phím PC2 = ; Nếu nhấn phím C PC3 = ; ; ; ; ; ; Địa Port C Cho PC5 = ứng với phím 1,5,9,D Đọc kiểm tra hàng Xoá bit cao Nếu nhấn phím PC0 = ; Nếu nhấn phím PC1 = ; Nếu nhấn phím PC2 = ; Nếu nhấn phím D PC3 = ; Địa Port C Trang 121 Giáo trình vi xử lý MOV AL,10110000b OUT DX,AL IN AL,DX AND AL,0Fh CMP AL,00001110b JNE Not2 CALL Sw2 Not2: CMP AL,00001101b JNE Not6 CALL Sw6 Not6: CMP AL,00001011b JNE NotA CALL SwA NotA: CMP AL,00000111b JNE NotE CALL SwE NotE: MOV DX,302h MOV AL,01110000b OUT DX,AL IN AL,DX AND AL,0Fh CMP AL,00001110b JNE Not3 CALL Sw3 Not3: CMP AL,00001101b JNE Not7 CALL Sw7 Not7: CMP AL,00001011b JNE NotB CALL SwB NotB: CMP AL,00000111b JNE NotF CALL SwF Giao tiếp với thiết bị dơn giản ; ; ; ; ; Cho PC6 = ứng với phím 2,6,A,E Đọc kiểm tra hàng Xoá bit cao Nếu nhấn phím PC0 = ; Nếu nhấn phím PC1 = ; Nếu nhấn phím A PC2 = ; Nếu nhấn phím E PC3 = ; ; ; ; ; ; Địa Port C Cho PC7 = ứng với phím 3,7,B,F Đọc kiểm tra hàng Xoá bit cao Nếu nhấn phím PC0 = ; Nếu nhấn phím PC1 = ; Nếu nhấn phím B PC2 = ; Nếu nhấn phím F PC3 = NotF: Phạm Hùng Kim Khánh Trang 122 Giáo trình vi xử lý Giao tiếp với thiết bị dơn giản JMP Start Exit: MOV AH,4Ch INT 21h Main ENDP ; - ; Kết thúc chương trình Sw0 PROC ; Chương trình cho phím RET Sw0 ENDP ; Sw1 PROC ; Chương trình cho phím RET Sw1 ENDP ; Sw2 PROC ; Chương trình cho phím RET Sw2 ENDP ; Sw3 PROC ; Chương trình cho phím RET Sw3 ENDP ; Sw4 PROC ; Chương trình cho phím RET Sw4 ENDP ; Sw5 PROC ; Chương trình cho phím RET Sw5 ENDP ; Sw6 PROC ; Chương trình cho phím RET Sw6 ENDP ; Phạm Hùng Kim Khánh Trang 123 Giáo trình vi xử lý Giao tiếp với thiết bị dơn giản Sw7 PROC ; Chương trình cho phím RET Sw7 ENDP ; Sw8 PROC ; Chương trình cho phím RET Sw8 ENDP ; Sw9 PROC ; Chương trình cho phím RET Sw9 ENDP ; SwA PROC ; Chương trình cho phím A RET SwA ENDP ; SwB PROC ; Chương trình cho phím B RET SwB ENDP ; SwC PROC ; Chương trình cho phím C RET SwC ENDP ; SwD PROC ; Chương trình cho phím D RET SwD ENDP ; SwE PROC ; Chương trình cho phím E RET SwE ENDP ; SwF PROC Phạm Hùng Kim Khánh Trang 124 Giáo trình vi xử lý Giao tiếp với thiết bị dơn giản ; Chương trình cho phím F RET SwF ENDP ; Delay PROC PUSH CX MOV CX,0FFFFh LOOP $ POP CX RET Delay ENDP END Main Phạm Hùng Kim Khánh Trang 125 Giáo trình vi xử lý Giao tiếp với thiết bị dơn giản BÀI TẬP CHƯƠNG Giả sử Port A 8255 kết nối hình 4.4, Port C kết nối với công tắc SW1, SW2 tương ứng PC7, PC6 tương tự hình 4.12 Viết chương trình hợp ngữ điều khiển công tắc cho: - Nhấn SW1: LED sáng từ ngoài, lần sáng tương ứng LED - Nhấn SW2: tắt LED kết thúc chương trình Giả sử Port A Port B 8255 kết nối với ma trận LED 5x8 hình 4.7 Port C kết nối với bàn phím Hex hình 4.14 Viết chương trình hợp ngữ điều khiển bàn phím Hex cho: - Nhấn phím 2: sáng số ‘2’ ma trận LED - Nhấn phím D: sáng chữ ‘D’ ma trận LED Phạm Hùng Kim Khánh Trang 126 [...]... nội một bộ nhớ tiêu biểu Phạm Hùng Kim Khánh Trang 12 Giáo trình vi xử lý Tổ chức hệ thống vi xử lý CS (Chip Select):cho phép bộ nhớ hoạt động OE (Output Enable): cho phép đọc dữ liệu từ bộ nhớ ra ngồi WE (Write Enable): cho phép ghi dữ liệu vào trong bộ nhớ 4 Giới thiệu vi xử lý 4.1 Các thế hệ vi xử lý - Thế hệ 1 (1971 – 1973): vi xử lý 4 bit, đại diện là 4004, 4040, 8080 (Intel) hay IPM-16 (National... Sau khi lệnh đã thực thi, bộ giải mã lệnh sẽ đặt PC đến địa chỉ của lệnh kế 4.2.4 Sơ đồ khối của hệ vi xử lý cơ bản ADDRESS BUS Input Port μP Memory Output Port DATA BUS CONTROL BUS Hình 1.9 – Sơ đồ khối hệ vi xử lý Mọi hoạt động cơ bản của một hệ vi xử lý đều giống nhau, khơng phụ thuộc loại vi xử lý hay q trình thực hiện μP sẽ đọc một lệnh từ bộ nhớ (memory), thực thi lệnh và sau đó đọc lệnh kế Q... nhân, chia và xử lý chuỗi + Địa chỉ bộ nhớ có thể từ 1 ÷ 16 MB và có thể phân biệt tới 64KB địa chỉ cho ngoại vi + Sử dụng cơng nghệ HMOS + Tốc độ 0.1 ÷ 1 μs / lệnh với tần số xung nhịp 5 ÷ 10 MHz - Thế hệ 4: vi xử lý 32 bit 68020/68030/68040/68060 (Motorola) hay 80386/80486 (Intel) và vi xử lý 32 bit Pentium (Intel) + Bus địa chỉ 32 bit, phân biệt 4 GB bộ nhớ + Có thể dùng thêm các bộ đồng xử lý (coprocessor)... đơn giản và phải cần nhiều vi mạch phụ trợ - Thế hệ 2 (1974 – 1977): vi xử lý 8 bit, đại diện là 8080, 8085 (Intel) hay Z80 (Zilog) + Tập lệnh phong phú hơn + Địa chỉ có thể đến 64 KB Một số bộ vi xử lý có thể phân biệt 256 địa chỉ cho thiết bị ngoại vi + Sử dụng cơng nghệ NMOS hay CMOS + Tốc độ 1 ÷ 8 μs / lệnh với tần số xung nhịp 1 ÷ 5 MHz - Thế hệ 3 (1978 – 1982): vi xử lý 16 bit, đại diện là 68000/68010... (Intel) + Bus địa chỉ 32 bit, phân biệt 4 GB bộ nhớ + Có thể dùng thêm các bộ đồng xử lý (coprocessor) + Có khả năng làm vi c với bộ nhớ ảo + Có các cơ chế pipeline, bộ nhớ cache + Sử dụng cơng nghệ HCMOS - Thế hệ 5: vi xử lý 64 bit 4.2 Vi xử lý (μP – microproccessor) 4.2.1 Phân loại vi xử lý - Multi chip: dùng 2 hay nhiều chip LSI (Large Scale Intergration: tích hợp từ 1000 ÷ 10000 transistor) cho ALU và... decoder ALU Addr register Program counter Internal bus BIU Data bus driver Data bus Control bus driver Addr bus driver Control bus Addr bus Hình 1.8 – Sơ đồ khối của vi xử lý Phạm Hùng Kim Khánh Trang 14 Giáo trình vi xử lý Tổ chức hệ thống vi xử lý Khi chương trình bắt đầu, bộ đếm chương trình (PC) sẽ ở địa chỉ bắt đầu Địa chỉ này được chuyển qua bộ nhớ thơng qua address bus Khi tín hiệu Read đưa vào control... Chú ý rằng các đơn vị EU và BIU làm vi c độc lập với nhau nên BIU có khả năng đang nhận một lệnh mới trong khi EU dang thực thi lệnh trước đó Khi EU đã thực hiện xong lệnh, nó sẽ lấy mã lệnh kế tiếp trong hàng đợi lệnh (instruction queue) Phạm Hùng Kim Khánh Trang 28 Giáo trình vi xử lý Tổ chức hệ thống vi xử lý Kiến trúc nội của μP 8086 ở hình 1.24 Nó có 2 bộ xử lý riêng: BIU và EU BIU cung cấp các... trình vi xử lý Tổ chức hệ thống vi xử lý ™ Địa chỉ logic và địa chỉ vật lý: Các địa chỉ trong một đoạn thay đổi từ 0000h ÷ FFFFh, tương ứng với chiều dài đoạn là 64 KB Một địa chỉ trong một đoạn được gọi là địa chỉ logic hay offset Ví dụ như địa chỉ logic 0010h của đoạn mã trong hình 1.28 sẽ có địa chỉ thật sự là 28000h + 0010h = 28010h Địa chỉ này gọi là địa chỉ vật lý Như vậy, địa chỉ vật lý chính... Hùng Kim Khánh Trang 20 Giáo trình vi xử lý Tổ chức hệ thống vi xử lý taw: thời gian truy xuất ghi (access write) twp: độ rộng xung ghi tối thiểu (write pulse) tAS: thời gian địa chỉ hợp lệ trước khi WR = 0 Thơng thường, ta khơng quan tâm đến địa chỉ cho đến khi xác nhận CS nên thường tcw = taw 5 μP 8086/8088 5.1 Giới thiệu Tất cả các máy vi tính IBM họ PC hoặc các máy vi tính tương thích IBM đều sử dụng... 10 9 OF DF IF Phạm Hùng Kim Khánh 8 TF 7 SF 6 ZF 5 X 4 3 AF X 2 PF 1 X 0 CF Trang 31 Giáo trình vi xử lý - Tổ chức hệ thống vi xử lý OF (Overflow - tràn): OF = 1 xác định tràn số học, xảy ra khi kết quả vượt ra ngồi phạm vi biểu diễn DF (Direction- hướng): xác định hướng chuyển string, DF = 1 khi μP làm vi c với string theo thứ tự từ phải sang trái IF (Interrupt - ngắt): cho phép hay cấm các interrupt

Ngày đăng: 16/10/2016, 16:53

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

Tài liệu liên quan