Thông báo

Collapse
No announcement yet.

Ngat trong 8051 help !

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

  • Ngat trong 8051 help !

    Tinh hinh la em viet ct ngat trong 8051, dung led de thay khi nao ngat; Viet cho TIMER0, TIMER1 ok roi;
    lap them EX0 vao thi chuong trinh ko chay; du` ko co loi nao tren KEiL lun;
    MOI NGUOI GIUP E VOI:
    CODE day:

    ;===========Tên ch??ng trình ============
    org 00h
    nop
    ljmp MAIN
    org 03h ; Ng?t Ex0 <-- co; them no la khong chay
    nop
    cpl p1.3
    reti
    org 0bh ; Ng?t Timer0
    nop
    ljmp INT_TIMER0
    org 1bh ; Ng?t Timer1
    nop
    ljmp INT_TIMER1

    ;===================================
    ; m a i n p r o g r a m
    ;===================================
    org 50h
    MAIN:
    mov P1,#00h
    mov R7,#00h
    initialization_int:
    setb ex0
    setb ex0
    setb et0
    setb et1
    setb px0
    setb pt0
    setb it0
    setb ea

    initialization_timer:
    mov tmod,#00010010b
    mov th0,#00h
    mov tl0,#00h
    mov th1,#00h
    mov tl1,#00h
    setb tr0
    setb tr1

    CPLP1_0:
    cpl P1.0
    mov a,r7
    mov P0,a
    lcall DELAY
    ljmp CPLP1_0

    INCR7:
    inc r7
    ret

    DELAY:
    mov r1,#0ffh
    DELAY0:
    mov r2,#0ffh
    DELAY1:
    djnz r2,DELAY1
    djnz r1,DELAY0
    ret
    ;===============================
    ;Ctrinh _ Ph?c v? ng?t
    ;===============================
    INT_TIMER0:
    clr tr0
    cpl P1.1
    setb tr0
    Reti

    INT_TIMER1:
    clr tr1
    cpl P1.2
    lcall INCR7
    clr tf1
    setb tr1
    reti

    ;==============================
    End

  • #2
    moi nguoi copy code vo KEIL kiem tra dum em voi; du` ko co loi j nhung sao no ko chay. THANKS

    Comment


    • #3
      Nguyên văn bởi h.dangb1 Xem bài viết
      moi nguoi copy code vo KEIL kiem tra dum em voi; du` ko co loi j nhung sao no ko chay. THANKS
      Cái nop ở hay org 00h. -> lệnh ljmp main sẽ bắt đầu từ địa chỉ 01h và byte cuối nằm ở 03h ->sang địa chỉ vector ngắt của EXT0 rồi -> bị đè-> không thể nhảy tới chương trình chính.
      Còn cái nữa mình nghĩ cậu nên sửa lại. Việc hàm sử lí ngắt của cậu có thể có độ dài không quá 3byte và cố gắng nhét nó vào vùng vector ngắt theo mình là không nên.Nó được thiết kế để vừa một lệnh ljmp để nhảy tới hàm xử lí ngắt ở đâu đó trong bộ nhớ flash nên mình không cần tiết kiệm một lệnh nhảy làm gì

      Comment


      • #4
        THANKS; 1 lenh nop thoi ma nguy hiem qua

        Comment

        Về tác giả

        Collapse

        h.dangb1 Tìm hiểu thêm về h.dangb1

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

        Collapse

        Đang tải...
        X