RP Store Tìm linh kiện theo mã, gửi BOM nhận báo giá Gửi BOM

chương trình ngắt cho led

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • ductantruong
    Nhập môn đệ tử
    • Sep 2010
    • 3

    #1

    chương trình ngắt cho led

    em đang viết chương trình ngắt cho 8 led chạy sáng đuổi nhau,khi ta ngắt chân RP7 hoặc RP6 hoặc RP5,RP4 thì chương trình sẽ thực hiện ngắt,em mới học nên loay hoay viết không được,mong các anh giúp đỡ em!!!

    ;================================================= =======
    ; Ten chuong trinh : Mach chay led sang duoi
    ; Nguoi thuc hien : ductan
    ; Ngay thuc hien : 22/12/2010
    ; Phien ban : 1.0
    ; Mo ta phan cung : Dung PIC16F628A - thach anh 4MHz
    ; : LED giao tiep voi PORTB
    ; : Cuc am cua LED noi voi GND
    ; : RB0 - RB7 la cac chan output
    ;----------------------------------------------------------------
    ; Ngay hoan thanh :
    ; Ngay kiem tra :
    ; Nguoi kiem tra :
    ;----------------------------------------------------------------
    ; Chu thich :
    ; :
    ; :
    ; :
    ; :
    ; :
    ;================================================= =======

    processor 16f877a
    include <p16f877a.inc>
    __CONFIG _CP_OFF&_WDT_OFF&_BODEN_OFF&_PWRTE_ON&_XT_OSC&_WRT _OFF&_LVP_OFF&_CPD_OFF

    count1 equ 0x20
    counta equ 0x21
    countb equ 0x22
    count equ 0x23

    W_SAVE EQU 0X24
    PCLATH_SAVE EQU 0X25
    STATUS_SAVE EQU 0X26
    FSR_SAVE EQU 0X28


    ORG 0X0004
    GOTO ISR
    ISR

    MOVWF W_SAVE
    SWAPF STATUS,W
    CLRF STATUS
    MOVWF STATUS_SAVE

    MOVF PCLATH,W
    MOVWF PCLATH_SAVE
    CLRF PCLATH
    MOVF FSR,W
    MOVWF FSR_SAVE
    ;-------------------------------------------
    ;chuong trinh chinh
    ;-------------------------------------------------
    BTFSS INTCON,INTE
    GOTO exit_int
    BCF INTCON,INTE
    BSF INTCON,7
    BSF INTCON,6












    exit_int

    MOVF FSR_SAVE,W
    MOVWF FSR
    MOVF PCLATH_SAVE,W
    MOVWF PCLATH
    SWAPF STATUS_SAVE,W
    MOVWF STATUS
    SWAPF W_SAVE,F
    SWAPF W_SAVE,W

    RETFIE


    org 0x0000
    goto start
    ORG 0X0050
    start
    bcf STATUS,RP1
    bcf STATUS,RP0
    clrf PORTB
    bsf STATUS,RP0
    movlw 0X00
    movwf TRISB
    bcf STATUS,RP0
    loop1
    clrf count
    loop2
    movf count,0
    call table
    movwf PORTB
    call delay100ms
    incf count,0
    xorlw d'8'
    btfsc STATUS,Z
    goto loop1
    incf count,1
    goto loop2
    table
    ADDWF PCL,1
    retlw b'10000000'
    retlw b'01000000'
    retlw b'00100000'
    retlw b'00010000'
    retlw b'00001000'
    retlw b'00000100'
    retlw b'00000010'
    retlw b'00000001'
    delay100ms
    movlw d'100'
    movwf count1
    d1 movlw 0xc7
    movwf counta
    movlw 0x01
    movwf countb
    delay_0
    decfsz counta,1
    goto $+2
    decfsz countb,1
    goto delay_0
    decfsz count1,1
    goto d1
    return
    end
Working...