Thông báo

Collapse
No announcement yet.

ai pro về lập trình asm giúp mình với

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

  • ai pro về lập trình asm giúp mình với

    XinDưới đây là code điều khiển 32 led bằng 4 ic 595 Đầu tiên mình muốn tăng lên 12 ic 595 thì phải khai báo thế nào ạ

    Thứ 2 là mình muốn các port còn lại của vi điều khiển sáng thuận thì phải viết như thế nào

    Mình là mem mới nên k hiểu lắm. mong mọi người giúp ạ, cảm ơn mọi người nhiều

    Code:
    sh bit p2.0
    st bit p2.2
    da_ta bit p2.1
    solan equ 2fh
    org 0000h
    ljmp main
    org 30H
    main:
    SETB P2.3
    clr sh
    clr st
    MOV R1,0 ; ma khoi dau
    MOV R2,#10 ; so bang ma
    MOV R3,#4 ; xuat 4 byte ra 4 con 595
    mov dptr, # mydata
    Loop4:
    mov solan,#39
    LOOP1: mov r5,#4 ; tang bang ma 4
    byte
    mov r4,#8 ; xuat 8 bit ra 595
    mov a,R1
    movc a,@a+dptr
    loop2:
    clr c
    rlc a
    mov da_ta,c
    setb sh
    clr sh
    djnz r4,loop2 ;dich 8 bit
    inc R1
    djnz r3,LOOP1 ;dich 4 byte
    setb st
    clr st
    lcall delay
    LOOP3: INC DPTR
    djnz r5,LOOP3
    djnz solan,LOOP1
    djnz r2,LOOP4
    ljmp main
    ;=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
    +=+=+=+
    delay:
    jb P2.3,delay ;xung lm555 ?u+a vao
    chân p3.1
    ca_chu_ki:
    jnb P2.3,ca_chu_ki
    ret
    ;ta.i ?a^`u CT chính nho+' set bit p3.1
    ;=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
    +=+=+=+
    delay1: MOV TMOD,#01
    MOV R6,#1
    AGAIN: MOV TL0,78H
    MOV TH0,ECH
    SETB TR0
    AGAIN1: JNB TF0,AGAIN1
    CLR TR0
    CLR TF0
    DJNZ R6,AGAIN
    ret
    ;=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
    +=+=+=+
    org 300h
    mydata:
    db 00000000b,00000001b,10000000b,
    00000000b
    db 00000000b,00000010b,01000000b,
    00000000b
    db 00000000b,00000100b,00100000b,
    00000000b
    db 00000000b,00001000b,00010000b,
    00000000b
    db 00000000b,00010000b,00001000b,
    00000000b
    db 00000000b,00100000b,00000100b,
    00000000b
    db 00000000b,01000000b,00000010b,
    00000000b
    db 00000000b,10000000b,00000001b,
    00000000b
    db 00000001b,00000000b,00000000b,
    10000000b
    db 00000010b,00000000b,00000000b,
    01000000b
    db 00000100b,00000000b,00000000b,
    00100000b
    db 00001000b,00000000b,00000000b,
    00010000b
    db 00010000b,00000000b,00000000b,
    00001000b
    db 00100000b,00000000b,00000000b,
    00000100b
    db 01000000b,00000000b,00000000b,
    00000010b
    db 10000000b,00000000b,00000000b,
    00000001b
    db 10000000b,00000000b,00000000b,
    00000001b
    db 01000000b,00000000b,00000000b,
    00000010b
    db 00100000b,00000000b,00000000b,
    00000100b
    db 00010000b,00000000b,00000000b,
    00001000b
    db 00001000b,00000000b,00000000b,
    00010000b
    db 00000100b,00000000b,00000000b,
    00100000b
    db 00000010b,00000000b,00000000b,
    01000000b
    db 00000001b,00000000b,00000000b,
    10000000b
    db 00000000b,10000000b,00000001b,
    00000000b
    db 00000000b,01000000b,00000010b,
    00000000b
    db 00000000b,00100000b,00000100b,
    00000000b
    db 00000000b,00010000b,00001000b,
    00000000b
    db 00000000b,00001000b,00010000b,
    00000000b
    db 00000000b,00000100b,00100000b,
    00000000b
    db 00000000b,00000010b,01000000b,
    00000000b
    db 00000000b,00000001b,10000000b,
    00000000b ;1
    Last edited by thanhnhock; 03-11-2013, 18:17.

  • #2
    dùng 1 bit của 1 port bất kì điều khiển trans đóng/mở VCC cho cụm 8 LED (như vậy bác dùng 8 bit của 1 port là có thể đóng/mở VCC cho 8x8=64 led đơn)
    dùng 8 bit của 1 port khác để tạo GND cho LED sáng (LED đơn sáng 1 con thì dòng ít, dùng port 8051 là được rồi)
    ví dụ: dùng p1.0 đóng/mở VCC cho Led1 đến Led8, p1.1 đóng/mở VCC cho Led9 đến Led16, p1.2 đóng/mở VCC cho Led17 đến Led24, p1.3 đóng/mở VCC cho Led25 đến Led32, p1.4 đóng/mở VCC cho Led33 đến Led40 (kích A1015).
    cho P1=11111110 thì Led1 đến led8 được cấp VCC, led9 đến Led40 không được cấp VCC.
    Nối P2.0 đến chân âm của Led1, led9, led17, led25, led33,
    Nối P2.1 đến chân âm của Led2, led10, led18, led26, led34,
    Nối P2.2 đến chân âm của Led3, led11, led19, led27, led35,
    .................................................. ............................
    Nối P2.7 đến chân âm của Led8, led16, led24, led32, led40

    Với cặp P1=11111110 và P2=11111110 thì Led1 sáng, 39 led còn lại tắt
    Với cặp P1=11111110 và P2=11111101 thì Led2 sáng, 39 led còn lại tắt
    Với cặp P1=11111110 và P2=11111011 thì Led3 sáng, 39 led còn lại tắt
    .................................................. .............................................
    Với cặp P1=01111111 và P2=01111111 thì Led40 sáng, 39 led còn lại tắt
    bác dùng lệnh MOV để gán giá trị cho P1 và P2 nhé.
    sau khi gán giá trị cho P1 và P2 thì bác delay 1 tí (1 giây), rồi gán tiếp cặp giá trị khác cho P1 và P2, rồi delay....

    bác có thể dùng 74hc595 để chốt nếu thích, nhưng cách này thì đỡ phải dùng thêm IC, dùng mỗi 89s52 là được rồi

    Comment


    • #3
      anh ơi anh có code dùng 12 ic 74hc595 nối tiếp không cho em xin với ạ
      Nguyên văn bởi condonhan Xem bài viết
      dùng 1 bit của 1 port bất kì điều khiển trans đóng/mở VCC cho cụm 8 LED (như vậy bác dùng 8 bit của 1 port là có thể đóng/mở VCC cho 8x8=64 led đơn)
      dùng 8 bit của 1 port khác để tạo GND cho LED sáng (LED đơn sáng 1 con thì dòng ít, dùng port 8051 là được rồi)
      ví dụ: dùng p1.0 đóng/mở VCC cho Led1 đến Led8, p1.1 đóng/mở VCC cho Led9 đến Led16, p1.2 đóng/mở VCC cho Led17 đến Led24, p1.3 đóng/mở VCC cho Led25 đến Led32, p1.4 đóng/mở VCC cho Led33 đến Led40 (kích A1015).
      cho P1=11111110 thì Led1 đến led8 được cấp VCC, led9 đến Led40 không được cấp VCC.
      Nối P2.0 đến chân âm của Led1, led9, led17, led25, led33,
      Nối P2.1 đến chân âm của Led2, led10, led18, led26, led34,
      Nối P2.2 đến chân âm của Led3, led11, led19, led27, led35,
      .................................................. ............................
      Nối P2.7 đến chân âm của Led8, led16, led24, led32, led40

      Với cặp P1=11111110 và P2=11111110 thì Led1 sáng, 39 led còn lại tắt
      Với cặp P1=11111110 và P2=11111101 thì Led2 sáng, 39 led còn lại tắt
      Với cặp P1=11111110 và P2=11111011 thì Led3 sáng, 39 led còn lại tắt
      .................................................. .............................................
      Với cặp P1=01111111 và P2=01111111 thì Led40 sáng, 39 led còn lại tắt
      bác dùng lệnh MOV để gán giá trị cho P1 và P2 nhé.
      sau khi gán giá trị cho P1 và P2 thì bác delay 1 tí (1 giây), rồi gán tiếp cặp giá trị khác cho P1 và P2, rồi delay....

      bác có thể dùng 74hc595 để chốt nếu thích, nhưng cách này thì đỡ phải dùng thêm IC, dùng mỗi 89s52 là được rồi

      Comment


      • #4
        Nguyên văn bởi thanhnhock Xem bài viết
        anh ơi anh có code dùng 12 ic 74hc595 nối tiếp không cho em xin với ạ
        song song hay nối tiếp bác?

        Comment


        • #5
          Dạ anh có code nào thì cho em xin với ạ. Anh cho em xin facebook có gì em sẽ hậu tạ. Xin cảm ơn anh đã nhiệt tình giúp em

          Comment


          • #6
            Nguyên văn bởi thanhnhock Xem bài viết
            Dạ anh có code nào thì cho em xin với ạ. Anh cho em xin facebook có gì em sẽ hậu tạ. Xin cảm ơn anh đã nhiệt tình giúp em
            hình như đây là bài tập thì phải?

            Comment


            • #7
              Dạ không phải đâu anh. Em muốn làm mạch như thế nhưng do em chưa học lập trình. Anh giúp em với ạ

              Comment


              • #8
                Nguyên văn bởi thanhnhock Xem bài viết
                Dạ không phải đâu anh. Em muốn làm mạch như thế nhưng do em chưa học lập trình. Anh giúp em với ạ
                để thứ 7 hay cn gì đó mình gửi nhé.

                Comment


                • #9
                  Dạ vâng em cảm ơn anh nhiều lắm
                  Có gì anh gửi vào mail cho em nha mail của em là Thehanh306@gmail.com

                  Comment


                  • #10
                    Nguyên văn bởi thanhnhock Xem bài viết
                    Dạ vâng em cảm ơn anh nhiều lắm
                    Có gì anh gửi vào mail cho em nha mail của em là Thehanh306@gmail.com
                    bác mail mình tới condonhan@gmail.com nhé

                    Comment


                    • #11
                      bác dựa trên nguyên lý hoạt động ở post trên để lập trình nhé. chỉ có MOV và delay thôi.

                      Comment

                      Về tác giả

                      Collapse

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

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

                      Collapse

                      Đang tải...
                      X