You are on page 1of 80

26/04/2022

VI XỬ LÝ TRONG ĐO
LƯỜNG VÀ ĐIỀU KHIỂN 2
GIẢNG VIÊN: TS. ĐOÀN THỊ HƯƠNG GIANG
MOBIL: 0372630593
EMAIL: giangdth@epu.edu.vn

TS. Đoàn Thị Hương Giang 1

Nội dung môn học


• Chương 1:
– Ghép nối vi điều khiển với các ngoại vi sử dụng họ 8051
• Chương 2:
– Ứng dụng vi xử lý trong đo lường
• Chương 3:
– Ứng dụng vi xử lý trong điều khiển

TS. Đoàn Thị Hương Giang 2

1
26/04/2022

Tài liệu tham khảo


Tài liệu học tập (Sách, giáo trình chính)
• [1] Nguyễn Tăng Cường, Cấu trúc và lập trình họ vi điều
khiển 8051, Nhà xuất bản khoa học kỹ thuật, 2012.
• [2] Nguyễn Mạnh Giang, Cấu trúc – Lập trình – Ghép nối
và ứng dụng, tập 2, Nhà xuất bản giáo dục, 2012.
Tài liệu tham khảo
• [3] MCS51 Microcontroller family user’s manual.
• [4] Đỗ Xuân Tiến, Kỹ thuật vi xử lý và lập trình Assembly
cho hệ vi xử lý, Nhà xuất bản khoa học kỹ thuật, 2006.
Các tài liệu khác
• Phần mềm Protues, Altium Designer, Keil C,
CodeVisionAVR, Mplab IDE…

TS. Đoàn Thị Hương Giang 3

Mô tả tóm tắt nội dung học phần


• Cung cấp kiến thức tổng quát về ứng dụng vi xử lý, vi
điều khiển trong đo lường và điều khiển.

• Ghép nối vi điều khiển với các ngoại vi cơ bản.

• Có khả năng thiết kế những hệ thống đo lường và


điều khiển trong công nghiệp, dân dụng trên dựa trên
vi điều khiển, vi xử lý.

TS. Đoàn Thị Hương Giang 4

2
26/04/2022

Quá trình học tập


• Lý thuyết + thực hành
• Dự lớp (chuyên cần): 70% số giờ lên lớp + 02
bài kiểm tra thường xuyên
Thi cuối kỳ
Câu 1: (4 điểm) Tự 60
Câu 2: (3 điểm) luận phút
Câu 3: (3 điểm)

TS. Đoàn Thị Hương Giang 5

Chương 1
1.1. Ghép nối và ứng dụng hiển thị
1. Ghép nối và ứng dụng LED đơn, LED 7 thanh đơn&kép

2. Ghép nối và ứng dụng LED ma trận

3. Ghép nối và ứng dụng LCD

1.2 Ghép nối với bàn phím


1.3 Ghép nối với bộ nhớ ngoài
1.4 Ghép nối với bộ chuyển đổi ADC, DAC

TS. Đoàn Thị Hương Giang 6

3
26/04/2022

1.1. LED đơn


 Cấu tạo và nguyên lý hoạt động của Led đơn:
Là một diot phát quang, khi có dòng điện chạy qua đủ lớn trong giới hạn
của nhà sản xuất đưa ra thì LED phát ra ánh sáng trong dải ánh sáng và
tần số để mắt người có thể nhìn thấy được.

Chúng có nhiều hình dạng và kích cỡ, điều này cho phép các nhà thiết kế
có thể điều chỉnh tùy theo từng sản phẩm.

 Điện áp rơi trên Led trong khoảng từ 1.2 ÷ 3.4 V.

 Dòng điện chạy qua Led trong khoảng 1 ÷ 30 mA.

TS. Đoàn Thị Hương Giang 7

Phân loại Led


 Có nhiều phương pháp và cách phân loại Led khác nhau:

 Theo công dụng:

 Led trong nhà (Led indoor): Cường độ sáng yếu, góc nhìn hẹp …

 Led ngoài trời (Led outdoor): Cường độ sáng mạnh, góc nhìn rộng…

 Theo kích thước:

 Loại nhỏ, nhỡ, to

 Theo màu sắc:

 Đỏ, xanh, vàng,….

TS. Đoàn Thị Hương Giang 8

4
26/04/2022

Phân loại Led (tt)


• Các loại LED thường gặp:
– LED thường (3mm hoặc 5mm): Là loại
LED có màu của lớp vỏ bên ngoài trùng với
ánh sáng nó phát ra.

– LED siêu sáng (3mm và 5mm): LED siêu


sáng cũng không khác gì nhiều so với LED
thường, có chung kích cỡ, nhưng có điều nó
sáng hơn và lớp vỏ bên ngoài là trong suốt.
Loại này đắt gần gấp đôi LED thương,
nhưng sáng rõ, sáng đẹp và "trong suốt".
Lớp vỏ không màu nhưng phát ra ánh sáng
khác nhau.
TS. Đoàn Thị Hương Giang 9

Phân loại Led (tt)


• Các loại LED thường gặp:
– LED dán (SMD): Là Loại có nhiều kiểu kích
thước, nhưng đặc điểm chung của nó là cực kì
nhỏ và hàn trên mặt đồng của mạch. Loại
LED này chỉ dùng cho các mạch đồng 2 mặt
(loại này khá đắt) hoặc các loại mạch in.

– LED RGB (5mm): là loại LED siêu sáng


nhưng lại có đến 3 màu trong một con LED
duy nhất (R = red = đỏ; G = Green = xanh lá;
B = Blue = Xanh dương). Có thể làm LED
sáng với mọi màu yêu cầu. Có 4 chân, trong
đó có một chân dương chung và 3 chân R-G-B

TS. Đoàn Thị Hương Giang 10

5
26/04/2022

Các tham số lưu ý khi thiết kế LED đơn


Điện áp:
• Mỗi đèn LED có một mức điện áp đầu vào nhất định để tạo ra ánh sáng  Phải
tính mức điện áp cần cấp cho LED.
• Ví dụ:
– LED 5mm có mức điện áp đầu vào là 3,4V  cấp nguồn cho nó là một pin AA 1,5V  không sáng.
– Thêm một pin AA nữa để cấp nguồn khoảng 3V  LED sáng.
Dòng điện
• Dòng điện cũng là thông số cần quan tâm. Nếu một dòng điện vượt qua ngưỡng cho
phép, tương đương  tăng nhiệt độ  đèn nhanh hỏng.
• Dòng điện phù hợp với đèn LED 5mm thường ở mức 20mA-> 30mA.
• Có thể kiểm soát dòng điện bằng cách đặt một điện trở nối tiếp với đèn LED.
Ánh sáng
• Bước sóng là cách chính xác để giải thích màu sắc.
• Trên bảng thông số đèn LED 5mm sẽ thấy bước sóng tối thiểu và tối đa.

TS. Đoàn Thị Hương Giang 11

Chip LED DIP – LED thường 5mm

• LED là một biến thể trên diode (điốt) cơ bản, sự khác biệt ở
đây là nó tạo ra ánh sáng khi dòng điện đi qua (Diode là một
thành phần điện tử chỉ dẫn điện theo một hướng)
• Điều khiển LED bằng cách tạo ra độ chênh điện áp nhỏ nhất
giữa Anode (+) và Cathode (-).

TS. Đoàn Thị Hương Giang 12

6
26/04/2022

Điều khiển LED


• Điều khiển vào chân Anode, chân Kathode nối đất

• Điều khiển vào chân Kathode, chân Anode nối nguồn

TS. Đoàn Thị Hương Giang 13

Ghép nối Led đơn với VĐK


• Theo cách mắc 3 cổng kết nối với Led xuất ra dòng (I source) < 1mA, bởi
vậy cường độ sáng Led rất tối. Theo chuẩn, cổng I/O (TTL) của 8051 cho
dòng sink up 16 mA và source 250 µA.

TS. Đoàn Thị Hương Giang 14

7
26/04/2022

Thiết kế LED ghép nối VĐK


• Giá trị của điện trở hạn dòng được tính theo công thức:

• Trong đó:

 Vcc: là nguồn cấp

 V: là áp rơi trên Led

 I: là dòng điện chạy qua Led

TS. Đoàn Thị Hương Giang 15

Ví dụ:
Muốn dòng chạy qua Led là 6mA thì giá trị điện trở hạn dòng khi đó là?

- Trong cách mắc 1: Có thể tùy chọn cường độ sáng của Led thông qua
tính điện trở hạn dòng.

- Với những Led siêu sáng, cường độ dòng điện chạy qua Led lớn, khi đó
nên dùng mạch khuếch đại như hình dưới.

DÙNG VI MẠCH
DÙNG BJT

TS. Đoàn Thị Hương Giang 16

8
26/04/2022

Cấu trúc chương trình code asm:


org 0000H
ljmp main Nhảy dài tới vị trí của nhãn có tên là “main”

org 200H
main:
Chương trình chính

ljmp main

Chương trình con

end Lệnh kết thúc toàn bộ chương trình

TS. Đoàn Thị Hương Giang 17

P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0

org 0000H
ljmp main
org 200H
main:
mov P2,#0000 0010B
lcall wait1s
mov P2,#0000 0000B
lcall wait1s
ljmp main
wait1s:
mov R1,#200
Here1:
mov R2,#200
Here2:
nop
nop
nop
djnz R2,Here2
djnz R1,Here1
ret
end Giang
TS. Đoàn Thị Hương 18

9
26/04/2022

Một số từ khóa lấy linh kiện


• VXL: AT89C52
• Tụ điện: Cap
• Điện trở: Res
• Nút bấm: button
• Thạch anh: Crys
• Đèn LED: LED/BIGY
Main:
mov P2, #0000 0010B ;P2.1 = 1  5V  den sang
lcall wait1s ;gọi trễ
mov P2, #0000 0000B ;P2.1 = 0  0V  den tat
lcall wait1s ;gọi trễ
ljmp main ;lặp lại

TS. Đoàn Thị Hương Giang 19

Sơ đồ mạch

TS. Đoàn Thị Hương Giang 20

10
26/04/2022

Yêu cầu:
- Vẽ sơ đồ kết nối VĐK 8051 với 08 LED đơn
- Viết chương trình điều khiển LED sáng từ D0 đến D7 mỗi LED sáng cách nhau 1s
org 0000H
ljmp main
org 200H
main:
mov P2,#0000 0001B
lcall wait1s
mov P2,#0000 0010B
lcall wait1s
……
ljmp main
Delay1s:
???
Ret
wait1s:
mov R1,#200 end
Here1:
mov R2,#200
Here2:
nop
nop
nop
djnz R2,Here2
djnz R1,Here1
ret TS. Đoàn Thị Hương Giang 21

Bài 2:
- Vẽ sơ đồ kết nối VĐK 8051 với 08 LED đơn
- Viết chương trình điều khiển LED sáng từ D0 đến D7 mỗi LED sáng cách nhau 1s
quá trình lặp lại 150 lần thì các LED nhấp nháy

Bài 3:
- Vẽ sơ đồ kết nối VĐK 8051 với 04 LED đơn trong đó P0 nối với hai LED D0 và D1; P2
nối với D2, D3 và các LED sử dụng nguồn ngoài (VĐK tác động vào chân cathode)
- Viết chương trình điều khiển LED sáng từ D0 đến D3 mỗi LED sáng cách nhau 1s.
Quá trình lặp lại 10 lần thì LED nhấp nháy?

Giảm giá trị Rx đi một đơn vị và


mov Rx, #solanlap
so sánh với 0:
Label:
-Nếu khác 0 thì nhảy lên
…… Cái gì cần lặp thì cho vào đoạn này “label” (thực hiện vòng lặp)
-Nếu =0 thì thực hiện lệnh sau
Djnz Rx, label
đó (thoát khỏi vòng lặp)

TS. Đoàn Thị Hương Giang 22

11
26/04/2022

Nháy LED trong vòng 150 lần sau đó tắt LED

org 0000H
ljmp main
org 200H
main:
mov R1, #150
Label1:
mov P2,#0000 0010B
lcall wait1s
mov P2,#0000 0000B
lcall wait1s
djnz R1,Label1
Label2:
mov P2,#0000 0000B
sjmp Label2

TS. Đoàn Thị Hương Giang 23

org 0000H
ljmp main
org 200H
main:
mov P2,#0000 0001B
lcall wait1s
mov P2,#0000 0010B
lcall wait1s
mov P2,#0000 0100B
lcall wait1s
mov P2,#0000 1000B
lcall wait1s
mov P2,#0001 0000B
lcall wait1s
mov P2,#0010 0000B
lcall wait1s
mov P2,#0100 0000B
lcall wait1s
mov P2,#1000 0000B
lcall wait1s
ljmp main

TS. Đoàn Thị Hương Giang 24

12
26/04/2022

Bài 3:
- Vẽ sơ đồ kết nối VĐK 8051 với 04 LED đơn trong đó P0 nối với hai LED D0 và D1; P2
nối với D2, D3 và các LED sử dụng nguồn ngoài (VĐK tác động vào chân cathode)
- Viết chương trình điều khiển LED sáng từ D0 đến D3 mỗi LED sáng cách nhau 1s.
Quá trình lặp lại 10 lần thì LED nhấp nháy?

TS. Đoàn Thị Hương Giang 25

org 0000H
ljmp main
org 200h
main:
mov P2,#00000010B
lcall wait1s Chương trình chính
mov P2,#00000000B
lcall wait1s
ljmp main

wait1s:
mov R1,#200
here1:
mov R2,#200
here2:
nop Chương trình con
nop
nop
nop
djnz R2,here2
djnz R1,here1
ret
end

TS. Đoàn Thị Hương Giang 26

13
26/04/2022

Ví dụ
• Sơ đồ ghép nối LED đơn với VĐK 8051

TS. Đoàn Thị Hương Giang 27

org 0000h
ljmp main

org 200h
main:

CT Chính
ljmp main

Xuoi:
……
ret
Nguoc:
……
ret
wait1s:
mov R1,#200 Chương trình con - CTC
here1:
mov R2,#50
here2:
nop
nop
nop
djnz R2,here2
djnz R1,here1
ret
end TS. Đoàn Thị Hương Giang 28

14
26/04/2022

Chương trình điều khiển


• org 0000H • nguoc:
• mov P2,#01111111B
• lcall main • lcall wait1s
• org 200h • mov P2,#00111111B
• main: • lcall wait1s
• mov P2,#00011111B
• lcall xuoi • lcall wait1s
• lcall nguoc • mov P2,#00001111B
• jmp main • lcall wait1s
• mov P2,#00000111B
• xuoi:
• lcall wait1s
• mov P2,#00000001B • mov P2,#00000011B
• lcall wait1s • lcall wait1s
• mov P2,#00000001B
• mov P2,#00000011B
• lcall wait1s
• lcall wait1s • mov P2,#00000000B
• mov P2,#00000111B • lcall wait1s
• ret
• lcall wait1s
• wait1s:
• mov P2,#00001111B • mov R1,#255
• lcall wait1s • here1:
• mov P2,#00011111B • mov R2,#255
• here2:
• lcall wait1s • nop
• mov P2,#00111111B • nop
• lcall wait1s • nop
• djnz R2,here2
• mov P2,#01111111B • djnz R1,here1
• lcall wait1s • ret
• mov P2,#11111111B • end
• lcall wait1s
• ret

TS. Đoàn Thị Hương Giang 29

LED 7 THANH ĐƠN


(1 DIGITS 7SEG)

TS. Đoàn Thị Hương Giang 30

15
26/04/2022

LED 7 thanh đơn


• Cấu tạo led 7 thanh đơn: : chứa 7 đoạn
(thanh), mỗi đoạn tương ứng với một Led đơn
như sơ đồ trên hình vẽ sau:

TS. Đoàn Thị Hương Giang 31

Các ký tự hiện số
• Tùy theo các thanh ghi được điều khiển sáng
mà LED sẽ hiển thị các số theo yêu cầu:

TS. Đoàn Thị Hương Giang 32

16
26/04/2022

Phân loại LED 7 đoạn


• Anode/anot chung:

Nếu là led Anot chung thì 8 chân dương của led (chân Anot) sẽ
được nối chung với nhau (chân COM), các chân Katot sẽ được
đưa ra làm các chân dữ liệu A,B,C,D,E,F,G,DP.
Để điều khiển led anot chung, cấp nguồn dương vào chân anot
chung (chân COM) và xuất dữ liệu tích cực mức 0 ra 8 chân dữ
liệu để hiển thị theo ý muốn.
Lưu ý: phải nối các điện trở hạn dòng tránh hỏng LED và điều
khiển độ sáng/tối của LED
TS. Đoàn Thị Hương Giang 33

a b c d e f g
Số 0 0 0 0 0 0 0 1
Số 1 1 0 0 1 1 1 1
Số 2 0 0 1 0 0 1 0

Số 9 ….

TS. Đoàn Thị Hương Giang 34

17
26/04/2022

• Bảng mã hiển thị số loại anode chung:

TS. Đoàn Thị Hương Giang 35

Phân loại (tt)


• Cathode/Katot chung:

• Nếu là led Katot chung thì 8 chân âm của led (chân Katot) sẽ
được nối chung với nhau (chân COM), các chân Anot sẽ được
đưa ra làm các chân dữ liệu A,B,C,D,E,F,G,DP.
• Để điều khiển led Katot chung, cấp nguồn âm vào chân katot
chung (chân COM) và xuất dữ liệu tích cực mức 1 ra 8 chân
dữ liệu để hiển thị theo ý muốn.
• Lưu ý: phải nối các điện trở hạn dòng tránh hỏng LED và điều
khiển độ sáng/tối của LED
TS. Đoàn Thị Hương Giang 36

18
26/04/2022

Bảng mã hiển thị số loại cathode chung

TS. Đoàn Thị Hương Giang 37

Phương pháp điều khiển hiển thị LED 7 đoạn

 Có 2 phương pháp chính

• Phương pháp quét hiển thị quét LED

• Phương pháp chốt hiển thị LED

TS. Đoàn Thị Hương Giang 38

19
26/04/2022

Phương pháp quét hiển thị quét LED


 Ở mỗi thời điểm chỉ có một hiển thị LED 7 đoạn được cho phép
(qua các khóa điện tử BJT).
 Các ngõ vào a-h nối chung với nhau cho tất cả các LED 7 đoạn.
 Tổng số chân cổng cần sử dụng là 8 + số ký số (digit), với thí dụ
cần điều khiển 4 LED 7 đoạn theo phương pháp quét thì tổng số
chân là 8 + 4 = 12.
 Tần số quét phải đủ cao để tránh tình trạng thấy LED nhấp nháy:
• Tối thiểu 40Hz
• Thời gian cho 1 digit sáng là 1/40 giây
• Tần số quét cao hơn thì sẽ giảm sự nhấp nháy

TS. Đoàn Thị Hương Giang 39

Anode chung
Số tương ứng P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0

g f e d c b a
Số 0
Số 1
Số 2


Số 9

Yêu cầu (1): Viết chương trình hiển thị các số từ 0->1->2….->9
Yêu cầu (2): Viết chương trình hiển thị các số từ 0->1->2….->9
– quá trình lặp lại 05 lần sau đó LED nháy số 8.
Yêu cầu (3): Tạo thành 02 CTC xuôi (hiển thị 0->9) ngược (hiển
thị từ 9->0). Gọi hiển thị xuôi 2 lần, gọi hiển thị ngược 3 lần
sau đó LED nháy số 2.
TS. Đoàn Thị Hương Giang 40

20
26/04/2022

Cathode chung
Số tương ứng P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0

0 g f e d c b a
Số 0 0 0 1 1 1 1 1 1
Số 1 0 0 0 0 0 1 1 0
Số 2 0 1 0 1 1 0 1 1
… 0
… 0
Số 9 0 1 1 0 1 1 1 1

Yêu cầu (1): Viết chương trình hiển thị các số từ 0->1->2….->9
Yêu cầu (2): Viết chương trình hiển thị các số từ 0->1->2….->9
– quá trình lặp lại 05 lần sau đó LED nháy số 8.
Yêu cầu (3): Tạo thành 02 CTC xuôi (hiển thị 0->9) ngược (hiển
thị từ 9->0). Gọi hiển thị xuôi 2 lần, gọi hiển thị ngược 3 lần
sau đó LED nháy số 2.
TS. Đoàn Thị Hương Giang 41

LED 7 thanh cathode chung với VĐK

a
b
c

Cathode chung
Bài 4:
a)Vẽ sơ đồ kết nối LED 7 thanh cathode chung với VĐK,
b)Lập trình đk hiển thị các số lần lượt từ 0 đến 9 mỗi số sáng cách nhau 1 giây?
c) Lập trình đk hiển thị các số lần lượt từ 0 đến 9 mỗi số sáng cách nhau 1 giây quá
trình lặp lại 100 lần sau đó LED tắt?

21
26/04/2022

LED 7 thanh cathode chung với VĐK

Cathode chung
Bài 4:
a)Vẽ sơ đồ kết nối LED 7 thanh cathode chung với VĐK,
b)Lập trình đk hiển thị các số lần lượt từ 0 đến 9 mỗi số sáng cách nhau 1 giây?
c) Lập trình đk hiển thị các số lần lượt từ 0 đến 9 mỗi số sáng cách nhau 1 giây quá
trình lặp lại 100 lần sau đó LED tắt?

LED 7 thanh anode chung với VĐK


anode chung

a
cb

Bài 5:
a)Vẽ sơ đồ kết nối LED 7 thanh anode chung với VĐK
b)Lập trình đk hiển thị các số lần lượt từ 0,3,6,8,9 mỗi số sáng cách nhau 1 giây?
Quá trình lặp lại liên tục?
c)Lập trình đk hiển thị các số lần lượt từ 0,3,6,8,9 mỗi số sáng cách nhau 1 giây?
Quá trình trên lặp lại 100 lần sau đó LED tắt?

22
26/04/2022

Viết bảng hiện số anode chung (1)


a b c d e f g
P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2 P2
Số 0 0 0 0 0 0 0 1 0100 0000B 40H
Số 1 1 0 0 1 1 1 1 0111 1001B 79H
Số 2 0 0 1 0 0 1 0 0010 0100B 24H
Số 3 0 0 0 0 1 1 0 0011 0000B 30H
Số 4 1 0 0 1 1 0 0 0001 1001B 19H
Số 5 0 1 0 0 1 0 0 0001 0010B 12H
Số 6 0 1 0 0 0 0 0 0000 0010B 02H
Số 7 0 0 0 1 1 1 1 0111 1000B 78H
Số 8 0 0 0 0 0 0 0 0000 0000B 00H
Số 9 0 0 0 0 1 0 0 0001 0000B 10H

TS. Đoàn Thị Hương Giang 45

Lưu ý:
Binary Hex
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
….. …..

0 0 0 0
23 22 21 2 0

TS. Đoàn Thị Hương Giang 46

23
26/04/2022

b)Lập trình đk hiển thị các số lần lượt từ 0,3,6,8,9 mỗi số sáng cách nhau 1 giây? Quá trình
lặp lại liên tục?
Org 0000H
ljmp main 0,3,6,8,9
Org 200H
main:
mov P2,#40H ; Số 0 P2
lcall wait1s
40H
mov P2,#30H ;Số 3
lcall wait1s 79H
mov P2,#02H ;Số 6
lcall wait1s 24H
mov P2,#00H ;Số 8 30H
lcall wait1s 19H
mov P2,#10H ;Số 9
lcall wait1s 12H
ajmp main 02H
wait1s: 78H
…..
ret 00H
end 10H

TS. Đoàn Thị Hương Giang 47

c)Lập trình đk hiển thị các số lần lượt từ 0,3,6,8,9 mỗi số sáng cách nhau 1 giây? Quá trình
trên lặp lại 100 lần sau đó LED tắt?
Org 0000H
ljmp main
Org 200H 0,3,6,8,9
main:
mov R0,#100 Tắt LED:
P2
Label1: P2 = 0111 1111B = 7FH
mov P2,#40H ; Số 0 40H
lcall wait1s
mov P2,#30H ;Số 3 79H
lcall wait1s
mov P2,#02H ;Số 6 24H
lcall wait1s 30H
mov P2,#00H ;Số 8
lcall wait1s 19H
mov P2,#10H ;Số 9 12H
lcall wait1s
djnz R0,Label1 02H
Label2: 78H
mov P2,#7FH; Tắt LED
sjmp Label2 00H
10H
wait1s:
…..
ret TS. Đoàn Thị Hương Giang 48
end

24
26/04/2022

LED 7 thanh anode chung với VĐK


anode chung

b c
a

Bài 5:
a)Vẽ sơ đồ kết nối LED 7 thanh anode chung với VĐK
b)Lập trình đk hiển thị các số lần lượt từ 0,3,6,8,9 mỗi số sáng cách nhau 1 giây?
Quá trình lặp lại liên tục?
c)Lập trình đk hiển thị các số lần lượt từ 0,3,6,8,9 mỗi số sáng cách nhau 1 giây?
Quá trình trên lặp lại 100 lần sau đó LED tắt?

Viết bảng hiện số anode chung (2)


a b c d e f g
P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 P2 P2
Số 0 0 0 0 0 0 0 1 0000 0001B 01H
Số 1 1 0 0 1 1 1 1 0100 1111B 4FH
Số 2 0 0 1 0 0 1 0 0001 0010B 12H
Số 3 0 0 0 0 1 1 0 0000 0110B 06H
Số 4 1 0 0 1 1 0 0 0100 1100B 4CH
Số 5 0 1 0 0 1 0 0 0010 0100B 24H
Số 6 0 1 0 0 0 0 0 0010 0000B 20H
Số 7 0 0 0 1 1 1 1 0000 1111B 0FH
Số 8 0 0 0 0 0 0 0 0000 0000B 00H
Số 9 0 0 0 0 1 0 0 0000 0100B 04H
TS. Đoàn Thị Hương Giang 50

25
26/04/2022

Cathode chung

org 0000h
ljmp main P2.7
main:
mov R1,#100
label1: P2.0
Hiển thị 0->9
djzn R1,label1
Label2:
mov P2,#00000000B
sjmp label2 P2.0->P2.6
Wait1s:….
ret
END

TS. Đoàn Thị Hương Giang 51

Ví dụ:
• Điều khiển 02 LED

TS. Đoàn Thị Hương Giang 52

26
26/04/2022

IC giải mã 7 thanh thực tế


• Hai IC thông dụng dùng để giải mã BCD
sang 7 đọan là:
– CD 4511:
• Loại CMOS
• Đầu ra tác động cao và có đệm
– 7447:
• Loại TTL
• Đầu ra tác động thấp, cực thu để hở

7447

TS. ĐOÀN THỊ HƯƠNG GIANG 53

BCD to 7-segment Decoder (IC 4511)

Active-high outputs designed for driving common-cathode LEDs


Lamp test (LT)
Latch Enable/STROBE (LE)
Blanking Latch (BL)/Banking Input (BI)

Physical of IC4511  Normal state: display from 0 to 9


• LE connect to 0V
• LT and BL/BI: NO or connect to Vcc
 LED off (clock input)
• LE connect to 5V
 Check LED (display number 8):
Connection Diagram • LE, LT and BL is connect to 0V;

PhD. Huong-Giang Doan

27
26/04/2022

True table of IC 4511 &


connection with LED 7 seg
Active-high outputs designed for driving common-cathode LEDs

IC4511 connect to LED 7 seg CC

𝑉𝑐𝑐 − 𝑈đ𝑚𝐿𝐸𝐷
𝑅𝐿𝐸𝐷 =
𝐼đ𝑚𝐿𝐸𝐷

• Điện áp nguồn cấp cho vi mạch là 𝑉𝑐𝑐 = 5𝑉 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0

• Chọn LED có thông số do nhà sản xuất đưa ra là 𝑈đ𝑚𝐿𝐸𝐷 = 400mV = 0.4V và 𝐼đ𝑚𝐿𝐸𝐷 =
20mA = 0.02A
5𝑉−0.4
RLED = = 2,3*10+2 = 230Ω chọn RLED = 220 Ω
0.02
PhD. Huong-Giang Doan

Kết nối vi mạch 4511

TS. Đoàn Thị Hương Giang 56

28
26/04/2022

Connection between LED 7 seg &


microcontroller through IC4511

Nornal mode

PhD. Huong-Giang Doan

P2.3 P2.2 P2.1 P2.0

PhD. Huong-Giang Doan

29
26/04/2022

Bài tập:
• A) Viết chương trình hiển thị các số thừ 0->9
mỗi số cách nhau 1 giây QUÁ TRÌNH LẶP LẠI
LIÊN TỤC
• B) Viết chương trình hiển thị các số từ
0;2;4;6;8 lặp lại 100 lần; sau đó nháy số 0?

TS. Đoàn Thị Hương Giang 59

Chương trình câu A)


main:
mov P2,#0000 0000B ; So 0
Lặp không điều kiện/lặp vô hạn:
lcall wai1s Jmp label
mov P2, #0000 0001B; So 1 Sjmp label
lcall wai1s Ajmp label
mov P2, #0000 0010B; So 2 Ljmp label
lcall wai1s
…..
mov P2, #0000 1001B; So 9
lcall wai1s
ajmp main
wait1s:
….
ret
end

TS. Đoàn Thị Hương Giang 60

30
26/04/2022

main:
Chương trình câu b)
mov R1,#100
Label1:
mov P2,#0011 0000B ; So 0
Viết chương trình hiển thị
lcall wai1s
các số từ 0;2;4;6;8 lặp lại
mov P2, #0011 0010B; So 2 100 lần; sau đó nháy số 0?
lcall wai1s
mov P2, #0011 0100B; So 4
lcall wai1s
mov P2, #0011 0110B; So 6 Có Không
lcall wai1s điều điều
mov P2, #0011 1000B; So 8 kiện kiện
lcall wai1s
djnz R1,Label1
Label2:
mov P2,#0011 0000B; Hiển thị số 0
Label:
lcall wait1s
• Hiển thị số 0
mov P2,#0000 0000B; Tắt LED
lcall wait1s
• Trễ
sjmp Label2
• Tắt số 0
wait1s: • Trễ
…. Sjmp Label
ret
end
Lưu ý: LT và BI phải nối với P2.4 và P2.5 để thực hiện tắt LED
TS. Đoàn Thị Hương Giang 61

BCD to 7-segment Decoder (IC 7447)


Active-low outputs designed for driving common-anode LEDs
Lamp test (LT)
Blanking input (BI) and/or Ripple-blanking output (RBO)
Blanking input (BI)

 Normal state: display from 0 to 9:


Physical of IC 7447 • LT, BI/RBO, RBI: NO or connect to Vcc
 LED off:
• BI/RBO connect to 0V
 Check LED:
• BI/RBO is NO or connect to Vcc;
Connection Diagram • LT connect to 0V

PhD. Huong-Giang Doan

31
26/04/2022

IC 7447 & connection with LED 7 seg CA

IC7447 connect to LED 7 seg CA True table

PhD. Huong-Giang Doan

Bảng sự thật của 7447

TS. ĐOÀN THỊ HƯƠNG GIANG

Tắt
LED
64

32
26/04/2022

Connection between LED 7 seg &


Microcontroller through IC7447

PhD. Huong-Giang Doan

Bài tập sử dụng vi mạch giải mã 7447:


• A) Viết chương trình hiển thị các số thừ 9->0
mỗi số cách nhau 1 giây QUÁ TRÌNH LẶP LẠI
LIÊN TỤC
• B) Viết chương trình hiển thị các số từ
1;3;5;7;9 lặp lại 100 lần; sau đó nháy số 0?

TS. Đoàn Thị Hương Giang 66

33
26/04/2022

LT  P2.5
mov R1,#100 BI  P2.4
Label1:
mov P2,#0011 0001B; Số 1
lcall wait1s
mov P2,#0011 0011B; Số 3
lcall wait1s
…..
djnz R1,Label1
Label2:
mov P2,#0011 0000B ; Hiển thị số 0
lcall wait1s
mov P2,#0010 0000B ; Tắt LED
lcall wait1s
sjmp Label2
…..

TS. Đoàn Thị Hương Giang 67

Ví dụ (tt)
Chương trình thực hiện hiển thị số 0 ra Led 1 và số 1 ra Led 2
• Chân g của Led nối với P0.6
• Chân a nối với P0.0
• Led anode chung nên dữ liệu cho số 0 và 1 lần lượt là:
– 0C0h và 0F9h.
• Dùng Timer tạo thời gian trì hoãn giữa 2 lần quét (200 µs)

TS. Đoàn Thị Hương Giang 68

34
26/04/2022

Phương pháp chốt LED


• Thực hiện tách riêng các đường dữ liệu của LED, ta có
thể cho phép các LED sáng đồng thời mà sẽ không
không có hiện tượng ảnh hưởng giữa các LED .
• IC chốt cho phép lưu trữ dữ liệu cho các LED có thể
sử dụng 74LS374, 74LS373. Khi nào cần xuất dữ liệu
ra LED thì gởi dữ liệu và tạo xung chốt.
• Ưu điểm của phương pháp này phần mềm đơn giản.
• Nhược điểm của phương pháp là tốn nhiều IC (mỗi
Led 7 đoạn cần một IC chốt), do các Led cùng sáng 
tiêu hao dòng lớn

TS. Đoàn Thị Hương Giang 69

Điều khiển LED 7 thanh với vi mạch


chốt IC74LS374

74LS374

Sơ đồ chân Bảng chân lý


• H: High level
• L: Low level
• Q0: Level of output before steady state input
conditions were established
• Z: high impedance state
• X: don’t care
• ↑: Transition from Low to High

PhD. Huong-Giang Doan

35
26/04/2022

Ví dụ (tt)
Chương trình thực hiện hiển thị số 2 ra Led 3 và số 3 ra
Led 4
• Theo sơ đồ kết nối Led 3 nối với IC chốt 74LS374
điều khiển bằng chân P1.0 nên để hiển thị trên Led3
cần phải
• Xuất dữ liệu ra P0
• Kích xung tại chân P1.0 để chốt dữ liệu
• Làm tương tự với Led 4.

TS. Đoàn Thị Hương Giang 71

Điều khiển 02 LED 7 thanh

LED 7 thanh:
- Công suất trung bình và
lớn
- A nốt chung

PhD. Huong-Giang Doan

36
26/04/2022

LED 7 THANH KÉP


(>1 DIGITS 7SEG)

TS. Đoàn Thị Hương Giang 73

LED 7 thanh kép


• Cấu tạo từ 02 LED 7 thanh kép trở lên.
• Có các loại 2,3,4,5,… digits
• Các chân a,b,c,d,e,f,g được kết nối trực tiếp
với nhau, các chân anode hoặc cathode của
LED tách riêng để điều khiển cho từng LED

TS. Đoàn Thị Hương Giang 74

37
26/04/2022

2 LED 7 thanh kép

Cathode chung

anode chung

TS. Đoàn Thị Hương Giang 75

Sơ đồ kết nối với VĐK

TS. Đoàn Thị Hương Giang 76

38
26/04/2022

Nguyên tắc hiển thị


Quét với thời gian hợp lý:
• Hiển thị hàng chục -> Hàng đơn vị: hai ký tự
• Hàng trăm -> chục -> đơn vị: ba ký tự
• Ngàn -> trăm -> chục -> đơn vị: bốn ký tự
Chốt dữ liệu sử dụng vi mạch:
• Tương tự sử dụng nhiều LED đơn

TS. Đoàn Thị Hương Giang 77

Ví dụ
• Yêu cầu hiển thị các số từ 00  99.
• Chia các nhóm:
– 0-> 9: hàng chục là 0, đơn vị chạy từ 0-> 9
– 10-> 19: hàng chục là 1, đơn vị 0->9
– ….
– 90->99: hàng chục là 9, đơn vị 0->9

TS. Đoàn Thị Hương Giang 78

39
26/04/2022

Nguyên tắc quét


LED 1 = ON; LED 2 = OFF LED 1 = OFF; LED 2 = ON

1 0

1 1

1 2

1 9

TS. Đoàn Thị Hương Giang 79

Bài 1:
• A) Vẽ sơ đồ kết nối LED đôi kép loại Anode chung với
VĐK 8051.
• B) Viết chương trình hiển thị các số từ 20->29
• C) Viết chương trình hiển thị các số từ 20->29 và quá
trình lặp lại 200 lần, sau đó cả hai LED nháy số 55?
Bài 2:
• A) Vẽ sơ đồ kết nối LED đôi kép loại Cathode chung với
VĐK 8051.
• B) Viết chương trình hiển thị các số từ 40-->49
• C) Viết chương trình hiển thị các số từ 40->49 và quá
trình lặp lại 200 lần, sau đó cả hai LED nháy số 66?

TS. Đoàn Thị Hương Giang 80

40
26/04/2022

Viết chương trình hiển thị các số


từ 20->29 LED 7 thanh kép loại
Anode chung

P1.0 P1.1 P2.6 P02.5 P2.4 P2.3 P2.2 P2.1 P2.0 Số

1-LED1 2-LED2 g f e d c b a

1 1 1 0 0 0 0 0 0 0

1 1 1 1 1 1 0 0 1 1

1 1 0 1 0 0 1 0 0 2

1 1 0 1 1 0 0 0 0 3

……. ……. ……. ……. ……. ……. ……. ……. ……. …..

1 1 0 0 1 0 0 0 0 9

TS. Đoàn Thị Hương Giang 81

LED 7 thanh kép loại Anode chung


P1.0 P1.1 P2.6 P02.5 P2.4 P2.3 P2.2 P2.1 P2.0 Số
1-LED1 2-LED2 g f e d c b a
1 1 1 0 0 0 0 0 0 0
1 1 1 1 1 1 0 0 1 1
1 1 0 1 0 0 1 0 0 2
1 1 0 1 1 0 0 0 0 3
1 1 0 0 1 1 0 0 1 4
1 1 0 0 1 0 0 1 0 5
1 1 0 0 0 0 0 1 0 6
1 1 1 1 1 1 0 0 0 7
1 1 0 0 0 0 0 0 0 8
1 1 0 0 1 0
TS. Đoàn Thị Hương Giang
0 0 0 9 82

41
26/04/2022

Main: 20->29
setb P1.0
clr P1.1
mov P2,#0010 0100B ; LED1 sáng số 2
lcall wait1s
clr P1.0
setb P1.1
mov P2,#0100 0000B ; LED2 sáng số 0
lcall wait1s

setb P1.0
clr P1.1
mov P2,#0010 0100B ; LED1 sáng số 2
lcall wait1s
clr P1.0
setb P1.1
mov P2,#0111 1001B ; LED2 sáng số 1
lcall wait1s

TS. Đoàn Thị Hương Giang 83

Chương trình
• org 0000H
• lcall main
• org 200H
• main:
• lcall display0x
• lcall display1x
• lcall display2x
• lcall display3x
• lcall display4x
• lcall display5x
• lcall display6x
• lcall display7x
• lcall display8x
• lcall display9x
• jmp main

TS. Đoàn Thị Hương Giang 84

42
26/04/2022

Hiển thị từ 00-> 09


• display0x:
• clr p1.0
• setb p1.1
• mov p2,#3FH; So 0
• lcall wait2s
• setb p1.0
• clr p1.1
• mov p2,#3FH; So 0
• lcall wait1s

• clr p1.0
• setb p1.1
• mov p2,#3FH; So 0
• lcall wait2s
• setb p1.0
• clr p1.1
• mov p2,#06H; so1
• ………
TS. Đoàn Thị Hương Giang 85

03 LED 7 thanh kép

TS. Đoàn Thị Hương Giang 86

43
26/04/2022

04 LED 7 thanh kép


• Loại anode chung

TS. Đoàn Thị Hương Giang 87

LED ma trận
• Ma trận Led bao gồm nhiều Led đơn đóng gói chung trong
một khối liền, chia thành nhiều hàng và nhiều cột.
• Giao điểm của mỗi hàng và cột là một điểm sáng.
• LED ma trận có nhiều loại với các kích thước khác nhau. Để
LED hiển thị số được mịn thì phụ thuộc vào độ phân giải của
LED- Tinh theo đơn vị pixel (số lượng mắt led).
• Ví dụ: module ma trận 16×32 tức là 16 hàng led x 32 cột led.

TS. Đoàn Thị Hương Giang 88

44
26/04/2022

Phân loại
Theo kích thước/độ phân giải:

 Có các loại: 5x7; 8x8, hoặc có thể thiết kế kích


thước tùy theo mục đích: 8×16, 16×32,…

TS. Đoàn Thị Hương Giang 89

Phân loại (tt)


 Theo mào sắc:
• Loại đơn sắc: Trong đó mỗi điểm sáng trên ma trận Led chỉ có một
Led với một màu nhất định. Thường ma trận Led đơn sắc có màu
đỏ hoặc màu xanh.
• Loại đa sắc: Trong đó mỗi điểm sáng có ít nhất từ 2 Led trở lên.
Tùy theo yêu cầu thực tế, công năng sử dụng mà mối điểm sáng có
thể gồm
 Một Led màu xanh lục + một Led màu đỏ.
 Một Led màu xanh lục + một Led màu xanh lơ + một Led
màu đỏ.
 Một Led màu xanh lục + một Led màu xanh lơ + hai Led
màu đỏ.
• Với loại ma trận mà mỗi điểm sáng gồm một Led màu xanh lục +
một Led màu đỏ thì điểm sáng hiển thị màu xanh nếu Led đỏ tắt,
màu đỏ nếu Led xanh tắt, màu vàng nếu cả hai led sáng và tắt nếu
cả hai Led cùng tắt TS. Đoàn Thị Hương Giang 90

45
26/04/2022

LED ma trận (tt)


• Các bóng led điều khiển, quét bật tắt theo yêu cầu để
tạo ra hiệu ứng, chạy chữ…
• Để một vị trí nào đó trên LED sáng thì phải cấp hiệu
điện thế dương giữa Anode và Cathode.
• Kết nối ma trận Led có 2 cách:
• Anode nối với hàng, cathode nối với cột
• Anode nối với cột, cathode nối với hàng

TS. Đoàn Thị Hương Giang 91

Cấu tạo LED ma trận

anode nối với hàng, cathode nối với cột anode nối với cột, cathode nối với hàng

TS. Đoàn Thị Hương Giang 92

46
26/04/2022

Hiển thị LED ma trận


• Để thực hiện sáng một ký tự trên ma trận Led, ta phải
dùng cơ chế quét, tại mỗi thời điểm chỉ sáng 1
cột/dòng, các cột/dòng còn lại tắt đi nhưng nếu cho
thời gian quét đủ nhanh thì ta vẫn thấy như các cột
sáng đồng thời.

TS. Đoàn Thị Hương Giang 93

Hiển thị LED ma trận(tt)


Việc điều khiển sáng tại một điểm được thực hiện bằng cách cấp nguồn vào
Anode (dương) và Catode(âm).
Ví dụ: Để sáng số 0, ta thực hiện quét liên tục các hàng và cột như sau:
Cột: Cổng 0  Cổng 4
• Lần 1: Hàng = 01000001; Cột = 00000001 Anot chung cho cổng cột

• Lần 2: Hàng = 00111110; Cột = 00000010


Hàng: Cổng 0  Cổng 6
Katot chung
• Lần 3: Hàng = 00111110; Cột = 00000100
• Lần 4: Hàng = 00111110; Cột = 00001000
• Lần 5: Hàng = 01000001; Cột = 00010000
Cột Anot chung thì mức logic sáng là 1 BT: Lập mã số cho các số từ 09
Hàng Katot chung thì mức logic sáng là 0
sử dụng LED ma trận 5x7 loại anot
Cột Katot chung thì mức logic sáng là 0 chung ở cột và Katot chung ở hàng
Hàng anot chung thì mức logic sáng là 1 TS. Đoàn Thị Hương Giang 94

47
26/04/2022

Kết nối LED ma trận với VĐK

TS. Đoàn Thị Hương Giang 95

Chương trình hiện số 0 so0:


mov P0,#41H
mov P1,#01H
Hàng = 0100 0001B = 41H; Cột = 0000 0001B = 01H lcall waitms

Hàng = 0011 1110B = 3EH; Cột = 0000 0010B = 02H


mov P0,#3EH
Hàng = 0011 1110B = 3EH; Cột = 0000 0100B = 04H mov P1,#02H
Hàng = 0011 1110B = 3EH; Cột = 0000 1000B = 08H lcall waitms

Hàng = 0100 0001B = 41H; Cột = 0001 0000B = 10H mov P0,#3EH
mov P1,#04H
lcall waitms

mov P0,#3EH
mov P1,#08H
lcall waitms

mov P0,#41H
mov P1,#10H
Hàng nối P0; Cột nối P1 lcall waitms
TS. Đoàn Thị Hương Giang
RET 96

48
26/04/2022

Chỉ cần quét ba cột


Số 1 Cột: 0 1 2 3 4
X
Hàng = 0111 1011B = 7BH; Cột = 0000 0001B = 01H 0
1 x X
Hàng = 0111 1101B = 7D; Cột = 0000 0010B = 02H
2 X X
Hàng = 0000 0000B = 00h; Cột = 0000 0100B=04H 3 X
4
so1: X
5
mov P0,#7BH X
6
mov P1,#01H
lcall waitms
7 X
Hàng
mov P0,#7DH
mov P1,#02H
lcall waitms

mov P0,#00H
mov P1,#04H
lcall waitms
RET

TS. Đoàn Thị Hương Giang 97

org 0000H
lcall main
org 200H a) Hiển thị các số 0,1,2 mỗi số cách nhau 1 giây.
main: Quá trình lặp lại liên tục?
lcall So0
lcall wait1s
lcall So1
lcall wait1s
lcall So2
lcall wait1s
ajmp main
So0:
…..
RET
So1:
…..
RET
So2:
…..
RET

Waitms:
….
RET
Wait1s:
Ret
END

TS. Đoàn Thị Hương Giang 98

49
26/04/2022

org 0000H
lcall main
org 200H a) Hiển thị các số 0,1,2 mỗi số cách nhau 1 giây.
main: Quá trình lặp lại liên tục trong 150 lần sau đó
MOV R0,#150
LED nháy số 0?
Label1:
lcall So0 LED nháy số 0
lcall wait1s
lcall So1
lcall wait1s
lcall So2
lcall wait1s
Hiển thị số 0 Tắt LED
djnz R0,Label1
Label2:
lcall So0
P1= 0; P0 = 1
lcall wait1s
mov P1,#0000 0000B Ngược với trường hợp bật LED
mov P0,#1111 1111B
lcall wait1s Cột Anot chung thì mức logic sáng là 1 Cột nối P1
sjmp Label2 Hàng Katot chung thì mức logic sáng là 0 Hàng nối P0;
So0:
…..
Bài tập1: Hãy vẽ sơ đồ kết nối VĐK 8051 với LED ma trận 5x7 trong
RET
So1: đó Cột nối với anot và Hàng nối với Ka tốt? (Không dùng P0)
….. Bài tập2: Hãy vẽ sơ đồ kết nối VĐK 8051 với LED ma trận 5x7 trong
RET đó Cột nối với Ka tốtvà Hàng nối với Anốt?
So2:
…..
RET TS. Đoàn Thị Hương Giang 99

Waitms:
….
RET
Wait1s:
Ret
END

BT2: Lập mã số cho các số từ 09 sử dụng LED ma trận


5x7 loại katot chung ở cột và anot chung ở hàng
Cột Katot chung thì mức logic sáng là 0
Hàng anot chung thì mức logic sáng là 1

TS. Đoàn Thị Hương Giang 100

50
26/04/2022

Kết nối LED ma trận với VĐK

TS. Đoàn Thị Hương Giang 101

Chương trình
• Yêu cầu: Sáng số 0 trên ma trân Led

TS. Đoàn Thị Hương Giang 102

51
26/04/2022

TS. Đoàn Thị Hương Giang 103

TS. Đoàn Thị Hương Giang 104

52
26/04/2022

TS. Đoàn Thị Hương Giang 105

chuV:
mov P3,#01111111B
mov P2,#11000011B
lcall waits
mov P3,#10111111B
mov P2,#11000011B
lcall waits
mov P3,#11011111B
mov P2,#11000011B
lcall waits
mov P3,#11101111B
mov P2,#11000011B
lcall waits
mov P3,#11110111B
mov P2,#11000011B
lcall waits
mov P3,#11111011B
mov P2,#11100111B
lcall waits
mov P3,#11111101B
mov P2,#01111110B
lcall waits
mov P3,#11111110B
mov P2,#00111100B
lcall waits
mov p3,#11111111B
lcall waits
ret

TS. Đoàn Thị Hương Giang 106

53
26/04/2022

chuV:
mov P3,#01111111B
mov P2,#11000011B
lcall waits
mov P3,#10111111B
mov P2,#11000011B
lcall waits
mov P3,#11011111B
mov P2,#11000011B
lcall waits
mov P3,#11101111B
mov P2,#11000011B
lcall waits
mov P3,#11110111B
mov P2,#11000011B
lcall waits
mov P3,#11111011B
mov P2,#11100111B
lcall waits
mov P3,#11111101B
mov P2,#01111110B
lcall waits
mov P3,#11111110B
mov P2,#00111100B
lcall waits
mov p3,#11111111B
lcall waits
ret

TS. Đoàn Thị Hương Giang 107

Bài 1: Vẽ sơ đồ kết nối VĐK 8051 với LED 7 thanh anode


chung? Giải thích sơ đồ kết nối?

Bài 2: Vẽ sơ đồ kết nối VĐK 8051 với LED 7 thanh đơn


anode chung thông qua vi mạch giải mã BCD/7thanh?
Giải thích sơ đồ kết nối?

Bài 3: Vẽ sơ đồ kết nối VĐK 8051 với LED 7 thanh


đôi loại anode chung? Giải thích sơ đồ kết nối?

TS. Đoàn Thị Hương Giang 108

54
26/04/2022

Bài 4: Vẽ sơ đồ kết nối VĐK 8051 với LED 7 thanh cathode


chung? Giải thích sơ đồ kết nối?

Bài 5: Vẽ sơ đồ kết nối VĐK 8051 với LED 7 thanh đơn


cathode chung thông qua vi mạch giải mã BCD/7thanh?
Giải thích sơ đồ kết nối?

Bài 6: Vẽ sơ đồ kết nối VĐK 8051 với LED 7 thanh


đôi loại cathode chung? Giải thích sơ đồ kết nối?

TS. Đoàn Thị Hương Giang 109

LCD

TS. Đoàn Thị Hương Giang 110

55
26/04/2022

 LCD (Liquid Crystal Display)


• Dùng để hiển thị thông tin linh hoạt và tiết kiệm năng lượng.
• Nhiều loại module LCD khác nhau
• Module LCD đã được thiết kế chuẩn để cho phép ta có thể giao
tiếp với LCD (dùng IC điều khiển HD44780).

Loại 16 chân 1 hàng Loại 16 chân 2 hàng

TS. Đoàn Thị Hương Giang 51

Phân loại
 Có thể chia các modul LCD thành 2 loại chính:
• Loại hiển thị ký tự (character LCD): 16x1 (16 ký tự x 1 dòng) , 16x2, 16x4,
20x1, 20x2 (20 ký tự x 2 dòng), 20x4, 40x1, 40x2, 40x4 (40 ký tj x 4
dòng). Mỗi ký tự được tạo bởi một ma trận các điểm sáng kích thước 5x7
hoặc 5x10 điểm ảnh.
• Loại hiển thị đồ họa (graphic LCD): đen trắng hoặc màu gồm có các kích
cỡ: 1.8 inch (128x160 điểm ảnh), 2.4 inch (240x320 điểm ảnh), 3.5 inch
(320x240 điểm ảnh), 7 inch (800x480 điểm ảnh)…

TS. Đoàn Thị Hương Giang 52

56
26/04/2022

Sơ đồ chân của LCD


 LCD có 14 chân. Kết nối được bố trí dưới dạng 1 hàng 14 chân hoặc 2
hàng 7 chân, được chia làm 3 nhóm.
• Nhóm 1 (cấp nguồn): Vcc, Vss, Vee
• Nhóm 2 (dữ liệu vào ra): D0...D7
• Nhóm 3 (điều khiển dữ liệu vào ra): RS, R/W, E

TS. Đoàn Thị Hương Giang 53

Sơ đồ chân của LCD (tt)

GND

D0

D1
D2

D3
D4
D5

D6
D7

TS. Đoàn Thị Hương Giang 54

57
26/04/2022

 Bảng mã lệnh của LCD :

• D/C: 1 = Display shift, 0 = cursor move

• x = don’t care * = đặt ban đầu

TS. Đoàn Thị Hương Giang 57

 Địa chỉ trên LCD 16x2:

 Chế độ điều khiển: Có 2 chế độ làm việc với LCD

• Chế độ điều khiển 4 bit: Chỉ sử dụng 4 bit từ D4 ÷ D7 để gửi thông tin
lên LCD hoặc đọc nội dung các thanh ghi trong LCD. Khi đó 1 byte
giao tiếp với LCD được truyền thành 2 lần theo quy tắc byte thấp
trước, byte cao sau

• Chế độ điều khiển 8 bit: Sử dụng 8 bit từ D0 ÷ D7 để giao tiếp với


LCD. Khi đó 1 byte giao tiếp với LCD được truyền một lần

TS. Đoàn Thị Hương Giang 58

58
26/04/2022

 Nguyên tắc hiển thị trên LCD: Một chương trình hiển thị ký tự trên LCD
sẽ đi theo bốn bước sau

1. Xóa toàn bộ màn hình.

2. Đặt chế độ hiển thị.

3. Đặt vị trí con trỏ (nơi bắt đầu của ký tự hiện thị).

4. Hiển thị ký tự.

Chú ý:

• Các bước 3,4 có thể lặp lại nhiều lần nếu cần hiển thị nhiều ký tự.

• Mỗi khi thực hiện ghi lệnh hoặc ghi dữ liệu hiển thị lên LCD đều phải
kiểm tra cờ bận (busy_flag).

• Chế độ hiển thị mặc định sẽ là 8 bit data, hiển thị dịch, vị trí con trỏ là
đầu dòng thứ nhất.

TS. Đoàn Thị Hương Giang 59

 Ghép nối với LCD 8 BITS DỮ LIỆU:

TS. Đoàn Thị Hương Giang 60

59
26/04/2022

Chương trình điều khiển LCD


Chương trình con ghi lệnh đk ra LCD
command:
lcall Ready
mov P2,a
clr P3.0 ;RS=0 de gui data dang lenh nhu xoa/chuyen vi tri con tro
clr P3.1 ;RW=0 de ghi data vap LCD
setb P3.2 ;E=1 de chot du lieu
clr P3.2 ;E=0
ret

TS. Đoàn Thị Hương Giang 119

;Chương trình con hiển thị/ghi dữ liệu ra LCD

Display:
lcall Ready
mov P2,a
setb P3.0 ;RS=1 de gui data dang van ban
clr P3.1 ;RW=0 de ghi data vao LCD
setb P3.2
clr P3.2
ret

;CTC kiểm tra trạng thái sãn sàng của LCD

Ready:
setb P2.7
clr P3.0
setb P3.1
Back:
clr P3.2
setb P3.2
jb P2.7,Back
ret

TS. Đoàn Thị Hương Giang 120

60
26/04/2022

main:
mov a,#38H ; khoi tao LCD 2 dong 5x7 YC1: Hãy viết chương
lcall Command trình trên LCD
lcall Delay a) Hiển thị tên trên dòng
mov a,#0EH ;Hien thi vi tri con tro
1?
lcall Command
lcall Delay VD: DUONG, HUNG….
mov a,#01H ;Xoa man hinh b) Dòng 2 hiển thị tên
lcall Command lớp?
lcall Delay VD: D13TDH1
DSP_EPU:
mov a,#01H
lcall Command
lcall Delay
mov a,#80H ;dua con tro ve dau man hinh dong 1
lcall Command
lcall Delay YC2: Hãy viết chương trình trên LCD
mov a,#“D"
a) Hiển thị tên trên dòng 1 tại vị trí
lcall Display
lcall Delay
số 3?
mov a,#06H ;dich con tro phải VD: DUONG, HUNG….
lcall Command b) Dòng 2 hiển thị tên lớp ở vị trí
lcall Delay thứ 5?
mov a,#“1" VD: D13TDH1
lcall Display
……
TS. Đoàn Thị Hương Giang 121

;Chương trình con hiển thị/ghi dữ liệu ra LCD main:


mov a,#38H ; khoi tao LCD 2 dong 5x7
Display: lcall Command
lcall Ready lcall Delay
mov P2,a mov a,#0EH ;Hien thi vi tri con tro
setb P3.0 ;RS=1 de gui data dang van ban lcall Command
clr P3.1 ;RW=0 de ghi data vao LCD lcall Delay
setb P3.2 mov a,#01H ;Xoa man hinh
clr P3.2 lcall Command
lcall Delay
ret
DSP_EPU:
mov a,#01H
Chương trình con ghi lệnh đk ra LCD lcall Command
lcall Delay
command:
mov a,#80H ;dua con tro ve dau man hinh dong 1
lcall Ready lcall Command
mov P2,a mov a,#“D"
clr P3.0 ;RS=0 de gui data dang lenh lcall Display
lcall Delay
clr P3.1 ;RW=0 de ghi data vap LCD mov a,#06H ;dich con tro
setb P3.2 ;E=1 de chot du lieu lcall Command
clr P3.2 ;E=0 lcall Delay
mov a,#“1"
ret lcall Display
……
;CTC kiểm tra trạng thái sãn sàng của LCD ……
ljmp DSP_EPU
Ready:
setb P2.7
clr P3.0
setb P3.1
Back:
clr P3.2
setb P3.2
jb P2.7,Back
ret
TS. Đoàn Thị Hương Giang 122

61
26/04/2022

TS. Đoàn Thị Hương Giang 123

 Ghép nối với LCD 4 BITS DỮ LIỆU:

TS. Đoàn Thị Hương Giang 60

62
26/04/2022

TS. Đoàn Thị Hương Giang 125

Upper 4 bits
Lower 4 bits

Upper
4 bits

11011111B = DFH
Lower TS. Đoàn Thị Hương Giang 126
4 bits

63
26/04/2022

KEY/SWITCH

TS. Đoàn Thị Hương Giang 127

Các loại nút bấm/phím bấm

TS. Đoàn Thị Hương Giang 128

64
26/04/2022

Kết nối phím đơn không chống rung phần cứng


• Công tắc/khóa (hay phím đơn) ở các chân cổng I/O

TS. Đoàn Thị Hương Giang 129

Kết nối phím đơn có chống rung phần cứng

R3
10k
P1.1
C7
10uF

C6
10uF
R8
10k

1. Tốt 2. Kém
Phím chưa nhấn

Phím nhấn TS. Đoàn Thị Hương Giang 130

65
26/04/2022

Kết nối phím đơn có chống rung phần cứng

Phím chưa nhấn Phím chưa nhấn

Phím nhấn Phím nhấn

TS. Đoàn Thị Hương Giang 131

DIP Switch

Đọc dữ liệu vào:

MOV P1,#0FFH ; đặt cấu hình cổng P1

MOV A, P1

TS. Đoàn Thị Hương Giang 132

66
26/04/2022

Sơ đồ ghép nối VĐK với 02 phím đơn

Sơ đồ mạch nối phím đơn tích cực


mức thấp có chống rung phần cứng

TS. Đoàn Thị Hương Giang 133

ORG 0000H
Chương trình quét 02 phím ljmp main1
org 200H
main1:
P1.7 P1.1 P1.0 mov P2,#00H
nop
a=P1
main:
000
0 0 00
0 0 00
0 1 01 mov a,P1
anl a,#00000011b
cjne a,# 00000011b,checkey
a 0 0 0 0 0 0 jmp main
P1.1 P1.0 checkey:
cjne a,#00000010B,check2
Giữ lại trạng thái hai cổng P1.0
setb P2.0
và P1.1 để kiểm tra trạng thái
clr P2.1
phím có tác động không
jmp main
check2:
Nếu phím không nhấn thì = 11; có phím cjne a,#00000001B,the_end
nhấn thì khác 11 nhảy đến checkey setb P2.1
clr P2.0
the_end:
Nếu phím 1 nhấn thì = 10 jmp main
end

Nếu phím 2 nhấn thì = 01


TS. Đoàn Thị Hương Giang 134

67
26/04/2022

Bài tập
Bài 1:
a) Vẽ sơ đồ kết nối VĐK với 03 phím đơn tích
cực mức thấp có chống rung phần cứng với
LED 7 thanh loại Anode chung?
b) Viết chương trình theo yêu cầu sau:
- Phím 1 bấm Led hiển thị các số chẵn 0,2,4,6,8
- Phím 2 bấm LED hiển thị các số lẻ: 1,3,5,7,9
- Phím 3 bấm Led hiển thị số 0 nhấp nháy 100 lần
thì dừng

TS. Đoàn Thị Hương Giang 135

Bài tập
Bài 1:
a) Vẽ sơ đồ kết nối VĐK với 08 LED đơn?
b) Viết chương trình điều khiển sáng từ LED 1 đến LED 8 mỗi led
sáng cách nhau 1s
Bài 2:
a) Vẽ sơ đồ kết nối VĐK với 03 phím đơn tích cực mức thấp có chống
rung phần cứng với LED 7 thanh loại Anode chung?
b) Viết chương trình theo yêu cầu sau:
- Phím 1 bấm Led hiển thị các số chẵn 0,2,4,6,8
- Phím 2 bấm LED hiển thị các số lẻ: 1,3,5,7,9
- Phím 3 bấm Led hiển thị số 0 nhấp nháy 100 lần thì dừng
Bài 3:
a) Vẽ sơ đồ kết nối VĐK với LCD ?
b) Viết chương trình hiển thị tên trên dòng 1 và lớp trên dòng 2?

TS. Đoàn Thị Hương Giang 136

68
26/04/2022

TS. Đoàn Thị Hương Giang 137

Bài 1: Vẽ sơ đồ kết nối 04 LED đơn (D0, D1, D2, D3)


với VXL. Viết chương trình hiển thị theo yêu sau:
– D1, D3, D2, D4 lần lượt sáng và lặp lại trong 100 lần
thì nhấp nháy cả 04 LED
Bài 2: Vẽ sơ đồ kết nối 04 LED đơn có chống rung
phần cứng và 01 LED 7 thanh loại Katot chung.
Viết chương trình theo yêu cầu sau:
- Bấm phím 1: Led hiển thị số lẻ 1,3,5,7,9.
- Bấm phím 2: Led hiển thị số chẵn 0,2,4,6,8
- Bấm phím 3: Led hiển thị số 0->9
- Bấm phím 4: nháy số 8
TS. Đoàn Thị Hương Giang 138

69
26/04/2022

Sơ đồ kết nối VĐK với 04 phím đơn

TS. Đoàn Thị Hương Giang 139

Chương trình quét 04 phím


Main:
mov a,P1 Đọc cổng và kiểm tra trạng
anl a,#00001111b thái có phím nào được bấm
cjne a,#00001111B,checkey
hay không?
jmp Main
checkey:
cjne a,#00001110B,check2 ; có phải phím 1 không?
mov P2,#maso1
jmp Main
check2:
cjne a,#00001101B,check3 ; có phải phím 2 không?
mov P2,#maso2
jmp Main
check3:
cjne a,#00001011B,check4 ; có phải phím 3 không?
mov P2,#maso3
jmp Main
check4:
cjne a,#00000111B,The_end; ; có phải phím 4 không?
mov P2,#maso4
The_end: Chương trình quét phím không có
jmp Main chống rung bằng phần mềm

TS. Đoàn Thị Hương Giang 140

70
26/04/2022

Main:
mov a,P1 Đọc cổng và kiểm tra
anl a,#00001111b trạng thái có phím nào
cjne a,#00001111B,checkey được bấm hay không?
jmp Main
checkey:
cjne a,#00001110B,check2 ; có phải phím 1 không?
jmp dsp1
check2:
cjne a,#00001101B,check3 ; có phải phím 2 không?
jmp dsp2
check3:
cjne a,#00001011B,check4 ; có phải phím 3 không?
jmp dsp3
check4:
cjne a,#00000111B,The_end; ; có phải phím 4 không?
jmp dsp4
The_end: Chương trình quét phím không có
jmp Main chống rung bằng phần mềm

TS. Đoàn Thị Hương Giang 141

• mov a,P1
• anl a,#00001111b
• cjne a,#00001111B,checkeyfezzz
• checkeyfezzz:
• lcall wait1s
• lcall wait1s


lcall
lcall
wait1s
wait1s Chống rung bằng phần mềm
• lcall wait1s
• mov a,P1
• anl a,#00001111b
• cjne a,#00001111B,checkey
• jmp main
• checkey:
• cjne a,#00001110B,check2
• jmp dsp1
• check2:
• cjne a,#00001101B,check3
• jmp dsp2
• check3:
• cjne a,#00001011B,check4
• jmp dsp3
• check4:


cjne
jmp
a,#00000111B,check5
dsp4 Chương trình quét phím có chống
• check5:
• cjne a,#00000011B,check6 rung bằng phần mềm
• jmp dsp5
• check6:
• cjne a,#00001100B,check7
• jmp dsp6
• check7:
• cjne a,#00000101B,check8
• jmp dsp7
• check8:
• cjne a,#00001010B,check9
• jmp dsp8
• check9:
• cjne a,#00000110B,check10
• jmp dsp9
• check10:
• jmp main

TS. Đoàn Thị Hương Giang 142

71
26/04/2022

org 0000H
ljmp main1
org 200H
main1: HTChan:
mov R4,#1 mov P2,#So0
main:
lcall wait1s
mov a,P1
……
anl a,#00001111b (1) jmp main
cjne a,#00001111b,check_key
jmp check_mode
HTLe:
check_key: mov P2,#So1
cjne a,#00001110B,check2 lcall wait1s
mov R4,#2 ……
ljmp main jmp main
check2:
cjne a,#00001101B,check3 HTChan_Le:
mov R4,#3 mov P2,#So0
ljmp main lcall wait1s
check3: mov P2,#So1
cjne a,#00001011B,check4 lcall wait1s
mov R4,#4 ……
ljmp main jmp main
check4:
cjne a,#00000111B,check_mode TAT:
mov R4,#5 mov P2,#0FFH ; Nếu Anot chung
check_mode: jmp main
cjne R4,#2,mode2
ljmp HTChan
;-------------------------
mode2:
cjne R4,#3,mode3
ljmp HTLe
mode3: (2)
cjne R4,#4,mode4
ljmp HTChan_Le
mode4:
cjne R4,#5,the_end
ljmp TAT
the_end:
ljmp main
TS. Đoàn Thị Hương Giang 143

Vi mạch giải mã 8->3

TS. Đoàn Thị Hương Giang 144

72
26/04/2022

Mạch phím sử dụng giải mã phím (1)

TS. Đoàn Thị Hương Giang 145

Mạch phím sử dụng giải mã phím (2)

TS. Đoàn Thị Hương Giang 146

73
26/04/2022

Chương trình đọc phím sử dụng ngắt ngoài


INT0ISR:
org 0000h mov a,P2
ljmp main lcall check_key
clr IE0
org 0003H reti
LJMP INT0ISR
check_key:
org 200h anl a, #00000111b
ckeck1:
(**) cjne a, #00000110B, check2
main: mov P1, #00000001B
ret
SETB EA Khởi check2:
(*) SETB EX0 tạo
cjne a, #00000101B, check3
giá
trị mov P1, #00000010B
SETB IE0 ; ep ngat ban ret
đầu
mov P1,#00H check3:
cjne a, #00000100B, check4
mov P1, #00000100B
main1: RET
……
sjmp main1 check8:
cjne a, #00000001B, the_end
Luồng chương trình chính mov P1, #10000000B
the_end:
ret
TS. Đoàn Thị Hương Giang 147

Chương trình đọc phím sử dụng ngắt ngoài


org 0000h INT0ISR:
ljmp main mov a,P2
org 0003H lcall check_key
clr IE0
LJMP INT0ISR reti
org 200h
main: check_key:
mov R5,#1 anl a, #00000111b
SETB EA ckeck1:
cjne a, #00000110B, check2
SETB EX0 mov R5,#2
SETB IE0 ; ep ngat ret
mov P1,#00H check2:
main1: cjne a, #00000101B, check3
cjne R5,#2,check_mode2 mov R5,#3
ret
ljmp FST check3:
jmp main1 cjne a, #00000100B, check4
check_mode2: mov R5,#4
cjne R5,#3,check_mode2 RET
ljmp FSN
……
jmp main1 check8:
…… cjne a, #00000001B, the_end
sjmp main1 mov R5,#8
the_end:
TS. Đoàn Thị Hương Giang ret 148

74
26/04/2022

Bàn phím 4x4

TS. Đoàn Thị Hương Giang 149

 Nguyên tắc hoạt động của bàn phím:


- Khi 1 phím bất kỳ được nhấn, hàng và cột chứa phím đó sẽ
kết nối với nhau.
- Do đó đầu vào nối với cột chứa phím bị nhấn sẽ có mức
logic của đầu ra nối với hàng chứa phím nhấn đó.
- Các cột (đầu vào) ở mức logic cao, để đưa về mức logic
thấp là nhấn phím và đặt hàng nối với phím đó ở mức thấp.
- Bằng cách đưa mỗi hàng về mức logic thấp một cách tuần
tự kế tiếp nhau, và đọc mức logic ở đầu vào nối với cột
trong mỗi lần đưa hàng về mức thấp đó, ta sẽ biết được
phím nào đã bị nhấn

75
26/04/2022

Thuật toán quét phím:


- Một cột được đặt ở mức cao (cổng ra).
- Các hàng lần lượt được đặt ở mức thấp (cổng vào).
 các cột được đọc để kiểm tra mã
- Nếu 1 hay nhiều cột (thuộc hàng đang ở mức thấp),
thì các phím của các cột tương ứng tích cực (phím
được nhấn).

Mạch ghép nối LED MATRIX

TS. Đoàn Thị Hương Giang 152

76
26/04/2022

org 0000H
ljmp main Ép hàng 1 = 0
org 200H (P3.3 = 0) Cột 1 (P3.0)
main:
mov P3,#00010111B
mov a,P3 Cột 2 (P3.1) Ép hàng 2 = 0
ANL A,#00011111b ;---------------------------------------- (P3.4 =0)
cjne a,#00010110B,CHECK_11
MOV p2,#00000001B CHECK_2:
JMP MAIN mov P3,#00001111B
mov a,P3
CHECK_11:
ANL A,#00011111b
cjne a,#00010101B, CHECK_12 cjne a,#00001110B,CHECK_21
MOV p2,#00000010B MOV p2,#00000100B
JMP MAIN JMP MAIN
CHECK_12: CHECK_21:
cjne a,#00001101B,CHECK_22
cjne a,#00010011B,CHECK_2
MOV p2,#00000101B
MOV p2,#00000011B JMP MAIN
JMP MAIN CHECK_22:
cjne a,#00001011B,END2
MOV p2,#00000110B
JMP MAIN
END2:
Cột 3 (P3.2) jmp main
end

;----------------------------------------
TS. Đoàn Thị Hương Giang 153

Mạch ghép nối LED MATRIX CALCULATOR

TS. Đoàn Thị Hương Giang 154

77
26/04/2022

• org 0000H
• ljmp main
• org 200H
• main:
• mov P3,#00010111B
• mov a,P3
• ANL A,#00011111b
• cjne a,#00010110B,CHECK_1
• MOV p2,A
• JMP MAIN
• CHECK_1:
• cjne a,#00010101B,CHECK_2
• MOV p2,A
• JMP MAIN
• CHECK_2:
• cjne a,#0010011B,CHECK_MAIN2
• MOV p2,A
• JMP MAIN

• ;----------------------------------------

• CHECK_MAIN2:
• mov P3,#00001111B
• mov a,P3
• ANL A,#00011111b
• cjne a,#00001110B,CHECK_3
• MOV p2,A
• JMP MAIN
• CHECK_3:
• cjne a,#00001101B,CHECK_4
• MOV p2,A
• JMP MAIN
• CHECK_4:
• cjne a,#00001011B,END2
• MOV p2,A
• JMP MAIN
• END2:
• jmp main

TS. Đoàn Thị Hương Giang 155

 Kết quả: Với cách ghép nối bàn

phím 4x4 với VĐK như hình bên,

giá trị (code) thu được khi các phím

lần lượt được nhấn có kết quả như

bảng kê dưới.

TS. Đoàn Thị Hương Giang 156

78
26/04/2022

- Để đọc toàn bộ bàn phím, mỗi hàng lần lượt được đặt như sau:
+/ Dữ liệu 0111 được ghi ra các bit cổng xuất.
+/ Các bit cổng nhập được đọc vào, nếu có bất cứ phím nào được
nhấn thì trên hàng đó sẽ có 0 bit tương ứng.
+/ Dữ liệu 1011 được ghi ra cổng xuất bằng cách dịch bit 0 vào cột
kế tiếp và giá trị cổng nhập được đọc vào.
+/ Dữ liệu 1101 được ghi ra cổng xuất bằng cách dịch bit 0 vào cột
kế tiếp và giá trị cổng nhập được đọc vào.
+/ Dữ liệu 1110 được ghi ra cổng xuất bằng cách dịch bit 0 vào cột
kế tiếp và giá trị cổng nhập được đọc vào.
+/ Chu kỳ này được lặp lại vô tận bằng cách quay về bit 1.

79
26/04/2022

…To continuous

TS. Đoàn Thị Hương Giang 159

80

You might also like