Thông báo

Collapse
No announcement yet.

Giúp em truyền DL bằng hồng ngoại

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

  • Giúp em truyền DL bằng hồng ngoại

    Hiện em đang làm 1 mạch thu và 1 mach phát dữ liệu bằng AT89C51

    Đây là code của mạch phát dữ liệu (Mã hóa chuỗi bit giống như trong hình . "Bit 1" là xung 1 delay T , một xung 0 delay 2T ; "bit 0" là xung là 1 delay T , xung 0 delay T . Bit start đầu tiên là xung 0 delay 3T ) . Dùng ma trận phím từ phát chuỗi bit theo giá trị thập phân từ 1~49


    COT EQU P2
    HANG EQU P1

    ORG 00H

    COT1:
    MOV COT,#0FEH
    MOV A,HANG
    CJNE A,#0FFH,NEXT1
    JMP COT2
    NEXT1:
    MOV R0,#1
    CALL KT_COT
    JMP COT1
    COT2:
    MOV COT,#0FDH
    MOV A,HANG
    CJNE A,#0FFH,NEXT2
    JMP COT3
    NEXT2:
    MOV R0,#8
    CALL KT_COT
    JMP COT1
    COT3:
    MOV COT,#0FBH
    MOV A,HANG
    CJNE A,#0FFH,NEXT3
    JMP COT4
    NEXT3:
    MOV R0,#15
    CALL KT_COT
    JMP COT1
    COT4:
    MOV COT,#0F7H
    MOV A,HANG
    CJNE A,#0FFH,NEXT4
    JMP COT5
    NEXT4:
    MOV R0,#22
    CALL KT_COT
    JMP COT1
    COT5:
    MOV COT,#0EFH
    MOV A,HANG
    CJNE A,#0FFH,NEXT5
    JMP COT6
    NEXT5:
    MOV R0,#29
    CALL KT_COT
    JMP COT1
    COT6:
    MOV COT,#0DFH
    MOV A,HANG
    CJNE A,#0FFH,NEXT6
    JMP COT7
    NEXT6:
    MOV R0,#36
    CALL KT_COT
    JMP COT1
    COT7:
    MOV COT,#0BFH
    MOV A,HANG
    CJNE A,#0FFH,NEXT7
    JMP COT1
    NEXT7:
    MOV R0,#43
    CALL KT_COT
    JMP COT1

    KT_COT:

    CJNE A,#0FEH,TT1
    CALL TAO_DL
    JMP THOAT1

    TT1: CJNE A,#0FDH,TT2
    MOV A,R0
    ADD A,#1
    MOV R0,A
    CALL TAO_DL
    JMP THOAT1

    TT2: CJNE A,#0FBH,TT3
    MOV A,R0
    ADD A,#2
    MOV R0,A
    CALL TAO_DL
    JMP THOAT1

    TT3: CJNE A,#0F7H,TT4
    MOV A,R0
    ADD A,#3
    MOV R0,A
    CALL TAO_DL
    JMP THOAT1

    TT4: CJNE A,#0EFH,TT5
    MOV A,R0
    ADD A,#4
    MOV R0,A
    CALL TAO_DL
    JMP THOAT1

    TT5: CJNE A,#0DFH,TT6
    MOV A,R0
    ADD A,#5
    MOV R0,A
    CALL TAO_DL
    JMP THOAT1

    TT6: CJNE A,#0BFH,TT7
    MOV A,R0
    ADD A,#6
    MOV R0,A
    CALL TAO_DL
    JMP THOAT1

    TT7: CJNE A,#07FH,THOAT1
    MOV A,R0
    ADD A,#7
    MOV R0,A
    CALL TAO_DL
    THOAT1:
    RET


    TAO_DL:
    CLR P3.7
    CALL DELAY_600US
    CALL DELAY_600US
    CALL DELAY_600US
    MOV R1,#8
    MOV A,R0
    TIEP: RRC A
    JC BIT1
    SETB P3.7
    CALL DELAY_600US
    CLR P3.7
    CALL DELAY_600US
    JMP NEXT
    BIT1: SETB P3.7
    CALL DELAY_600US
    CLR P3.7
    CALL DELAY_600US
    CALL DELAY_600US
    NEXT: DJNZ R1,TIEP
    SETB P3.7
    RET

    DELAY_600US:
    MOV TMOD,#01H
    MOV TH0,#HIGH(-600)
    MOV TL0,#LOW(-600)
    SETB TR0
    JNB TF0,$
    CLR TF0
    RET
    END
    Còn đây là code thu

    ORG 0000H
    JMP CTCHINH

    ORG 0013H
    JMP NGAT

    ORG 0020H

    CTCHINH:
    MOV A,#0
    MAIN:
    SETB EA
    SETB EX1
    SETB IT1
    MOV P1,A
    JMP MAIN

    NGAT:
    CLR EX0 ; cấm ngắt
    MOV A,#80H
    CLR C
    LAP1:
    JNB P3.3,LAP1 ; chờ cạnh lên của bit start
    LAP2:
    JB P3.3,LAP2 ; chờ cạnh xuống của xung dương đầu tiên của mỗi bit
    CALL DELAY1MS ; delay khoảng T<delay<2T . Chọn T = 1ms
    JNB P3.3,LAP3
    CLR C
    RRC A
    JNC LAP2 ; La bit 0 thi quay lai lap2 , cho canh xuống
    JMP KETTHUC
    LAP3:
    SETB C
    RRC A
    JNC LAP1 ; là bit 1 thì quay lai lap1 chờ cạnh lên rồi chờ cạnh xuống
    KETTHUC:
    RETI

    DELAY1MS:
    MOV TMOD,#01H
    MOV TH0,#HIGH(-1000)
    MOV TL0,#LOW(-1000)
    SETB TR0
    JNB TF0,$
    CLR TF0
    RET


    END
    Không hiểu sao mà thu phát ra toàn sai
    Last edited by vippro1610; 07-08-2011, 12:09.

  • #2
    Up hình . Tại tối qua cúp điện
    Cho em hỏi là em tạo dữ liệu phát đi dùng IC 89C51 như vậy có dc chưa ?
    Attached Files

    Comment


    • #3
      Ko ai giúp em hết à

      Comment


      • #4
        rắc rối quá. dùng truyền thông nối tiếp đi đơn giản hơn nhiều.ok

        Comment


        • #5
          Em muốn truyền qua hồng ngoại . Mà dùng ngắt để nhận sao khó quá . Nó cứ ngắt liên tục mà ko làm CT chính

          Comment

          Về tác giả

          Collapse

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

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

          Collapse

          Đang tải...
          X