Thông báo

Collapse
No announcement yet.

Quang Báo bằng 89 16 hàng 512 cột và hơn thế nữa

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Quang Báo bằng 89 16 hàng 512 cột và hơn thế nữa

    Chào các bạn:
    mình tạo luồng này để các bạn tham khảo và phát triển cho Quang Báo
    sử dụng 1 con 89 để làm một bảng Quang Báo lớn không còn là vấn đề khó
    mà cái khó là giải thuật và khả năng sáng tạo của các bạn:
    sau đây mình có 1 sơ đồ cho các bạn tham khảo thử:



    giải thuật:
    đầu tiên các bạn phải sắp xếp data hiển thị trên 2 con RAM
    việc kết nối 89 để điều khiển 2 con RAM này mình không bàn tới

    sau đó thực hiện quá trình quét LED
    đầu tiên bạn cho chân R = 0 (tất cả 2 con RAM ở trạng thái bị đọc)
    đặt chân SCK = 0
    kích chân CLR trên bộ đếm các ngõ ra là 0
    ABCD tùy thuộc vào hàng muốn dịch
    bây giờ RED và GREEN đã có data ở địa chỉ 00h
    SCK = 1 sẽ tạo cạnh lên và sẽ dịch data vào bảng led qua 74595
    tiếp theo SCK = 0 tạo cạnh xuống và làm bộ đếm tăng 1
    bây giờ RED và GREEN đã có data ở địa chỉ 01h
    bạn chỉ mất 2 chu kỳ là đã dịch được 1bit
    vậy tốc độ 20000000/(50HZ)/(16 hàng)=2500
    một lần quét tối đa là 2500/2=1250 cột
    nếu bạn sử dụng xung nhịp máy thì sẽ gấp 12 lần

    nếu bạn sử dụng 2 bảng 32 hàng và nối chung SCK thì không ảnh hưởng đến xung nhịp
    kể cả bạn sử dụng nhiều màu
    nếu bạn thiết kế bộ đếm có đầu vào thì sẽ chạy chữ được

    nếu bảng của bạn không dài thì có thể sử dụng PORT1,2 làm mạch đếm
    "
    inc dptr
    mov P1,dpl
    mov P2,dph "

    để kiểm soát số cột bạn dùng ngắt COUNTER
    nếu bạn thấy phần cứng bộ đếm quá cồng kềnh
    thì sử dụng GAL16V8 để thiết kế

    lần sau mình sẽ đưa lên sơ đồ và code của bảng 16X256

    chúc các bạn thành công
    Last edited by dangdung; 29-07-2008, 14:55.
    Điện thoại:
    email:

  • #2
    Cái con nằm ở trên cùng bên trái (có Q0-Q14, CLR, CK) là con gì thế bác?
    Ngõ vào địa chỉ của 2 con RAM thôi mà xài dịch nối tiếp sang song song thế mất thời gian chết bác nhỉ?
    Email: - Mobil: tạm thời ngừng liên lạc 1 thời gian
    Giới thiệu website kiếm tiền trực tuyến & tăng thứ hạng website.

    Comment


    • #3
      Nguyên văn bởi nguoidaukho
      ba co biet con atf16v8b k ,chi giup minh voi
      là con lập trình phần cứng bẳng các cổng logic
      Điện thoại:
      email:

      Comment


      • #4
        Nguyên văn bởi nghaiha Xem bài viết
        Cái con nằm ở trên cùng bên trái (có Q0-Q14, CLR, CK) là con gì thế bác?
        Ngõ vào địa chỉ của 2 con RAM thôi mà xài dịch nối tiếp sang song song thế mất thời gian chết bác nhỉ?
        đó là khối đếm tùy thuộc vào sự thiết kế của các bạn
        có thể dùng IC số
        hoặc ATF ...

        khi kích CK đia chỉ đọc RAM thay đổi và data RED và GREEN thay đồi
        tùy thuộc vào sự sắp xếp trước đó
        dịch 1 bít vào bảng chỉ mất 2 chu kỳ máy
        Điện thoại:
        email:

        Comment


        • #5
          Nguyên văn bởi dangdung Xem bài viết
          đó là khối đếm tùy thuộc vào sự thiết kế của các bạn
          có thể dùng IC số
          hoặc ATF ...

          khi kích CK đia chỉ đọc RAM thay đổi và data RED và GREEN thay đồi
          tùy thuộc vào sự sắp xếp trước đó
          dịch 1 bít vào bảng chỉ mất 2 chu kỳ máy
          Ý tưởng dịch data bằng phần cứng rất hay. Cám ơn bác. Ở những mạch kích thước nhỏ ta có thể chỉ dùng một con RAM cho đỡ tốn.
          Vậy hỏi bác một câu này nữa. Dùng clock ngoài để cấp xung cho IC đếm và dịch địa chỉ cho RAM. Vậy khi viết data vào RAM bác có cần một cách nào để cấm 2 chân \RD và \WR xuống 0 cùng lúc??? nếu cần ưu tiên một cái bác ưu tiên cái nào, \WR nhỉ?
          Email: - Mobil: tạm thời ngừng liên lạc 1 thời gian
          Giới thiệu website kiếm tiền trực tuyến & tăng thứ hạng website.

          Comment


          • #6
            Nguyên văn bởi nghaiha Xem bài viết
            Ý tưởng dịch data bằng phần cứng rất hay. Cám ơn bác. Ở những mạch kích thước nhỏ ta có thể chỉ dùng một con RAM cho đỡ tốn.
            Vậy hỏi bác một câu này nữa. Dùng clock ngoài để cấp xung cho IC đếm và dịch địa chỉ cho RAM. Vậy khi viết data vào RAM bác có cần một cách nào để cấm 2 chân \RD và \WR xuống 0 cùng lúc??? nếu cần ưu tiên một cái bác ưu tiên cái nào, \WR nhỉ?
            thông thường thì chỉ sử dụng con RAM
            nhưng sơ đồ cơ bản mà làm vậy sợ nhiều bạn không hiểu
            khi đã hiểu phần cứng này rồi thì 1 RAM không thành vấn đề

            chân RD và WR vẫn nối bình thường vào P3.6, P3.7
            khi cần quét LED thi đặt RD=0;

            còn khi đọc và ghi RAM vẫn bình thường (chú ý là bộ đếm ngõ ra = 1 điện trở treo)
            ý tưởng là sắp xếp RAM trước rồi quét sau
            bạn sợ là khi quét LED RD=0 mà WD lại = 0
            (bạn có thể dùng giải thuật để kiểm soát hoặc sử dụng phần cứng để phân xử bus)

            bởi vậy nếu bộ đếm sử dụng linh hoạt và có nhiều hiệu ứng LED thì khá phúc tạp
            nên chọn 1 CON ATF thay thế là đơn giản phần cứng

            mình đang soạn lại bài cơ bản của bảng 16X256
            chúc các bạn thành công
            Điện thoại:
            email:

            Comment


            • #7
              Nguyên văn bởi dangdung Xem bài viết
              thông thường thì chỉ sử dụng con RAM
              nhưng sơ đồ cơ bản mà làm vậy sợ nhiều bạn không hiểu
              khi đã hiểu phần cứng này rồi thì 1 RAM không thành vấn đề

              chân RD và WR vẫn nối bình thường vào P3.6, P3.7
              khi cần quét LED thi đặt RD=0;

              còn khi đọc và ghi RAM vẫn bình thường (chú ý là bộ đếm ngõ ra = 1 điện trở treo)
              ý tưởng là sắp xếp RAM trước rồi quét sau
              bạn sợ là khi quét LED RD=0 mà WD lại = 0
              (bạn có thể dùng giải thuật để kiểm soát hoặc sử dụng phần cứng để phân xử bus)

              bởi vậy nếu bộ đếm sử dụng linh hoạt và có nhiều hiệu ứng LED thì khá phúc tạp
              nên chọn 1 CON ATF thay thế là đơn giản phần cứng

              mình đang soạn lại bài cơ bản của bảng 16X256
              chúc các bạn thành công
              Mình thấy phần cứng quá phức tạp, nếu sử dụng phần cứng để dịch thì với 2 chu kỳ máy thì dịch được 1 byte(8 hoặc 16 bit) chứ không phải 1 bít.

              Comment


              • #8
                Nguyên văn bởi nghaiha Xem bài viết
                Cái con nằm ở trên cùng bên trái (có Q0-Q14, CLR, CK) là con gì thế bác?
                Ngõ vào địa chỉ của 2 con RAM thôi mà xài dịch nối tiếp sang song song thế mất thời gian chết bác nhỉ?
                Vì việc quét là tuần tự, cho nên sử dụng mạch đếm nhị phân tạo địa chỉ tuần tự cho RAM là hợp lý, không mất thời gian đâu.
                More friends more foods

                Comment


                • #9
                  Nguyên văn bởi ntcisa Xem bài viết
                  Mình thấy phần cứng quá phức tạp, nếu sử dụng phần cứng để dịch thì với 2 chu kỳ máy thì dịch được 1 byte(8 hoặc 16 bit) chứ không phải 1 bít.
                  đó chỉ là sơ đồ cơ bản thôi
                  đúng vậy nếu nhân phần cứng thì có thể quyét 1byte và hơn nữa
                  vì vậy mà số hàng là rất cao
                  kể cả bạn sử dụng nhiều màu

                  còn nếu phần cứng phức tạp bạn cỏ thể sử dụng ATF cho đơn giản
                  Điện thoại:
                  email:

                  Comment


                  • #10
                    dạo này bận quá chưa soạn kịp mong các bạn thông cảm
                    mình mới chỉ vẽ xong sơ đồ thui để các bạn xem trước va góp ý
                    mình sẽ viết code tung phần rồi đưa lên



                    giải thích:
                    chân PRE = 0 thì cho phép IC 74HC573 để giao tiếp RAM ngoài
                    đồng thời PRE bộ đếm làm cho ngõ ra bộ đếm ở mức cao tránh xung đột khi truy xuất RAM
                    khi = 1 thì cho phép bộ đếm đồng thời tắt IC 74HC573 tránh xung đột khi quét LED

                    CLR để bộ đếm trở về 0


                    ở phần cứng này do sử dụng bảng LED nhỏ 256 cột (bộ đếm 8 bít là đủ) nên mình tận dụng luôn P2 làm phần điêu khiển hàng

                    trong RAM mình chỉ sử dung 2 bít trong 1 byte để lưu dữ màu
                    6 bít còn lại dùng cho việc mở rộng nếu nhân bảng
                    hoặc nếu các bạn muốn tận dụng thì thiết kế thêm bộ phân kênh

                    nếu các bạn không thiết kế được ATF GAL 16V8 thì có thể tham khảo bộ đếm mình thiết kế bằng IC số ở bên dưới

                    chúc các bạn thành công
                    Last edited by dangdung; 06-08-2008, 21:39.
                    Điện thoại:
                    email:

                    Comment


                    • #11
                      bài số 1:
                      Tần số quét:

                      chắc các bạn cũng đã biết để hiển thị LED ma trận không nhấp nháy thì tần số quét là (50HZ)
                      vậy trong 1s ta phải quét 50 lần mỗi lần là 16 hàng và mỗi hàng là 256 cột
                      nếu ta sử dụng thạch anh 24MHz thì tối thiểu phải dịch một cột là bao nhiêu chu kỳ máy

                      24000000/12/50/16/256 = 9,76 xung
                      nếu lấy tròn 9 xung thì càng tốt

                      vậy chúng ta phải dịch một cột phải dưới 9 chu kỳ thì mới được
                      lần sau minh sẽ đưa code cho phần quét LED
                      chúc các bạn thành công
                      Điện thoại:
                      email:

                      Comment


                      • #12
                        bạn này nói chưa đúng. Thực chất đâu phải chỉ 89 làm. Mà 89 chỉ điều khiển thôi.
                        Cái này dùng FPGA thì cũng vậy. VIDEO LED vẫn dùng con ATMEGA để điều khiển đấy chứ. Nhưng chỉ điều khiển chứ không SCAN.
                        Quét từ RAM ra bằng phần cứng thì phụ thuộc vào 89 để cập nhật data vào RAM.
                        Bạn thử cho chạy tốc độ cao xem sao?
                        20, 30 điểm/ giây thì 89 bó tay luôn.
                        Nhà sản xuất chuyên nghiệp các sản phẩm OEM cho gia dụng và công nghiệp.

                        Biến tần
                        Máy giặt
                        Lò vi sóng
                        Bếp từ.
                        Tủ lạnh.
                        Điều hòa

                        Comment


                        • #13
                          Nguyên văn bởi dangdung Xem bài viết
                          bài số 1:
                          Tần số quét:

                          chắc các bạn cũng đã biết để hiển thị LED ma trận không nhấp nháy thì tần số quét là (50HZ)
                          vậy trong 1s ta phải quét 50 lần mỗi lần là 16 hàng và mỗi hàng là 256 cột
                          nếu ta sử dụng thạch anh 24MHz thì tối thiểu phải dịch một cột là bao nhiêu chu kỳ máy

                          24000000/12/50/16/256 = 9,76 xung
                          nếu lấy tròn 9 xung thì càng tốt

                          vậy chúng ta phải dịch một cột phải dưới 9 chu kỳ thì mới được
                          lần sau minh sẽ đưa code cho phần quét LED
                          chúc các bạn thành công
                          Như vậy con 573 dùng khi ghi data vào RAM. Còn con GAL thì dùng để output data ra các led.
                          Dịch một cột là cứ 9 chu kỳ máy phải làm 1 phát. Trong đó mất chu kỳ cho việc đưa SCK xuống 0 rồi 1 đưa SCK lên 1. Như vậy còn 7 chu kỳ máy.
                          7 chu kỳ máy này có đủ để làm các việc khác như tính toán hiệu ứng, sắp xếp lại dữ liệu trước khi đưa vào RAM, dịch bit khi mà data đưa vào RAM rất rời rạc, một byte 8 bit mà chỉ xài một bit cho màu xanh và 1 bit cho màu đỏ.
                          Email: - Mobil: tạm thời ngừng liên lạc 1 thời gian
                          Giới thiệu website kiếm tiền trực tuyến & tăng thứ hạng website.

                          Comment


                          • #14
                            Theo em, việc cấp xung cho GAL (chân SCK) phải được thực hiện bằng giao động ngoài (thạch anh/bộ chia) để giải phóng 89 ra khỏi việc scan. Chân WR có đưa vào GAL để chống xung đột khi quét và khi ghi vào RAM.

                            Việc tính toán một hình ảnh hay kí tự (8 bit liên tục) ra thành 8 byte để ghi vào RAM sẽ tốn khá nhiều thời gian cho 89 nhỉ?

                            Nghe bác DuyPhi nói quét led bằng 89 (mà bác ý chưa biết gì về GAL, Maxplux gì đó đâu) được bảng dài hàng chục mét. Không biết bác này có phải là ông nội của bác BaPhi không nhỉ?
                            Email: - Mobil: tạm thời ngừng liên lạc 1 thời gian
                            Giới thiệu website kiếm tiền trực tuyến & tăng thứ hạng website.

                            Comment


                            • #15
                              Bạn dangdung cứ quan tâm đến việc làm sao để tạo xung clock chốt thật nhanh mà ko biết nó chỉ chiếm 1 thời gian rất nhỏ trong việc đưa 1 byte dữ liệu ra (đọc Ram, tăng biến đếm, sắp xếp...), nếu bạn dùng 89C51 mà làm được 512x16 thì cùng lắm chỉ chạy được hiệu ứng phải sang trái...Tôi góp ý thế ko biết đúng ko, bạn đừng tự ái nhé...
                              Tôi cũng dùng 89c51 cho quang báo rồi, và nó ko đáp ứng được nhu cầu làm các bảng lớn và nhiều hiệu ứng nên tôi đã chuyến sang AVR...
                              |

                              Comment

                              Về tác giả

                              Collapse

                              dangdung Tìm hiểu thêm về dangdung

                              Bài viết mới nhất

                              Collapse

                              Đang tải...
                              X