Tải bản đầy đủ (.doc) (27 trang)

Vi xu ly. ứng dụng họ vi điều khiển 8051 ghép nối 04 led bảy thanh để hiển thị số lần ấn phím và số lần tác động vào cảm biến hồng ngoại. PS: tài liệu có file mô phỏng proteus và code lập trình.

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (667.27 KB, 27 trang )

BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
— KHOA ĐIỆN —

BÀI TẬP LỚN
KỸ THUẬT VI XỬ LÝ
ĐỀ TÀI: ỨNG DỤNG HỌ VI ĐIỀU KHIỂN 8051 GHÉP
NỐI 04 LED BẢY THANH ĐỂ HIỂN THỊ SỐ LẦN ẤN
PHÍM VÀ SỐ LẦN TÁC ĐỘNG VÀO CẢM BIẾN
HỒNG NGOẠI
Giáo viên hướng dẫn
Lớp
Nhóm thực hiện đề tài
Thành viên trong nhóm

: Ngyễn Thu Hà
: Điện 4 – K9
: Nhóm 3
: Hoàng Thị Nhung
Hoàng Thị Thu
Nguyễn Thị Tuyết
Hoàng Văn Tuấn
Phan Hồng Sơn

Hà Nội - 2017


Bài tập lớn

Kỹ thuật vi xử lý


Ứng dụng họ vi điều khiển 8051 ghép nối 04
led bảy thanh để hiển thị số lần ấn phím và
số lần tác động vào cảm biến hồng ngoại.
- Giáo Viên Bộ Môn:
 Cô: Nguyễn Thu Hà.
- Nhóm 3: Lớp Điện 4 – K9 gồm:

 Hoàng Thị Nhung.

 Hoàng Thị Thu.

 Nguyễn Thị Tuyết.

 Hoàng Văn Tuấn.

 Phan Hồng Sơn.
Nhận xét của giáo viên bộ môn.

.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................

.................................................................................................................................
.................................................................................................................................
1


Bài tập lớn

Kỹ thuật vi xử lý

Mục Lục

Chương 1: Phân tích yêu cầu công
nghệ……………………………………………4
1.1. Phân tích và giới hạn về đặc điểm của các thiết bị……………………………4
1.1.1 Tìm hiểu chung về hệ thống……………………………………………4
1.1.2 Các đặc điểm chính của các thiết bị…………………………………....4
1.2. Sơ đồ chân và chức năng của các vi mạch sử dụng…………………………...7
1.2.1 IC 89C51RD2…………………………………………………………..9
1.2.2 Cảm biến hồng ngoại V1……………………………………………….9
Chương 2: Thiết kế hệ thống……………………………………………………….10
2.1 Xây mạch nguyên lý và thuyết minh………………………………………….10
2.1.1 Mạch nguyên lý……………………………………………………….....10
2.1.2 Thuyết minh hoạt động………………………………………………….11
2.2 Tính chi tiết về các tham số trong hệ thống…………………………………..12
2.2.1 Vi điều khiển 89C51RD2……………………………………………….12
2.2.2 Led bảy thanh…………………………………………………………...13
2.3 Xây dựng thuật toán………………………………………………………......16
2.3.1 Thuật toán điều khiển hệ thống…………………………………………16
2.3.2 Thuật toán đảo chiều đếm ……………………………………………....17
2.3.3 Thuật toán đếm thuận nghịch ………………………………………….18

2.3.4 Thuật toán reset đếm:" Đem =0"………………………………………..19
2.3.5 Thuật toán hiển thị: " Đem"……………………………………………..20
2.4 Viết chương trình ………………………………………………………….....21
2.5 Nạp và chạy mạch mô phỏng trên Proteus……………………………….......24
Chương 3: Kết luận………………………………………………………………....24
Tài liệu tham khảo:…………………………………………………………………24

2


Bài tập lớn

Kỹ thuật vi xử lý

Lời Nói Đầu
Ngày nay, các vi điều khiển đã thâm nhập vào mọi lĩnh vực vủa đời sống từ dân sự,
quân sự đến an ninh quốc phòng, có mặt trong hầu hết các ứng dụng hàng ngày từ
những thiết bị nhỏ như điện thoại di động, máy nhắn tin, trò chơi điện tử, các thiết bị
gia dụng (máy giặt, điều hòa, tủ lạnh….) đến những thiết bị lớn như ôtô, tàu thủy, xe
lửa, máy bay, hệ thống mạng điện thoại, các bộ điều khiển tự động trong nhà máy, các
bộ điều chỉnh trong nhà máy điện hạt nhân, trong các hệ thống điều khiển ánh sáng…

Với một loạt các ứng dụng thú vị trên, ở đây chúng em xin giới thiệu một ứng
dụng nhỏ dùng vi điều khiển 8051 (cụ thể là vi điều khiển 89C51RD2) ghép nối
04 LED bảy thanh để hiện thị số lần ấn phím và số lần tác động vào cảm biến
hồng ngoại.
Được sự giúp đỡ và chỉ bảo tận tình của cô giáo Nguyễn Thu Hà và các bạn trong
lớp, nhóm chúng em đã hoàn thành bài tập lớn môn học này. Tuy nhiên do thời gian và
trình độ còn hạn chế, còn thiếu kinh nghiệm thực tế nên không tránh khỏi những sai
sót. Chúng em rất mong nhận được những ý kiến và đóng góp của các thầy cô và các

bạn để chúng em có thể hoàn thiện thiết kế hơn nữa...
Xin chân thành cảm ơn !

3


Bài tập lớn

Kỹ thuật vi xử lý

Chương 1: Phân tích yêu cầu công nghệ.
1.1 Phân tích và giới hạn về đặc điểm của các thiết bị.
1.1.1 Tìm hiểu chung về hệ thống.
Nội dung đề tài: “Ứng dụng họ vi điều khiển 8051 ghép nối 04 led bảy thanh để
hiển thị số lần ấn phím và số lần tác động vào cảm biến hồng ngoại.”
 Với yêu cầu của đề tài thì hệ thống gồm có.
- Vi điều khiển 89C51RD2: Thiết bị chính dùng để nhận dữ liệu điều khiển, sau đó xử
lý tính toán và xuất dữ liệu ra LED 7 thanh.
- Hai cảm biến hồng ngoại: Dùng nhận tín hiệu điều khiển (hồng ngoại) rồi chuyển
thành tín hiệu số đưa vào vi điều khiển. Cảm biến thứ nhất dung để Reset, cảm biến
thứ 2 dùng để đảo chiều đếm.
- Bốn LED bảy thanh: Hiển thị số lần ấn nút.
- Bốn nút ấn N1, N2, N3, N4: Để tác động điều khiển hiển thị số lần ấn nút.
 Phân tích giới hạn của đề tài.
- Với nội dung chính của đề tài là ứng dụng họ vi điều khiển 8051 ghép nối 04 led
bảy thanh để hiển thị số lần ấn phím và số lần tác động vào cảm biến hồng ngoại,
không phải là ứng dụng lớn nên ta dùng vi điều khiển 89C51RD2 không cần ghép nối
thêm bộ nhớ ngoài.
- Bốn LED bảy thanh dùng để hiển thị chỉ hiện thị được giá trị 0000 – 9999, độ chính
xác cao, sai số bằng 0.

- Hai cảm biến hồng ngoại dùng để Reset và đảo chiều đếm cho độ chính xác cao khi
thực hiện quá trình đếm số lần ấn nút.
1.1.2 Các đặc điểm chính của các thiết bị.
a) Đặc điểm chính của vi điều khiển 89C51RD2.

4


Bài tập lớn

Kỹ thuật vi xử lý

- Sơ đồ khối:

Hình1.1: Sơ đồ khối của 89C51RD2
 Các ngõ tín hiệu điều khiển : ˆ


Ngõ tín hiệu PSEN (Program store enable):

- PSEN là tín hiệu ngõ ra ở chân 29 có tác dụng cho phép đọc bộ nhớ chương trình
mở rộng thường được nói đến chân 0E\ (output enable) của Eprom cho phép đọc các
byte mã lệnh.
- PSEN ở mức thấp trong thời gian Microcontroller 8951 lấy lệnh. Các mã lệnh của
chương trình được đọc từ Eprom qua bus dữ liệu và được chốt vào thanh ghi lệnh bên
trong 8951 để giải mã lệnh. Khi 8951 thi hành chương trình trong ROM nội PSEN sẽ ở
mức logic 1.
 Ngõ tín hiệu điều khiển ALE (Address Latch Enable ) :
- Khi 8951 truy xuất bộ nhớ bên ngoài, port 0 có chức năng là bus địa chỉ và bus dữ
liệu do đó phải tách các đường dữ liệu và địa chỉ. Tín hiệu ra ALE ở chân thứ 30 dùng

làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và dữ liệu khi kết nối chúng
với IC chốt.
- Tín hiệu ra ở chân ALE là một xung trong khoảng thời gian port 0 đóng vai trò là
địa chỉ thấp nên chốt địa chỉ hoàn toàn tự động. Các xung tín hiệu ALE có tốc độ bằng
1/6 lần tần số dao động trên chip và có thể được dùng làm tín hiệu clock cho các phần
khác của hệ thống. Chân ALE được dùng làm ngõ vào xung lập trình cho Eprom trong
8951. ˆ
 Ngõ tín hiệu EA\(External Access):

5


Bài tập lớn

Kỹ thuật vi xử lý

- Tín hiệu vào EA\ ở chân 31 thường được mắc lên mức 1 hoặc mức 0. Nếu ở mức
1, 8951 thi hành chương trình từ ROM nội trong khoảng địa chỉ thấp 8 Kbyte. Nếu ở
mức 0, 8951 sẽ thi hành chương trình từ bộ nhớ mở rộng. Chân EA\ được lấy làm chân
cấp nguồn 21V khi lập trình cho Eprom trong 8951. ˆ
 Ngõ tín hiệu RST (Reset) :
Ngõ vào RST ở chân 9 là ngõ vào Reset của 8951. Khi ngõ vào tín hiệu này đưa lên
cao ít nhất là 2 chu kỳ máy, các thanh ghi bên trong được nạp những giá trị thích hợp
để khởi động hệ thống. Khi cấp điện mạch tự động Reset. ˆ
 Các ngõ vào bộ dao động X1, X2:
- Bộ dao động được tích hợp bên trong 8951, khi sử dụng 8951 người thiết kế chỉ
cần kết nối thêm thạch anh và các tụ như hình vẽ trong sơ đồ. Tần số thạch anh thường
sử dụng cho 8951 là 12Mhz.
-ˆ Chân 40 (Vcc) được nối lên nguồn 5V
b) Led 7 thanh.

LED 7 được cấu tạo từ các LED đơn sắp xếp theo các thanh nét để có thể biểu
diễn các chữ số hoặc các kí tự đơn giản như từ số 0 đến 9 và A đến F. LED 7 thanh
dùng để hiện số thì rất đẹp và dễ nhìn. Tùy vào kích thước của số và kí tự mà mỗi
thanh được cấu tạo bởi một hay nhiều LED đơn. Các LED đơn đó được ghép và được
đặt tên bằng các chữ cái a...g và có một dấu chấm dot ( dấu chấm này có thể sáng và
tắt tùy theo yêu cầu) được cấu tạo bởi 1 LED đơn. Qua đó người ta chỉ cần 8 bit tương
ứng với 8 LED đơn để điều khiển được và hiện thị số từ 0 đến 9 và các kí tự từ A đến
F

Hình 1.2: LED 7 thanh.
c) Cảm biến hồng ngoại V1.
 Mô tả
Cảm biến có khả năng thích nghi với môi trường, có một cặp truyền và nhận tia
hồng ngoại.
Tia hồng ngoại phát ra mội tần số nhất định, khi phát hiện hướng truyền có vật cản
(mặt phản xạ), phản xạ vào đèn thu hồng ngoại, sau khi so sánh, đèn màu xanh sẽ sáng
lên, đồng thời đầu cho tín hiệu số đầu ra (một tín hiệu bậc thấp).
Khoảng cách làm việc hiệu quả 2 – 5 cm, điện áp làm việc là 3.3 – 5 V. độ nhạy
sáng của cảm biến được điều chỉnh bằng chiết áp, cảm biến dễ lắp ráp, dễ sử dụng, …

6


Bài tập lớn

Kỹ thuật vi xử lý

Có thể được sử dụng rộng rãi trong robot tránh chướng ngại vật, xa tránh chướng
ngại vật và dò đường, …




Thông số kỹ thuật.

Bộ so sánh sử dụng LM393, làm việc ổn định.
Điện áp làm việc: 3.3 – 5 V DC.
Khi bật nguồn , đèn báo nguồn màu đỏ sáng.
Lỗ vít 3 mm, dễ dàng cố định, lắp đặt.
Kích thước: 3.2*1.4 cm.
Các mô-đun đã được so sánh điện áp ngưỡng thông qua chiết áp.



Cổng giao tiếp.

VCC: Điện áp chuyển đổi từ 3.3 – 5 V ( có thể kết nối trực tiếp đến vi điều khiển 5
V và 3.3 V).
GND: GND ngoài.
OUT: Đầu ra kỹ thuật số (0 và 1).
1.2 Sơ đồ chân và chức năng của các vi mạch sử dụng
1.2.1 IC 89C51RD2.

 Sơ đồ chân.
PDIP
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5

P1.6
P1.7
RST
(RXD) P3.0
(TXD) P3.1
(INT0) P3.2
(INT1) P3.3
(T0) P3.4
(T1) P3.5
(WR)P3.6
(RD) P3.7
XTAL2
XTAL1
GND

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

16
17
18
19
20

40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
7

VCC
P0.0(AD0)

P0.1(AD1)
P0.2(AD2)
P0.3(AD3)
P0.4(AD4)
P0.5(AD5)
P0.6(AD6)
P0.7(AD7)
EA/VPP
ALE/PROG
PSEN
P2.7 (A15)
P2.6 (A14)
P2.5 (A13)
P2.4 (A12)
P2.3 (A11)
P2.2 (A10)
P2.1 (A9)
P2.0 (A8)


Bài tập lớn

Kỹ thuật vi xử lý

Hình 1.3: Sơ đồ chân của 89C51RD2



Chức năng các chân của 89C51RD2.


- AT89C51 có tất cả 40 chân có chức năng như các đường xuất nhập. Trong đó có
24 chân có tác dụng kép (có nghĩa 1 chân có 2 chức năng), mỗi đường có thể hoạt
động như đường xuất nhập hoặc như đường điều khiển hoặc là thành phần của các bus
dữ liệu và bus địa chỉ. a.Các Port: Port 0 :
- Port 0 là port có 2 chức năng ở các chân 32 – 39 của 8951. Trong các thiết kế cỡ
nhỏ không dùng bộ nhớ mở rộng nó có chức năng như các đường IO. Đối với các thiết
kế cỡ lớn có bộ nhớ mở rộng, nó được kết hợp giữa bus địa chỉ và bus dữ liệu. ˆ
- Port 1: là port IO trên các chân 1-8. Các chân được ký hiệu P1.0, P1.1, P1.2, … có
thể dùng cho giao tiếp với các thiết bị ngoài nếu cần. Port 1 không có chức năng khác,
vì vậy chúng chỉ được dùng cho giao tiếp với các thiết bị bên ngoài. ˆ
- Port 2 : - Port 2 là 1 port có tác dụng kép trên các chân 21 - 28 được dùng như các
đường xuất nhập hoặc là byte cao của bus địa chỉ đối với các thiết bị dùng bộ nhớ mở
rộng. ˆ

-Port 3: - Port 3 là port có tác dụng kép trên các chân 10 - 17. Các chân của
port này có nhiều chức năng, các công dụng chuyển đổi có liên hệ với các đặc
tính đặc biệt của 8951 như ở bảng sau:
Bit

Tên

Chức năng chuyển đổi

P3.0

RXT

Ngõ vào dữ liệu nối tiếp

P3.1


TXD

Ngõ vào dữ liệu nối tiếp

P3.2

INT0\

Ngõ vào ngắt cứng thứ 0

P3.3

INT1\

Ngõ vào ngắt cứng thứ 1

P3.4

T0

Ngõ vào của Timer/Counter thứ 0

P3.5

T1

Ngõ vào của Timer/Counter thứ 1

P3.6


WR\

Tín hiệu ghi dữ liệu lên bộ nhớ
ngoài

P3.7

RD\

Tín hiệu đọc bộ nhớ dữ liệu ngoài

Bảng 1.1: Chức năng của Port3

8


Bài tập lớn

1.2.2



Kỹ thuật vi xử lý

LED bảy thanh
Sơ đồ chân.

Hình 1.4: Sơ đồ chân LED 7 thanh




Chức năng của LED 7 thanh.

Được dùng để hiển thị số liệu trong các thiết bị đo, trong các bảng hiệu, trong các
thiết bị số, …
1.2.3 Cảm biến hồng ngoại V1.
 Sơ đồ chân.

Hình 1.5: Sơ đồ nguyên lý của cảm biến hồng ngoại.

 Chức năng của cảm biến.
Dùng để phát hiện vật cảm, người, dò đường… Nên được sử dụng rộng rãi trong
các lĩnh vực đo lường điều khiển, an ninh, tự động hóa, ….

9


Bài tập lớn

Kỹ thuật vi xử lý

Chương 2: Thiết kế hệ thống.
2.1. Xây mạch nguyên lý và thuyết minh.
2.1.1 Mạch nguyên lý.

Hình 2.1: Sơ đồ mạch nguyên lý.
 Phân tích mạch nguyên lý.
- Port0 của vi điều khiển được nối với các chân A B C D F F G dùng để xuất
DATA ra LED 7 thanh để hiển thị số cần hiển thị là “Dem”.

- Port2 của vi điều khiển được nối với các chân 1 2 3 4 dùng để xuất DATA ra
LED 7 thanh để hiển thị chữ số hàng đơn vị, hàng chục, hàng trăn, hàng nghìn của
“Dem”.
- Port1 được kết nối với nút ấn N1 N2 N3 N4 dùng để nhận tín hiệu tác động của
nút ấn và kết nối với các cảm biến reset, đảo chiều đếm.

 Phương pháp đếm
- Khi chưa tác động vào cảm biến đảo chiều đếm, biến đảo “TG = 0” cho phép
biến đếm “Dem” đếm theo chiều thuận (tăng). Khi tác động vào cảm biến đảo chiều
đếm lần 1, biến đảo “TG = 1” cho phép biến đếm “Dem” đếm theo chiều nghịch
(giảm). Khi tác động vào cảm biến đảo chiều đếm lần 2, biến đảo “TG = 0” cho phép

10


Bài tập lớn

Kỹ thuật vi xử lý

biến đếm “Dem” đếm theo chiều thuận (tăng). Quá trình này lặp lại tương tự sau N lần
tác động vào cảm biến đảo chiều đếm.
- Ban đầu gán biến đếm “Dem = 0”. Khi ấn một trong các nút ấn N1 N2 N3 N4,
biến đếm “Dem” sẽ tăng 1 giá trị đơn vị sau mỗi lần ấn, với điều kiện biến “TG = 0”,
với M lần ấn thì biến “Dem = Dem + M”. Ngược lại biến đếm “Dem” sẽ giảm 1 giá trị
đơn vị sau mỗi lần ấn, với điều kiện biến “TG = 1”, với M lần ấn thì biến “Dem =
Dem - M”, nếu biến “Dem <= 1” thì gán biến “Dem = 0” để ngăn không cho biến
“Dem” nhận giá trị âm.
-

Cảm biến reset sẽ gán biến “Dem = 0” sau mỗi lần tác động.


 Công thức tính toán biến “Dem”
-

Gán Dem = 0 :

+ Với TG = 0 thì Dem = Dem + M.
+ Với TG = 1 thì Dem = Dem – M.
+ Nếu Dem <=1 thì Dem = 0.
+ Với M là số lần ấn nút.
2.1.2 Thuyết minh hoạt động
- Ấn một trong các nút ấn N1 N2 N3 N4 lần 1, bốn LED 7 sẽ hiển thị số lần ấn là
số 1. Ấn một trong các nút ấn N1 N2 N3 N4 lần 2, bốn LED 7 sẽ hiển thị số lần ấn là
số 2. Ấn một trong các nút ấn N1 N2 N3 N4 lần 3, bốn LED 7 sẽ hiển thị số lần ấn là
số 3. Quá trình lặp lại tương tự với M lần ấn một trong các nút ấn N1 N2 N3 N4, bốn
LED 7 sẽ hiển thị số lần ấn là số M.
- Tác động vào cảm biến đảo chiều đếm lần 1, bốn LED 7 đang hiển thị số lần ấn
theo chiều thuận (tăng) sẽ đảo chiều đếm sang hiển thị số lần ấn theo chiều nghịch
(giảm). Tác động vào cảm biến đảo chiều đếm lần 2, bốn LED 7 đang hiển thị số lần
ấn theo chiều nghịch (giảm) sẽ đảo chiều đếm sang hiển thị số lần ấn theo chiều thuận
(tăng). Tác động vào cảm biến đảo chiều đếm lần 3, bốn LED 7 đang hiển thị số lần ấn
theo chiều thuận (tăng) sẽ đảo chiều đếm sang hiển thị số lần ấn theo chiều nghịch
(giảm). Quá trình lặp lại tương tự với N lần tác động vào cảm biến.
-

Tác động vào cảm biến reset, bốn LED 7 sẽ hiển thị số lần ấn là số 0.

2.2 Tính chi tiết về các tham số trong hệ thống.
2.2.1 Vi điều khiển 89C51RD2.
Chọn vi điều khiển 89C51RD2 do hãng Intel sản xuất. Các sản phẩm AT89C51RD2

thích hợp cho những ứng dụng điều khiển. Việc xử lý trên byte và các toán số học ở
cấu trúc dữ liệu nhỏ được thực hiện bằng nhiều chế độ truy xuất dữ liệu nhanh trên
RAM nội. Tập lệnh cung cấp một bảng tiện dụng của những tập lệnh số học 8 bit gồm
cả lệnh nhân và chia. Nó cung cấp những hỗ trợ mở rộng trên chip dùng cho những
biến 1 bit như là kiểu dữ liệu riêng biệt cho phép quản lý và kiểm tra từng bit trực tiếp
trong hệ thống điều khiển.

11


Bài tập lớn

Kỹ thuật vi xử lý

Vi điều khiển 89C51RD2 cung cấp những đặc tính chuẩn như : 4 Kbyte bộ nhớ chỉ
đọc có thế xóa và lập trình nhanh (EPROM), 128 Byte RAM, 32 đường I/O, 2
TIME/COUNTER 16 Bit, 5 vecto ngắt có cấu trúc 2 mức ngắt, một Port nối tiếp bán
song công, 1 mạch dao động tạo xung Clock và bộ dao động ON-CHIP.
Các đặc điểm của chip 89C51RD2 được tóm tắt như sau :












4Kbyte bộ nhớ có thể lập trình nhanh, có khả năng tới 1000 chu kỳ ghi/xóa.
Tần số hoạt động từ: 0Hz đến 24MHz.
3 mức khóa bộ nhớ lập trình.
2 bộ Timer/counter 16 bit
128 Byte RAM nội
4 Port xuất /nhập I/O 8 bit.
Giao tiếp nối tiếp
64KB vùng nhớ mã ngoài
64KB vùng nhớ dữ liệu ngoại
4µs cho hoạt động nhân hoặc chia

Hình 2.2: IC 89C51RD2.

2.2.2 Led bảy thanh.

12


Bài tập lớn

Kỹ thuật vi xử lý

Hình 2.3: LED 7 thanh
Ở trên là hình dạng LED7 ngoài thực tế và trong mạch nguyên lý và cấu tạo.
Cấu tạo của LED chúng ta nhìn trên rất đơn giản chúng chỉ gồm các LED đơn được
xếp lại với nhau thành hình như trên hình vẽ. Các LED đơn này chỉ chung nhau Anot
hoặc Katot và riêng nhau các chân con lại Anot hặc Katot. Nhiệm vụ của chúng ta là
cho sáng các LED đơn đó để cho nó thành số hay kí tự đơn giản.
Hiện nay LED 7 được sản xuất theo 2 kiểu là Anot chung và Katot chung và được
điều khiển làm việc tương tự như bơm dòng hay tiêu thụ dòng của các LED đơn có

trong LED7 (Thường hay thiết kế theo kiểu bơm dòng cho LED). Thông thường trong
các mạch thiết kế thực tế người thiết kế thường hay sử dụng loại Anot chung. Phương
pháp ghép nối là cấp dòng, đảo trạng thái thông qua đệm và quét LED
 Ghép nối led 7 thanh
Để ghép nối với LED7 có thể có nhiều cách, nhưng phải đảm bảo sao có thể điều
khiển tắt mở riêng từng LED đơn trong đó để tạo ra các số và các ký tự mong
muốn.Các IC điều khiển đều khó khả năng sinh dòng kém tức là dòng đầu ra của các
chân ICs nhỏ hơn khả năng nuôi dòng. Do vậy, nếu ghép nối trực tiếp các net với các
chân cổng IC thì loại Anode chung là thích hợp hơn cả. Cần phải chú ý dòng dồn về
ICs quá mức chịu được thì cũng không được vì làm nóng và dei ICs điều khiển


Hai cách ghép nối thường dùng:
-

Cách 1: Dùng trực tiếp các chân điều khiển (vi xử lý)

Đối với cách này thì nhìn thì rất tốn chân của vi xử lý. Và dòng của LED sẽ dồn tất
cả về vi xử lý. Nếu một hệ thống lớn thì cách này không ổn vì ảnh hưởng đến vi xử lý
và nhiều dòng dồn về vi xử lý sẽ làm vi xử lý nóng và dẫn tới chết ( chúng ta tưởng
tượng xem nếu mà hệ thống nhiều phần điều khiển từ các chân vi xử lý mà tất cả các
tải điều khiển dồn trực tiếp dòng về vi xử lý thì lúc đó dòng trong 1 thời điểm khá lớn
vượt quá ngưỡng cho phép của vi xử lý.
Dòng mà vi xử lý chịu đựng được cũng khá nhỏ đâu dưới 100mA ). Các này chỉ
dùng được hệ thống điều khiển ít, mạch dùng vi xử lý khá đơn giản như hiện thị LED,
đếm số từ 0 đến 9 ...

13



Bài tập lớn

Kỹ thuật vi xử lý

Hinh 2.4: Ghép nối AT 89C51 với led 7 thanh
-

Cách 2 : Dùng IC giải mã BCD sang LED 7 thanh

Hình 2.5: Dùng IC giải mã BCD sang LED 7 thanh
Sử dụng IC giải mã 7447 để giả mã từ mã BCD sang mã LED7. Đối với cách này
thì trông rất ổn. Vừa tiếp kiệm được chân vi xử lý và tránh được dòng dồn về vi xử lý
(dòng ở đây được dồn về 7447). Đây là cách mà người thiết kế thường dùng trong các
hệ thống cần đến hiện thị.
Thông thường các thiết kế, LED 7 thanh được dùng để hiện thị các giá trị các giá trị
số từ 0 đến 9 và đôi khi cần phải hiện thị các kí tự đơn giản như A đến F trong hệ
thống để báo trạng thái của hệ thống. Các giá trị hiện thị bao gồm nhiều chữ số tức là
chúng ta phải dùng đến nhiều LED7 ghép lại thì mới hiện thị được nhiều số. Ví dụ như
muốn hiện thị số 123 chả hạn thì chúng ta phải dùng đến 3 LED 7 thanh ghép lại.

14


Bài tập lớn

Kỹ thuật vi xử lý

Như vậy để ghép nhiều LED 7 thanh thay vì chúng ta phải dùng 8 chân riêng rẽ cho
mỗi LED. Ví dụ để hiện thị được 3 chữ số lên LED 7 (123 chẳng hạn) khi đó ta sẽ mất
3x8 = 24 chân dữ liệu điều khiển để hiện thị được 3 chữ số. Như vậy sẽ rất tốn chân vi

xử lý, do vậy người ta dùng chung các đường dữ liệu cho các LED 7 thanh và thiết kế
thêm các tín hiệu điều khiển cấp nguồn riêng rẽ cho từng LED 7 một hay là cấp nguồn
cho các chân Anot chung hay Katot chung. Nhìn trên sơ đồ trên ta thấy được kiểu ghép
nối giữa các LED. Các đường dữ liệu vào của 3 LED được chung với nhau và các chân
điều khiển nguồn cho các LED được riêng rẽ và được điều khiển bằng transitor
( khuếch đại dòng). Như vậy đối với mạch trên chúng ta tiếp kiệm được nhiều chân vi
xử lý. Đối với mạch trên và cách ghép nối như trên thì mất tối đa chỉ có 11 chân vi xử
lý.

Hinh 2.6: Ghép nối với nhiều led 7 thanh
Tám chân dữ liệu của LED 7 được chung nhau và chung được ghép nối qua 2 cách :
Thứ nhất dùng vào trực tiếp các chân vi xử lý và thứ 2 là qua các IC đệm hay IC giải
mã...Nhưng trong thiết kế không mấy khi người ta cho trực tiếp các chân dữ liệu đó
vào trực tiếp vi xử lý mà người ta phải cho qua các IC đệm hay giải mã đối với hệ
thống lớn. Chỉ những mạch đơn giản người ta mới cho vào trực tiếp vi xử lý.Thông
thường người ta dùng thêm các IC đệm hay giải mã như ULN2803, 74LS47
Đối với phương pháp ghép LED như thế này thì làm sao điều khiển được hiện thị số
123. Nếu chúng ta mới nhìn thì sẽ thấy các LED 7 sẽ hiện thị giống nhau vì chúng
chung nhau đường dữ liệu. Nhưng không phải là vậy. Nếu chung ta cho từng thời điểm
từng LED sáng 1 thì chúng ta sẽ thấy khác đó. Số 123 sẽ được hiện thị lên 3 LED đó.
Đó là thuật toán quét LED dựa vào hiện tượng lưu ảnh trong mắt khi chúng ta quét với
tần số lớn.
Như vậy đối với phương pháp này chúng ta tiếp kiệm được một số lượng lớn chân
vi xử lý và đồng thời tiếp kiệm được năng lượng tiêu thụ do phương pháp quét LED
trong thời gian ngắn. Khi đó tối đa trong 1 thời điểm có 1 LED sáng toàn bộ thôi. Cần
phải tính toán giá trị dòng vào cho LED sao cho LED sáng đẹp bằng cách thêm bớt
điện trở.
15



Bài tập lớn

Kỹ thuật vi xử lý

2.3
Xây dựng thuật toán.
2.3.1 Thuật toán điều khiển hệ thống.

MAIN

Đảo chiều đếm

Đếm thuận nghịch.

Reset đếm: “Dem = 0”

Hiển thị: “Dem”

END

16


Bài tập lớn

Kỹ thuật vi xử lý

2.3.2 Thuật toán đảo chiều đếm.

Đảo chiều đếm


TG = 0

Nhận tín hiệu từ CB
đảo chiều đếm: P1_4

P1_4 ==
S1

S
TG = TG +1

TG > 1

17
END_1

Đ


Bài tập lớn

Kỹ thuật vi xử lý

2.3.3 Thuật toán đếm thuận nghịch.

Đếm thuận nghịch

Dem = 0


Nhận tín hiệu N1, N2,
N3, N4
P1_0 == 0 or
P1_1 == 0 or
P1_2 == 0 or

S

P1_1 == 0

Đ
S

Đ

TG == 0

Đ

Dem = Dem - 1

Dem = Dem + 1

Dem
S <1

Dem >
9999
18


Đ


Bài tập lớn

Kỹ thuật vi xử lý

S

S

END_2

2.3.4 Thuật toán reset đếm: “Dem = 0”

Reset đếm: “Dem
= 0”

\

Nhận tín hiệu từ CB
reset: P1_5

P1_5 ==
1

S
Dem = 0

END_3


19

Đ


Bài tập lớn

Kỹ thuật vi xử lý

2.3.5. Thuật toán hiển thị: “Dem”

Hiển thị:
“Dem”
So[] = {0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
MaQuet[] = {0x07,0x0B,0x0D,0x0E};
ChuSo[4];

Dem >= 0

S

Đ

i=0

i<4

S


Đ
ChuSo[i] = Dem % 10;
Dem = Dem / 10;
i = i + 1;

END_3

j=0
20


Bài tập lớn

Kỹ thuật vi xử lý

j<4

S

Đ
P2 = MaQuet[j];
Xuất tín hiệu ra LED.
P2 = MaQuet[j];
P0 = So[ChuSo[j]];
P0 = So[ChuSo[j]];
2.3 Viết chương
trình.
j = j + 1;
P2 = 0x0f;
P2 = 0x0f;

//Khai bao bien
#include <REGX52.H>
char So[] = {0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};//So nguyen tu
-128 -> 127
char MaQuet[] = {0x07,0x0B,0x0D,0x0E};
unsigned char ChuSo[4];//So nguyen duong 0 -> 255
unsigned long Temp;//So nguyen duong 0 -> 4,294,967,295
int Dem = 0, TG = 0;//So nguyen -32,768 ->32,767
//Ham thoi gian
void delay(int time)
{
while(time--);
}
//Tach so hang don vi, hang chuc, hang tram, hang nghin
void TachChuSo(unsigned long Temp, int SoLed)
{
int i;
if(Temp>=0)
{
for(i=0;i{
ChuSo[i] = Temp%10;//Chia lay phan du
Temp = Temp/10;//Chia lay phan nguyen
}
}
}
//Hien thi
void QuetLed(int SoLed)
{
int i;

for(i=0;i21


Bài tập lớn

Kỹ thuật vi xử lý

{
P2 = MaQuet[i];
P0 = So[ChuSo[i]];
delay(100);
P2 = 0x0f;
}
}
void main()
{
while(1)
{
{
//Dao chieu dem
if(P1_0==0)
{
delay(500);
while(P1_0==0);
delay(500);
TG++;
if(TG>1)TG=0;
}
//Reset khong tac dong

if(P1_5==1)
{
//Nut bam N1
if(P1_1==0)
{
delay(500); //Chong dinh phim
while(P1_1==0); //Cho nha phim
delay(500);
if(TG==0) //Dem thuan
{
Dem++;
}
else //Dem nghich
{
Dem--;
}
}
//Nut bam N2
if(P1_2==0)
22


Bài tập lớn

Kỹ thuật vi xử lý

{
delay(500);
while(P1_2==0);
delay(500);

if(TG==0) //Dem thuan
{
Dem++;
}
else //Dem nghich
{
Dem--;
}
}
//Nut bam N3
if(P1_3==0)
{
delay(500);
while(P1_3==0);
delay(500);
if(TG==0) //Dem thuan
{
Dem++;
}
else //Dem nghich
{
Dem--;
}
}
//Nut bam N4
if(P1_4==0)
{
delay(500);
while(P1_4==0);
delay(500);

if(TG==0) //Dem thuan
{
Dem++;
}
else //Dem nghich
{
Dem--;
}
}
}
23


Bài tập lớn

Kỹ thuật vi xử lý

//Reset da tac dong
else
{
delay(500); //Chong dinh phim
while(P1_5==0); //Cho nha phim
delay(500);
Dem=0;
}
}
//Chan qua trinh dem lui, khong cho dem <=0
if(Dem<1)Dem=0;
if(Dem>9999)Dem=0;
{

TachChuSo(Dem,4);
QuetLed(4);
}
}
}
2.4

Nạp và chạy mạch mô phỏng trên Proteus.

24


×