Qua các bài viết trước, chúng ta đã cùng nhau tìm hiểu về Vi điều khiển AT89C52, LED và một số ví dụ cơ bản về điều khiển LED đơn cũng như nhiều LED một lúc. Bài viết hôm nay sẽ đề cập đến 1 thành phần khác có ứng dụng khá nhiều trong một mạch điều khiển: để hiện thị nhiệt độ, độ ẩm, điện áp... trong một số mạch đo hay để hiển thị thông tin được lập trình sẵn như thời gian đếm trên đèn giao thông...
Hôm nay chúng ta sẽ tìm hiểu về sơ đồ chân, cách hiển
thị số 0-9 hay một số chữ cái nếu cần thiết, cách nối LED 7 thanh với Vi điều khiển,1. Sơ đồ chân
Chúng ta đã được học LED 7 thanh trong môn kĩ thuật số năm 3, ai không nhớ có thể mở ra xem lại nhé.
Một LED 7 thanh có 10 chân: 8 chân dữ liệu a,b,c,d,e,f,g,e, dp và 2 chân nối chung. Dựa vào 2 chân nối chung này chúng ta có thể chia LED 7 thanh làm 2 loại: Anode chung và Cathode chung
+Anode chung: như hình trên chúng ta thấy chân 3 và chân 8 sẽ được nối chung vào một nguồn áp. Như vậy dối với loại anode này khi dữ liệu đưa vào ở mức thấp (mức 0) sẽ làm LED sáng
+Ngược lại với kiểu Anode chung, Cathode chung chân 3 và chân 8 sẽ được nối chung vào nguồn mát (đất| ground) và sẽ sáng khi chân dữ liệu nhận mức 1
2. Hiển thị số và một số kí tự:
Cũng giống như việc điều khiển 1 PORT 8 LED như các bài trước, chúng ta cũng cần đổi dòng bit điều khiển Binary sang mã Hexa, chúng ta sẽ dùng Calculator có sẵn của window nhé.Trong LED 7 Thanh thứ tự dòng bit đưa vào sẽ là:
Dp G F E D C B A
Như vậy chúng ta sẽ có bảng cho Anode chung:
Số
|
Dp
|
G
|
F
|
E
|
D
|
C
|
B
|
A
|
Hex
|
0
|
1
|
1
|
0
|
0
|
0
|
0
|
0
|
0
|
0xC0
|
1
|
1
|
1
|
1
|
1
|
1
|
0
|
0
|
1
|
0xF9
|
2
|
1
|
0
|
1
|
0
|
0
|
1
|
0
|
0
|
0xA4
|
3
|
1
|
0
|
1
|
1
|
0
|
0
|
0
|
0
|
0xB0
|
4
|
1
|
0
|
0
|
1
|
1
|
0
|
0
|
1
|
0x99
|
5
|
1
|
0
|
0
|
1
|
0
|
0
|
1
|
0
|
0x92
|
6
|
1
|
0
|
0
|
0
|
0
|
0
|
1
|
0
|
0x82
|
7
|
1
|
1
|
1
|
1
|
1
|
0
|
0
|
0
|
0xF8
|
8
|
1
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0x80
|
9
|
1
|
0
|
0
|
1
|
0
|
0
|
0
|
0
|
0x90
|
A
|
1
|
0
|
0
|
0
|
1
|
0
|
0
|
0
|
0x88
|
L
|
1
|
1
|
0
|
0
|
0
|
1
|
1
|
1
|
0xC7
|
F
|
1
|
0
|
0
|
0
|
1
|
1
|
1
|
0
|
0x8E
|
U
|
1
|
1
|
0
|
0
|
0
|
0
|
0
|
1
|
0xC1
|
Sau này chúng ta chỉ cần chép lại mã hex để viết code thôi. Tương tự chúng ta cũng có bảng cho cathode, bạn có thể tự làm để nhớ, sau này chuyển cho dễ đỡ quên, cũng có thể dùng NOT để tính cho nhanh như mình. Bảng cho cathode:
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
0x3F
|
0x06
|
0x5B
|
0x4F
|
0x66
|
0x6D
|
0x7D
|
0x07
|
0x7F
|
0x6F
|
3. Những cách mắc LED 7 Thanh với vi điều khiển:
LED 7 thanh có nhiều dạng đóng gói: LED7 đơn, đôi, 4, 6, 8..
Tùy vào mục đích sử dụng và yêu cầu khác nhau của các mạch vi điều khiển chúng ta có thể sử dụng một trong các cách ghép nối sau:
Phương pháp nối trực tiếp:
Phương pháp quét LED sử dụng Transistor
Phương pháp sử dụng IC74LS7x
Phương pháp mở rộng đầu ra bằng IC74595
Với cách này ta có thể dễ dàng ghép nối những chân này vời các chân của vi điều khiển
Hoặc khi cần hiển thị số 2 chữ số ta có thể dùng LED 7 thanh đôi
Cách mắc này có ưu điểm là dễ mắc, dễ viết code vì không cần thêm thành phần ngoại vi nào
Nhưng lại có nhược điểm lớn mà thường ta chỉ mắc cách này khi mô phỏng hoặc lắp mạch đơn giản ít linh kiện đó là:
+Tốn chân vi điều khiển: như cách mắc 2 LED7 ở trên chúng ta cần đến 14 chân vi điều khiển chỉ để điều khiển 2 LED7
+Nhiều dòng ngoài khi mắc trực tiếp làm nóng dẫn tới hoạt động sai hoặc cháy vi xử lý.
Phương pháp này cũng tương tự như việc sử dụng LED 7 thanh đôi:
Tức là trong một thời điểm 2 LED sẽ không bật tắt đồng thời mà luân phiên bật tắt với tần số đủ cao để mắt thường không thể phân biệt được sự thay đổi này. Khi quan sát ta sẽ chỉ thấy 2 LED cùng sáng thôi. Đây là phương pháp khá thú vị nhưng đối với một mạch vi điều khiển phức tạp, 9 chân của vi điều khiển là khá nhiều, chúng ta sẽ tìm hiểu 2 phương pháp khác
Thân
Phong's
0 comments:
Post a Comment