Giáo trình vi xử lý

Giao tiếp với các thiết bị dơn giản

CHƯƠNG 4: GIAO TIẾP VỚI CÁC THIẾT BỊ ĐƠN GIẢN
1. Giao tiếp LED (Light Emitting Diode)
Để giúp cho người sử dụng có thể giao tiếp với máy móc thiết bị điều khiển, ta cần phải có một màn hình hiển thị số và chữ cái.Trong các hệ thống cần hiển thị một lượng lớn thông tin dữ liệu thường dùng CRT (màn hình) để hiển thị còn khi chỉ cần hiển thị một lượng nhỏ thông tin thì sẽ dùng các thiết bị hiển thị số đơn giản do giá rẻ và dễ điều khiển. Có nhiều loại màn hình hiển thị như CRT, LCD, LED, … Ta chỉ xét thiết bị hiển thị đơn giản là LED. Hiển thị số và chữ dùng LED có 3 loại chính.Với các ứng dụng hiển thị dùng để chỉ thị thì dùng LED đơn, để hiện số và chữ số thì dùng Led 7 đoạn hay Led 18 đoạn, để hiển thị ký tự bất kỳ thì dùng ma trận Led. 1.1. Giao tiếp LED đơn

Hình 4.1 - Mô tả LED và biểu diễn trong mạch Khi LED sáng, dòng qua LED khoảng 10 – 40 mA và điện áp rơi trên LED vào khoảng 1.8V – 2V. Khi đó, ta có mạch điện điều khiển LED như sau:
VCC

D1 IN LED

R1
IN

D1

R1

RESISTOR

LED

RESISTOR

Hình a

Hình b Hình 4.2 – Sơ đồ kết nối LED đơn

Giả sử mạch kết nối với 8255A có điện áp ứng với mức logic 0 từ 0 – 0.4V và mức logic 1 từ 4.6V – 5V. Chọn dòng qua LED là 20 mA và điện áp rơi trên LED là 2V. Xét hình a: LED sáng khi mức logic tại chân IN là mức 0, ứng với điện áp 0.4V nên giá trị điện trở R1 là: R1 =
Vcc − VLED − 0.4 5 − 2 − 0.4 = = 130Ω I LED 20 x10 −3

chọn R1 = 150 Ω

Phạm Hùng Kim Khánh

Trang 109

Giáo trình vi xử lý

Giao tiếp với các thiết bị dơn giản

Xét hình b: LED sáng khi mức logic tại chân IN là mức 1, ứng với điện áp 4.6V nên giá trị điện trở R1 là: R1 =
VIN − VLED 4 .6 − 2 = = 130Ω I LED 20 x10 −3

chọn R1 = 150 Ω

Tuy nhiên khi thiết kế mạch như hình b thì lưu ý rằng dòng tại chân IN phải đáp ứng được giá trị 20 mA. Đối với 8255A, dòng ngõ ra vào khoảng 2.5 mA nên không đáp ứng đủ dòng để sáng LED nên phải dùng thêm mạch khuếch đại. Thông thường khi thiết kế giao tiếp với 8255A, ta sử dụng mạch hình a nhưng lưu ý là đối với cách thiết kế như trên thì dòng sẽ đi trực tiếp vào cổng vào/ra của 8255A nên ta có thể dùng thêm các cổng đệm hay đảo để tránh làm hư cổng.
VCC U1A D1 IN 1 2 LED 74LS04 RESISTOR R1

Hình 4.3 – Sơ đồ kết nối LED đơn dùng cổng đảo Xét sơ đồ kết nối giữa LED đơn và 8255 như sau:
VCC

R1

R2

R3

R4

R5

R6

R7

R8

D1 LED

D2 LED

D3 LED

D4 LED

D5 LED

D6 LED

D7 LED

D8 LED

7404 34 33 32 31 30 29 28 27 9 8 35 5 36 6 D0 D1 D2 D3 D4 D5 D6 D7 A0 A1 RESET RD WR CS PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 8255 4 3 2 1 40 39 38 37 18 19 20 21 22 23 24 25 14 15 16 17 13 12 11 10 1 2

1

2

1

2

1

2

1

2

1

2

1

2

1

2

Hình 4.4 - Kết nối giữa LED đơn và 8255

Phạm Hùng Kim Khánh

Trang 110

Giáo trình vi xử lý

Giao tiếp với các thiết bị dơn giản

Chương trình hợp ngữ quét LED từ trái sang phải như sau (giả sử địa chỉ Port A, Port B, Port C và CR của 8255 lần lượt là 300h, 301h, 302h và 303h): .MODEL SMALL .STACK 100h .DATA Led_data DB 01h,02h,04h,08h,10h,20h,40h,80h .CODE Main PROC MOV AX,@DATA MOV DS, AX ; Gán địa chỉ cho Data segment MOV AL,80h ; Định cấu hình cho 8255 MOV DX,303h ; Port A: xuất, Port B: xuất OUT DX,AL ; Port C: xuất MOV BX,0 Lap: MOV AL,Led_data[BX] MOV DX,300h ; Địa chỉ LED OUT DX,AL MOV CX,0FFh Delay: PUSH CX MOV CX,0FFFFh LOOP $ POP CX LOOP delay INC BX CMP BX,8 JNE lap MOV AH,4Ch INT 21h Main ENDP END Main 1.2. ; Tạo thời gian trễ

; LED có 8 trạng thái ; Kết thúc chương trình

Giao tiếp ma trận LED

Ma trận LED bao gồm nhiều LED cùng nằm trong một vỏ chia thành nhiều cột và hàng, mỗi giao điểm giữa hàng và cột có thể có 1 LED (ma trận LED một màu) hay nhiều LED (2 LED tại một vị trí tạo thành ma trận LED 3 màu). Để LED tại một vị trí nào đó sáng thì phải cấp điện áp dương tại Anode và điện áp âm tại Cathode (nghĩa là cấp mức logic 1 tại hàng và logic 0 tại cột ứng với ma trận LED có kết nối như hình 4.5). Trên cơ sở cấu trúc như hình vẽ 4.5, ta có thể mở rộng hàng và cột của ma trận LED để tạo thành các bảng quang báo.

Phạm Hùng Kim Khánh

Trang 111

Giáo trình vi xử lý

Giao tiếp với các thiết bị dơn giản

Hình 4.5 – Cấu trúc và hình dạng của ma trận LED 5x8

Hình 4.6 – Sáng chữ ‘A’ trên 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 các thiết bị dơn giản

Xét sơ đồ kết nối ma trận LED với 8255 như hình 4.7 trong đó Port A điều khiển hàng thông qua các transistor và Port B điều khiển cột (địa chỉ Port A, B, C và CR của 8255 lần lượt là 300h, 301h, 302h và 303h).
R2x8 VCC 1 2 3 4 5 6 7 8 16 15 14 13 12 11 10 9

U10 34 33 32 31 30 29 28 27 9 8 35 5 36 6 D0 D1 D2 D3 D4 D5 D6 D7 A0 A1 RESET RD WR CS PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 8255 4 3 2 1 40 39 38 37 18 19 20 21 22 23 24 25 14 15 16 17 13 12 11 10 1 2 3 4 5 6 7 8

R1x8 16 15 14 13 12 11 10 9 Q1x8

1

2

1

2

7404x5

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 là dòng qua LED nên chọn Q1 có β = 50, VCE = 0,2V , VBE = 0,7V R2 =

Vcc − VLED − VOL −7404 − VCE 5 − 2 − 0, 4 − 0, 2 = = 240 Ω, chọn R2 = 220 Ω 0,01 I LED
VOH −8255 − VBE − VLED − VOL−7404 4,6 − 0,7 − 2 − 0, 4 = 7.5 KΩ, chọn R1 = = 0,01/ 50 IB

R1 =

8.2 KΩ
Phạm Hùng Kim Khánh Trang 113

Giáo trình vi xử lý

Giao tiếp với các thiết bị dơn giản

Để hiển thị một ký tự trên ma trận LED, ta sẽ cho sáng các LED tương ứng. Ví dụ như để sáng chữ ‘A’ trên ma trận LED, ta cho tương ứng LED sáng như hình 4.6. Tuy nhiên, ta không thể cho sáng đồng thời 2 LED tại 2 vị trí hàng và cột khác nhau vì sẽ ảnh hưởng đến các LED còn lại. Ví dụ như khi sáng LED tại hàng 1, cột 2 (PA0 = 1, PB1 = 1) và hàng 2, cột 1 (PA1 = 1, PB0 = 1) thì do PA0 = 1, PB0 = 1; PA1 = 1, PB1 = 1 nên LED tại hàng 1, cột 1 và hàng 2, cột 2 cũng sáng. Như vậy để sáng ký tự ‘A’ trên ma trận LED thì phải dùng phương pháp quét khi hiển thị dữ liệu trên ma trận LED. Quá trình quét có thể thực hiện quét dòng hay cột. Khi thực hiện quét cột, tại mỗi thời điểm chỉ có một cột sáng. Dữ liệu cho Port B và Port B của 8255A như sau: Cột 1: sáng 7 LED

PB0 = 1, PB1 – 4 = 0: PB = xxx0 0001b (01h) PA0 = 0, PA1 – 7 = 1: PA = 1111 1110b (0FEh)
Cột 2: sáng 2 LED

PB0 = 0, PB2 – 4 = 0, PB1 = 1: PB = xxx0 0010b (02h) PA0 = 1, PA4 = 1, PA1 – 3 = 0, PA5 – 7 = 0: PA = 0001 0001b (11h)
Cột 3: giống cột 2

PB0 - 1 = 0, PB3 – 4 = 0, PB2 = 1: PB = xxx0 0100b (04h) PA0 = 1, PA4 = 1, PA1 – 3 = 0, PA5 – 7 = 0: PA = 0001 0001b (11h)
Cột 4: giống cột 2

PB0 - 2 = 0, PB4 = 0, PB3 = 1: PB = xxx0 1000b (08h) PA0 = 1, PA4 = 1, PA1 – 3 = 0, PA5 – 7 = 0: PA = 0001 0001b (11h)
Cột 5: giống cột 1

PB0 - 3 = 0, PB4 = 1: PB = xxx1 0000b (10h) PA0 = 0, PA1 – 7 = 1: PA = 1111 1110b (0FEh)
Chương trình hiển thị cho ma trận LED như 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 chỉ 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 các thiết bị dơn giản

MOV OUT Start: MOV INT CMP JNE Lap:

DX,303h DX,AL AH,0Bh 21h AL,0 Exit

; Port A: xuất, Port B: xuất ; Port C: xuất ; Kiểm tra phím nhấn ; Nếu có phím nhấn ; thì kết thúc chương trình

MOV BX,0 MOV AL,pa[BX] MOV DX,300h OUT DX,AL MOV AL,pb[BX] MOV DX,301h OUT DX,AL PUSH CX MOV CX,0FFFFh LOOP $ POP CX INC CMP JNE JMP BX BX,5 lap Start ; Xuất ra hàng

; Xuất ra cột ; Tạo thời gian trễ

; Quét 5 cột

Exit: MOV AH,4Ch INT 21h Main ENDP END Main

; Kết thúc chương trình

2. Giao tiếp bàn phím
2.1.
VCC

Giao tiếp phím đơn
R SW To uP

VCC

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 các 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 khi hệ thống vi xử lý không đòi hỏi nhiều giá trị nhập (chẳng như chỉ cần các điều khiển đóng mở thiết bị). Sơ đồ kết nối phím đơn mô tả như hình 4.8 hay 4.9. Khi thực hiện kiểm tra phím nhấn, vấn đề cần thiết là phải thực hiện chống dội. Hiện tượng dội khi nhấn phím có thể mô tả như hình 4.10 (giả sử khi nhấn phím thì ngõ ra ở mức logic 1 và nhả phím thì ngõ ra ở mức logic 0 – hình 4.8b). Quá trình chống dội có thể thực hiện bằng phần mềm hay phần cứng.

Hình 4.10 – Hiện tượng dội khi nhấn phím

Phần mềm: Do thời gian dội của phím vào khoảng 20ms nên quá trình chống dội bằng phần mềm đơn giản là tạo một thời gian trễ đủ lớn để chương trình bỏ qua ảnh hưởng khi dội. Phần cứng: Khi thực hiện chống dội bằng phần cứng, ta có thể thực hiện bằng cách sử dụng các cổng NAND hay thực hiện bằng mạch RC.
VCC
VCC R

R1

R2

1 SW 2
To uP

3

To uP

7400
SW C

4 6 5

a/

b/

7400

Hình 4.11 – Chống dội phím nhấn bằng 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 các thiết bị dơn giản

Tuy nhiên khi thực hiện thiết kế phần cứng, thông thường ta sẽ chống dội bằng phần mềm để đơn giản mạch phần cứng. Xét sơ đồ phần cứng thiết kế như hình 4.12 (giả sử địa chỉ Port A, B, C và CR của 8255 lần lượt là 300h, 301h, 302h và 303h).
U16 34 33 32 31 30 29 28 27 9 8 35 5 36 6 D0 D1 D2 D3 D4 D5 D6 D7 A0 A1 RESET RD WR CS PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 8255 4 3 2 1 40 39 38 37 18 19 20 21 22 23 24 25 14 15 16 17 13 12 11 10 SW1 SW2 SW3 SW4

VCC R9

VCC R10

VCC R11

VCC R12

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 các phím SW1, SW2, SW3, SW4 và hiển thị trạng thái phím nhấn lên mà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 ; Định cấu hình cho 8255 ; PA, PB, PC (high): xuất ; PC (low): nhập

AH,0Bh 21h AL,0 Exit

; Kiểm tra phím nhấn ; Nếu có phím nhấn ; thì kết thúc chương trình ; Đọc từ Port C để kiểm tra ; phím nhấn
Trang 117

MOV DX,302h IN AL,DX
Phạm Hùng Kim Khánh

Giáo trình vi xử lý

Giao tiếp với các thiết bị dơn giản

Sw1:

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 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

; Xoá 4 bit cao ; Nếu nhấn SW1 thì PC0 = 0 ; Nếu nhấn SW2 thì PC1 = 0 ; Nếu nhấn SW3 thì PC2 = 0 ; Nếu nhấn SW4 thì PC3 = 0

Sw2:

Sw3:

Sw4:

Exit: MOV AH,4Ch INT 21h Main ENDP ;------------Delay PROC PUSH CX MOV CX,0FFFFh LOOP $
Phạm Hùng Kim Khánh

; Kết thúc chương trình

Trang 118

Giáo trình vi xử lý

Giao tiếp với các 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 là bàn phím xây dựng theo cấu trúc ma trận gồm 16 phím chia thành 4 hàng và 4 cột (hình 4.13).
VCC

R

R

R

R 0 1 2 3

4

5

6

7

8 CON8 1 2 3 4 5 6 7 8 J1

9

A

B

C

D

E

F

Hình 4.13 – Cấu trúc bàn phím Hex Lưu ý rằng khi không nhấn phím thì hàng của bàn phím Hex nối với Vcc thông qua điện trở R nên có mức logic 1. Để phân biệt được trạng thái của phím nhấn thì mức logic khi nhấn phím phải là mức logic 0. Mà khi nhấn một phím nào đó thì tương ứng hàng và cột của bàn phím Hex sẽ kết nối với nhau. Do đó, để thực hiện kiểm tra một phím thì 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 của phím, nếu hàng = 0 thì có nhấn phím còn hàng = 1 thì không nhấn phím. Ví dụ như muốn kiểm tra phím 4 thì ta cho cột chứa phím 4 ở mức logic 0 (chân 5 của J1, các cột khác = 1, nghĩa là dữ liệu tại J1 là 1000xxxxb), sau đó thực hiện kiểm tra chân 2 của J1 (hàng của phím 4), nếu chân này = 0 thì phím 4 được nhấn. Xét sơ đồ kết nối của bàn phím Hex với 8255 như hình 4.14 (giả sử địa chỉ Port A, B, C và CR của 8255 lần lượt là 300h, 301h, 302h và 303h). Ở đây ta thực hiện kết nối với Port C của 8255 do Port C có thể chia thành 2 phần: 4 bit cao và 4 bit thấp có thể xuất nhập độc lập trong khi đó Port A và Port B chỉ có thể đồ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 các thiết bị dơn giản

còn để xác định có phím nhấn trên bàn phím Hex hay không thì phải xuất dữ liệu điều khiển cột và đọc dữ liệu từ hàng của bàn phím.
VCC U17 34 33 32 31 30 29 28 27 9 8 35 5 36 6 D0 D1 D2 D3 D4 D5 D6 D7 A0 A1 RESET RD WR CS PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 8255 4 3 2 1 40 39 38 37 18 19 20 21 22 23 24 25 14 15 16 17 13 12 11 10 R R R R 0 1 2 3

4

5

6

7

8

9

A

B

C

D

E

F

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 như 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 ; thì kết thúc chương trình ; Địa chỉ Port C ; Cho PC4 = 0 ứng với các
Trang 120

Giáo trình vi xử lý

Giao tiếp với các thiết bị dơn giản

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

; ; ; ;

phím 0,4,8,C Đọc về kiểm tra hàng Xoá 4 bit cao Nếu nhấn phím 0 thì PC0 = 0

; Nếu nhấn phím 4 thì PC1 = 0

; Nếu nhấn phím 8 thì PC2 = 0

; Nếu nhấn phím C thì PC3 = 0

; ; ; ; ; ;

Địa chỉ Port C Cho PC5 = 0 ứng với các phím 1,5,9,D Đọc về kiểm tra hàng Xoá 4 bit cao Nếu nhấn phím 1 thì PC0 = 0

; Nếu nhấn phím 5 thì PC1 = 0

; Nếu nhấn phím 9 thì PC2 = 0

; Nếu nhấn phím D thì PC3 = 0

; Địa chỉ Port C
Trang 121

Giáo trình vi xử lý

Giao tiếp với các thiết bị dơn giản

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 NotF:
Phạm Hùng Kim Khánh

; ; ; ; ;

Cho PC6 = 0 ứng với các phím 2,6,A,E Đọc về kiểm tra hàng Xoá 4 bit cao Nếu nhấn phím 2 thì PC0 = 0

; Nếu nhấn phím 6 thì PC1 = 0

; Nếu nhấn phím A thì PC2 = 0

; Nếu nhấn phím E thì PC3 = 0

; ; ; ; ; ;

Địa chỉ Port C Cho PC7 = 0 ứng với các phím 3,7,B,F Đọc về kiểm tra hàng Xoá 4 bit cao Nếu nhấn phím 3 thì PC0 = 0

; Nếu nhấn phím 7 thì PC1 = 0

; Nếu nhấn phím B thì PC2 = 0

; Nếu nhấn phím F thì PC3 = 0

Trang 122

Giáo trình vi xử lý

Giao tiếp với các 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 0 RET Sw0 ENDP ;----------Sw1 PROC ; Chương trình cho phím 1 RET Sw1 ENDP ;----------Sw2 PROC ; Chương trình cho phím 2 RET Sw2 ENDP ;----------Sw3 PROC ; Chương trình cho phím 3 RET Sw3 ENDP ;----------Sw4 PROC ; Chương trình cho phím 4 RET Sw4 ENDP ;----------Sw5 PROC ; Chương trình cho phím 5 RET Sw5 ENDP ;----------Sw6 PROC ; Chương trình cho phím 6 RET Sw6 ENDP ;----------Phạm Hùng Kim Khánh Trang 123

Giáo trình vi xử lý

Giao tiếp với các thiết bị dơn giản

Sw7 PROC ; Chương trình cho phím 7 RET Sw7 ENDP ;----------Sw8 PROC ; Chương trình cho phím 8 RET Sw8 ENDP ;----------Sw9 PROC ; Chương trình cho phím 9 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 các 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 các thiết bị dơn giản

BÀI TẬP CHƯƠNG 4
1. Giả sử Port A của 8255 kết nối như hình 4.4, Port C kết nối với 2 công tắc SW1, SW2 tương ứng tại PC7, PC6 tương tự như hình 4.12. Viết chương trình hợp ngữ điều khiển công tắc sao cho: Nhấn SW1: LED sáng tuần tự từ trong ra ngoài, mỗi lần sáng tương ứng 2 LED. Nhấn SW2: tắt các LED và kết thúc chương trình Giả sử Port A và Port B của 8255 kết nối với ma trận LED 5x8 như hình 4.7 còn Port C kết nối với bàn phím Hex như hình 4.14. Viết chương trình hợp ngữ điều khiển bàn phím Hex sao cho: Nhấn phím 2: sáng số ‘2’ trên ma trận LED Nhấn phím D: sáng chữ ‘D’ trên ma trận LED

2.

-

Phạm Hùng Kim Khánh

Trang 126