Từ sáng giờ em đã làm lại. Do vừa tìm hiểu lệnh, các thanh ghi nữa nên
hơi lâu. ct được viết lại như dưới nhưng vẫn chưa được.
Nút nhấn chỉ có tác dụng ở lần đầu tiên. tức là ' nhấn lần thứ NHẤT ---> RA0 = 1 '
nhưng những lần nhấn tiếp theo vẫn chỉ có RA0 = 1 .
Em nghi ngờ ở lần ngắt đầu tiên (trong chương trình ngắt) đã tác động
đến thanh ghi nào đấy , và nó đã không cho phép ngắt nữa.
---------------------------------------------
Code:
;=======================================================
TITLE "Mach test ngat ngoai"
PROCESSOR P16F877A
INCLUDE <P16F877A.inc>
__CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF &_HS_OSC
;chan RB0 noi voi cong tac de dem so lan nhan
;port A noi voi cac led hien de hien thi so binary
;=================================================================
COUNT equ 20H
ORG 00H
GOTO MAIN
org 04H
goto NGAT
;===============CHUONG TRINH CHINH================================
ORG 0x0005
MAIN
BANKSEL TRISB ; bank select
movlw b'00000001'
movwf TRISB ; trisb = #w; rb0 = input
movlw 00h
movwf TRISA
BANKSEL PORTA
bsf INTCON,7
bsf INTCON,4
bcf INTCON,1
CLRF W
movwf PORTA
goto $-1
;==================CHUONG TRINH NGAT=============================
NGAT
incf COUNT,0 ;tang g.tri count len 1 & luu trong 'W'
BCF INTCON,1
retfie ; return from interrupt
END
;====================================================================