(028) 66844775 - 0902760910 banhang@phuclanshop.com
Danh mục sản phẩm

Kể chuyện: Tôi dùng bo khiển AT89C2051, 12 đường ra để ráp đèn hào quang cho tượng Phật Bà trên đất Mỹ

29 Tháng Tám 2015

Mùa đông năm 2009 tôi cùng bà xã đến Mỹ, ở tại thành phố Quincy-Boston. Trong chuyến đi Mỹ này, tôi muốn tìm hiểu nền công nghệ điện tử cũng như cội gốc học thuật ở xứ được vinh danh là tiên tiến hiện đại nhất thế giới. Mùa đông ở vùng Đông Bắc Mỹ tuyết phủ kín khắp mọi nơi, ngoài đường trông vắng vẽ, lạnh lẽo, nỗi buồn không gọi mà tìm đến. Tôi ra vào vào ra phòng khách nhìn tượng Phật bà Quán Thế Âm để giữ lòng lắng động mong chờ cho ánh dương xuân sẽ đến để còn lang thang tìm ý tưởng trên các đường phố của đất kinh kỳ này. Ở Boston Massachussete, có khu MIT có đại học Harvard, có biết bao trường học nổi tiếng khắp hoàn cầu, là nơi biết bao học sĩ ở mọi nơi muốn đến, .... Nay đã có bước chân mình, lần đầu đạp lên lớp tuyết trắng phao lòng cũng cảm thấy nao nao khó tả. Ra vào thơ thẩn  thẩn thờ tôi cảm thấy như trong nhà con gái lớn của mình bên Mỹ thiếu thiếu một cái gì. Sáng hôm nay, một phút bất chợt, tôi nghĩ ra là sau tượng Phật Bà thiếu ánh hào quang bung tỏa tia  dương quang như bức tượng ở bên nhà (Chợ Lớn - Việt Nam). Tôi quyết định phải tìm cách ráp cho được mạch điện tạo đèn hào quang với Led để gắn sau bước tượng Phật và công việc được bắt đầu ngay tối hôm đó...

 

 

Hình chụp cho thấy phòng làm việc tạm thời của tôi trên đất Mỹ, chỉ với vài cái thùng giấy cứng, chúng ta cũng có bàn làm việc dã chiến rồi phải không?

 

 

 

Các Led được cho gắn trên đĩa tráng gương CD. Chúng ta gắn 4 vòng, mỗi vòng 8 Led, nếu có Led nhiều hơn, chúng ta có thể gắn nhiều tia hơn, như 12 tia, nếu có đĩa rộng hơn, chúng ta sẽ gắn nhiều Led hơn cho một tia, thí dụ 12 led thay vì chỉ có 4 Led.

 

 

 

Với cái máy tính Laptop mang từ Việt Nam qua, tôi có thể làm được "mọi chuyện", như viết bài, nói chuyện với Bạn Bè qua trình Skype, dùng Picasa3 xử lý các hình chụp biên soạn các tài liệu kỹ thuật chuyên môn, cho kết hợp với các hộp nạp, nạp được nhiều loại ROM, chạy mô phỏng các loại mạch điện vẽ lại từ các thiết bị tìm được, và giải trí nữa, như xem TV online, xem phim... cũng thấy thích.

 

 

 

Bây giờ, trước hết hãy nói đến điều kiện kỹ thuật mà tôi hiện có: Một bo vi điều khiển tôi mang theo từ Việt nam qua, vài chục con Led màu đỏ còn trong hộp đồ nghề và một cây hàn viết Taiwan tôi vừa mua ở tiệm RadioShack. Tôi chỉ còn thiếu bo nguồn và đĩa tráng gương để gắn Led. Không sao? sẽ có cách tìm được.

 

* Về đĩa tráng gương dùng để gắn Led tôi tạm dùng đĩa CD, tuy nó hơi nhỏ nhưng chấp nhận được.

 

* Về nguồn, tôi theo bạn đi cửa hàng Goodwill Store (chuyên bán đồ hiến tặng) tìm mua một adaptor 12V, 1A giá chỉ 1 đô.

 

Phần vật tư xem như tạm đủ. Bây giờ nói chuyện chuyên môn. Dưới đây là sơ đồ mạch điện mạch vi điều khiển 20 chân, dùng cho ic vi điều khiển AT89C2051.

 

 

Giải thích mạch điện:

 

Nhìn mạch điện Bạn thấy phần cứng của nó rất đơn giản, nó gồm có, nguồn nuôi 5V, mạch định tần với thạch anh 12MHz, mạch Reset với tụ 10uF và điện trở 10K và mạch chỉnh nhịp với sự điều khiển nạp xả của transistor 2SC1815 trên điện trở 1K + (biến trở 100K) và tụ 100uF.

 

Mạch dùng cảng p0 và p3 để tác động tắt mở vào chân B của các transistor dùng làm tầng khuếch đại thúc. Ở đây, chúng ta có 12 đường ra, nên có 12 transistor 2SC2383. Trên chân C của các transistor đặt Led để dùng kiểm tra các chương trình hiện có trong bộ nhớ EEP-ROM của ic AT89C2015.

 

 Hình chụp sau đây cho thấy mạch nguồn nuôi:

 

Nguồn dùng 4 diode ráp thành cầu nắn dòng, dùng để đổi dòng AC ra dạng dòng xung DC, cho nạp vào tụ lọc C1 (1000uF), ở đây dùng tụ lọc lớn làm kho chứa điện. Các tụ nhỏ 104 dùng lọc bỏ nhiễu tần cao nhiễm vào đường nguồn. Mạch dùng ic ổn áp 3 chân KA7805 để tạo ra đường nguồn có mức áp ra 5V, có độ ổn định cao để cấp cho chân 20 của ic vi điều khiển AT89C2051/4051 (Chú ý để giảm nóng, ic ổn áp cho gắn trên miếng nhôm giải nhiệt).

 

 

 Hình chụp sau đây cho thấy mạch chỉnh nhịp:

Mạch tạo mức áp thay đổi lúc lên lúc xuống trên chân 3 qua sự nạp xả của tụ C8 (100uF) qua điện trở R2 (1K) và biến trở RV1 (100K). Qui trình điều khiển nạp xả sẽ do bit 1/bit 0 xuất ra trên chân 2 và đưa vào chân B của transistor Q13. Chúng ta sẽ dùng lệnh jb (jump bit) để kiểm tra bit 1 bit 0 trên chân 3 để điều chỉnh nhịp của chương trình. Nếu Bạn chỉnh biến trở RV1 có trị lớn, mức áp trên chân 3 sẽ lên mức cao rất chậm và như vậy nhịp nhảy của các lệnh sẽ chậm và người lại nếu giảm trị của RV1, nhịp nhẩy của các lệnh sẽ nhanh hơn.

 

Tụ C5 (10uF) và R1 (10K) có tác dụng Reset, mỗi khi mạch được cấp nguồn, tụ C5 nạp điện sẽ kéo chân 1 lên mức áp cao để tạo tác động reset, nó trả các thanh ghi và đưa chương trình về khởi đầu từ thanh ghi reset.

 

 

Chúng ta biết, trong các ic vi điều khiển muốn chạy các câu lệnh cần có xung nhịp, trong các ic này vốn đã có mạch tạo xung nhịp, nhưng tần số của xung nhịp thì cho lấy theo tần số của thạch anh gắn trên chân 4, chân 5. Với thạch anh 12MHz, chúng ta có tần số xung nhịp là 1MHz hay có chu kỳ lệnh là 1us. Để tăng độ ổn tần, trong mạch dùng 2 tụ nhỏ 33pF có tính bù nhiệt ổn tần.

  

 

 Hình chụp sau đây cho thấy 12 đường ra với 12 transistor thúc và gắn 12 Led để kiểm tra các chương trình hiệu có trong ic vi điều khiển gắn trên mạch.

 

Ở đây, chúng ta dùng 12 transistor 2SC2383 để đóng mở dòng qua các Led gắn trên chân C của transistor. Chúng ta biết khi chân ra trên port lên bit 1 (mức volt cao, 5V) thì transistor sẽ bão hòa và nó cấp dòng cho Led trên chân C phát sáng và khi chân B nhận được bit 0 (mức volt thấp, 0V) thì transistor ngưng dẫn và Led sẽ tắt.

 

 

Chúng ta sẽ gắn Led trên đĩa tráng gương CD và đấu các dãy Led này vào mạch và viết chương trình để các Led nhấp nháy tạo ra các tia sáng hào quang, phát ra từ bên sau của tượng Phật. 

 

  

Hình chụp cho thấy hộp nạp ROM kiểu TOP853 được dùng để nạp các file .hex vào nằm trong vùng nhớ EEP-ROM của các ic vi điều khiển, như AT89C2051/4051 (Để hiểu rõ hơn, Bạn hãy xem bài viết hướng dẫn cách dùng hộp nạp TOP853)

 

 
 

 

Sau đây là hình vẽ mà tôi đã cho gắn 32 Led trên đĩa CD tráng gương (Bạn xem hình):

 

Bảng đèn hào quang với 8 x4 = 32 Led, gắn trên 4 vòng. Mỗi vòng 8 Led và được điều khiển tắt mở với một chân của ic vi điều khiển AT89C20151.

 

 

 

 Như vậy, chúng ta sẽ dùng các chân p1.0, p1.1, p1.2 và p1.3 để tạo ra ánh hào quang trên 32 Led.

 

 

Cách viết chương trình phát hào quang cho bảng đèn:

 

Từ phần cứng trên chúng ta đã chọn:

 

* 8 Led  (vòng A) được tắt mở với chân p1.3.

* 8 Led  (vòng B) được tắt mở với chân p1.2.

* 8 Led  (vòng C) được tắt mở với chân p1.1.

* 8 Led  (vòng D) được tắt mở với chân p1.0.

 

Như vậy chỉ cần 4 chân của port 1 cũng đủ dùng cho bảng đèn hào quang này. Chúng ta biết muốn tắt Led sẽ dùng bit 0 (mức áp thấp) và muốn Led sáng thì dùng bit 1 (mức áp cao). Vậy cách viết chương trình nguồn với ngôn ngữ Assemble sẽ như sau:

 

(1) Trước hết hãy viết các chương trình con cho các kiểu sáng (do Bạn tự nghĩ ra).

 

sang_lan_ra:                                   ; chương trình con cho 4 vòng Led sáng lan ra biên ngoài

      mov p1, #00000000b    ; cho tắt hết Led trên bảng đèn.

        call delay

      setb p1.3

      call delay

      setb p1.2

        call delay

      setb p1.1

        call delay

      setb p1.0

        call delay

         ret

 

sang_lan_vao:

      mov p1, #00000000b                     ; Khởi đầu cho tắt hết Led trên bảng đèn

      call delay

      setb p1.0

       call delay

       setb p1.2

       call delay

       setb p1.3

       call delay

       setb p1.4

       call delay

        ret

 

sang_het_tat_tu_trong_ra:                    ; cho bảng đèn sáng hết rồi tắt từ vòng trong dần ra.

      mov p1,  #11111111b                      ; cho 4 vòng Led sáng hết.

      call delay

       clr p1.3

       call delay

       clr p1.2

       call delay

         clr p1.1

       call delay

          clr p1.0

       call delay

        ret.   

 

sang_don_song:                            ; cho 4 vòng sáng theo kiểu dợn sóng

       mov p1, #00000000b             ; cho tắt hết Led trên bảng đèn

        call delay

         setb p1.3     

         call delay

         clr p1.3

         setb p1.2

         call delay

         call delay

         clr p1.2

          setb p1.1

             call delay

          call delay

          clr p1.1

          setb p1.0

            call delay

         call delay

         clr p1.0

          call delay

          ret

 

(Dĩ nhiên, dùng lệnh Set bit và Clear bit, Bạn có thể tạo ra nhiều nhiều kiển sáng tùy theo ý của Bạn).

 

(2) Bây giờ viết chương trình nguồn hoàn chỉnh như sau:

 

org 0000h

 start:

         mov r1, #4

tt_1: mov p1, #00000000b

        call delay

         mov p1, #11111111b

         djnz r1, tt_1

             mov p1, #00000000b

          mov r1, #5

tt_2:  call sang_lan_ra

          call sang_lan_vao

          call sang_het_tat_tu_trong_ra

          djnz r1, tt_2

         mov r1, #20

tt_3: call sang_don_song

            djnz r1, tt_3

          jmp start

 

sang-lan-ra:                                   ; chương trình con cho 4 vòng Led sáng lan ra biên ngoài

      mov p1, #00000000b    ; cho tắt hết Led trên bảng đèn.

        call delay

      setb p1.3

      call delay

      setb p1.2

        call delay

      setb p1.1

        call delay

      setb p1.0

        call delay

         ret

 

sang_lan_vao:                                      ; cho sáng từ vòng ngoài lan vào vòng trong.

      mov p1, #00000000b                     ; Khởi đầu cho tắt hết Led trên bảng đèn

      call delay

      setb p1.0

       call delay

       setb p1.2

       call delay

       setb p1.3

       call delay

       setb p1.4

       call delay

        ret

 

sang_het_tat_tu_trong_ra:                    ; cho bảng đèn sáng hết rồi tắt từ vòng trong dần ra.

      mov p1,  #11111111b                      ; cho 4 vòng Led sáng hết.

      call delay

       clr p1.3

       call delay

       clr p1.2

       call delay

         clr p1.1

       call delay

          clr p1.0

       call delay

        ret   

 

sang_don_song:                            ; cho 4 vòng sáng theo kiểu dợn sóng

       mov p1, #00000000b             ; cho tắt hết Led trên bảng đèn

        call delay

         setb p1.3     

         call delay

         clr p1.3

         setb p1.2

         call delay

         call delay

         clr p1.2

          setb p1.1

             call delay

          call delay

          clr p1.1

          setb p1.0

            call delay

         call delay

         clr p1.0

          call delay

          ret

delay:                                                          ; chương trình làm trễ 

          mov r7, #200

v6:     mov r6, #255

          djnz r6, $

          djnz r5, v6

           ret

end

 

 

Ghi chú: Tốc độ nháy ảnh hưởng rất lớn đến hiệu ứng của ánh hào quang, Bạn có thể thay đổi các trị trong trình con delay để có nhịp nháy đúng ý. Bạn cũng có thể dùng số câu lệnh call delay để tạo ra các nhịp nhẩy phi tuyến tính càng làm cho đèn thêm sinh động.

 

 

(3) Bạn cho dịch file nguồn có họ .asm ra file mã 16 có họ .hex.

 

Bạn dùng trình MIDE-51 để soạn chương trình nguồn trên và cho dịch ra file mã 16 với tên file là .hex. Sau đây là các hình minh họa công việc này:

 

 

Bạn mở trình M-IDE-51 để viết chương trình nguồn (nếu Bạn đã có chương trình nguồn rồi thì cho cắt và dán vào vùng soạn thảo của MIDE-51 cũng được). Hãy đặt tên file cho chương trình nguồn với họ là .asm.

 

 

Sau khi đã soạn xong chương trình nguồn, Bạn chọn mục Build rồi chọn Build để cho dịch file nguồn ra file mã 16 (Bạn củng có thể dùng phím nóng bằng cách gõ phím F9). Sau khi dịch xong, nó báo có lỗi trong thông báo bên dưới (có 3 lỗi). Bạn hãy theo dòng chỉ dẫn lỗi đến đó để sửa cà cho dịch lại.

 

 

Chúng ta đến dòng 111 và phát hiện gõ sai cú pháp do có dấu chấm, bỏ đấu chấm này và tiếp tục làm tương tự để tìm ra 2 lỗi khác. Cho sửa 2 lỗi này,, nghĩa là phải sửa cho chương trình nguồn hoàn toàn hết lỗi lúc đó chúng ta mởi có file .hex.

 

 

Đã sửa hết lỗi và MIDE-51 đã báo no errors và đã chịu dịch cho chúng ta và tạo ra file hao-quang.hex.  File hao-quang.hex có nội dung như sau:

 

:1000000079047590001200A67590FFD9F5759000DF
:10001000790512002612004112005CD9F5791412FC
:100020000077D9FB80DA7590001200A6D2931200F7
:10003000A6D2921200A6D2911200A6D2901200A6C9
:10004000227590001200A6D2901200A6D292120041
:10005000A6D2931200A6D2941200A6227590FF1287
:1000600000A6C2931200A6C2921200A6C29112006C
:10007000A6C2901200A6227590001200A6D293127A
:1000800000A6C293D2921200A61200A6C292D291EA
:100090001200A61200A6C291D2901200A61200A6CB
:0F00A000C2901200A6227FC87EFFDEFEDDFA228C
:00000001FF

 

 

 

Bây giờ Bạn sẽ dùng hộp nạp TOP853 để nạp các mã lệnh trong file .hex này vào bộ nhớ EEP-ROM trong AT89C2051 là xong việc (Bạn xem bài giới thiệu cách dùng hộp nạp TOP853).

  

 

Làm đến đây coi như công việc đã xong, tôi gắn đèn lên một giá đở bằng cây và đặt bảng đèn hào quang ở bên sau tượng Quán Thế Âm Bồ Tát và kể từ lúc đó không lúc nào không có tia hào quang uy nghiêm phát ra từ pho tượng Phật thanh nhã này (Bạn xem các hình tôi chụp).

 

 

 

Bảng đèn hào quang đặt bên sau tượng Quán Thế Âm Bồ Tát, ngày đêm phát ra tia hào quang Từ Bi Bác Nhã  giúp làm sáng cõi nhân thế và giải bao nạn khổ ở cõi Ta Bà trần tục này.

 

 

Vòng hào quang đã đặt sau tượng Quán Thế Âm Bồ Tát, phát ra các tia sáng đỏ trên nền sáng của các Led phát sáng màu xanh, trông tượng càng uy nghiêm hơn.

 

 

Bàn thờ Bồ Tát Quán Thế Âm trong nhà con gái lớn của tôi ở Boston Mỹ đã có bảng đèn hào quang do tôi tự làm trên đất Mỹ.

 

 

 

Qua phần trình bày trên, chúng tôi mong Bạn đã hiểu cách dùng bo vi điều khiển AT89C2051/89C4051...hiện có bán ở cửa hàng Phúc Lan, dùng nó ráp nhanh các bảng đèn phát tia sáng hào quang, thật ra  nó còn được dùng cho các công việc điều khiển tự động khác nữa, về cách viết các chương trình điều khiển bảng đèn hào quang, các bảng đèn hiệu quảng cáo sẽ được chúng tôi tiếp tục trình bày trong các bài khác, mong Bạn thường xuyên vào đọc.

 

 

Địa chỉ liên lạc:

 

 

 

Vui lòng để lại bình luận
  • online support profile

    vivian.wang.yun

    Kinh doanh linh kiện và thiết bị ngành điện tử và điều khiển điện
Top