Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 18 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
18
Dung lượng
360,08 KB
Nội dung
GiáotrìnhvixửlýGiaotiếpvớicácthiếtbịdơngiản
Phạm Hùng Kim Khánh Trang 109
CHƯƠNG 4: GIAOTIẾPVỚICÁCTHIẾT
BỊ ĐƠNGIẢN
1. Giaotiếp LED (Light Emitting Diode)
Để giúp cho người sử dụng có thể giaotiếpvới máy móc thiếtbị đ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ácthiếtbị hiển thị số đơngiả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ị đơngiả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. Giaotiế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:
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 =
Ω=
−−
=
−−
−
130
10x20
4.025
I
4.0VVcc
3
LED
LED
Æ chọn R1 = 150 Ω
D1
LED
R1
RESISTOR
IN
Hình a Hình b
D1
LED
R1
RESISTOR
VCC
IN
Giáo trìnhvixửlýGiaotiếpvớicácthiếtbịdơngiản
Phạm Hùng Kim Khánh Trang 110
8255
34
33
32
31
30
29
28
27
4
3
2
1
40
39
38
37
18
19
20
21
22
23
24
25
14
15
16
17
13
12
11
10
5
36
9
8
35
6
D0
D1
D2
D3
D4
D5
D6
D7
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
PC0
PC1
PC2
PC3
PC4
PC5
PC6
PC7
RD
WR
A0
A1
RESET
CS
1 2
1 2
R1
D5
LED
R2
D7
LED
R8R7R3 R5
1 2
1 2
D4
LED
D1
LED
VCC
1 2
D2
LED
R4
1 2
7404
1 2
D3
LED
D8
LED
1 2
R6
D6
LED
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 =
Ω=
−
=
−
−
130
10x20
26.4
I
VV
3
LED
LEDIN
Æ 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ế giaotiếpvớ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.
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:
Hình 4.4 - Kết nối giữa LED đơn và 8255
D1
LED
R1
RESISTOR
VCC
IN
1 2
U1A
74LS04
Giáo trìnhvixửlýGiaotiếpvớicácthiếtbịdơngiản
Phạm Hùng Kim Khánh Trang 111
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: ; Tạo thời gian trễ
PUSH CX
MOV CX,0FFFFh
LOOP $
POP CX
LOOP delay
INC BX
CMP BX,8 ; LED có 8 trạng thái
JNE lap
MOV AH,4Ch ; Kết thúc chươngtrình
INT 21h
Main ENDP
END Main
1.2. Giaotiế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.
Giáo trìnhvixửlýGiaotiếpvớicácthiếtbịdơngiản
Phạm Hùng Kim Khánh Trang 112
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
Giáo trìnhvixửlýGiaotiếpvớicácthiếtbịdơngiản
Phạm Hùng Kim Khánh Trang 113
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).
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 I
c
là dòng qua LED nên
chọn Q1 có β = 50, V
CE
= 0,2V , V
BE
= 0,7V
R2 =
LED OL 7404 CE
LED
Vcc V V V
I
−
−− −
=
520,40,2
0,01
−
−−
= 240 Ω, chọn R2 = 220 Ω
R1 =
OH 8255 BE LED OL 7404
B
VVVV
I
−−
−− −
=
4,60,720,4
0,01/ 50
−
−−
= 7.5 KΩ, chọn R1 =
8.2 KΩ
R1x8
1
2
3
4
5
6
7
8 9
10
11
12
13
14
15
16
U10
8255
34
33
32
31
30
29
28
27
4
3
2
1
40
39
38
37
18
19
20
21
22
23
24
25
14
15
16
17
13
12
11
10
5
36
9
8
35
6
D0
D1
D2
D3
D4
D5
D6
D7
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
PC0
PC1
PC2
PC3
PC4
PC5
PC6
PC7
RD
WR
A0
A1
RESET
CS
R2x8
1
2
3
4
5
6
7
8 9
10
11
12
13
14
15
16
1 2
Q1x8
7404x5
1 2
VCC
Giáo trìnhvixửlýGiaotiếpvớicácthiếtbịdơngiản
Phạm Hùng Kim Khánh Trang 114
Để 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 ; Định cấu hình cho 8255
Giáo trìnhvixửlýGiaotiếpvớicácthiếtbịdơngiản
Phạm Hùng Kim Khánh Trang 115
MOV DX,303h ; Port A: xuất, Port B: xuất
OUT DX,AL ; Port C: xuất
Start:
MOV AH,0Bh ; Kiểm tra phím nhấn
INT 21h
CMP AL,0 ; Nếu có phím nhấn
JNE Exit ; thì kết thúc chươngtrình
MOV BX,0
Lap:
MOV AL,pa[BX]
MOV DX,300h ; Xuất ra hàng
OUT DX,AL
MOV AL,pb[BX]
MOV DX,301h ; Xuất ra cột
OUT DX,AL
PUSH CX ; Tạo thời gian trễ
MOV CX,0FFFFh
LOOP $
POP CX
INC BX
CMP BX,5 ; Quét 5 cột
JNE lap
JMP Start
Exit:
MOV AH,4Ch ; Kết thúc chươngtrình
INT 21h
Main ENDP
END Main
2. Giaotiếp bàn phím
2.1. Giaotiếp phím đơn
Hình 4.8 – Sơ đồ kết nối phím nhấn (2 chân) vớivixửlý
R
VCC
SW
To uP
R
SW
To uP
VCC
a/ b/
Giáo trìnhvixửlýGiaotiếpvớicácthiếtbịdơngiản
Phạm Hùng Kim Khánh Trang 116
Hình 4.9 – Sơ đồ kết nối phím nhấn (3 chân) vớivixửlý
Các phím đơn dùng để điều khiển khi hệ thống vixử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 đơngiả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.
Hình 4.11 – Chống dội phím nhấn bằng phần cứng
R
VCC
To uP
SW
R
VCC
CSW
To uP
1
2
3
7400
4
5
6
7400
To uP
VCC
R1
SW
R2
a/ b
/
Giáo trìnhvixửlýGiaotiếpvớicácthiếtbịdơngiản
Phạm Hùng Kim Khánh Trang 117
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 để đơngiả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).
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 ; Định cấu hình cho 8255
MOV DX,303h ; PA, PB, PC (high): xuất
OUT DX,AL ; PC (low): nhập
Start:
MOV AH,0Bh ; Kiểm tra phím nhấn
INT 21h
CMP AL,0 ; Nếu có phím nhấn
JNE Exit ; thì kết thúc chươngtrình
MOV DX,302h ; Đọc từ Port C để kiểm tra
IN AL,DX ; phím nhấn
D0
34
D1
33
D2
32
D3
31
D4
30
D5
29
D6
28
D7
27
PA0
4
PA1
3
PA2
2
PA3
1
PA4
40
PA5
39
PA6
38
PA7
37
PB0
18
PB1
19
PB2
20
PB3
21
PB4
22
PB5
23
PB6
24
PB7
25
PC0
14
PC1
15
PC2
16
PC3
17
PC4
13
PC5
12
PC6
11
PC7
10
RD
5
WR
36
A0
9
A1
8
RESET
35
CS
6
U16
8255
R9
VCC
SW1
R10
VCC
SW2
R11
VCC
SW3
R12
VCC
SW4
Giáo trìnhvixửlýGiaotiếpvớicácthiếtbịdơngiản
Phạm Hùng Kim Khánh Trang 118
AND AL,0Fh ; Xoá 4 bit cao
CMP AL,00001110b ; Nếu nhấn SW1 thì PC0 = 0
JE Sw1
CMP AL,00001101b ; Nếu nhấn SW2 thì PC1 = 0
JE Sw2
CMP AL,00001011b ; Nếu nhấn SW3 thì PC2 = 0
JE Sw3
CMP AL,00000111b ; Nếu nhấn SW4 thì PC3 = 0
JE Sw4
JMP Start
Sw1:
CALL Delay
MOV sw,’1’
MOV AH,09h
LEA DX,Msg
INT 21h
JMP Start
Sw2:
CALL Delay
MOV sw,’2’
MOV AH,09h
LEA DX,Msg
INT 21h
JMP Start
Sw3:
CALL Delay
MOV sw,’3’
MOV AH,09h
LEA DX,Msg
INT 21h
JMP Start
Sw4:
CALL Delay
MOV sw,’4’
MOV AH,09h
LEA DX,Msg
INT 21h
JMP Start
Exit:
MOV AH,4Ch ; Kết thúc chươngtrình
INT 21h
Main ENDP
;
Delay PROC
PUSH CX
MOV CX,0FFFFh
LOOP $
[...]... Kim Khánh Trang 122 Giáo trìnhvixửlý Giao tiếpvớicácthiếtbịdơngiản JMP Start Exit: MOV AH,4Ch INT 21h Main ENDP ; - ; Kết thúc chươngtrình Sw0 PROC ; Chươngtrình cho phím 0 RET Sw0 ENDP ; Sw1 PROC ; Chươngtrình cho phím 1 RET Sw1 ENDP ; Sw2 PROC ; Chươngtrình cho phím 2 RET Sw2 ENDP ; Sw3 PROC ; Chươngtrình cho phím 3 RET Sw3 ENDP ; Sw4 PROC ; Chươngtrình cho phím 4... ENDP ; Sw5 PROC ; Chươngtrình cho phím 5 RET Sw5 ENDP ; Sw6 PROC ; Chươngtrình cho phím 6 RET Sw6 ENDP ; Phạm Hùng Kim Khánh Trang 123 Giáo trìnhvixửlý Giao tiếpvớicácthiếtbịdơngiản Sw7 PROC ; Chươngtrình cho phím 7 RET Sw7 ENDP ; Sw8 PROC ; Chươngtrình cho phím 8 RET Sw8 ENDP ; Sw9 PROC ; Chươngtrình cho phím 9 RET Sw9 ENDP ; SwA PROC ; Chươngtrình cho phím A RET... trình cho phím A RET SwA ENDP ; SwB PROC ; Chươngtrình cho phím B RET SwB ENDP ; SwC PROC ; Chươngtrình cho phím C RET SwC ENDP ; SwD PROC ; Chươngtrình cho phím D RET SwD ENDP ; SwE PROC ; Chươngtrình cho phím E RET SwE ENDP ; SwF PROC Phạm Hùng Kim Khánh Trang 124 Giáo trìnhvixửlý Giao tiếpvớicácthiếtbịdơngiản ; Chươngtrình cho phím F RET SwF ENDP ; Delay PROC... Trang 125 Giáo trìnhvixửlý Giao tiếpvớicácthiếtbịdơngiả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ươngtrì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ươngtrình 2 Giả.. .Giáo trìnhvixửlý Giao tiếpvớicácthiếtbịdơngiản POP CX RET Delay ENDP ; END Main 2.2 Giaotiế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 9 A B C D E F CON8 1 2 3 4 5 6 7 8 J1 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... 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áotrìnhvixửlýGiaotiếpvớicácthiếtbịdơngiản còn... JNE NotB CALL SwB NotB: CMP AL,00000111b JNE NotF CALL SwF Giaotiếpvớicácthiếtbịdơngiản ; ; ; ; ; Cho PC6 = 0 ứng vớicá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ớicác phím 3,7,B,F Đọc về kiểm tra hàng Xoá 4 bit cao Nếu nhấn... CMP AL,00000111b JNE NotD CALL SwD NotD: MOV DX,302h Phạm Hùng Kim Khánh Giaotiếpvớicácthiếtbịdơngiản ; ; ; ; 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ớicá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ì... 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ươngtrình ; Địa chỉ Port C ; Cho PC4 = 0 ứng vớicác Trang 120 Giáotrìnhvixử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... tương ứng 2 LED - Nhấn SW2: tắt các LED và kết thúc chươngtrình 2 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ươngtrì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 Phạm Hùng Kim Khánh Trang 126 . Giáo trình vi xử lý Giao tiếp với các thiết bị dơn giản
Phạm Hùng Kim Khánh Trang 109
CHƯƠNG 4: GIAO TIẾP VỚI CÁC THIẾT
BỊ ĐƠN GIẢN
1. Giao tiếp. nối phím nhấn (2 chân) với vi xử lý
R
VCC
SW
To uP
R
SW
To uP
VCC
a/ b/
Giáo trình vi xử lý Giao tiếp với các thiết bị dơn giản
Phạm Hùng Kim Khánh Trang