Thông báo

Collapse
No announcement yet.

xin đoạn code chạy chữ

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

  • xin đoạn code chạy chữ

    mình đang làm một bài tập lớn hiển thị đen led.mình đã làm gần xong nhưng thiếu mất một đoạn code thực hiện việc sau(nghĩ mãi mà không ra thuật toán)
    chạy chữ như sau
    H
    NH
    ANH
    HANH
    KHANH
    có nghĩa là chữ H chạy từ bên trái sagn rùi đứng im ở bên phải. sau khi chữ H dã đứng yên ở bên phải rùi thì: chữ N chạy tiếp từ bên trái sang và dứng cạnh chữ H.rồi đến chữ A H K cũng lần lượt chạy như thế.

  • #2
    Nguyên văn bởi double_amate Xem bài viết
    mình đang làm một bài tập lớn hiển thị đen led.mình đã làm gần xong nhưng thiếu mất một đoạn code thực hiện việc sau(nghĩ mãi mà không ra thuật toán)
    chạy chữ như sau
    H
    NH
    ANH
    HANH
    KHANH
    có nghĩa là chữ H chạy từ bên trái sagn rùi đứng im ở bên phải. sau khi chữ H dã đứng yên ở bên phải rùi thì: chữ N chạy tiếp từ bên trái sang và dứng cạnh chữ H.rồi đến chữ A H K cũng lần lượt chạy như thế.
    Em thấy có gì khó đâu nhỉ, viết vài dòng thôi chớ mấy.
    nCols=number of columns //số cột của bảng led ma trận
    chw=character width // do rong của mot ky tu
    str='KHANH'
    len=length(str)=5;
    for (i=len;i<1;i--){ // từ cuối chuỗi đến đầu chuỗi
    for (j=1, j<nCols,j++){ //di chuyen ki tu
    Write(j,str[i]); // Xuat ky tu o cot thu j;
    delay(một xíu) // de cho nguoi ta thay cai chu hien ra
    Del(j,str[i]); // xoa no di, de viet lai o mot cho khac
    }
    nCols=nCols-chw // giảm Ncols đi, để chữ tiếp theo chỉ chạy đến bên
    // cạnh chữ cuối cùng là dừng lại.

    }

    Như vậy được chưa bác.
    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
      chương trình tui đang viết bằng asm cơ.
      Em thấy có gì khó đâu nhỉ, viết vài dòng thôi chớ mấy.
      nCols=number of columns //số cột của bảng led ma trận
      chw=character width // do rong của mot ky tu
      str='KHANH'
      len=length(str)=5;
      for (i=len;i<1;i--){ // từ cuối chuỗi đến đầu chuỗi
      for (j=1, j<nCols,j++){ //di chuyen ki tu
      Write(j,str[i]); // Xuat ky tu o cot thu j;
      delay(một xíu) // de cho nguoi ta thay cai chu hien ra
      Del(j,str[i]); // xoa no di, de viet lai o mot cho khac
      }
      nCols=nCols-chw // giảm Ncols đi, để chữ tiếp theo chỉ chạy đến bên
      // cạnh chữ cuối cùng là dừng lại.

      }

      Như vậy được chưa bác.
      thanks
      thế còn chương trình viết bằng asm thì sao?
      ah mà quên không nói rõ:tui dùng 89C51 nối với 3 chốt 74LS541 và 3 ma trận led 8*8.nhưng bấy h không nghĩ ra.
      có ai có ý tưởng j không?
      Last edited by double_amate; 20-03-2008, 21:25.

      Comment


      • #4
        đây là mạch của tôi mọi ng có thế xem qua:không attach được file.mọi ng htoong cảm.

        Comment


        • #5
          Nguyên văn bởi double_amate Xem bài viết
          chương trình tui đang viết bằng asm cơ.
          thanks
          thế còn chương trình viết bằng asm thì sao?
          ah mà quên không nói rõ:tui dùng 89C51 nối với 3 chốt 74LS541 và 3 ma trận led 8*8.nhưng bấy h không nghĩ ra.
          có ai có ý tưởng j không?
          Không quan trọng đó là ASM hay C đâu bác, em vẽ cho bác là lưu đồ giải thuật. Còn việc bác chuyển sang C hay ASM là quyền của bác. Bác nghĩ là cái mớ em viết ở trên là C sao?

          Bác cứ xem từng dòng lưu đồ của em, cố gắng chuyển về ASM.
          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
            cuối cùng thì cũng đã nghĩ ra.anh em sưa hộ nhé.
            ý tưởng là cho ma trận led quyét lần lượt từng chữ cái trong một khoảng thời gian ngắn.có nghĩa là cả ma trận led chỉ quyét riêng chữ K sau lại quyét riêng chữ H...
            sau đây là đoạn code
            CT1: ;CHAY CHU
            PUSH 00H
            PUSH 01H
            PUSH 02H
            PUSH 03H
            PUSH ACC

            CHAYCHUK:
            MOV DPTR,#K
            MOV R2,#18H
            MOV R1,#20H
            LOOP1:
            LCALL SCAN3MT
            DJNZ R1,LOOP1
            INC DPTR
            DJNZ R2,LOOP1
            CHAYCHUH:
            MOV A,#H+05H
            MOV DPTR,A
            MOV R2,#13H
            MOV R1,#20H
            HAIYEN:
            LCALL SCAN3MT
            MOV DPTR,#K+018H
            LCALL SCAN3MT
            DJNZ R1,HAIYEN
            INC A
            MOV DPTR,A
            DJNZ R2,HAIYEN
            CHAYCHUA:
            MOV A,#KYA+0AH
            MOV DPTR,A
            MOV R2,#0EH
            MOV R1,#20H
            LOOP3:
            LCALL SCAN3MT
            MOV DPTR,#K+18H; doan nay dung DPTR vào chỗ khác
            LCALL SCAN3MT
            MOV DPTR,#H+13H
            LCALL SCAN3MT
            DJNZ R1,LOOP3
            INC A
            MOV DPTR,A
            DJNZ R2,LOOP3
            CHAYCHUN:
            MOV A,#N+0EH
            MOV DPTR,A
            MOV R2,#09H
            MOV R1,#20H
            LOOP4:
            LCALL SCAN3MT
            MOV DPTR,#K+18H
            LCALL SCAN3MT
            MOV DPTR,#H+13H
            LCALL SCAN3MT
            MOV DPTR,#KYA+9H
            LCALL SCAN3MT
            DJNZ R1,LOOP4
            INC A
            MOV DPTR,A
            DJNZ R2,LOOP4
            CHAYCHUH1:
            MOV A,#H+14H
            MOV DPTR,A
            MOV R2,#04H
            MOV R1,#20H
            LOOP5:
            LCALL SCAN3MT
            MOV DPTR,#K+18H
            LCALL SCAN3MT
            MOV DPTR,#H+13H
            LCALL SCAN3MT
            MOV DPTR,#KYA+09H
            LCALL SCAN3MT
            DJNZ R1,LOOP5
            INC A
            MOV DPTR,A
            DJNZ R2,LOOP5
            MOV R3,#25H
            HIENTOANBOCHU:
            MOV DPTR,#khanh
            LCALL SCAN3MT
            DJNZ R3,HIENTOANBOCHU

            POP ACC
            POP 03H
            POP 02H
            POP 01H
            POP 00H
            RET
            trong đó K H KYA N là các nhãn chỉ đến các đoạn mã để quyét chữ


            sau khi chạy mô phỏng thi nó báo lỗi là lệnh : MOV DPTR,A
            MOV DPTR,#K+18H là sai
            thế thì phải sửa lại là như thế nào? tại vì tui muốn đưa vào DPTR địa chỉ của nhãn K nhưng đồng thời phải tăng nó lên mà không INC DPTR vì còn dùng DPTR vào chỗ khác.

            Comment


            • #7
              em đang sử dụng con IC 4094 để làm quang báo nhưng em không biết chân Os và Os` có chức năng gì. em đã tra tên datasheet rồi nhưng trên đó viết toàn tiếng anh em đọc hoài mà không hiểu. mong các bác giúp dùm em. em xin cám ơn.

              Comment


              • #8
                Minh gui cho ban xem tham khao cai nay ne!
                Attached Files
                YM :

                Comment


                • #9
                  Chạy chữ

                  Nguyên văn bởi H.Hai Xem bài viết
                  Minh gui cho ban xem tham khao cai nay ne!
                  To H.Hai : bạn có thể test cho mình sơ đồ phần cứng được ko ,mình cũng mới học VDK ,ban giúp mình nhé,thấy File video của bạn hay quá

                  Comment


                  • #10
                    cuối cùng thì cũng đã nghĩ ra.anh em sưa hộ nhé.
                    ý tưởng là cho ma trận led quyét lần lượt từng chữ cái trong một khoảng thời gian ngắn.có nghĩa là cả ma trận led chỉ quyét riêng chữ K sau lại quyét riêng chữ H...
                    sau đây là đoạn code
                    CT1: ;CHAY CHU
                    PUSH 00H
                    PUSH 01H
                    PUSH 02H
                    PUSH 03H
                    PUSH ACC

                    CHAYCHUK:
                    MOV DPTR,#K
                    MOV R2,#18H
                    MOV R1,#20H
                    LOOP1:
                    LCALL SCAN3MT
                    DJNZ R1,LOOP1
                    INC DPTR
                    DJNZ R2,LOOP1
                    CHAYCHUH:
                    MOV A,#H+05H
                    MOV DPTR,A
                    MOV R2,#13H
                    MOV R1,#20H
                    HAIYEN:
                    LCALL SCAN3MT
                    MOV DPTR,#K+018H
                    LCALL SCAN3MT
                    DJNZ R1,HAIYEN
                    INC A
                    MOV DPTR,A
                    DJNZ R2,HAIYEN
                    CHAYCHUA:
                    MOV A,#KYA+0AH
                    MOV DPTR,A
                    MOV R2,#0EH
                    MOV R1,#20H
                    LOOP3:
                    LCALL SCAN3MT
                    MOV DPTR,#K+18H; doan nay dung DPTR vào chỗ khác
                    LCALL SCAN3MT
                    MOV DPTR,#H+13H
                    LCALL SCAN3MT
                    DJNZ R1,LOOP3
                    INC A
                    MOV DPTR,A
                    DJNZ R2,LOOP3
                    CHAYCHUN:
                    MOV A,#N+0EH
                    MOV DPTR,A
                    MOV R2,#09H
                    MOV R1,#20H
                    LOOP4:
                    LCALL SCAN3MT
                    MOV DPTR,#K+18H
                    LCALL SCAN3MT
                    MOV DPTR,#H+13H
                    LCALL SCAN3MT
                    MOV DPTR,#KYA+9H
                    LCALL SCAN3MT
                    DJNZ R1,LOOP4
                    INC A
                    MOV DPTR,A
                    DJNZ R2,LOOP4
                    CHAYCHUH1:
                    MOV A,#H+14H
                    MOV DPTR,A
                    MOV R2,#04H
                    MOV R1,#20H
                    LOOP5:
                    LCALL SCAN3MT
                    MOV DPTR,#K+18H
                    LCALL SCAN3MT
                    MOV DPTR,#H+13H
                    LCALL SCAN3MT
                    MOV DPTR,#KYA+09H
                    LCALL SCAN3MT
                    DJNZ R1,LOOP5
                    INC A
                    MOV DPTR,A
                    DJNZ R2,LOOP5
                    MOV R3,#25H
                    HIENTOANBOCHU:
                    MOV DPTR,#khanh
                    LCALL SCAN3MT
                    DJNZ R3,HIENTOANBOCHU

                    POP ACC
                    POP 03H
                    POP 02H
                    POP 01H
                    POP 00H
                    RET
                    trong đó K H KYA N là các nhãn chỉ đến các đoạn mã để quyét chữ


                    sau khi chạy mô phỏng thi nó báo lỗi là lệnh : MOV DPTR,A
                    MOV DPTR,#K+18H là sai
                    thế thì phải sửa lại là như thế nào? tại vì tui muốn đưa vào DPTR địa chỉ của nhãn K nhưng đồng thời phải tăng nó lên mà không INC DPTR vì còn dùng DPTR vào chỗ khác.
                    Chương trình này chưa đầy đủ nên tôi chưa trả lời chắc chắn được.
                    Nhưng theo bạn nói. KYA là nhãn chứa code quét chữ thì thông thường nó có 16 bit điạ chỉ. Mà thanh ghi A chỉ có 8 Bit. Bỏ 16 bit vào 8 bit vào 8 bit là không thể.

                    Comment


                    • #11
                      Nguyên văn bởi H.Hai Xem bài viết
                      Minh gui cho ban xem tham khao cai nay ne!
                      Cái file video của bạn hay đấy.
                      Gửi cho minh xin file .DSN của proteus và hướng dẫn mình từ file .asm bạn chuyên sang file.hex bằng chương trình gì đấy.
                      Địa chỉ của mình đây. xuanlinh97@vnn.vn
                      Thank you bạn nhé.

                      Comment


                      • #12
                        đúng rồi bạn à.mình làm như thế khi cho chạy thì chuơng trình báo lỗi.đến bây h mà vẫn chưa được.để mình đọc thử bài của bạn H.hai gửi xem sao đã

                        Comment


                        • #13
                          tui nghịch mãi đoạn code này mà chaỵ mô phỏng bằng proteus mà không được

                          Comment


                          • #14
                            đây là mạch và code ai rỗi thì đọc và sửa giùm nhé
                            ý tưởng của đoạn mã đổ chữ là:
                            chạy chữ K
                            chạy chữ H bao gồm:
                            quyét chữ K
                            quyét chữ H ở vị trí thích hợp bằng con trỏ DPTR
                            lại quyét chữ K
                            quyét chữ H ở vị trí mới
                            ....
                            quyét troing thời gian ngắn đủ để mắt không nhận ra sự khác biệt
                            chạy chữ A bao gồm:
                            quyét chữ KH
                            quyét chữ A ở vị trí thích hợp bằng con trỏ DPTR

                            chạy chữ N bao gồm:
                            quyét chữ KHA
                            quyét chữ N ở vị trí thích hợp bằng con trỏ DPTR
                            chạy chữ N bao gồm:
                            quyét chữ KHAN
                            quyét chữ H ở vị trí thích hợp bằng con trỏ DPTR
                            Attached Files

                            Comment


                            • #15
                              Nguyên văn bởi nhu trung Xem bài viết
                              To H.Hai : bạn có thể test cho mình sơ đồ phần cứng được ko ,mình cũng mới học VDK ,ban giúp mình nhé,thấy File video của bạn hay quá



                              Minh gui cho ban xem so do ne
                              Ban can phai mua 3 cai led matrix8x8(hoac tu lam lay)nhe
                              Rap vao la on ngay
                              Attached Files
                              YM :

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X