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

          • Andrea14
            Vấn đề về tốc độ quay
            bởi Andrea14
            Chào mọi người,

            Tôi muốn mô phỏng sự thay đổi các mùa bằng cách từ từ nghiêng một quả địa cầu 16 inch bằng một động cơ bước nhỏ. Một động cơ bước khác sẽ quay quả địa cầu theo thời gian thực. Hệ thống truyền động...
            Hôm qua, 12:42
          • bqviet
            Trả lời cho Đấu tắt điện cho máy tính bảng
            bởi bqviet
            Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
            06-12-2025, 17:17
          • nguyendinhvan
            Trả lời cho Xin hỏi về mạch thu FM/AM trong catsette
            bởi nguyendinhvan
            Theo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
            05-12-2025, 19:59
          • afrendly
            Trả lời cho Đấu tắt điện cho máy tính bảng
            bởi afrendly
            Có vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
            04-12-2025, 01:27
          Đang tải...
          X