Bộ nhớ code và data có cùng bus địa chỉ,phân biệt bằng các tín hiệu điều khiển: /PSEN kết nối với /OE của IC nhớ codeROM /RD và /WR lần lượt kết nối với /OE và /WE của IC nhớ dataRAM
Trang 1CHƯƠNG 4 GIẢI MÃ ĐỊA CHỈ&GIAO TIẾP NGOẠI VI
Giáo Trình Vi Xử Lý Lưu Phú 1
Trang 2IC 74LS/HC373 chốt địa chỉ byte thấp,cùng với byte cao địa chỉ A8-A15 xuất hiện trên Port2 trong suốt chu kỳ nhận lệnh(truy xuất code)/thực thi lệnh(truy xuất data)
Kết nối bus data D0 – D7 ≡Port0 với bus data của bộ nhớ ngoài
Bộ nhớ code và data có cùng bus địa chỉ,phân biệt bằng các tín hiệu điều khiển:
/PSEN kết nối với /OE của IC nhớ code(ROM)
/RD và /WR lần lượt kết nối với /OE và /WE của IC nhớ data(RAM)
Trên các IC nhớ có tín hiệu chọn chip /CS thường tích cực mức 0
- /CS=0 :chip được chọn,cho phép bus data của IC nhớ kết nối với bus data của
hệ thống(MCU)
- /CS=1 : chip bị cấm,bus data của IC nhớ ở trạng thái hi-Z ngắt khỏi bus data
hệ thống
Giáo Trình Vi Xử Lý Lưu Phú 2
Trang 34.1: Giải mã địa chỉ:
1.Trường hợp bộ nhớ ngoài chỉ có 01 chip ROM/RAM
Ví dụ 4.1: Vẽ sơ đồ kết nối MCU8051 với bộ nhớ ngoài 27C64(ROM) và
Trang 44.1: Giải mã địa chỉ:
2 Trường hợp bộ nhớ ngoài có nhiều hơn 01 chip nhớ ROM/RAM
Ví dụ 4.2: Vẽ sơ đồ kết nối MCU8051 với bộ nhớ ngoài code và data dung
lượng 16KB sử dụng IC 27C64 và HM 6264
Giải: Bộ nhớ 16KB# 210x 24=214,cần 14 đường địa chỉ A0 – A13
Dung lượng IC 27C64/HM6264 là 8KB cần 13 đường địa chỉ A0 – A12 Vậy ta phải cần 02 chip 27C64/HM6264 để tạo bộ nhớ có dung lượng tổng là 16KB
Vùng địa chỉ chip 0 : 0000H – 1FFFH Vùng địa chỉ chip1 : 2000H – 3FFFh Bảng phân vùng địa chỉ cho 02 chip nhớ như sau:
Bảng 4.1: Bảng phân vùng địa chỉ 02 chip nhớ 8KB tạo dung lượng tổng 16KB
Tín hiệu chọn chip
Trang 54.1: Giải mã địa chỉ:
Từbảng 4.1,ta thấy A13=0 tương ứng với chọn vùng địa chỉ chip 0 và A13=1 tương ứng với chọn vùng địa chỉ cho chip 1.Do đó ta chọn A13 làm tín hiệu giải mã địa chỉ chọn chip như hình 4.2
Giáo Trình Vi Xử Lý Lưu Phú 5
Hình 4.2: Sơ đồ ví dụ 4.2
Trang 64.1: Giải mã địa chỉ:
Thiết kế mạch giải mã địa chỉ tạo tín hiệu chọn chip:
1 Từ yêu cầu về dung lượng bộ nhớ/vùng nhớ :
Tính ra số đường địa chỉ cần thiết
Chọn số lượng chip tương ứng có tổng dung lượng lớn hơn hoặc bằng
dung lượng bộ nhớ/vùng nhớ yêu cầu
Tốt nhất là nên sử dụng các chip bộ nhớ có dung lượng bằng nhau và
chọn vùng địa chỉ chọn chip bằng nhau sao cho tổng dung lượng bộ nhớ của các chip bằng dung lượng bộ nhớ/vùng nhớ cần thiết kế, mạch giải
mã địa chỉ chọn chip sẽ đơn giản hơn
2 Lập bảng phân vùng địa chỉ:
Chọn vùng địa chỉ cho các chip
Xác định các tín hiệu chọn chip và mức tích cực
Liệt kê tất cả các đường địa chỉ cần thiết cho toàn bộ nhớ/vùng nhớ
Điền các mức logic 0/1 cho các đường địa chỉ tương ứng với vùng địa chỉ chọn chip
Loại bỏ các đường địa chỉ thấp có logic thay đổi 0 – 1(tùy định)
Chú ý các đường địa chỉ cao có mức logic phân biệt giữa các vùng địa chỉ chọn chip với nhau
Giáo Trình Vi Xử Lý Lưu Phú 6
Trang 74.1: Giải mã địa chỉ:
Thiết kế mạch giải mã địa chỉ tạo tín hiệu chọn chip:
Lập bảng chân trị(truth table) rút gọn với inputs là các đường địa chỉ cao
có mức logic phân biệt vùng nhớ và outputs là các tín hiệu chọn chip có mức tích cực tương ứng
Sử dụng phương pháp thiết kế hệ tổ hợp từ bảng chân trị trên
Sử dụng cổng logic,vi mạch MSI decoder/demutiplex,thiết bị logic lập trình(PAL,GAL) hoàn thành mạch giải mã địa chỉ
Ví dụ 4.3: Thiết kế mạch giải mã địa chỉ tạo tín hiệu chọn chip cho 64KB bộ
nhớ ngoài của MCU8051 sử dụng các chip nhớ ROM 27C64 và RAM
HM6264
Giải: ROM 27C64 làm bộ nhớ code và RAM HM6264 làm bộ nhớ data
đều có dung lượng là 8KB.Để tạo vùng nhớ 64KB,ta cần:
16 đường địa chỉ A0 – A15
08 chip nhớ 27C64 và 08 chip nhớ HM6264
Cần 08 tín hiệu chọn chip
Bảng phân vùng địa chỉ như Bảng 4.2
Giáo Trình Vi Xử Lý Lưu Phú 7
Trang 94.1: Giải mã địa chỉ:
Từ Bảng 4.2,ta thấy chỉ cần sử dụng 3 đường địa chỉ A15,A14,A13 là có thể phân biệt được 08 tín hiệu chọn chip.Bảng 4.3 là bảng chân trị rút gọn cho mạch giải mã địa chỉ theo yêu cầu
Bảng 4.3: Mạch giải mã địa chỉ rút gọn Bảng 4.2
Bảng 4.3 chính là bảng chân trị của hệ decoder/demultiplexer 3 – 8
Sơ đồ logic như hình 4.3
Ta có thể sử dụng IC 74LS/HC138 để thiết kế mạch giải mã trên như hình 4.4(xem data sheet IC 74LS138)
Trang 114.1: Giải mã địa chỉ:
Ví dụ 4.4: Thiết kế mạch giải mã địa chỉ tạo tín hiệu chọn chip cho 03 chip
RAM có dung lượng lấn lượt là 4KB,8KB,16KB
Giải: Tổng dung lượng là 28KB cần 15 đường địa chỉ từ A0 – A14
/CS0
4KB
0000H- 0FFFH
Trang 124.1: Giải mã địa chỉ:
Hình 4.5: Sơ đồ mạch giải mã địa chỉ ví dụ 4.5
Trang 13Bảng 4.4a: PHÂN VÙNG ĐỊA CHỈ ĐƠN VỊ VÀ DUNG LƯỢNG
Trang 144.1: Giải mã địa chỉ:
Các vùng địa chỉ là bội số n của vùng địa chỉ đơn vị→ mạch tổ hợp n ngõ
ra mạch giải mã địa chỉ tạo tín hiệu chọn chip theo mức tích cực
74HC138 có tất cả 6 ngõ vào: 3 ngõ CBA giải mã chọn 8 ngõ ra,3 ngõ điều khiển 𝐺1, 𝐺 2𝐴, 𝐺 2𝐵 cho phép giải mã.Nếu số ngõ vào nhiều hơn 6
phải thêm mạch tổ hợp kết hợp với ngõ vào hoặc ngõ ra mạch giải mã
Sử dụng cổng logic tương đương thể hiện rõ mức tích cực ngõ vào/ngõ ra
Hình 4.4b: Logic mở/khóa cổng và cổng tương đương
Trang 15Địa
chỉ
A15 A14 A13 A12 A11 A10 A9 A8 A7 … A0 DL(KB) Chọn
chip 0000H 0 0 0 0 0 0 0 0 0 0 0 03FFH#2KB
Trang 164.1: Giải mã địa chỉ:
Vùng địa chỉ đơn vị=2KB A0 – A9
Chọn 𝐶𝐵𝐴 = 𝐴12𝐴11𝐴10, 𝐴 15 = 𝐺1, 𝐴14 = 𝐺 2𝐴, 𝐴13 = 𝐺 2𝐵
Lưu ý các mức logic tích cực của các tín hiệu chọn chip
Vẽ cổng tương đương để dễ thấy mức logic tích cực,sau đó chuyển qua hình cổng căn bản
Cổng 1=NOT,Cổng 2=NAND2,cổng 3=NAND3,cổng 4=AND2
Hình 4.5b
Trang 174.1: Giải mã địa chỉ:
* Lưu ý: Khi thiết kế mạch giải mã địa chỉ,kết nối mạch phải càng ít
cổnglogic/vi mạch càng tốt,để tránh tín hiệu chọn chip output bị trễ so với giản đồ thời gian xuất hiện tín hiệu địa chỉ,tín hiệu điều khiển ,hệ thống sẽ hoạt động sai!
Ghi chú quan trọng: Bộ nhớ code ONCHIP và OFFCHIP
/EA=1: MCU8051 sử dụng bộ nhớ code onchip(nội) 4KB từ
0000H-0FFFH
/EA=0: MCU8051 sử dụng bộ nhớ code offchip(ngoại) tối đa 64KB
từ 0000H-FFFFH
Trường hợp muốn sử dụng luôn cả 02 bộ nhớ onchip và offchip:
- Bộ nhớ onchip chứa chương trình quản lý kiểm tra(monitor)
- Bộ nhớ offchip chứa chương trình ứng dụng(User)
- Kết nối /EA=1,chương trình monitor bắt đầu từ
0000H-0FFFH,chương trình User bắt đầu từ 1000H-FFFFH(tối đa)
Giáo Trình Vi Xử Lý Lưu Phú 17
Trang 184.2: Giao tiếp ngoại vi:
4.2.1: Giao tiếp ngoại vi trực tiếp:
MCU8051 có 04 port ký hiệu P0,P1,P2,P3 cho phép giao tiếp trực tiếp 4 port ngoại vi 8 bit hoặc 32 đường bit Số cổng ngoại vi tối đa có thể kết nối với bit port là 8 cổng LS/HC đối với họ 80C/89C51 và nhiều hơn đối với họ 89S51(xem thêm data sheet)
Ưu điểm của MCU là có thể giao tiếp trực tiếp port 8 bit hay từng bit port riêng lẻ dễ dàng với các thiết bị ngoại vi mà không cần các IC giao tiếp ngoại vi
Tập lệnh phục vụ giao tiếp ngoại vi rất đơn giản thường là 1MC và tối đa là 02 byte
Để truy xuất ra ngoại vi ghép Port1 chỉ cần 02 lệnh:
MOV A,P1 ;Đọc data từ Port1 vào A MOV P1,A :Ghi data từ A ra Port1 Hoặc truy xuất bit port:
MOV C,P1.0 ;Đọc trạng thái bit P1.0 vào cờ C MOV P1.0,C ;Ghi trạng thái cờ C ra bit P1.0
JB P1.0,LOOP ;Đọc và nhảy đến nhãn LOOP nếu P1.0=1 Sau đây là một số ví dụ MCU 8051 giao tiếp trực tiếp ngoại vi
Trang 194.2: Giao tiếp ngoại vi:
4.2.1: Giao tiếp ngoại vi trực tiếp:
Ví dụ 4.6: Giao tiếp phím(nút) nhấn
Vẽ sơ đồ MCU8051 giao tiếp với 01 phím nhấn.Viết đoạn lệnh mô tả nếu có phím nhấn chương trình sẽ chuyển điều khiển đến địa chỉ định bởi nhãn LOOP
Giải: Hình 4.6 là sơ đồ giao tiếp MCU8051 và phím nhấn qua bit P1.0,phím nhấn
tích cực mức 0.Đoạn lệnh như sau:
JNB P1.0,LOOP ;nhảy đến nhãn
;LOOP nếu phím nhấn P1.0=0
Thông thường khi ta đọc trạng thái pin port,
phải đảm bảo chốt port =1 để tránh sai logic
MCU8051 có các lệnh đọc bổ sung ghi
(read modify write) ghi chốt port =1 trước khi đọc
như lệnh JNB trên.Tuy nhiên để đảm bảo chắc chắn
chốt port=1 trước khi đọc pin port,ta chỉ cần set chốt
port lên 1 trước khi đọc mà không cần quan tâm có
phải lệnh đọc là lệnh đọc bổ sung ghi hay không!
SETB P1.0 JNB P1.0,LOOP
Giáo Trình Vi Xử Lý Lưu Phú 19
Hình 4.6: Giao tiếp 01 phím nhấn
Trang 204.2: Giao tiếp ngoại vi:
4.2.1: Giao tiếp ngoại vi trực tiếp:
Các phím nhấn thường bị đàn hồi ngắn/hở mạch tiếp xúc trong khoảng thời gian có thể tới hàng 0,1s mới ổn định.Điều này gọi là hiện tượng phím bị “rung”,nên phải có mạch chống rung phím để đảm bảo đọc trạng thái phím chính xác
Ta có thể chống rung phím bằng cách gọi chương trình con delay tới 100ms
và đọc lại trạng thái phím
HERE: JB P1.0,HERE
LCALL DELAY100MS JNB P1.0,LOOP SJMP HERE
-
-
- DELAY100MS: MOV R7,#200
LAP: MOV R6,#250
DJNZ R6,$
DJNZ R7,LAP RET
Hoặc ta có thể đọc nhiều lần trạng thái phím để chống rung phím:
CHECK: MOV R3,#50 LAP: JB P1.0,CHECK
DJNZ R3,LAP
Trang 214.2: Giao tiếp ngoại vi:
4.2.1: Giao tiếp ngoại vi trực tiếp:
Ví dụ 4.7: Trong hình 4.7,Port1 kết nối với 8 chân đoạn của LED 7 đoạn
Anode chung qua mạch đệm đảo IC 74LS240 để khuếch đại dòng,4 bit thấp Port3 nối với DIP SW4,P2.0 nối với SW nhấn.Viết một chương trình thực hiện công việc khi nhấn SW,MCU đọc giá trị số HEX đặt bởi DIP SW4 và lái đèn 7 đoạn hiển thị giá trị số HEX đặt bởi DIP SW4
Giải:
Giáo Trình Vi Xử Lý Lưu Phú 21
Hình 4.7: Sơ đồ giao tiếp ví dụ 4.7
Trang 224.2: Giao tiếp ngoại vi:
4.2.1: Giao tiếp ngoại vi trực tiếp:
• LED 7 đoạn anode chung có chân đoạn tích cực mức 0,đoạn tương ứng sẽ sáng.Tuy nhiên,do kết nối qua cổng đệm đảo,dẫn đến bit
port tương ứng mức 1,đoạn tương ứng sẽ sáng.
• Ví dụ để đoạn a sáng phải đặt P1.0=1.Từ phân tích trên ta có bảng giá trị tương ứng xuất ra Port1 để LED 7 đoạn sáng số HEX tương ứng
Bảng 4.5:Giá trị xuất ra Port1 tương ứng với số HEX sáng trên
LED 7 đoạn
Số
HEX 0 1 2 3 4 5 6 7 8 9 A B C D E F
Port1 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH 77H 7CH 39H 5EH 79H 71H
Trang 234.2: Giao tiếp ngoại vi:
4.2.1: Giao tiếp ngoại vi trực tiếp:
ORG 0 MOV P1,#0 ;xóa Port1 LED tối CHECK: MOV R3,#50 ;Kiểm tra SW nhấn
LAP: JB P1.0,CHECK
DJNZ R3,LAP MOV A,P3 ; Đọc giá trị DIP SW ANL A,#0FH ;Che nibble cao lấy giá trị DIP SW MOV DPTR,#TAB ;DPTR trỏ đầu bảng tra TAB
MOVC A,@A+DPTR; Nạp mã 7 đoạn tương ứng vào A MOV P1,A ;Xuất mã 7 đoạn ra LED
SJMP CHECK TAB: DB 3FH,06H,5BH,4FH,66H, 6DH,7DH,07H, 7FH,
DB 6FH,77H,7CH,39H,5EH,79H,71H
;chỉ dẫn DB khai báo hằng số (mã 7 đoạn) trong bộ nhớ code
END
Giáo Trình Vi Xử Lý Lưu Phú 23
Trang 244.2: Giao tiếp ngoại vi:
4.2.1: Giao tiếp ngoại vi trực tiếp:
Ví dụ 4.8: Giao tiếp MCU8051 với shift register 74LS164(xem data sheet
74LS164)
Giải: Sơ đồ chân và bảng chân trị hoạt động của IC74LS164 như hình
4.8a,bảng chân trị như hình 4.8b
Tóm tắt hoạt động IC 74LS164 như sau:
/MR=0: reset,bất chấp các ngõ vào A,B và CP,các ngõ ra Q0 – Q7 =0
Kết nối chân Avà B,Khi CP xuất hiện cạnh lên hoạt động ghi dịch diễn ra,Q0=A,Q1=Q0,…,Q7=Q6
Như vậy ,chỉ cần 2 đường bit port kết nối lần lượt đến ngõ vào data nối tiếp A,B và ngõ vào xung clock CP của 74LS164,ta có thể chuyển giao tiếp nối tiếp sang song ở outputs của 74LS164
Sơ đồ mạch giao tiếp như hình 4.8c
Trang 254.2: Giao tiếp ngoại vi:
4.2.1: Giao tiếp ngoại vi trực tiếp:
Trang 264.2: Giao tiếp ngoại vi:
4.2.1: Giao tiếp ngoại vi trực tiếp:
Chương trình con SHIFT_REG xuất data từ thanh ghi A ra P1.0 và xung Clock ra P1.1 giao tiếp với IC 74LS164
SHIFT_REG: PUSH PSW ;cất cờ
MOV R7,#8 ;nạp số lần dịch QUAY: RLC A ;dịch bit ra C
MOV P1.0,C ;xuất ra P1.0 SETB P1.1 ;tạo xung trên P1.1 CLR P1.1
DJNZ R7,QUAY POP PSW ;phục hồi cờ C RET
Trong ví dụ 4.8,ta thấy thay vì giao tiếp song song với ngoại vi 8 bit phải cần 8 bit port,dùng shift register 74LS164 giao tiếp nối tiếp với MCU chỉ cần 2 bit port,shift register sẽ chuyển sang 8 bit song song ngõ ra để giao tiếp với ngoại vi.Như vậy tiết kiệm được 6 bit port.Tất nhiên tốc độ truy xuất sẽ chậm hơn và trong trường hợp này sẽ có hiện tượng”dợn sóng” (ripple) ở ngõ ra Q0 – Q7,do phải dịch 8 lần byte data ngõ ra Q mới ổn định.Để tránh hiện tượng ripple ta sử dụng IC shift
register 74HC595 hay CD4094(xem data sheet 02 IC này)
Giáo Trình Vi Xử Lý Lưu Phú 26
Trang 274.2: Giao tiếp ngoại vi:
4.2.2: Giao tiếp ngoại vi gián tiếp:
Trường hợp MCU giao tiếp với các ngoại vi vượt quá 32 đường tương ứng với số bit port có sẵn,ta phải chuyển sang giao tiếp ngoại vi gián tiếp
Phương pháp giao tiếp ngoại vi gián tiếp:
MCU xem ngoại vi như là một ô nhớ data RAM ngoài
Số ngoại vi tối đa có thể kết nối là 64KB#65536
Phải có mạch giải mã địa chỉ chọn chip ngoại vi
Mạch giải mã địa chỉ kết hợp với tín hiệu /RD,/WR để truy xuất
ngoại vi
Sử dụng lệnh truy xuất ô nhớ data ngoài truy xuất ngoại vi
MOVX A,DPTR ;đọc từ ngoại vi có địa chỉ trỏ bởi DPTR MOVX @DPTR,A ;ghi ra ngoại vi có địa chỉ trỏ bởi DPTR
Giáo Trình Vi Xử Lý Lưu Phú 27
Trang 284.2: Giao tiếp ngoại vi:
4.2.2: Giao tiếp ngoại vi gián tiếp:
Ví dụ 4.9: Vẽ sơ đồ giao tiếp MCU8051 với 01 Bộ nhớ data ngoài 8KB,02
bộ chốt data kết nối lần lượt với 02 LED 7 đoạn Anode chung,01 bộ DIP SW8
Giải: Dễ dàng thấy bộ nhớ data ngoài 8KB cần 13 đường địa chỉ+02 đường
/RD,/WR,03 bộ ngoại vi cần 24 đường,như vậy nếu kết nối trực tiếp với MCU phải cần đến 39 đường,quá 32 đường bit port!Ta dùng phương pháp kết nối ngoại vi gián tiếp.Phân vùng địa chỉ như bảng 4.6
TRUY XUẤT
/CS0
8KB
0000H- 1FFFH
/RD /WR
Trang 294.2: Giao tiếp ngoại vi:
4.2.2: Giao tiếp ngoại vi gián tiếp:
Hình 4.9 là sơ đồ kết nối ví dụ 4.9
Mạch giải mã địa chỉ có 4 ngõ vào A15,A14,A13,A12
/CS0 chọn chip RAM HM6264 tổ hợp hai đường /Y0 và/Y1
CS1tổ hợp đường /Y2 và /WR kết nối với ngõ LE (tích cực mức 1) của IC 74HC573 thứ 1 lái LED0(data out)
CS2 tổ hợp đường /Y3 và /WR kết nối với ngõ LE (tích cực mức 1) của IC 74HC573 thứ 2 lái LED1(data out)
/CS3 tổ hợp với đường/Y4 và /RD kết nối với ngõ /OE(tích cực
mức 0) của IC 74HC244 đệm lái DIP SW(data in)
Do IC chốt 74HC573 lái trực tiếp cathode LED 7 đoạn nên MCU xuất ra mức 0 đoạn sẽ sáng.Do đó bảng tra mã 7 đoạn sẽ có giá trị
bù với bảng 4.5
Giáo Trình Vi Xử Lý Lưu Phú 29
Trang 304.2: Giao tiếp ngoại vi: 4.2.2: Giao tiếp ngoại vi gián tiếp:
Hình 4.9
Trang 314.2: Giao tiếp ngoại vi: 4.2.2: Giao tiếp ngoại vi gián tiếp:
MOV A,#0FFH ;(A)=FFH làm tối LED
MOV DPTR,#LED0 ;làm tối LED0
ANL A,#0FH ;che 4bit thấp
MOV DPTR,#TAB ;trỏ vào bảng mã 7 đoạn
MOVC A,@A+DPTR ;tra bảng mã 7 đoạn nibble thấp
MOV DPTR,#LED0 ;xuất ra LED0
MOVX @DPTR,A Giáo Trình Vi Xử Lý Lưu Phú 31
Trang 324.2: Giao tiếp ngoại vi:
4.2.2: Giao tiếp ngoại vi gián tiếp:
SWAP A ;tráo nibble cao thành nibble thấp
ANL A,#0FH ;che nibble thấp
MOV DPTR,#TAB ;tra bảng lấy mã 7 đoạn
Giáo Trình Vi Xử Lý Lưu Phú 32
Trang 334.2: Giao tiếp ngoại vi: 4.2.2: Giao tiếp ngoại vi gián tiếp:
Ví dụ 4.10: Hiển thị LED 7 đoạn bằng phương pháp quét
Mô tả hoạt động sơ đồ hình 4.10
Mạch giao tiếp MCU theo kiểu định vị ngoại vi gián tiếp,địa chỉ từ
0000H-1FFFH
Tín hiệu chọn chip NCS.0 từ mạch giải mã địa chỉ tổ hợp với tín hiệu
NWR(/WR) qua cổng NOR UA01A tạo tín hiệu CS kích vào ngõ LE IC chốt U40174HC573 cho phép chốt byte data xuất ra từ MCU
IC U402 7447 giải mã ngõ vào BCD sang mã 7 đoạn kích vào Cathode
Tại một thời điểm chỉ có 01 đèn sáng bằng cách kích vào ngõ
LED0-LED4 lái BJT dẫn bảo hòa,cấp nguồn +5V cho Anode tương ứng
Ví dụ MCU xuất ra byte data 11101001,nibble thấp đưa vào U401 giải mã
ra mã 7 đoạn số 9 đưa vào cathode các đèn.Nibble cao điều khiển quét anode đèn,chỉ có ngõ LED0=0,BJT nối LED0 dẫn cấp nguồn +5V làm cho LED0 sáng,các LED còn lại tối
MCU lần lượt xuất ra nibble thấp số BCD đồng bộ với nibble cao 1 bit tích cực mức 0,đèn tương ứng sẽ sáng
Tần số quét LED sáng(làm tươi) phải >25Hz để LED không bị sáng nhấp nháy
Giáo Trình Vi Xử Lý Lưu Phú 33