Thông báo

Collapse
No announcement yet.

[Cần giúp]Ngắt ngoài trong PIC16f887 với asm code

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

  • [Cần giúp]Ngắt ngoài trong PIC16f887 với asm code

    em có viết chương trình bật led dùng ngắt ngoài.Nhưng khi em bấm nút led không sáng, portc không thây đổi mức logic.mong các anh xem giúp sai chỗ nào.


    Click image for larger version

Name:	Capture.JPG
Views:	1200
Size:	108.6 KB
ID:	1632568
    Code:
      
    
    
    #include "p16F887.inc"
    
     ;CONFIG1
    ; __config 0xFFF7
     __CONFIG _CONFIG1, _FOSC_EXTRC_CLKOUT & _WDTE_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _CPD_OFF & _BOREN_OFF & _IESO_OFF & _FCMEN_OFF & _LVP_OFF
    ;CONFIG2
    ; __config 0xFFFF
     __CONFIG _CONFIG2, _BOR4V_BOR40V & _WRT_OFF
    org 0x00
    goto main
    org    0x04        
            goto ctngat
    ;=================================================
    ;khai bao bien
        cblock 0x20
        vong1,vong2,W_SAVE,STAT_SV,PCH_SV,FSR_SV
         ENDC
    ;==================================================
    org 0x05
      main      ;----------chuong trinh chinh
              bsf STATUS,RP0
           movlw 0x01;RB0 la input
           movwf TRISB 
           clrf TRISC
           bsf OPTION_REG,6;ngat canh xuong
           bcf STATUS,RP0
           
           bcf PORTC,0
           bsf INTCON,4
           bsf INTCON,7
               GOTO $
    ;=======================================
     ctngat
    ;---------luu  gia tri cac thanh ghi-------
    
            movwf    W_SAVE        ;
            swapf    STATUS,w    ;
            clrf    STATUS        ;
            MOVWF  STAT_SV  ; STAT_SV = swap_nibbles
            MOVF  PCLATH, W
            MOVWF  PCH_SV  ; PCH_SV = PCLATH
            clrf PCLATH
            movf FSR,w
            MOVWF  FSR_SV   ; FSR_SV = FSR
    
    
    ;---------------------------------------------
    ;
            btfsc INTCON,INTF    ;
               goto ngat
               goto thoat_ngat
             ngat
                   bsf PORTC,0 ;bat led
                   call delay
                   bcf PORTC,0
                   bcf INTCON,1;
    ;------------------------------------------------
    ;-------------tra lai gia tri cho cac thanh ghi---------------
     
            MOVF FSR_SV, W
            MOVWF  FSR   ; FSR = FSR_SV
            MOVF  PCH_SV, W
            MOVWF  PCLATH   ; PCLATH = PCH_SV
            SWAPF  STAT_SV,  W
            MOVWF STATUS  ; STATUS = swap_nibbles
            SWAPF  W_SAVE,F
            SWAPF W_SAVE, W  ; W = swap
            BSF  INTCON, GIE
     thoat_ngat
           RETFIE
    ;=================================================
           
         
    
    delay
            movlw d'20'
            movwf vong1
            movlw d'3'
            movwf vong2
            decfsz vong1
            goto $-1
            decfsz vong2
              goto $-3
            return
    
               end
    
    
          Click image for larger version
    
    Name:	Capture.JPG
    Views:	1046
    Size:	108.6 KB
    ID:	1632567

  • #2
    bạn ở đâu thế, sao k dùng C cho nhanh. Hay là thầy bắt dùng ASM như mình đây

    Comment


    • #3
      đang thử viết chương trinh ngắt.ở lớp mình học asm

      Comment

      Về tác giả

      Collapse

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

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

      Collapse

      Đang tải...
      X