Ðề tài: ngắt timer0
View Single Post
Old 11-08-2011, 03:03 PM   #1
quanghuynh85
Nhập môn đệ tử
 
Tham gia ngày: Nov 2010
Bài gửi: 1
:
ngắt timer0

mình đọc đoạn này thấy rất hợp lý mà sao nó không chay, mấy pro giúp đở giùm

processor 16f877a
include <p16f877a.inc>
__CONFIG _CP_OFF&_WDT_OFF&_BODEN_OFF&_PWRTE_ON&_HS_OSC&_WRT _OFF&_LVP_OFF&_CPD_OFF
cblock 0x020; khai báo chung các dia chi mot lan, bat dau tu 0x20, bien tiep theo la 0x21....
count ;co dia chi 0x20
temp ;co dia chi 0x21
w_save ;.............
status_save ;.............
endc
;************************************************* *********
ORG 0x00
GOTO main ; BAT DAU CHUONG TIRNH CHINH
ORG 0X04 ; DIA CHI VECTOR NGAT TIMER0
MOVWF w_save ;chep noi dung trong thanh W sang thanh w_save
MOVF STATUS,0 ;chep noi dung thanh status vao thanh w, luu vao thanh w
BTFSC INTCON,T0IF ;kiem tra bit T0IF, neu bit nay =0 thi bo qua lenh ke tiep
GOTO isr_timer0 ; nha den ct con isr_timer0

end_isr ; CHUONG TRINH PHUC VU NGAT
MOVF status_save,0 ; KHI KO
MOVWF STATUS
MOVF w_save,0
RETFIE


main
BANKSEL OPTION_REG
MOVLW b'00000111' ; CHO PHEP NGAT TOAN CUC
MOVWF OPTION_REG
BANKSEL TRISB
CLRF TRISB
BANKSEL PORTB
CLRF PORTB
BANKSEL INTCON
MOVLW b'111000000'
MOVFW INTCON
MOVLW d'250'
MOVWF temp
MOVWF count
BSF INTCON,T0IF ; EP NGAT
GOTO $
;************************************************* *

isr_timer0
BCF INTCON,T0IF; xoa co ngat
MOVLW 0xb2 ;dung de dem thoi gian
MOVWF TMR0
DECFSZ temp,1
GOTO end_isr
MOVLW d'250'
MOVWF temp
MOVF count,0
CLRF PORTB
CALL table
MOVWF PORTB
DECFSZ count,1
GOTO end_isr
MOVLW d'14'
MOVWF count
GOTO end_isr
;************************************************* *
table
ADDWF PCL,1
RETLW 0X01
RETLW 0X02
RETLW 0X04
RETLW 0X08
RETLW 0X10
RETLW 0X20
RETLW 0X40
RETLW 0X80
RETLW 0X40
RETLW 0X20
RETLW 0X10
RETLW 0X08
RETLW 0X04
RETLW 0X02
end
quanghuynh85 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn