Thông báo

Collapse
No announcement yet.

Các bác xem giúp em bài này với !!

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

  • Các bác xem giúp em bài này với !!

    Em cần giao tiếp giữa 2 kit vdk, có dạng hoạt động như thế này:
    (trên KIT có ADC bằng VR( có địa chỉ 4000h), cổng RS232, Led7 ( 4 led nối chung)( địa chỉ 0000h), động cơ DC( địa chỉ 0E000h))

    - KIT 1 đọc tính hiệu từ VR1 ( 000-255) và phát ra 4 led7, đồng thời gửi qua KIT 2 để điều khiển động cơ DC = cách điều chế độ rộng xung (PMW) dựa vào tính hiệu đã gửi đó.
    Và ngược lại. ( yêu cầu KÍT 1 và KIT 2 phải làm được như nhau)

    Em viết đoạn code dưới đây, mà sao nó chỉ hiển thị được 4led7 thôi, chưa điều khiển được DC bên kit còn lại.
    Các bác coi dùm em với, xin cảm ơn trước !!!


    ORG 2000H
    LJMP MAIN

    ORG 0023H
    LJMP SERIAL

    ORG 2030H


    MAIN:
    MOV TMOD,#20H
    MOV TH1,#-3
    MOV SCON,#50H
    MOV IE,10010000B
    SETB TR1

    BACK: CALL ADC ; READ ADC
    MOV SBUF,A


    XUATLED7:
    MOV R7,A
    CALL BINTOBCD
    MOV DPTR,#0000H

    MOV A,R2
    ORL A,#0E0H
    MOVX @DPTR,A
    CALL DELAY3MS

    MOV A,R3
    ORL A,#0D0H
    MOVX @DPTR,A
    CALL DELAY3MS

    MOV A,R4
    ORL A,#0B0H
    MOVX @DPTR,A
    CALL DELAY3MS

    MOV A,R7


    SJMP BACK



    SERIAL:
    JB TI,TRANS
    MOV A,SBUF
    CALL RUNDC
    RETI
    TRANS:
    CLR TI
    RETI

    ;=======================================
    RUNDC: PUSH ACC
    MOV A,#01H
    MOV DPTR,#0E000H
    MOVX @DPTR,A

    POP ACC
    CALL DELAY1

    PUSH ACC
    MOV A,#00H
    MOVX @DPTR,A

    POP ACC
    CALL DELAY2

    RET

    ;========================================

    DELAY1: PUSH 01H
    L1: MOV TMOD,#01H
    MOV TH0,#HIGH(-4)
    MOV TL0,#LOW(-4)
    SETB TR0
    JNB TF0,$
    CLR TR0
    CLR TF0
    CJNE R1,#0,NHAY
    JMP THOAT
    NHAY: DJNZ R1,L1
    THOAT: POP 01H
    RET
    DELAY2:
    CLR C
    MOV A,#255
    SUBB A,R1
    MOV R1,A
    L2: MOV TMOD,#01H
    MOV TH0,#HIGH(-4)
    MOV TL0,#LOW(-4)
    SETB TR0
    JNB TF0,$
    CLR TR0
    CLR TF0
    DJNZ R1,L2
    RET

    ;==========================================
    BINTOBCD:
    MOV B,#10 ;432
    DIV AB
    MOV R2,B
    MOV B,#10
    DIV AB
    MOV R3,B
    MOV R4,A
    RET
    ;==========================================
    DELAY3MS:
    MOV R5,#10
    LOOP1:
    MOV R6,#150
    DJNZ R6,$
    DJNZ R5,LOOP1
    RET
    ;==========================================

    ADC:
    MOV DPTR,#4000H
    MOV A,#00H
    MOVX @DPTR,A
    CALL DELAY3MS
    MOVX A,@DPTR
    MOV R1,A
    RET

    END

Về tác giả

Collapse

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

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

Collapse

Đang tải...
X