Thông báo

Collapse
No announcement yet.

tại sao lại không ngắt ?

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

  • tại sao lại không ngắt ?

    Em viết chương trình này bằng keilc:
    khi mô phỏng trên protel thì bấm lần 1 tì nó ngắt nhưng khi bấm lần 2 thì không thấy ngắt ?
    org 0000h
    ljmp main
    org 0003h
    ljmp nutbam
    org 0030h
    main:
    clr p1.0
    setb IT0
    SETB EA
    setb EX0
    sjmp $
    nutbam:
    setb p1.0
    call delay2s
    reti
    delay2s:
    mov r0,#1
    lap: mov r1,#250
    lap1: mov r2,#200
    lap2: mov r3,#20
    lap3: djnz r3,lap3
    djnz r2,lap2
    djnz r1,lap1
    djnz r0,lap
    end
    Mong các bác giúp giùm, em ngồi mấy tiếng mà không giải quyết nổi !!

  • #2
    Nguyên văn bởi vdtk3 Xem bài viết
    Em viết chương trình này bằng keilc:
    khi mô phỏng trên protel thì bấm lần 1 tì nó ngắt nhưng khi bấm lần 2 thì không thấy ngắt ?
    org 0000h
    ljmp main
    org 0003h
    ljmp nutbam
    org 0030h
    main:
    clr p1.0
    setb IT0
    SETB EA
    setb EX0
    sjmp $
    nutbam:
    setb p1.0
    call delay2s
    reti
    delay2s:
    mov r0,#1
    lap: mov r1,#250
    lap1: mov r2,#200
    lap2: mov r3,#20
    lap3: djnz r3,lap3
    djnz r2,lap2
    djnz r1,lap1
    djnz r0,lap
    end
    Mong các bác giúp giùm, em ngồi mấy tiếng mà không giải quyết nổi !!
    ủa keil mà viết bằng ngôn ngữ asm à, nếu viết bằng asm thì dùng cái khác đi bạn.Nếu dùng C thì có thể viết như sau

    #include<AT89X52.h>
    void ngat() interrupt 2
    {
    P1=P1<<1; /* dịch trái 1 bit*/
    if (P1==256)
    {
    P1=0;
    }
    }

    main()
    {
    P1=1;
    EA=1;
    EX1=1;
    }

    Comment


    • #3
      Chán các chú quá. Có lẽ ko ít cao thủ nói các chú vất cái Proteus đi. Các chú có nghe đâu.
      Đã làm điện tử thì tối thiểu cũng nên mua cái bo thử về mà dùng chứ. Ngon hơn nữa thì mua hẳn cái kit của anh em trên diễn đàn bán nè. àm Proteus mãi thì đến bao giờ mới lớn được.
      Riêng về mô phỏng con 8051 này Proteus có khi còn gọi Keil bằng cụ ấy chứ. Viết source trên keil sao ko mô phỏng luôn trên nó đi. Chán.
      AVR đã quay trở lại: ATMEGA32: 66k, ATMEGA8A: 30k, ATMEGA48: 30k.
      Xem thêm tại Online Store ---> Click here
      Mob: 0982.083.106

      Comment


      • #4
        Cảm ơn các bác, bác chỉ em cách mô phỏng trên keilc đi
        Dạo này đang bí nên chưa có điều kiện làm cái mạch test ???

        Comment


        • #5
          Nguyên văn bởi vdtk3 Xem bài viết
          Cảm ơn các bác, bác chỉ em cách mô phỏng trên keilc đi
          Dạo này đang bí nên chưa có điều kiện làm cái mạch test ???
          Chính là cái debug của nó ấy. Debug của Keil cho phép bạn quan sát chân ra, điều khiển chân vào... Nó không đẹp như proteus nhưng chính xác và ổn định gấp tỉ lần.
          AVR đã quay trở lại: ATMEGA32: 66k, ATMEGA8A: 30k, ATMEGA48: 30k.
          Xem thêm tại Online Store ---> Click here
          Mob: 0982.083.106

          Comment


          • #6
            Nguyên văn bởi vdtk3 Xem bài viết
            Em viết chương trình này bằng keilc:
            khi mô phỏng trên protel thì bấm lần 1 tì nó ngắt nhưng khi bấm lần 2 thì không thấy ngắt ?
            org 0000h
            ljmp main
            org 0003h
            ljmp nutbam
            org 0030h
            main:
            clr p1.0
            setb IT0
            SETB EA
            setb EX0
            sjmp $
            nutbam:
            setb p1.0
            call delay2s
            reti
            delay2s:
            mov r0,#1
            lap: mov r1,#250
            lap1: mov r2,#200
            lap2: mov r3,#20
            lap3: djnz r3,lap3
            djnz r2,lap2
            djnz r1,lap1
            djnz r0,lap
            end
            Mong các bác giúp giùm, em ngồi mấy tiếng mà không giải quyết nổi !!
            Protues ít khi mô phỏng được thời gian thưc, để delay 2s có mà nó chạy đến tết, không thoát được ra khỏi ngắt thì làm sao mà ngắt tiếp được!
            PNLab
            Mạch nạp/debug ULink2, Jlink ARM USB
            Mạch nạp AVR, PIC, 8051, MSP430 USB
            Mạch phát triển STM32, ARM9, ARM11
            more...www.pnlabvn.com

            Comment


            • #7
              Tui thấy thiếu lệnh ret ở trước lệnh end
              Imagine all the people
              Living life in peace...

              Comment

              Về tác giả

              Collapse

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

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

              Collapse

              Đang tải...
              X