Hình chụp cho thấy bo mạch dùng vi điều khiển AT89C51/52... có 16 đường ra, đã ráp hoàn chỉnh và hiện có bán ở cửa hàng điện tử Phúc Lan. Bạn có thể dùng bo này với các chương trình tự viết để điều khiển các bảng đèn quảng cáo dùng nhiều Led, hay điều khiển các thiết bị tự động trong công nghiệp. Bo có các đặc tính sau: * Có 16 đường ra, trên mỗi đường ra dùng transistor thúc 2SC2383, có khả năng cấp dòng lớn, nhờ vậy trên một đường ra nó có thể cấp dòng cho trên 100Led. * Trong mạch dùng nguồn ổn áp 5V (với ic 7805), như vậy Bạn có thể tăng mức nguồn DC cấp cho các Led trên bảng đèn mà không ảnh hưởng đến hoạt động của ic vi điều khiển. * Trên bo có mạch chỉnh tốc độ nhẩy, Bạn chỉ cần chỉnh biến trở 100K là có thể chọn được tốc độ nhấp nháy theo ý. * Ở ngã vào có đặt diode 1N4007 tránh mắc sai cực nguồn làm hư bo. * Bạn chỉ cần bố trí các Led trên bảng đèn, theo nhánh và tính số nhánh phải dùng cho một phần tử tđơn vị hình rên bảng đèn, rồi cho đấu vào bo, trên chân C của các transistor thúc là xong. Sơ đồ mạch điện nguyên lý: Trên bo có các mạch điện cơ bản như sau: * Mạch điện nguồn nuôi với ic 7805. Nguồn vào 12V DC. Diode D0 (1N4007) dùng tránh mắc sai cực nguồn. Nếu Bạn gắn sai cực, nhờ tính ghim áp của diode, nó sẽ giữ cho mức áp nghịch ở ngả vào của bo ở mức 0.8V, mạch sẽ khi bị hư. Tụ C1 (1000uF), tụ hóa lớn dùng làm kho chứa điện, có công dụng ổn định điện áp đường nguồn, ở đây Bạn sẽ có 12V dùng cấp nguồn cho các dãy Led. Bạn cũng có thể cấp đường nguồn này cao hơn để có thể mắc trên một nhánh được nhiều Led nối tiếp hơn (xem phần hướng dẫn ở phần sau). Tụ C2, C4 có trị nhỏ 104pF (0.1uF) có công dụng lọc bỏ tín hiệu nhiễu tần cao nhiễm trên đường nguồn. Tụ C3 (10uF), mắc ở ngả ra của ic ổn áp 7805 dùng tránh phát sinh hiện tượng dao động tự kích bên trong ic ổn áp 7805. Mạch dùng ic ổn áp 3 chân họ 78xx, với ic 7805, trên ngả ra sẽ luôn có mức áp 5V với độ ổn định cao, chúng ta sẽ dùng mức áp này để cấp cho chân 40 của ic vi điều khiển AT89C51/52.... * Mạch thạch anh định tần.
Trang 1Hình chụp cho thấy bo mạch dùng vi điều khiển AT89C51/52 có 16đường ra, đã ráp hoàn chỉnh và hiện có bán ở cửa hàng điện tử PhúcLan Bạn có thể dùng bo này với các chương trình tự viết để điềukhiển các bảng đèn quảng cáo dùng nhiều Led, hay điều khiển các thiết
bị tự động trong công nghiệp
Bo có các đặc tính sau:
* Có 16 đường ra, trên mỗi đường ra dùng transistor thúc 2SC2383, cókhả năng cấp dòng lớn, nhờ vậy trên một đường ra nó có thể cấp dòngcho trên 100Led
* Trong mạch dùng nguồn ổn áp 5V (với ic 7805), như vậy Bạn có thểtăng mức nguồn DC cấp cho các Led trên bảng đèn mà không ảnhhưởng đến hoạt động của ic vi điều khiển
* Trên bo có mạch chỉnh tốc độ nhẩy, Bạn chỉ cần chỉnh biến trở 100K
là có thể chọn được tốc độ nhấp nháy theo ý
Trang 2* Ở ngã vào có đặt diode 1N4007 tránh mắc sai cực nguồn làm hư bo.
* Bạn chỉ cần bố trí các Led trên bảng đèn, theo nhánh và tính sốnhánh phải dùng cho một phần tử tđơn vị hình rên bảng đèn, rồi chođấu vào bo, trên chân C của các transistor thúc là xong
Sơ đồ mạch điện nguyên lý:
Trên bo có các mạch điện cơ bản như sau:
* Mạch điện nguồn nuôi với ic 7805.
Trang 3Nguồn vào 12V DC Diode D0 (1N4007) dùng tránh mắc sai cực nguồn.Nếu Bạn gắn sai cực, nhờ tính ghim áp của diode, nó sẽ giữ cho mức ápnghịch ở ngả vào của bo ở mức 0.8V, mạch sẽ khi bị hư.
Tụ C1 (1000uF), tụ hóa lớn dùng làm kho chứa điện, có công dụng ổnđịnh điện áp đường nguồn, ở đây Bạn sẽ có 12V dùng cấp nguồn chocác dãy Led Bạn cũng có thể cấp đường nguồn này cao hơn để có thểmắc trên một nhánh được nhiều Led nối tiếp hơn (xem phần hướng dẫn
* Mạch thạch anh định tần.
Trang 4Để chạy các câu lệnh trong ic vi điều khiển, Bạn cần tạo ra xung nhịp.Tần số xung nhịp phụ thuộc vào thạch anh gắn trên chân 18, 19 Vớithạch anh 12MHz, Bạn sẽ có xung nhịp 1MHz, như vậy chu kỳ lệnh sẽ là1us.
Để tăng độ ổn định tần số, người ta dùng thêm 2 tụ nhỏ C6, C7 (33pFx2), tụ bù nhiệt ổn tần
Điều này cho thấy, Bạn cũng có thể thay đổi nhịp nhấp nháy của đènnếu dùng thạch anh có tần số khác
Trang 5reset, nó sẽ đặt ic về trạng thái khởi đầu, sau một lúc (thời hằng phụthuộc vào R1 và C5), tụ C5 sẽ nạp đầy mức áp 5V, nó trả chân 9 vềmức áp thấp và lúc này ic AT89C51/52 sẽ bắt đầu chạy các câu lệnh màBạn đã nạp vào bộ nhớ EEP-ROM của nó.
* Mạch chỉnh tốc độ nhịp.
Ở đây chúng ta cho kết hợp phần mềm và phần cứng để làm thay đổinhịp nháy Dùng mạch nạp xả tạo bởi tụ C8 (100uF) và điện trở R2 +RV1 và điều khiển đóng mở với transistor Q1, xung tắt mở lấy trênchân p3.6, sau đó dùng câu lệnh jb (jump bit ) để theo dõi bit 0/1 trênchân p3.7 Vậy Bạn có thể làm cho mức áp trên chân 17 lên chậm bằngcách tăng biến trở RV1, đều này sẽ giảm nhịp nháy.Tóm lại, giảm trịRV1 nhịp nhanh và tăng trị RV1 sẽ có nhịp chậm
* Mạch khuếch đại thúc, cấp dòng cho các hiển thị.
Trang 6Ở đây chúng ta dùng trasistor2SC2383 có khả năng cấp dòng Ic đến1000mA để cấp dòng cho các Led gắn trên chân C.
Chân B qua điện trở hạn dòng 2.2K cho gắn vào một chân của các cảngp0 hay p2, vậy khi chân này ở mức áp cao (bit 1), transistor sẽ vàotrạng thái bảo hòa (dẫn điện mạnh) và nó sẽ cấp dòng cho các Led gắntrên chân C phát sáng, và khi chân B ở mức áp thấp (bit 0), transistor
sẽ ngưng dẫn và tắt Led Để hạn dòng qua các Led Bạn dùng điện trở330
Ghi nhận: Đây chỉ là Led gắn trên bo mạch, nó được dùng để giúp Bạn
kiểm tra các câu lệnh do Bạn tự soạn Khi sử dụng Bạn sẽ thay Led nàybằng một nhóm nhiều Led (niều hánh Led) Các Led này cho mắc nốitiếp trên một nhánh, và cho ghép song song nhiều nhánh để có đủ sốLed tạo ra một đơn vị hình trên bảng đèn quảng cáo
Sau đây là các hình chụp minh họa cho cách dùng bo vi điều khiển với AT89C51/52 kiểu bo
có 16 đường ra:
Hình chụp chao thấy các thành phần mạch điện cơ bản trên boAT89C51/52, kiểu 16 đường ra
Trang 7
Các đường ra nối vào các port 0 và port 2:
Trang 8Cách dùng nhiều Led để tạo ra một đơn vị hình trên bảng đèn quảng cáo:
Hình vẽ minh họa cách dùng nhiều Led trên một đường ra:
Trang 9Cách tạo bảng đèn quảng cáo dùng nhiều Led màu:
Kiểm tra bo điều kiển 16 đường ra với AT89C51/52
Trang 11Hộp nạp TOP853 và các ic vi điều khiển AT89C51/52 (Bạn xem bàigiới thiệu cách dụng hộp nạp này trong chuyên mục "Trao đổi họctập").
Trang 12Hình dạng các ic vi điều khiển AT89C51/52 (ic có 40 chân, chân 1 nốimasse và chân 40 nối nguồn).
Trang 13Các thành phần của bo vi điều khiển 16 đường ra với ic AT89C51/52
Lớp mạch in (Hình chụp cho thấy các điểm hàn bên dưới mạch)
Trang 14Mạch nguồn nuôi DC 5V lấy trên ic ổn áp 7805.
Trang 15
Mạch chỉnh tốc độ của nhịp nhấp nháy với biến trở 100K.
Trang 17Phụ lục: Một gợi ý về cách làm bảng đèn quảng cáo.
Để làm bảng đèn quảng cáo, thường gồm các bước sau:
Bước 1: Làm bảng chữ, Thí dụ như bảng chữ cửa hàng điện tử Phúc
Lan có hình như sau
Bước 2: Bạn khoan các lổ để gắn Led theo chữ theo hình, hay gắn Led
theo các đường chữ (tùy theo ý của Bạn) Số Led của một đơn vị hìnhgắn theo từng nhánh (với Led siêu sáng, mỗi nhánh có 3 Led) và cácnhánh cho mắc song song, mỗi nhánh có một điện trở hạn dòng và saucùng một con chữ (một đơn vị hình) sẽ chỉ có 2 dây Một dây nối vàonguồn +12V và dây còn lại Bạn nối vào chân C của các transistor thúc
Với Bảng đèn này, chúng ta lấy 11 đơn vị hình cho chữ PHÚC LAN, 1đơn vị hình cho chữ ĐIỆN, 1 đơn vị hình cho chữ TỬ và 1 đơn vị hìnhcho khung Tổng cộng là 14 đơn vị hình
Bước 3: Tính điện trở hạn dòng cho các nhánh Led và tính dòng cung
Trang 18Dùng luật Ohm để tính điện trở hạn dòng trên nhánh chỉ có 1 Led.
Hình sau đây cho thấy, cách dùng luật Ohm tính điện trở hạn dòng chonhánh có nhiều Led mắc nối tiếp
Trang 19Sau đây là hình cho thấy các mắc song song nhiều nhánh cho một đơn
vị hình trên bảng đèn quảng cáo Trên mỗi nhánh đều có một điện trởhạn dòng riêng
Trang 20Đến đây có thể nói Bạn đã làm xong phần cứng gồm bảng đèn và bo viđiều khiển, Bây giờ hãy nói đến cách viết phần mềm cho bảng đènquảng cáo trên.
Bước 4: Cách viết câu lệnh điều khiển bảng đèn quảng cáo.
Trước hết, Bạn hãy xem hình cho thấy cách chúng ta chọn định cácchân để điều khiển bảng đèn quảng cáo:
Trang 21Hình vẽ cho thấy các đơn vị hình được điều khiển bởi các chân của port
Trang 22Chân p0.5 để tắt mở cho chữ <Khung của bảng>
Sau khi đã chọn định xong phân cứng chúng ta bắt đầu viết các chươngtrình con cho các kiểu nháy của bảng đèn
Kiểu sáng chữ P với bit 1 trên chân p2.0
Kiểu tắt chữ P với bit 0 trên chân p2.0
Kiểu sáng chữ H với bit 1 trên chân p2.1
Kiểu tắt chữ Hvới bit 0 trên chân p2.1
Kiểu sáng chữ Úvới bit 1 trên chân p2.2
Kiểu tắt chữ Ú với bit 0 trên chân p2.2
Kiểu sáng chữ C với bit 1 trên chân p2.3
Kiểu tắt chữ Cvới bit 0 trên chân p2.3
Kiểu sáng chữ L với bit 1 trên chân p2.4
Kiểu tắt chữ L với bit 0 trên chân p2.4
Kiểu sáng chữ A với bit 1 trên chân p2.5
Kiểu tắt chữ A với bit 0 trên chân p2.5
Kiểu sáng chữ N với bit 1 trên chân p2.6
Kiểu tắt chữ N với bit 0 trên chân p2.6
Kiểu sáng chữ S với bit 1 trên chân p2.7
Kiểu tắt chữ S với bit 0 trên chân p2.7
Kiểu sáng chữ H với bit 1 trên chân p0.0
Kiểu tắt chữ Hvới bit 0 trên chân p0.0
Kiểu sáng chữ Ovới bit 1 trên chân p0.1
Kiểu tắt chữ O với bit 0 trên chân p0.1
Kiểu sáng chữ P với bit 1 trên chân p0.2
Kiểu tắt chữ P với bit 0 trên chân p0.2
Kiểu sáng chữ Điệnvới bit 1 trên chân p0.3
Trang 23Kiểu tắt chữ Điện với bit 0 trên chân p0.3
Kiểu sáng chữ Tử với bit 1 trên chân p0.4
Kiểu tắt chữ Tửvới bit 0 trên chân p0.4
Kiểu sáng [khung bảng]với bit 1 trên chân p0.5
Kiểu tắt [khung bảng] với bit 0 trên chân p0.5
chữ P - H - Ú - C - L - A - N - S - H - O - P - Điện - Tử - [Khung] với
bit 1
Kiểu tắt từng chữ P - H Ú C L A N S H O P Điện Tử
-[Khung] với bit 0
Vậy các chương trình con sẽ viết như sau:
xoabangden: ; chương trình xóa, làm tắt tất cả các Ledtrên bảng đèn
mov p2, #00000000b ; Cho port p2 về mức áp thấp để làmngương dẫn các transistor thúc
mov p0, #00000000b ; Cho port p0 về mức áp thấp để làmngương dẫn các transistor thúc
ret ; Quay lại sau lệnh call.
sang_het_bang_den: ; chương trình làm sáng tất cả các Led trênbảng đèn
mov p2, #11111111b ; Cho đặt các chân transistor thúc lên mức
Trang 24shop_sang: ; chương trình chỉ làm sáng chữ SHOP mov p0, #00000111b
Trang 26* Đại thể công việc viết các kiểu nhấp nháy dùng câu lệnh đặt 1 (Setbit) để sáng hay đặt 0 (Clear bit) để tắt là như phần trình bày trên.
* Bây giờ Bạn dùng phần mềm MIDE-51 để viết chương trình nguồn vàchép lại với tên file có họ là asm và cho biên dịch (với phím F9) để cófile cùng tên, nhưng họ là hex
* Đến đây chỉ việc dùng một hộp nạp mà Bạn có để nạp các mã lệnhvào bộ nhớ EEP-ROM của ic vi điều khiển AT89C51/52, rồi cắm ic vào
bo ứng dụng là xong chuyện, sau này muốn thay đổi kiểu nháy thì viếtthêm và làm tương tự, rất đơn giản phải không?
Sau đây là các câu lệnh trong file bqc-1.asm:
org 0000h ; Khởi đầu từ thanh nhớ reset.start: ; Đặt tên nhãn start
call xoabangden ; cho gọi chương trình xóa bảngđèn
call sang_het_bang_den ; Cho bảng đèn sáng hết
call delay ; bảng đèn tiếp tục sáng
call delay ; bảng đèn tiếp tục sáng
call xoabangden ; Cho bảng đèn tắt hết
call delay ; Bảng đèn đang tắt.
call phuc_sang ; Cho chữ PHÚC phát sáng
call delay ; Chờ, lúc này chỉ có chữ PHÚCsáng
call lan_sang ; Cho chữ LAN phát sáng
call delay ; Chờ, lúc này có 2 chữ PHÚC vàLAN sáng
call shop_sang ; Cho chữ SHOP phát sáng
call delay ; Chờ, lúc này có 3 chữ sáng làPHÚC LAN SHOP
setb p0.5 ; Cho chữ Điện phát sáng
setb p0.4 ; Cho chữ Tử phát sáng
setb p0.3 ; Cho khung phát sáng
call delay ; Chờ, lúc này cả bảng đèn đềuphát sáng
call delay
call xoabangden
mov r1, #20 ; Nạp số lần 20 và thanh ghi r1
Trang 27tt_1: ; Đặt tên nhãn là tiếp tục 1
call sang_chu_up ; Gọi chương trình cho từng chữtrên bảng sáng lan lên
jmp start ; Quay lại từ đầu
xoabangden: ; Chương trình con dùng xóahết bảng đèn
Trang 30mov r7, #20 ; Nạp trị 20 vào thanh ghi r7
v6: mov r6, #50 ; Nạp trị 50 vào thanh ghi r6
v5: mov r5, #200 ; Nạp trị 200 vào thanh ghi r5
djnz r5, $ ; Chờ r5 giảm theo bước -1 đến bằng 0 djnz r6, v5 ; Cho trị trong r6 giảm theo bước -1,chưa bằng 0, về tên nhãn v5
djnz r7, v6 ; Cho trị trong r7 giảm theo bước -1,chưa bằng 0, về tên nhãn v6
ret ; Quay lại chạy câu lệnh sau câu lệnhcall đã gọi delay trước đó
end ; dừng biên dịch từ vi trí này