Thông báo

Collapse
No announcement yet.

Giúp đỡ về ngắt ngoài và relay

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

  • Giúp đỡ về ngắt ngoài và relay

    Mình đang làm mạch như thế này. Có 4 công tắc điều khiển 4 led sáng, và 4 công tắc điều khiển led tắt. Mình muốn khi nhấn công tắc 1 đen 1 sáng, trong khi đèn 1 đang sáng nhấn công tắc 2 đèn 2 sáng, nhấn công tắc 3 đèn 3 sáng ( cái này thì mình làm được rồi). Nhưng ngặt cái là thầy yêu cầu sau khi nhấn công tắc đèn sáng thì sau 10p nếu không nhấn công tắt để tắt đèn thì đèn tự động tắt. Mình đã thử viết delay trong mạch thì đúng 10p nó tắt nhưng trong 10p đó nếu nhấn công tắt thì mấy đèn kia không sáng. Nên mình sử dụng ic đếm để ngắt ngoài nhưng cũng không được. Giúp mình với
    Đây là mạch mô phỏng và code
    https://www.dropbox.com/s/32aro3innkss1ti/Tam.rar?m

  • #2
    Nguyên văn bởi [VN]NMD Xem bài viết
    Nên mình sử dụng ic đếm để ngắt ngoài nhưng cũng không được. Giúp mình với
    Đây là mạch mô phỏng và code
    https://www.dropbox.com/s/32aro3innkss1ti/Tam.rar?m
    cần gì phải phức tạp thế.
    giải quyết: tạo một ngắt time để giải quyết vấn đề đó.
    Code:
    ORG 0000H
    LJMP main_1
    ORG 000BH
    LJMP ISR_T0
    ORG 0030H
    main_1:
    MOV    P1,#0000H
    MOV    P2,#0000H
    MOV    P3,#0000H
    MOV R4,#00H
    MOV R0,#00H
    MOV R1,#00H
    MOV R2,#00H
    MOV TL0,#-50000
    MOV TH0,#-50000
    SETB TR0
    MOV TMOD,#01H
    MOV IE,#82H
    MAIN:
        JB    P3.0,CT1
        JB    P3.1,CT2
        JB    P3.2,CT3
        JB    P2.0,CTT1
        JB    P2.1,CTT2
        JB    P2.2,CTT3
        LJMP    MAIN
    CT1:
        setb    P1.0
        MOV R0,#20    ;gan gia tri can tre(nạp giá trị khác để có độ trễ bạn cần)
         JMP    MAIN
        RET
    CT2:
        SETB    P1.1
        MOV R1,#20    ;gan gia tri can tre(nạp giá trị khác để có độ trễ bạn cần)
        JMP    MAIN
        RET
    CT3:
        SETB    P1.2
         MOV R2,#20        ;gan gia tri can tre(nạp giá trị khác để có độ trễ bạn cần)
        JMP    MAIN
        RET
    CTT1:
        CLR    P1.0
        JMP MAIN
        RET
    CTT2:
        CLR    P1.1
        JMP MAIN
        RET
    CTT3:
        CLR    P1.2
        JMP MAIN
        RET
    ISR_T0:
    CLR TR0
    INC R4
    CJNE R4,#20,TIEP ; 20*50000=1s
    MOV R4,#00H
    ;*******kiem tra tre phim 1***************
    CJNE R0,#00,chua_het
    CLR    P1.0
    MOV R0,#00H
    jmp kiem_tra_phim2
    chua_het:
    dec r0
    ;**********************
    ;******kiem tra tre phim 2***********
    kiem_tra_phim2:
    CJNE R1,#00,chua_het_1
    CLR    P1.1
    MOV R1,#00H
    jmp kiem_tra_phim3
    chua_het_1:
    dec r1
    ;**********************
        ;******kiem tra tre phim 3*************
    kiem_tra_phim3:
    CJNE R2,#00,chua_het_2
    CLR    P1.2
    MOV R2,#00H
    jmp TIEP
    chua_het_2:
    dec r2
    ;**********************
    TIEP:
    MOV TL0,#-50000
    MOV TH0,#-50000
    SETB TR0
    KT:
    RETI
    END
    Last edited by tdm; 04-03-2013, 13:11.
    |

    Comment


    • #3
      Nguyên văn bởi tdm Xem bài viết
      cần gì phải phức tạp thế.
      giải quyết: tạo một ngắt time để giải quyết vấn đề đó.
      Code:
      ORG 0000H
      LJMP main_1
      ORG 000BH
      LJMP ISR_T0
      ORG 0030H
      main_1:
      MOV    P1,#0000H
      MOV    P2,#0000H
      MOV    P3,#0000H
      MOV R4,#00H
      MOV R0,#00H
      MOV R1,#00H
      MOV R2,#00H
      MOV TL0,#-50000
      MOV TH0,#-50000
      SETB TR0
      MOV TMOD,#01H
      MOV IE,#82H
      MAIN:
          JB    P3.0,CT1
          JB    P3.1,CT2
          JB    P3.2,CT3
          JB    P2.0,CTT1
          JB    P2.1,CTT2
          JB    P2.2,CTT3
          LJMP    MAIN
      CT1:
          setb    P1.0
          MOV R0,#20    ;gan gia tri can tre(nạp giá trị khác để có độ trễ bạn cần)
           JMP    MAIN
          RET
      CT2:
          SETB    P1.1
          MOV R1,#20    ;gan gia tri can tre(nạp giá trị khác để có độ trễ bạn cần)
          JMP    MAIN
          RET
      CT3:
          SETB    P1.2
           MOV R2,#20        ;gan gia tri can tre(nạp giá trị khác để có độ trễ bạn cần)
          JMP    MAIN
          RET
      CTT1:
          CLR    P1.0
          JMP MAIN
          RET
      CTT2:
          CLR    P1.1
          JMP MAIN
          RET
      CTT3:
          CLR    P1.2
          JMP MAIN
          RET
      ISR_T0:
      CLR TR0
      INC R4
      CJNE R4,#20,TIEP ; 20*50000=1s
      MOV R4,#00H
      ;*******kiem tra tre phim 1***************
      CJNE R0,#00,chua_het
      CLR    P1.0
      MOV R0,#00H
      jmp kiem_tra_phim2
      chua_het:
      dec r0
      ;**********************
      ;******kiem tra tre phim 2***********
      kiem_tra_phim2:
      CJNE R1,#00,chua_het_1
      CLR    P1.1
      MOV R1,#00H
      jmp kiem_tra_phim3
      chua_het_1:
      dec r1
      ;**********************
          ;******kiem tra tre phim 3*************
      kiem_tra_phim3:
      CJNE R2,#00,chua_het_2
      CLR    P1.2
      MOV R2,#00H
      jmp TIEP
      chua_het_2:
      dec r2
      ;**********************
      TIEP:
      MOV TL0,#-50000
      MOV TH0,#-50000
      SETB TR0
      KT:
      RETI
      END
      Thank bạn nhiều lắm
      Last edited by [VN]NMD; 05-03-2013, 13:33.

      Comment


      • #4
        Trc tien xl mod vi t dung dt nen ko viet co dau dc.mog mod thog cam.
        T co y kien cho b nhu sau.b viet cac chuog trjh con djeu kjen cac den roj dug tjmer dem b cho den lap laj nang len 10 p thj b goj ct tat den neu chua toj 10p ma co nut nhan thj reset laj bo dem.chu b dug them jc so co ve la....


        MOV NHÀ,ANH
        MOV NHÀ,EM
        ADD ANH,EM

        Comment


        • #5
          Nguyên văn bởi boynghean Xem bài viết
          Trc tien xl mod vi t dung dt nen ko viet co dau dc.mog mod thog cam.
          T co y kien cho b nhu sau.b viet cac chuog trjh con djeu kjen cac den roj dug tjmer dem b cho den lap laj nang len 10 p thj b goj ct tat den neu chua toj 10p ma co nut nhan thj reset laj bo dem.chu b dug them jc so co ve la....
          Thank ý kiến của bạn. Có phải bạn ý bạn là dùng 1 ct con delay để khi có tín hiệu thì đèn sáng đồng thời nhảy tới ct delay 10p luôn hả.

          Comment


          • #6
            Nguyên văn bởi tdm Xem bài viết
            cần gì phải phức tạp thế.
            giải quyết: tạo một ngắt time để giải quyết vấn đề đó.
            Code:
            ORG 0000H
            LJMP main_1
            ORG 000BH
            LJMP ISR_T0
            ORG 0030H
            main_1:
            MOV    P1,#0000H
            MOV    P2,#0000H
            MOV    P3,#0000H
            MOV R4,#00H
            MOV R0,#00H
            MOV R1,#00H
            MOV R2,#00H
            MOV TL0,#-50000
            MOV TH0,#-50000
            SETB TR0
            MOV TMOD,#01H
            MOV IE,#82H
            MAIN:
                JB    P3.0,CT1
                JB    P3.1,CT2
                JB    P3.2,CT3
                JB    P2.0,CTT1
                JB    P2.1,CTT2
                JB    P2.2,CTT3
                LJMP    MAIN
            CT1:
                setb    P1.0
                MOV R0,#20    ;gan gia tri can tre(nạp giá trị khác để có độ trễ bạn cần)
                 JMP    MAIN
                RET
            CT2:
                SETB    P1.1
                MOV R1,#20    ;gan gia tri can tre(nạp giá trị khác để có độ trễ bạn cần)
                JMP    MAIN
                RET
            CT3:
                SETB    P1.2
                 MOV R2,#20        ;gan gia tri can tre(nạp giá trị khác để có độ trễ bạn cần)
                JMP    MAIN
                RET
            CTT1:
                CLR    P1.0
                JMP MAIN
                RET
            CTT2:
                CLR    P1.1
                JMP MAIN
                RET
            CTT3:
                CLR    P1.2
                JMP MAIN
                RET
            ISR_T0:
            CLR TR0
            INC R4
            CJNE R4,#20,TIEP ; 20*50000=1s
            MOV R4,#00H
            ;*******kiem tra tre phim 1***************
            CJNE R0,#00,chua_het
            CLR    P1.0
            MOV R0,#00H
            jmp kiem_tra_phim2
            chua_het:
            dec r0
            ;**********************
            ;******kiem tra tre phim 2***********
            kiem_tra_phim2:
            CJNE R1,#00,chua_het_1
            CLR    P1.1
            MOV R1,#00H
            jmp kiem_tra_phim3
            chua_het_1:
            dec r1
            ;**********************
                ;******kiem tra tre phim 3*************
            kiem_tra_phim3:
            CJNE R2,#00,chua_het_2
            CLR    P1.2
            MOV R2,#00H
            jmp TIEP
            chua_het_2:
            dec r2
            ;**********************
            TIEP:
            MOV TL0,#-50000
            MOV TH0,#-50000
            SETB TR0
            KT:
            RETI
            END
            bạn có thể giúp mình lập trình 1 đoạn lệnh điều khiển như sau được ko?
            nguyên lý hoạt động là :
            - 8 công tắc nối với port 1
            - 8 led nối với port 2
            >> khi gạt công tắc 1 thì led1 sáng , khi gạt công tắc 2 thì led2 sáng ,khi gạt công tắc 3 thì led 3 sáng. nhưng khi gạt đồng thời công tắc 1 và công tắc 2 thì 8 led sáng dần đều.gạt đồng thời 3 công tắc thì 8 led nhấp nháy.
            ..bạn giúp mình lập trình mẫu nguyên tắc như vậy được ko ? sử dụng ngôn ngữ asm bạn nhé.

            Comment

            Về tác giả

            Collapse

            [VN]NMD Tìm hiểu thêm về [VN]NMD

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

            Collapse

            Đang tải...
            X