thiết kế biển quảng cáo, biển vẫy

33
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

Upload: trungnb22

Post on 29-Jun-2015

1.565 views

Category:

Education


2 download

TRANSCRIPT

Page 1: Thiết kế biển quảng cáo, biển vẫy

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 ý. 

Page 2: Thiết kế biển quảng cáo, biển vẫy

* Ở 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.

Page 3: Thiết kế biển quảng cáo, biển vẫy

 

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.

Page 4: Thiết kế biển quảng cáo, biển vẫy

Để 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ới thạ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 (33pF x2), 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 đèn nếu dùng thạch anh có tần số khác. 

 

* Mạch reset.

 

 

Với tụ C5 (10uF) và điện trở R1 (10K) trên chân số 9, ngay khi mạch được cấp nguồn 5V, tụ C5 nạp điện từ mức áp 0V, vậy nó sẽ kéo chân 9 lên mức áp cao, với mức áp cao trên chân 9, ic vi điều khiển sẽ bị reset, nó sẽ đặt ic về trạng thái khởi đầu, sau

Page 5: Thiết kế biển quảng cáo, biển vẫy

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 đổi nhị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ên chân p3.6, sau đó dùng câu lệnh jb (jump bit...) để theo dõi bit 0/1 trên châ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ằng cá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ị.

Page 6: Thiết kế biển quảng cáo, biển vẫy

 

Ở đây chúng ta dùng trasistor 2SC2383 có khả năng cấp dòng Ic đến 1000mA để 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ảng p0 hay p2, vậy khi chân này ở mức áp cao (bit 1), transistor sẽ vào trạ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ắn trê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ày bằng một nhóm nhiều Led (niều hánh Led). Các Led này cho mắc nối tiế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 bo AT89C51/52, kiểu 16 đường ra. 

Page 7: Thiết kế biển quảng cáo, biển vẫy

 

  

Các đường ra nối vào các port 0 và port 2:

Page 8: Thiết kế biển quảng cáo, biển vẫy

 

 

Cá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:

Page 9: Thiết kế biển quảng cáo, biển vẫy

 

 

Cá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...

Page 10: Thiết kế biển quảng cáo, biển vẫy

 

 

 

 

 

Page 11: Thiết kế biển quảng cáo, biển vẫy

 

Hộp nạp TOP853 và các ic vi điều khiển AT89C51/52... (Bạn xem bài giới thiệu cách dụng hộp nạp này trong chuyên mục "Trao đổi học tập"). 

 

 

Page 12: Thiết kế biển quảng cáo, biển vẫy

 

 

 

Hình dạng các ic vi điều khiển AT89C51/52...(ic có 40 chân, chân 1 nối masse và chân 40 nối nguồn).

Page 13: Thiết kế biển quảng cáo, biển vẫy

 

 

 

Cá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).

Page 14: Thiết kế biển quảng cáo, biển vẫy

 

 

 

Mạch nguồn nuôi DC 5V lấy trên ic ổn áp 7805.

Page 15: Thiết kế biển quảng cáo, biển vẫy

 

  

 Mạch chỉnh tốc độ của nhịp nhấp nháy với biến trở 100K.

Page 16: Thiết kế biển quảng cáo, biển vẫy

 

 

 

Page 17: Thiết kế biển quảng cáo, biển vẫy

Phụ 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ình gắn theo từng nhánh (với Led siêu sáng, mỗi nhánh có 3 Led) và các nhánh cho mắc song song, mỗi nhánh có một điện trở hạn dòng và sau cùng một con chữ (một đơn vị hình) sẽ chỉ có 2 dây. Một dây nối vào nguồ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ình cho 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 cấp của các transistor thúc. 

Trên thị trường có 2 loại Led. Loại Led thường, có mức ghim áp khoảng 2V và loại Led siêu sáng có mức ghim áp là 3V. Vậy dùng luật Ohm Bạn dễ dàng tính được trị của điện trở hạn dòng R (Bạn xem hình). 

Page 18: Thiết kế biển quảng cáo, biển vẫy

Dù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 cho nhánh có nhiều Led mắc nối tiếp. 

Page 19: Thiết kế biển quảng cáo, biển vẫy

 

 

Sau đâ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.

Page 20: Thiết kế biển quảng cáo, biển vẫy

Đế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 đèn quả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ác chân để điều khiển bảng đèn quảng cáo:

Page 21: Thiết kế biển quảng cáo, biển vẫy

 

 

Hì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 2, port 0. Chúng ta dùng: 

Chân p2.0  để tắt mở cho chữ  PChân p2.1 để tắt mở cho chữ  HChân p2.2  để tắt mở cho chữ  ÚChân p2.3  để tắt mở cho chữ  CChân p2.4  để tắt mở cho chữ  LChân p2.5  để tắt mở cho chữ  AChân p2.6  để tắt mở cho chữ  NChân p2.7  để tắt mở cho chữ  SChân p0.0  để tắt mở cho chữ  H

Page 22: Thiết kế biển quảng cáo, biển vẫy

Chân p0.1  để tắt mở cho chữ  OChân p0.2  để tắt mở cho chữ  PChân p0.3  để tắt mở cho chữ  ĐiệnChân p0.4  để tắt mở cho chữ  TửChâ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ương trì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.0Kiể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.1Kiểu tắt chữ H với bit 0 trên chân p2.1 

Kiểu sáng chữ Ú với bit 1 trên chân p2.2Kiể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.3Kiểu tắt chữ C với bit 0 trên chân p2.3 

Kiểu sáng chữ L với bit 1 trên chân p2.4Kiể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.5Kiể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.6Kiể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.0Kiểu tắt chữ H với bit 0 trên chân p0.0 

Kiểu sáng chữ O vớ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.2Kiểu tắt chữ P với bit 0 trên chân p0.2 

Kiểu sáng chữ Điện với bit 1 trên chân p0.3Kiể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

Page 23: Thiết kế biển quảng cáo, biển vẫy

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.5Kiểu tắt [khung bảng] với bit 0 trên chân p0.5 

Kiểu sáng từng 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 Led trên bảng đèn.     mov p2, #00000000b     ; Cho port p2 về mức áp thấp để làm ngương dẫn các transistor thúc.     mov p0, #00000000b     ; Cho port p0 về mức áp thấp để làm ngươ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ên bảng đèn.    mov p2, #11111111b       ; Cho đặt các chân transistor thúc lên mức áp cao.     mov p0, #00111111b      ; Cho đặt các chân transistor thúc lên mức áp cao.       ret                                      ; Quay lại sau lệnh call. 

 

phuc_sang:                             ; chương trình chỉ làm sáng chữ PHÚC      mov p0,  #00000000b     mov p2,  #00001111b       ret 

lan_sang:                                 ; chương trình chỉ làm sáng chữ LAN      mov p0, #00000000b     mov p2, #01110000b       ret 

Page 24: Thiết kế biển quảng cáo, biển vẫy

shop_sang:                              ; chương trình chỉ làm sáng chữ SHOP      mov p0, #00000111b     mov p2, #10000000b       ret 

 dien_sang:                              ; chương trình chỉ làm sáng chữ Điện     mov p0, #00000000b     mov p2, #10000000b     ret 

tu_sang:                                   ; chương trình chỉ làm sáng chữ Tử     mov p0, #00000001b     mov p2, #00000000b      ret 

sang_chu_up:                          ; chương trình cho từng con chữ sáng lan lên qua bên phải     mov p2, #00h     mov p0, #00h     call delay      setb p2.0     call delay      setb p2.1      call delay      setb p2.2     call delay      setb p2.3     call delay      setb p2.4     call delay      setb p2.5     call delay      setb p2.6     call delay      setb p2.7     call delay      setb p0.0     call delay      setb p0.1

Page 25: Thiết kế biển quảng cáo, biển vẫy

     call delay      setb p0.2     call delay      setb p0.3     call delay      setb p0.4       ret 

tat_chu_down:                              ; chương trình cho từng con chữ tắt lan qua bên trái.      mov p2, #11111111b      mov p0, #00011111b         call delay      clr p0.4      call delay      clr p0.3      call delay      clr p0.2      call delay      clr p0.1      call delay      clr p0.0      call delay      clr p2.7      call delay      clr p2.6      call delay 

     clr p2.5      call delay 

      clr p2.4      call delay     

      clr p2.3      call delay   

      clr p2.2      call delay      clr p2.1      call delay     clr p2.0      call delay     ret     

Page 26: Thiết kế biển quảng cáo, biển vẫy

* Đại thể công việc viết các kiểu nhấp nháy dùng câu lệnh đặt 1  (Set bit) để 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ệnh và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ết thê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ÚC sá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 đều phát sáng.      call delay

Page 27: Thiết kế biển quảng cáo, biển vẫy

      call xoabangden      mov r1, #20                                  ; Nạp số lần 20 và thanh ghi r1.tt_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     call delay                                       ; chờ.     call tat_chu_down                         ; Gọi chương trình cho tắt từ chữ trên bảng đèn.      call delay                                        ; chờ    djnz r1, tt_1                                     ; Giảm trị trong r1, chưa bằng 0? nhẩy về tên nhãn tt_1     call delay                                         ; chờ    jmp start                                           ; Quay lại từ đầu. 

xoabangden:                                       ; Chương trình con dùng xóa hết bảng đèn.     mov p2,  #00000000b     mov p0,  #00000000b       ret 

sang_het_bang_den:                           ; Chương trình con dùng cho sáng hết bảng đèn        mov p2,  #11111111b     mov p0,  #00111111b       ret 

phuc_sang:                                             ; Chương trình con dùng cho chữ PHÚC sáng      mov p0, #00000000b     mov p2, #00001111b       ret 

lan_sang:                                               ; Chương trình con dùng cho chữ LAN sáng      mov p0, #00000000b     mov p2, #01110000b       ret 

shop_sang:                                            ; Chương trình con dùng cho chữ SHOP sáng.

Page 28: Thiết kế biển quảng cáo, biển vẫy

      mov p0, #00000111b     mov p2, #10000000b       ret 

 dien_sang:                                             ; Chương trình con dùng cho chữ Điện sáng.     mov p0, #00000000b     mov p2, #10000000b     ret 

tu_sang:                                                    ; Chương trình con dùng cho chữ Tử sáng.     mov p0, #00000001b     mov p2, #00000000b      ret 

sang_chu_up:                                         ; Chương trình con dùng cho từng chữ sáng lan lên.     mov p2, #00h     mov p0, #00h     call delay      setb p2.0     call delay      setb p2.1      call delay      setb p2.2     call delay      setb p2.3     call delay      setb p2.4     call delay      setb p2.5     call delay      setb p2.6     call delay      setb p2.7     call delay      setb p0.0     call delay      setb p0.1     call delay      setb p0.2

Page 29: Thiết kế biển quảng cáo, biển vẫy

     call delay      setb p0.3     call delay      setb p0.4       ret 

tat_chu_down:                                    ; Chương trình con dùng cho từng chữ tắt dần xuống.      mov p2, #11111111b      mov p0, #00011111b         call delay      clr p0.4      call delay      clr p0.3      call delay      clr p0.2      call delay      clr p0.1      call delay      clr p0.0      call delay      clr p2.7      call delay      clr p2.6      call delay 

     clr p2.5      call delay 

      clr p2.4      call delay     

      clr p2.3      call delay   

      clr p2.2      call delay      clr p2.1      call delay     clr p2.0      call delay     ret 

delay:                                    ; Chương trình con dùng làm trễ         mov r7, #20                 ; Nạp trị 20 vào thanh ghi r7

Page 30: Thiết kế biển quảng cáo, biển vẫy

v6:    mov r6, #50                  ; Nạp trị 50 vào thanh ghi r6v5:    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ệnh call đã gọi delay trước đó.end                                           ; dừng biên dịch từ vi trí này.